第6章Simulink仿真入门及MATLAB的应用_第1页
第6章Simulink仿真入门及MATLAB的应用_第2页
第6章Simulink仿真入门及MATLAB的应用_第3页
第6章Simulink仿真入门及MATLAB的应用_第4页
第6章Simulink仿真入门及MATLAB的应用_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MATLAB程序设计教程(第二版)程序设计教程(第二版)刘卫国 主编 中国水利水电出版社第6章 SIMULINK仿真入门及MATLAB的应用u Simulink操作基础uMATLAB系统的仿真Simulink系统的基本模块仿真模型的编辑仿真参数的设置u MATLAB在控制系统中的应用6.1.1 Simulink简介 Simulink是MATLAB的重要组成部分,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能。 Simulink 是MATLAB环境下对动态系统进行建模、仿真和分析的一个软件包。该系统的两个主要功能就是Simu(仿真)

2、和Link(连接)。 6.1 Simulink操作基础6.1.2 Simulink的启动与退出 1Simulink的启动在MATLAB的命令窗口输入simulink或单击MATLAB主窗口工具栏上的Simulink命令按钮即可启动Simulink。Simulink启动后会显示Simulink模块库浏览器(Simulink Library Browser)窗口。在启动Simulink模块库浏览器后再单击其工具栏中的New model命令按钮,会弹出名字为untitled的模型编辑窗口。在MATLAB主菜单中,选择File菜单中New菜单项的Model命令,也可打开模型编辑窗口。利用模型编辑窗口,

3、可以通过鼠标的拖放操作创建一个模型。 2Simulink的退出为了退出Simulink,只要关闭所有模型编辑窗口和Simulink模块库浏览器窗口即可。6.2 系统仿真模型6.2.1 Simulink的基本模块Simulink的模块库提供了大量模块。单击模块库浏览器中Simulink前面的“+”号,将看到Simulink模块库中包含的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。1信号源模块(Sources) 双击Simulink模块库窗口中的Sources模块,即可打开信号源模块。 信号源模块信号源模块 模块模块功能功能模

4、块模块功能功能In1创建输入端创建输入端Ground接地接地Constant常数常数Clock当时时间当时时间Signal Generator信号发生器信号发生器Digital Clock数字时钟数字时钟Ramp斜波斜波From File从文件读数据从文件读数据Sine Wave正弦波正弦波From Workspace从工作空间读数从工作空间读数据据 Step阶跃信号阶跃信号Random Number随机信号随机信号Repeating Sequence重复序列重复序列Uniform Random Number均匀随机信号均匀随机信号Pulse Generator脉冲发生器脉冲发生器Band-L

5、imited White Noise带限白噪声带限白噪声Chirp Signal快速正弦扫描快速正弦扫描2输出模块(Sinks)模块模块功能功能模块模块功能功能Scope示波器示波器To File输出到文件输出到文件Floating Scope可选示波器可选示波器To Workspace输出到工作空间输出到工作空间XY GraphXY关系图关系图Terminator通用终端通用终端Outl创建输出端创建输出端Stop Simulation输出不为输出不为0时停止时停止仿真仿真Display实时数值显示实时数值显示3连续系统模块(Continuous)连续系统模块提供积分、微分等连续系统仿真的常

6、用原件。 连续系统模块的功能连续系统模块的功能 模块模块功能功能模块模块功能功能Integrator积分积分Zero-Pole零极点零极点Derivative微分微分Memory延时输出延时输出State-Space状态方程状态方程Transport Delay传输延时传输延时Transfer Fcn传递函数传递函数Variable Transport Delay可变传输延可变传输延时时4 数学运算模块(Math Operations) 数学运算模块提供了基本数学运算函数、三角函数、复数运算函数以及矩阵运算函数。 数学运算模块的功能数学运算模块的功能 模块模块功能功能模块模块功能功能Sum求和

7、求和Rounding Function取整函数取整函数Product积或商积或商Combinatorial Logic逻辑真值表逻辑真值表Dot Product点积点积Logic Operator逻辑算子逻辑算子Gain常数增益常数增益Bitwise Logical Operator位逻辑算子位逻辑算子Slider Gain可变增益可变增益Relational Operator关系算子关系算子Matrix Gain矩阵增益矩阵增益Complex to Magnitude-Angle复数的模和辐角复数的模和辐角Math Function数学运算函数数学运算函数Magnitude-Angle to

8、 Complex模和辐角合成函模和辐角合成函数数Trigonometric function三角函数三角函数Complex to Real-Imag复数的实部和虚复数的实部和虚部部MinMax求最大值求最大值Real-Imag to Complex实部和虚部合成实部和虚部合成复数复数Abs求绝对值求绝对值Algebraic Constraint强迫输入信号为强迫输入信号为零零Sign符号函数符号函数6.2.2 模块的编辑1添加模块2选取模块3复制与删除模块4模块外形的调整 5模块名的处理6.2.3 模块的连接1连接两个模块2模块间连线的调整3连线的分支4标注连线5删除连线6.2.4 模块的参数

