simulink及模型转.ppt

上传人:小飞机 文档编号:5448247 上传时间:2023-07-08 格式:PPT 页数:96 大小:1,010KB
返回 下载 相关 举报
simulink及模型转.ppt_第1页
第1页 / 共96页
simulink及模型转.ppt_第2页
第2页 / 共96页
simulink及模型转.ppt_第3页
第3页 / 共96页
simulink及模型转.ppt_第4页
第4页 / 共96页
simulink及模型转.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《simulink及模型转.ppt》由会员分享,可在线阅读,更多相关《simulink及模型转.ppt(96页珍藏版)》请在三一办公上搜索。

1、通常用颜色来区分程序内容的类别:绿色:注释部分程序不执行 黑色:程序主题部分 红色:属性值的设定 蓝色:控制流程,比for,ifthen等语句,t=0:0.1:7;x=sin(t);plot(t,x,k);title(正弦曲线);xlabel(x轴);ylabel(y轴);,s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a s=s+k;s end disp(s);%输出行向量,Simulink在系统仿真中的应用,Simulink是一种用于在MATLAB下建立模块化的集成软件工具包。,Simulink建模的基础知识,Simulink含两层含义:“

2、Simu”表示仿真(simulation);而link表示它能够进行系统连接,即:把一系列模块连接起来,构成复杂的系统模型。正是由于它的这些功能和特色,使得它成为计算机仿真领域首选的仿真环境。,前面涉及到的仿真都是较为简单的静态仿真,为了处理更复杂的和时间有关的动态系统,就必须学习simulink的使用。Simulink是matlab提供的实现系统建模和仿真的一个软件包。它让用户把精力从编程转向模型的构造。,启动simulink,只需要在matlab命令窗口输入:simulink 或者单击命令窗口里工具栏上的按钮。,Simulink库浏览器,模型窗口,Simulink最让人振奋的一点就是支持图

3、形用户界面。,SIMULINK的基本操作,1、SIMULINK窗口:库浏览器、SIMULINK模型窗口,2、SIMULINK模块操作:模块是建立SIMULINK模型的基本单元,用适当的方式把各种模块连接在一起就能够建立任何动态系统模型。,选取模块、放大或缩小模块、改变模块名字,双击某一模块或在模块上单击鼠标右键,选择Block Parameters可以对参数进行设置,选择Block Properties可以设置和查看模块的特性。,模块的连线:移动鼠标到某一模块的输出端,鼠标的箭头会变成十字形光标,按住鼠标左键移动鼠标到另一模块的输入端,当十字光标出现重影时,释放左键即可。P115,2 SIMU

4、LINK的基本模块,在SIMULINK中包含:连续系统模块库(Continuous)、离散系统模块库(Discrete)、数学运算模块库(Math)、非线性模块库(Nonlinear)、信号与系统模块库(Signal&System)、接收(输出)模块库(Sinks)、输入源模块库(Sources)等。每一个模块又包含很多子模块。,连续系统模块Continuous功能:,模块名,功能简介,Integrator 积分环节Derivative 微分环节State-Space 状态方程Transfer Fcn 传递函数Zero-Pole 零极点模型Memory 把前一步的输入作为输出Transport

5、 Delay 把输入信号按给定的时间做延迟Variable Transport Delay 按第二个输入指定的时间把第一 个输入做延迟,离散系统模块Discrete功能:,模块名,功能简介,Zero-Order Hold 零阶保持器Unite Delay 采样保持,延迟一个周期Discrete-Time Integrator 离散时间积分Discrete State-Space 离散状态方程Discrete Filter 离散滤波器(IIR、FIR)Discrete Transfer Fcn 离散传递函数Discrete Zero-Pole 离散零极点模型First-Order Hold 一阶

