当前位置:文档之家› matlab课程设计报告书

matlab课程设计报告书

《计算机仿真及应用》课程设计报告书学号:********,********班级:自动化081姓名陈婷,万嘉目录一、设计思想二、设计步骤三、调试过程四、结果分析五、心得体会六、参考文献选题一、考虑如下图所示的电机拖动控制系统模型,该系统有双输入,给定输入)(t R 和负载输入)(t M 。

1、 编制MATLAB 程序推导出该系统的传递函数矩阵。

2、 若常系数增益为:C 1=Ka =Km =1,Kr =3,C2=0.8,Kb =1.5,时间常数T 1=5,T 2=0.5,绘制该系统的根轨迹、求出闭环零极点,分析系统的稳定性。

若)(t R 和)(t M 分别为单位阶跃输入,绘制出该系统的阶跃响应图。

(要求C 1,Ka ,Km ,Kr ,C2,Kb , T 1,T 2所有参数都是可调的)一.设计思想题目分析:系统为双输入单输出系统,采用分开计算,再叠加。

要求参数均为可调,而matlb 中不能计算未赋值的函数,那么我们可以把参数设置为可输入变量,运行期间根据要求赋值。

设计思路:使用append 命令连接系统框图。

选择‘参数=input('inputanumber:')’实现参数可调。

采用的方案:将结构框图每条支路稍作简化,建立各条支路连接关系构造函数,运行得出相应的传递函数。

在得出传递函数的基础上,使用相应的指令求出系统闭环零极点、画出其根轨迹。

通过判断极点是否在左半平面来编程判断其系统是否稳定。

二.设计步骤(1)将各模块的通路排序编号(2)使用append命令实现各模块未连接的系统矩阵(3)指定连接关系(4)使用connect命令构造整个系统的模型三.调试过程出现问题分析及解决办法:在调试过程出现很多平时不注意且不易寻找的问题,例如输入的逗号和分号在系统运行时不支持中文格式,这时需要将其全部换成英文格式,此类的程序错误需要细心。

在实现参数可调时初始是将其设为常量,再将其赋值进行系统运行,这样参数可调性差,后用‘参数=input('inputanumber:')’实现。

最后是在建立通路连接关系时需要细心。

四.结果分析源代码:Syms C1 C2 Ka Kr Km Kb T1 T2C1=input('inputanumber:')C2=input('inputanumber:')Ka=input('inputanumber:')Kr=input('inputanumber:')Km=input('inputanumber:')Kb=input('inputanumber:')T1=input('inputanumber:')T2=input('inputanumber:')G1=tf(C1,[0 1]);G2=tf(Ka*Kr,[0 1]);G3=tf(Km,[T1 1]);G4=tf(1,[T2 1]);G5=tf(1,[1 0]);G6=tf(-C2,1);G7=tf(-Kb,1);G8=tf(-1,1);Sys=append(G1,G2,G3,G4,G5,G6,G7,G8)Q=[1 0 0;2 1 6;3 2 7;4 3 8;5 4 0;6 5 0;7 4 0;8 0 0;];INPUTS1=1;OUTPUTS=5;Ga=connect(Sys,Q,INPUTS1,OUTPUTS)INPUTS2=8;OUTPUTS=5;Gb=connect(Sys,Q,INPUTS2,OUTPUTS)rlocus(Ga)rlocus(Gb)step(Ga,Gb)Z1=tzero(Ga)Z2=tzero(Gb)p=pole(Ga)p=pole(Gb)if p(real)<0'yes'else'no'end仿真框图:函数Ga(R(t)为输入)的根轨迹Ga传函及其表达式:Ga=connect(Sys,Q,INPUTS1,OUTPUTS)Transfer function:1.2------------------------s^3 + 2.2 s^2 + s + 0.96函数Gb(M(t)为输入)的根轨迹Gb 传函及其表达式:Gb=connect(Sys,Q,INPUTS2,OUTPUTS)Transfer function:-2 s - 0.4------------------------s^3 + 2.2 s^2 + s + 0.96由图可知:闭环极点靠近虚轴,系统快速性不好函数Ga (上),Gb (下)的阶跃响应曲线3.仿真结果分析阶跃响应是衡量系统控制性能的优劣和定义时域性能的指标,所以可由此图得出两个函数的性能指标。

① G(a) 函数延迟时间:s t r5.2= 上升时间:s tp5.1=峰值时间:s t 5=超调量:%48%10025.125.185.1=⨯-=σ调节时间:s ts25=稳态误差:0)(1=∞-=h ess② G(b)函数: 延迟时间:s t r5.5= 上升时间:s tp2=峰值时间:s t 5.7=超调量:%50%100115.1=⨯-=σ 调节时间:s ts5.27= 稳态误差:0=ess以上数据含有误差,其中,延迟时间,上升时间和峰值时间表征系统响应初始阶段的快慢,调节时间表示系统过渡过程持续的时间,是系统的快速性的指标,超调量反应系统响应过程的平稳性,稳态误差反应系统复现输入的最终精度。

选题二、考虑下列非线性系统,其数学描述为非线性微分方程组:⎪⎩⎪⎨⎧-+=+=--=)(])([/)()(/)()(/t z c t x b dt dz t ay t x dt dy t z t y dt dx 其中a=b=0.2,c=5.7,0)0()0()0(===z y x利用Simulink 仿真工具建模,并绘制出各个状态变量的时间响应曲线。

一. 设计思想对分方程组在零初始条件下进行拉氏变换,并作出各元件的方框图。

按照系统中各变量的传递顺序,依次将各元件的子结构图连接起来。

二. 设计步骤根据动态结构图用simulink 中的元件画出系统的仿真框图。

三. 调试过程详细调试过程:建立好模型后,点‘三角形’运行键运行,在commend window 中输入plot(tout,yout),运行,得到仿真的输出波形。

出现问题:三个输出波形都在一个figure 里面,不知道哪个输出对应哪个状态变量。

分析及解决办法:在动态图中依次剪切掉两个输出,观察另一个输出的波形。

四.结果分析仿真框图;输出波形:选题三、对于时变受控对象模型)()()62sin()()(52.0t u t y t e t y et y t t=+++-•-••,考虑一个PI 控制系统模型,如下图所示,其中控制器参数为:比例常数Kp =200,积分常数Ki =10,饱和非线性环节的宽度2=δ,1、建模并绘制该闭环系统的阶跃响应曲线。

2、将PI 控制器封装为一个PID 控制器模块,参数Kp 和Ki 可调节。

一. 设计思想将时变受控对象模型转化,使其输入为u(t),输出为y(t)并将其封装以方便实现系统整体的建立,系统的第一部分用函数任意命名的方式实现。

二. 设计步骤(1) 用simulink 把转化后受控对象的关系式画成框图表达的形式,并将其封装。

(2) 饱和非线性环节用Saturation,并分别赋值为(-1,1)以实现它的宽度为2.(3) 系统的第一部分用函数任意命名的方式实现。

其中,将Ki 乘以一个积分环节,后用加法器实现它与Kp 的和,这样,Kp,Ki 可调,最后将其封装。

(4) 将系统的三部分封装,与输入,输出相连,将输入接入阶跃信号,输出接示波器便可观察运行后的结果。

三. 调试过程出现问题及解决方法:在调试过程中出现封装中子块的错误。

例如,关于e 的关系式中变量要换为u ,因为函数子块f(u)中指定了变量为u,而不是t 。

其次是关系式输入中数与变量之间不能缺少称号‘*’,例如:写成2u 是错误的,应改为2* u 。

以上问题均已解决,未解决的问题是无法保存 simulink 建模的*.dml 文件。

四.结果分析仿真框图:PID封装模块:PID内部:Kp,Ki,积分器组成的子系统Subsystem模块:PI受控对象模型:(调用clock模块来给系统作时钟输入)Fcn1:Fcn:设定Kp,Ki的值,Kp=200, Ki=10:把总系统的输入接入阶跃信号,输出换为示波器:点开示波器,点运行,出现整个系统的阶跃响应输出波形:五、心得体会小组共两人,共通过此次matlab课程设计,我们培养了对课题的分析能力、解题步骤的设计能力,熟悉了matlab的编程语句和对simulink的使用方法。

刚开始看第一个题目时,我们没怎么看懂,翻阅了书本之后,略悟了题目要求,两人综合意见,得出了第一种设计方案:把参量都设置成变量形式,然后利用书本上的编程语句得到含有未知参量符号形式的传递函数表达式。

但是经过实际编程尝试,并以出现错误宣告失败。

两人分开外出查阅,花费了大量时间,明白了第一种思想是不可实现的。

求助了同学,又经过了本队的思考之后,我们决定用具体数值形式带入编程计算,而这些数值都通过语句设置为可调的。

然后,第一个题目的剩余部分迎刃而解。

我们明白到我们花费了大量的时间是因为对matlab语法、语句的不熟悉,因为平时疏于操练。

画第二题时,因为想不出X和Z相乘怎么做,也花费了大量时间,最后开机动手开始操作,发现模块里有‘相乘’的模块,我们深刻地明白到:做仿真、做设计,就是要边思考边动手,动手有助于促进问题的解决。

因此,我们要在实践中摸索着前进,而不是等待思路都出来之后再动手完成操作。

设计第三题的过程中,我们学会了如何使用clock时钟模块作为系统的输入,并且观察到了自定义函数模块的细节,认识到粗心的危害,意识到细心检查的重要。

我们翻阅了课本,查阅了资料,这是一次对matlab的实践的学习。

我们学会了观察波形输出的两种方法:一种是接入示波器来看,一种是用PLOT系列的语句来生成图形。

我们掌握了子系统的封装,熟悉了不少编程语句,经过了自身的思考,得出了结果,体会到共同的喜悦,增强了对仿真的喜爱。

老师的博学与和蔼,同学的互助精神,为小队的学习注入了很大的动力,通过本次的课设,我们也被唤醒了勤奋的意识,获益匪浅。

六、参考文献郑阿奇主编.《MATLAB实用教程》第2版,电子工业出版社,2007.8 王宏华主编.《现代控制理论》,电子工业出版社,2006.8程鹏主编.《自动控制原理》,高等教育出版社,2003.8。

相关主题