9、和属性设置1模块的参数设置Simulink中几乎所有模块的参数都允许用户进行设置,只要双击要设置的模块或在模块上按鼠标右键并在弹出的快捷菜单中选择相应模块的参数设置命令就会弹出模块参数对话框。该对话框分为两部分,上面一部分是模块功能说明,下面一部分用来进行模块参数设置。同样,先选择要设置的模块,再在模型编辑窗口Edit菜单下选择相应模块的参数设置命令也可以打开模块参数对话框。2模块的属性设置选定要设置属性的模块,然后在模块上按鼠标右键并在弹出的快捷菜单中选择Block properties,或先选择要设置的模块,再在模型编辑窗口的Edit菜单下选择Block properties命令,将打开模

10、块属性对话框。该对话框包括General、Block annotation和Callbacks 3个可以相互切换的选项卡。其中选项卡中可以设置3个基本属性:Description(说明)、Priority(优先级) 、Tag(标记)。例6-1 有系统的微分方程,试建立系统仿真模型。操作过程如下:(1) 在MATLAB主菜单中,选择File菜单中New菜单项的Model命令,打开一个模型编辑窗口。(2) 将所需模块添加到模型中。(3) 设置模块参数并连接各个模块组成仿真模型。设置模块参数后,用连线将各个模块连接起来组成系统仿真模型。模型建好后,从模型编辑窗口的File菜单中选择Save或Save

11、 as命令将它存盘。6.3.1 设置仿真参数在系统仿真过程中,事先必须对仿真算法、输出模式等各种仿真参数进行设置。其方法是:打开系统仿真模型,从模型编辑窗口的Simulation菜单中选择Configuration Parameters命令,打开一个仿真参数对话框,在其中可以设置仿真参数。在此对话框中,仿真参数设置被分为9个选项。6.3 系统的仿真1Solver选项设置在对话框左边的树型结构中单击Solver选项,在右边的窗口中会列出所有Solver选项。(1)设置仿真起始和停止时间(Simulink time)。(2)仿真算法的选择(Solver options)。2Data Import/

12、Export选项设置在仿真参数对话框中选择Data Import/Export选项,会出现一个对话框。相应的选项设置分为3组:Load from workspace、Save to workspace和Save options。(1)从工作空间中载入数据(Load from workspace)。(2)保存到工作空间(Save to workspace)。(3)保存选项(Save options)。 6.3.2 启动系统仿真与仿真结果分析设置完仿真参数之后,从Simulation中选择Start菜单项或单击模型编辑窗口中的Start Simulation命令按钮,便可启动对当前模型的仿真。此时

13、,Start菜单项变成不可选, 而Stop菜单项变成可选, 以供中途停止仿真使用。从Simulation菜单中选择Stop项停止仿真后,Start项又变成可选。为了观察仿真结果的变化轨迹可以采用3种方法:(1) 把输出结果送给Scope模块或者XY Graph模块。(2) 把仿真结果送到输出端口并作为返回变量,然后使用MATLAB命令画出该变量的变化曲线。 (3) 把输出结果送到To Workspace模块,从而将结果直接存入工作空间,然后用MATLAB命令画出该变量的变化曲线。例6-2 利用Simulink仿真求定积分 。仿真过程如下:(1) 打开一个模型编辑窗口。(2) 将所需模块添加到模

14、型中。(3) 设置模块参数并连接各个模块组成仿真模型。(4) 设置系统仿真参数。(5) 开始系统仿真。(6) 观察仿真结果。6.3.3 系统仿真小结至此,可以总结出利用Simulink进行系统仿真的步骤:(1) 建立系统仿真模型,这包括添加模块、设置模块参数以及进行模块连接等操作。(2) 设置仿真参数。(3) 启动仿真并分析仿真结果。控制系统的时域分析q求取系统单位阶跃响应:step()q求取系统的冲激响应:impulse()函数名函数名函数功能描述函数功能描述常用格式常用格式备注备注stepstep系统阶跃响应系统阶跃响应(假设零初始状态)(假设零初始状态)step(sys);step(A,

15、B,C,D);step(num,den)step(sys);step(A,B,C,D);step(num,den)对连续对连续/ /离散、离散、SISO/MIMOSISO/MIMO系统均适用;系统均适用;x0 x0为给定的初始状态;为给定的初始状态;t t为指定的仿真时间;为指定的仿真时间;当调用无输出变量时,当调用无输出变量时,直接绘出曲线;直接绘出曲线;有输出变量时,返回响有输出变量时,返回响应结果的数值。应结果的数值。step(sys,t)step(sys,t)y,t,x=step(sys)y,t,x=step(sys)impulseimpulse系统脉冲响应系统脉冲响应(假设零初始状态

16、)(假设零初始状态)impulse(sys)impulse(sys)impulse(sys,t)impulse(sys,t)y,t,x=step(sys)y,t,x=step(sys)lsimlsim系统对任意输入的响系统对任意输入的响应(任意初始状态)应(任意初始状态)lsim(sys,u,t)lsim(sys,u,t)lsimlsim(sys,u,t,x0)(sys,u,t,x0)y,t,x=y,t,x=lsimlsim (sys,u,t,x0) (sys,u,t,x0)initialinitial系统的零输入响应系统的零输入响应initial(sys,x0)initial(sys,x0)