6、保持器,非线性模块库,Rate Limiter 限制输入变化率的变化大小 Saturation 让输出超过某一值时能够饱和 Quantizer 把输入转化成阶梯状的量化输出 Backlash 由deadband设定,输出依据输入的改变而改变 Dead Zone 死区特性 Relay 限制输出值在某一范围内变化 Switch 根据临界值自动判断选择所接受的输入端 Manual Switch 人工判断选择所接受的输入端 Mutiport Switch 在多输入中选一个输出 Coulumb&Viscous Friction 当输出值达到一定值时,输出才 会根据输入而改变,接收模块sink功能:,模块

7、名,功能简介,Scope 示波器XY Graph 两个信号的关系图,用MATLAB图形显示Display 实时数值显示To File 保存到文件To Workspace 输出到当前工作空间的变量Stop Simulation 输入为非零时停止仿真,用示波器模块来观察输出Sinks库Scope 示波器窗口X Y graph 绘制二维的图形Display 将数据以数字的形式显示出来使用Workspace模块将信号输入至Workspace模块,该模块将数据输出到Matlab的命令窗口中,以simout变量名保存下来,也可以改变变量名用另外的名字保存时间数据用sources中的clock模块使用返回值

8、将输出返回Matlab命令窗口中out1,输入源模块source功能:,模块名,功能简介,Constant 常数Signal Generator 信号发生器Step 阶跃信号Ramp 线性增加或减少的信号Sine Wave 正弦波Repeating Sequence 重复的线性信号,类似锯齿形Discrete Pulse Generator 离散脉冲发生器,和采样时间有关Pulse Generator 脉冲发生器,和采样时间无关Chirp Signal 频率不断变化的正弦信号Clock 输出当前的仿真时间,Digital Clock 按指定速率输出当前仿真时间,用于离 散系统仿真From Fi

9、le 从文件读数据Random Number 高斯分布的随机信号Uniform Random Number 平均分布的随机信号Band-Limited White Noise 带限白噪声,3仿真模型参数的设置,建立模型之后,就可以对模型进行动态仿真,但在仿真前必须对模型的仿真参数进行相应的设置。1、输入信号的参数设置 双击信号源对象,改变其可设置值 例如,阶跃信号的可设置参数有 Step time 阶跃时间 Initial value 初值 Final value 终值2、示波器参数的设置 双击示波器,则出现示波器窗口,用于显示波形;在示波器上端可设置属性,包括显示时间,采样周期等。3、其他环

10、节的设置 与输入信号的设置一样,通过双击对象弹出属性窗口,设置不同的参数。,2.运行模型,用户在选择适当的算法并且设置好仿真参数后,就可以运行Simulink仿真模型了。有两种方法可以启动仿真:1)选择SimulationStart;2)点击图标“”。,注意:缺省时,示波器历史数据只保存最后的5000个。如果我们希望显示完整的仿真曲线,就需要将“Limit data to last 5000”前面复选框中的“”去掉。,4、仿真参数的设置:主菜单Simulation选项下的Parameters选项用于设置仿真参数,主要包括:(1)仿真算法,分别为:Euler 欧拉法 Runge-Kutta3 三

11、阶龙格库塔法 Runge-Kutta5 五阶龙格库塔法(缺省)Adams Adams算法 Gear 基耶算法 Adams/Gear A/G混合算法 Linsim 线性系统仿真算法(2)仿真时间与仿真步长的设置 start time 开始时间 stop time 结束时间 Relative Tolerance 相对精度 Absolute Tolerance 绝对精度 Max(min)step size最大(最小)允许的步长,最大步长=(停止时间-起始时间)/50,若仿真时间很长,有可能会出现失根,这时可根据需要设置较小的步长。,输出选项output optionsrefined output 细

12、化输出produce additional 产生附加输出produce specified output only只产生指定输出,1、简单例子,例1,双击Signal Generator跳出属性窗口,Signal Generator模块的位置在模型库的simulink的source下,Scope模块的位置在模型库的simulink的sinks下。,未进一步设置时的仿真图线:(双击Scope),可见,正弦图线不够连续,这是因为显示的采样步长参数没有调整到最好的结果。在模型窗口选择菜单中的simulation下的Configuration Parameters,进一步设置:将max step si

13、ze设置为0.01,将min step size设置为0.001,再次仿真得到新的图线:,步长为auto时,步长调整后,设置步长的窗口,2、火炮随动系统,稳定的情况,开环比例系数增大5倍,3、“最”复杂的例子(F14),在matlab命令窗口中输入:f14,默认的方波仿真结果:,5.2.3 Simulink在控制系统仿真研究中的应用举例,【例1】某一SISO的线性定常如图所示,试用MATLAB观测其单位阶跃响应曲线。,解:建立一个Simulink模型文件,构造如下图所示的仿真模型,仿真运行结果:,【例5-2】某一非线性控制系统如图5-20所示,判断该系统是否有稳定的极限环,并且分析该系统的稳定

14、性。,运行仿真模型就绘制出该非线性控制系统相轨迹,从相轨迹可以看到该非线性系统具有稳定的极限环。,再建立另一种形式的系统仿真模型,并且得到仿真结果(下图所示)。可以看到极限环对应的等幅振荡的振幅大约为0.6;周期大约为6秒。,例 有初始状态为0的二阶微分方程x+0.2x+0.4x=0.2u(t),其中u(t)是单位阶跃函数,试建立系统模型并仿真。方法1:用积分器直接构造求解微分方程的模型。方法2:利用传递函数模块建模。方法3:利用状态方程模块建模。例分别采取细化输出、产生附加输出和只产生指定输出这三种方式仿真正弦输入输出系统,细化系统为2,仿真时间10s,正弦波频率为8。,signal&sys

15、tems-mux把向量或标量组合为大的向量,mux,子系统的建立两种方法:通过Subsystem模块建立子系统和通过已有的模块建立子系统。两者的区别是:前者先建立子系统,再为其添加功能模块;后者先选择模块,再建立子系统。1通过Subsystem模块建立子系统操作步骤为:(1)先打开Simulink模块库浏览器,新建一个仿真模型。(2)打开Simulink模块库中的Ports&Subsystems模块库,将Subsystem模块添加到模型编辑窗口中。(3)双击Subsystem模块打开一个空白的Subsystem窗口,将要组合的模块添加到该窗口中,另外还要根据需要添加输入模块和输出模块,表示子系

16、统的输入端口和输出端口。这样,一个子系统就建好了。,创建一个简单的三角函数方程 作为子系统,Ports&subsystems subsystem,Ports&subsystems In1,out1,math operationssources constant,2通过已有的模块建立子系统操作步骤为:(1)先选择要建立子系统的模块,不包括输入端口和输出端口。(2)选择模型编辑窗口Edit菜单中的Create Subsystem 命令,这样,子系统就建好了。在这种情况下,系统会自动把输入模块和输出模块添加到子系统中,并把原来的模块变为子系统的图标。,选中要压缩的子系统,压缩成子系统以后,子系统封装

17、技术-模块封装方法,创建一个封装模块的主要步骤如下:,(1)创建一个子系统,(2)选中该子系统模块,执行模型窗口菜单中的“EditMask subsystem”命令,将子系统转化为封装模块。这时系统弹出封装编辑对话框(右图所示)。,(3)使用封装编辑对话框设置封装文本、对话框和图标。,我们以简单的三角函数方程 的子系统为例,学习如何封装一个子系统。(见教材87页),Icon(图标)设置,Parameter(参数)设置,该页分为两个区:对话框参数区(Dialog parameters)和已选择参数选项区(Options for selected parameters)。对话框参数区用于选择和改变

18、封装参数的主要性质。已选择参数选项区用于设置已选择参数的其他选项。,Initialization(初始化)设置,初始化页分为两个区:对话框变量区(Dialog variables)和初始化命令区(Initialization commands)。对话框变量区显示在参数页中设置好的子系统封装参数。初始化命令区中可以输入MATLAB语句,如定义变量、初始化变量等。,Documentation(文本)设置,文本编辑页分为3个区:封装类型区(Mask type)、封装描述区(Mask description)和封装帮助区(Mask help)。封装类型区中的内容将作为模块的类型显示在封装模块的对话框中