17、initial(sys,x0initial(sys,x0,t),t)y,t,x=y,t,x=initial(sys,x0)initial(sys,x0)根轨迹分析函数pzmap:绘制线性系统的零极点图rlocus:求系统根轨迹。rlocfind:计算与根轨迹极点相对应的根轨迹增益。控制系统的数学描述与建模控制系统的数学描述与建模 q在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。传递函数描述 对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在

18、MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。11211121.)()()(nnnnmnmmasasasabsbsbsbsRsCsG连续系统的传递函数模型连续系统的传递函数如下:传递函数传递函数lMATLAB中创建传递函数(TF)对象lSYS = tf(NUM,DEN)建立tf模型创建两个行向量,按降阶顺序分别包含分子和分母多项式中s各次幂的系数使用tf命令建立TF对象 例如: numG=4 3;denG=1 6 5; G1=tf(

19、numG,denG)或 G1=tf(4 3,1 5 6)零极点增益模型l零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。).()().()()(2121nmpspspszszszsKsGv在MATLAB中零极点增益模型用z,p,K矢量组表示。即:vz=z1,z2,zmvp=p1,p2,.,pnvK=kv函数tf2zp()可以用来求传递函数的零极点和增益。K为系统增益,zi为零点,pj为极点零极点增益模型l零点、极点、增益形式(ZPK)表示l可用 SYS = zpk(Z,P,K)建立zpk模型输入零点和极

20、点列向量及标量形式的增益使用zpk命令建立ZPK对象 例: zG=-0.75;pG=-1;-5;kG=4; G2=zpk(zG,pG,kG) 或者: G2=zpk(-0.75,-1;-5,4)举例:传递函数描述举例:传递函数描述1)num=12,24,0,20;den=2 4 6 2 2;2)借助多项式乘法函数conv来处理:num=4*conv(1,2,conv(1,6,6,1,6,6);den=conv(1,0,conv(1,1,conv(1,1,conv(1,1,1,3,2,5);22642202412)(23423sssssssG) 523() 1()66)(2( 4)(23322ss

21、sssssssG零极点增益模型:num=1,11,30,0;den=1,9,45,87,50; z,p,k=tf2zp(num,den)50874593011)(23423ssssssssG)43)(43)(2)(1() 5)(6()(jsjsssssssGz= 0 -6 -5p= -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000k= 1结果表达式: 以上已经给出开环系统的模型表达。有时需要系统的闭环模型,MATLAB提供了一组这样的函数:lfeedback 反馈连接 SYS = feedback(SYS1,SYS2,sign) num,den=f

22、eedback(num1,den1,num2,den2,sign) sign=+(-)1反馈极性,缺省-1为负反馈lparallel系统并联lseries系统串联 闭环系统的表达闭环系统的表达% 建立闭环传递函数模型numg=1 1;deng=1 5 6;numh=1; denh=1;sys1=tf(numg,deng);sys2=tf(1,1);sysb=feedback(sys1,sys2)numb,denb=feedback(num1,den1,1,1)% num, den=feedback(numg,deng,numh,denh)% 求取系统的单位阶跃响应 t=0: 0.1:15; f

23、igurestep(sys,t);grid Transfer function: s + 1-s2 + 6 s + 7 numb = 0 1 1 denb = 1 6 76512 sssUY应用应用MATLAB进行时域分析进行时域分析 1. 应用MATLAB分析系统的稳定性 在MATLAB中,可利用pzmap函数绘制连续的零、极点图,也可以利用tf2zp函数求出系统的零、极点,从而判断系统的稳定性。 【例1】 已知连续系统的传递函数为2724364523)(2345234ssssssssssG要求: (1) 求出该系统的零、 极点及增益; (2) 绘出其零、 极点图, 判断系统稳定性。 num

24、 = 3, 2, 5, 4, 6; den = 1, 3, 4, 2, 7, 2; z,p,k=tf2zp(num, den); disp(z) disp(p) disp(k) pzmap(num,den); title(Poles and zeros map); 解: 可执行如下程序: %This program create a transfer function and then finds/displays its poles, zeros and gain2724364523)(2345234ssssssssssGl程序执行结果如下: l屏幕显示: l z=0.4019+1.1965i p=-1.7680+1.2673i 0.4019-1.1965i -1.7680-1.2673i -0.7352+0.8455i 0.4176+1.1130i -0.7352-0.8455i 0.4176-1.1130i -0.2991 K=3 同时, 屏幕上显示系统的零、极点分布图,如图所示。可以看

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论