19、。封装描述区中的内容包括描述该模块功能的简短语句,该区中的内容将显示在封装模块对话框的上部。封装帮助区的内容包括使用该模块的详细说明等,当选择对话框中Help选项时,MATLAB的帮助系统将显示该区的内容。,5.3.3 模块库构造,要构造一个模块库,在Simulink库浏览器的窗口上选择:“FileNewLibrary”,这时打开一个空白的模块库窗口,将需要的模块(用户创建的模块或Simulink本身的系统模块)复制到新的库中,然后给这个模块库命名(例如:mylibrary.mdl),并且保存,这样就创建了自己的模块库。以后创建仿真模型需要用到该模块库中的模块时,首先打开该模块库,再将需要的模

20、块拖拽到新的模型编辑窗口即可。,实验二 MATLAB符号计算及绘图一、实验目的掌握符号表达式的微分、积分运算以及极限 和方程求解的运算等2.掌握MATLAB二维、三维的绘图函数,并利用不同的色彩、线型和绘制出自己满意的图形。3.掌握MATLAB的图形处理网格、标记、坐标系的控制等,1.计算,二、实验内容,4.求解方程组,2求函数 展开到含 的项,3求函数 关于 的一阶导数。,实验三 Simulink仿真、控制系统数学模型及其转换一、实验目的1掌握Simulink的建模方法(1)模块的建立、连接、仿真参数的修改和子系统的创建及封装。(2)熟悉系统以结构图形式描述的连续系统的数字仿真方法和步骤。(

21、3)学会分析环节参数变化对系统动态特性的影响。2熟悉各类数学模型的表示方法3掌握模型间转换的技巧4灵活应用各种数学模型,1.有初始状态为0的二阶微分方程,其中u(t)是单位阶跃函数,试用两种方法建立系统模型并仿真。,3.将2题中的闭环控制系统封装成一个子系统。,4 某系统的传递函数为,5 某单输入单输出系统:,试求该系统状态空间表达式的对角线标准形。6 求出以下系统的传递函数,使用MATLAB求出状态空间表达式和零极点模型。,第4章 控制系统数学模型及其转换,在线性系统中,常用的数学模型有微分方程模型、传递函数模型、状态空间模型以及零极点模型等。不同的模型应用于不同的场合。掌握模型间的转换才能

22、灵活应用各种数学模型。本章将主要介绍系统数学模型及转换、系统环节模型的连接及标准型实现等内容。,4.1 控制系统类型,1 连续系统和离散系统,2 线性系统和非线性系统,3 时变系统和定常(时不变)系统,4 确定性系统和随机系统,4.2 控制系统常用数学模型,4.2.1 连续系统数学模型,1系统微分方程形式模型,对于线性定常系统单入单出(简称SISO)系统,可用以下方程描述:,2系统传递函数形式模型,输出拉氏变换 与输入拉氏变换 之比,即为单输入单输出系统的传递函数。,传递函数分子、分母多项式系数向量可以分别定义如下,这里分子、分母多项式系数向量中的系数均按 s 的降幂排列。用printsys,

23、tf来建立传递函数的系统模型,其基本格式为,例,已知系统的传递函数如下,利用MATLAB建立其相应的传递函数系统模型。,运行命令,结果为,(注:printsys只能在命令窗口中显示模型,不能将模型输入到workspace中),num=5*2 0 3;den=conv(conv(conv(1 0 0,3 1),conv(1 2,1 2),5 0 3 8);printsys(num,den,s);tf(num,den),3系统的零极点(ZPK)形式模型,在MATLAB中零极点可以分别定义为,使用zpk()函数建立零极点形式的系统模型,其基本格式为,如果已知传递函数,可按以下方法求得z和p,运行命令

24、,结果为,z=-4;p=-1-2-3;k=5;sys=zpk(z,p,k),4系统的部分分式形式,传递函数也可以表示成为部分分式或留数形式,如下式,例,写出以下传递函数的部分分式形式,运行命令,结果为,这表示,residue,余数,5系统的状态空间(state space)模型,在MATLAB中建立系统模型的基本格式,例:某线性定常系统的状态空间表达式如下,请输入到MATLAB的work space中去。,运行命令,结果为,4.2.2 离散系统数学模型,离散系统常用的数学模型通常可以用差分方程、脉冲传递函数(或Z传递函数)、状态空间表达式三种形式对系统加以描述。,1系统差分方程形式模型,函数t

25、f()也可建立脉冲传递函数的系统模型,其基本格式为,其中,Ts为系统采样周期。,对于离散系统,也可以用zpk()函数建立零极点模型,基本格式为,3系统的状态空间模型,在MATLAB中建立系统模型的基本格式,printsys(num,den,z),例,假设某离散系统的脉冲传递函数为,采样周期为 T=0.1秒,将其输入到MATLAB的workspace中,并且绘制零、极点分布图。并且将该离散系统脉冲传递函数模型转换成状态空间表达式。,再输入,输入下列语句,运行结果为,num=0.31 0.57 0.38 0.89;den=1 3.23 3.98 2.22 0.47;Gyu=tf(num,den,0

26、.1),计算机绘制出零极点分布图pzmap,再输入,得到,4.2.3 系统模型参数的获取,对于连续系统,调用格式为,对于离散系统,调用格式为,V表示返回的数据行向量,只适用于单输入单输出系统。,4.3 系统数学模型的转换,4.3.1 系统模型向状态方程形式转换,直接利用MATLAB函数实现所需要的系统模型向状态方程的转换,基本格式为,(注意:在英语中,2和to谐音),【例4-2】已知系统传递函数如下,应用MATLAB的函数将其转换为状态方程形式的模型。,可以将任意线性定常系统模型转换为状态方程,MATLAB求解m文件如下:,运行结果为,num=12 24 0 20;den=2 4 6 2 2;

27、A,B,C,D=tf2ss(num,den),4.3.2 系统模型向传递函数形式转换,1状态空间模型向传递函数形式转换,MATLAB提供了函数ss2tf()实现将状态空间方程转换为传递函数形式,基本格式为,其中,iu用于指定变换所使用的输入量。,还可以采用下面的方式,即,【例4-3】某线性定常系统的状态空间表达式如下,求该系统的传递函数。,编写m文件如下:,运行结果为,A=0 1 0;0 0 1;-10-17-8;B=0;0;1;C=5 6 1;D=0;num,den=ss2tf(A,B,C,D);G=tf(num,den),例,某线性定常系统的状态空间表达式如下,求该系统的传递函数矩阵。,输

28、入并且运行以下程序,计算机输出:,计算机输出的计算结果表明,传递函数矩阵为,2零极点增益模型向传递函数形式转换,其基本格式,或,【例4-4】对于例4-3题中的线性定常系统,将其转换为zpk形式,编写m文件如下,运行结果为,例,某线性定常系统的状态空间表达式如下,将其转换成ZPK形式,输入并且运行以下程序,计算机输出:,计算机输出的计算结果表明,传递函数矩阵的ZPK形式为,4.3.4 传递函数形式与部分分式形式的转换,MATLAB提供函数residue()实现极点留数的求取,其基本格式为,【例4-5】某系统的传递函数如下,求它的部分分式形式。,编写m文件如下,运行结果为,表示,如果此时在命令窗口

29、中输入,则计算机返回,可见,residue()函数,既可以将传递函数形式转换成部分分式形式,也可以将部分分式形式转换成传递函数形式。,4.3.5 连续和离散系统之间的转换,如果对离散化处理结果提出具体的转换方式要求,则可以采用c2d或c2dm函数进行,基本格式为,(其中,Gc表示连续系统模型,Ts表示系统采样周期,method指定转换方式。“zoh”表示采用零阶保持器;“foh”表示采用一阶保持器。),【例4-6】某连续系统的状态空间表达式如下,采用零阶保持器将其离散化,设采样周期为0.1秒,求离散化的系统方程。,编写m文件如下,运行结果为,计算结果表示离散化后的系统方程为,Ad,Bd,Cd,

30、Dd=C2DM(A,B,C,D,Ts,method),NUMd,DENd=C2DM(NUM,DEN,Ts,method),SYSD=C2D(SYSC,Ts,METHOD),A=0 1 0;0 0 1;-10-17-8;B=0;0;1;C=5 6 1;D=0;Ad,Bd,Cd,Dd=c2dm(A,B,C,D,0.1),模型转换的函数小结,residue:传递函数模型与部分分式模型互换ss2tf:状态空间模型转换为传递函数模型ss2zp:状态空间模型转换为零极点增益模型tf2ss:传递函数模型转换为状态空间模型tf2zp:传递函数模型转换为零极点增益模型zp2ss:零极点增益模型转换为状态空间模型

31、zp2tf:零极点增益模型转换为传递函数模型,状态空间SS,传递函数tf,零极点ZP,极点留数,ss2tf,tf2ss,zp2ss,ss2zp,zp2tf,tf2zp,residue,ss2ss,SYS=SS2SS(SYS,T)performs the similarity transformation z=Tx on the state vector x of the state-space model SYS.The resulting state-space model is described by:.-1 z=TAT z+TB u-1 y=CT z+D u or,in the des

32、criptor case,-1.-1 TET z=TAT z+TB u-1 y=CT z+D u.SS2SS is applicable to both continuous-and discrete-time models.For LTI arrays SYS,the transformation T is performed on each individual model in the array.,4.4 控制系统模型的连接,系统模型连接的方式主要有串联、并联、反馈等形式。MATLAB提供了模型连接函数。,4.4.2 模型并联,对于SISO系统,其基本格式为,对于MIMO系统,其基本格

33、式为,in1,in2指定了相连接的输入端。out1,out2指定了进行信号相加的输出端。,DenosExampleConsider a state-space system sys1 with five inputs and four outputs and another system sys2 with two inputs and three outputs.Connect the two systems in series by connecting outputs 2 and 4 of sys1 with inputs 1 and 2 of sys2.outputs1=2 4;inp

34、uts2=1 2;sys=series(sys1,sys2,outputs1,inputs2),4.4.3 反馈连接,对于SISO系统,其基本格式为,其中,sign缺省时即为负反馈,sign=1时为正反馈。,对于MIMO系统,其基本格式为,其中,feedin为sys1的输入向量,用来指定sys1的哪些输入与反馈环节相连接;feedout为sys1的输出向量,用来指定sys1的哪些输出端用于反馈。,【例4-7】已知系统如图所示,利用MATLAB求出系统的状态空间表达式。,其中 sys1:,;,sys2:,编写m文件如下,计算机的运行结果为,表示该反馈系统的状态空间表达式为,4.5 系统模型的实现

35、,根据状态空间表达形式不同,系统状态空间实现可分为:能控标准型实现,能观测标准型实现,对角线标准型实现,约旦标准型实现。,设系统的微分方程为,设状态变量为,写成状态空间表达式形式为能控标准型,如果系统微分方程为,两边进行拉氏变换,得到传递函数,引入辅助变量 z,写成矩阵形式,【例4-8】已知系统的状态空间表达式如下,求线性变换,将其变换成能控标准形。,编写并运行以下m文件,运行结果为,计算变换矩阵,输入以下语句,计算结果为,计算出能控标准形,输入以下语句,计算结果为,表明经过线性变换以后的系统方程为,4.5.3 对角线标准型,令状态变量,则,4.5.4 标准型的实现,MATLAB中提供函数canon生成标准型状态模型,基本格式为,其中,sys表示原系统状态方程模型,字串type为标准类型选项,modal为对角标准型实现,,【例4-9】已知系统传递函数如下,用不同状态空间实现函数进行转换。,MATLAB求解m文件如下,运行该m文件后,对于同一传递函数的系统得出以下4种状态空间表达式,G1:,G2:,G3:,G4:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号