《Matlab系列之Simulink仿真教程》由会员分享,可在线阅读,更多相关《Matlab系列之Simulink仿真教程(65页珍藏版)》请在金锄头文库上搜索。
1、MatlabMatlab系列之系列之SimulinkSimulink仿仿真教程真教程第九章 Simulink动态仿真仿真技术第九章 Simulnk动态仿真本章主要内容如下:9.1 Simulink基本操作9.2 模块库和系统仿真9.3 子系统创建与封装9.4 Simulink仿真举例第九章 Simulink动态仿真仿真技术第九章 Simulink动态仿真Simulink 中的“Simu”一词表示可用于计算机仿真,而“Link”一词表示它能进行系统连接,即把一系列模块连接起来,构成复杂的系统模型。作为MATLAB的一个重要组成部分,Simulink由于它所具有的上述的两大功能和特色,以及所提供的
2、可视化仿真环境、快捷简便的操作方法,而使其成为目前最受欢迎的仿真软件。本章主要介绍Simulink的基本功能和基本操作方法,并通过举例介绍如何利用Simulink进行系统建模和仿真。第九章 Simulink动态仿真仿真技术第九章 Simulink动态仿真9.1 Simulink 基本操作基本操作n利用Simulink进行系统仿真的步骤是:启动Simulink,打开Simulink模块库打开空白模型窗口;建立Smulink仿真模型;设置仿真参数,进行仿真;输出仿真结果。第九章 Simulink动态仿真仿真技术9.1 Simulink 基本操作基本操作9.1.1 启动启动Simulinka)启动S
3、imulink。单击MATLAB Command窗口工具条上的Simulink图标,或者在MATLAB命令窗口输入simulink,即弹出图示的模块库窗口界面(Simulink Library Browser)。该界面右边的窗口给出Simulink所有的子模块库。常用的子模块库有Sources(信号源),Sink(显示输出),Continuous(线性连续系统),Discrete(线性离散系统),Function & Table(函数与表格),Math(数学运算), Discontinuities (非线性),Demo(演示)等。 第九章 Simulink动态仿真仿真技术a)启动Simulin
4、kn每个子模块库中包含同类型的标准模型,这些模块可直接用于建立系统的Simulink框图模型。可按以下方法打开子模块库:用鼠标左键点击某子模块库(如【Continuous】),Simulink浏览器右边的窗口即显示该子模块库包含的全部标准模块。第九章 Simulink动态仿真仿真技术a)启动Simulink用鼠标右键点击Simulink菜单项,则弹出一菜单条,点击该菜单条即弹出该子库的标准模块窗口.如单击左图中的【Sinks】,出现“Open the SinksLibrary”菜单条,单击该菜单条,则弹出右图所示的该子库的标准模块窗口。第九章 Simulink动态仿真仿真技术9.1 Simul
5、ink 基本操作基本操作9.1.1 启动Simulinkb)打开空白模型窗口n模型窗口用来建立系统的仿真模型。只有先创建一个空白的模型窗口,才能将模块库的相应模块复制到该窗口,通过必要的连接,建立起Simulink仿真模型。也将这种窗口称为Simulink仿真模型窗口。n以下方法可用于打开一个空白模型窗口:在MATLAB主界面中选择【File:NewModel】菜单项;单击模块库浏览器的新建图标 ;选中模块库浏览器的【File : New Model】菜单项。所打开的空白模型窗口如图所示。第九章 Simulink动态仿真仿真技术9.1.2 建立Simulink仿真模型a)打开Simulink模
6、型窗口(Untitled)b)选取模块或模块组n在Simulink模型或模块库窗口内,用鼠标左键单击所需模块图标,图标四角出现黑色小方点,表明该模块已经选中。c)模块拷贝及删除n在模块库中选中模块后,按住鼠标左键不放并移动鼠标至目标模型窗口指定位置,释放鼠标即完成模块拷贝。n模块的删除只需选定删除的模块,按Del键即可。第九章 Simulink动态仿真仿真技术9.1 Simulink 基本操作基本操作9.1.2 建立Simulink仿真模型d)模块调整n改变模块位置、大小;n改变模块方向使模块输入输出端口的方向改变。选中模块后,选取菜单FormatRotateBlock,可使模块旋转900。按
7、快捷键Ctrl+R结果相同。第九章 Simulink动态仿真仿真技术9.1.2 建立Simulink仿真模型e)模块参数设置n用鼠标双击指定模块图标,打开模块对话框,根据对话框栏目中提供的信息进行参数设置或修改。例如双击模型窗口的传递函数模块,弹出图示对话框,在对话框中分别输入分子、分母多项式的系数,点击OK键,完成该模型的设置,如右下图所示:第九章 Simulink动态仿真仿真技术9.1.2 建立Simulink仿真模型f)模块的连接n模块之间的连接是用连接线将一个模块的输出端与另一模块的输入端连接起来;也可用分支线把一个模块的输出端与几个模块的输入端连接起来。n 连接线生成是将鼠标置于某模
8、块的输出端口(显一个十字光标) ,按下鼠标左键拖动鼠标置另一模块的输入端口即可。 分支线则是将鼠标置于分支点,按下鼠标右键,其余同上。连接线(左键)分支线(右键)第九章 Simulink动态仿真仿真技术9.1.2 建立Simulink仿真模型g)模块文件的取名和保存n选择模型窗口菜单FileSave as后弹出一个“Save as”对话框,填入模型文件名,按保存(s)即可。说明模块的修改、调整、连接通常只能在仿真模型窗口中进行,不要直接对模块库中的模块进行修改或调整。第九章 Simulink动态仿真仿真技术9.1 Simulink 基本操作基本操作9.1.3 系统仿真运行系统仿真运行 1.Si
9、mulink模型窗口下仿真模型窗口下仿真 步骤打开Simulink仿真模型窗口,或打开指定的.mdl文件;设置仿真参数:在模型窗口选取菜单【Simulation: Parameters】,弹出 “Simulation Parameters” 对话框,设置仿真参数,然后按【OK】即可;说明若不设置仿真参数,则采用Simulink缺省设置.第九章 Simulink动态仿真仿真技术9.1 Simulink 基本操作基本操作9.1.3 系统仿真运行系统仿真运行 1.Simulink模型窗口下仿真模型窗口下仿真 步骤仿真运行和终止:在模型窗口选取菜单【Simulation: Start】,仿真开始,至设
10、置的仿真终止时间,仿真结束。若在仿真过程中要中止仿真,可选择【Simulation: Stop】菜单。也可直接点击模型窗口中的 (或 )启动(或停止)仿真。 第九章 Simulink动态仿真仿真技术9.1 Simulink 基本操作基本操作9.1.3 系统仿真运行系统仿真运行 2.MATLAB 命令窗口下的仿真运行n在Matlab命令窗口下可直接运行一个已存在的Simulink模型:nt,x,y=sim(model,timespan,option,ut)其中,t为返回的仿真时间向量; x为返回的状态矩阵; y为返回的输出矩阵; model为系统Simulink模型文件名; timespan为仿
11、真时间;option为仿真参数选择项,由simset设置;ut为选择外部产生输入,ut=T,u1,u2,un。说明上述参数中,若省略timespan,option,ut则由框图模型的对话框Simulation Parameters设置仿真参数。back第九章 Simulink动态仿真仿真技术9.2 模块库和系统仿真模块库和系统仿真9.2.1 Simulink模块库 1. Sources库n也可称为信号源库,该库包含了可向仿真模型提供信号的模块。它没有输入口,但至少有一个输出口。n双击图标 即弹出该库的模块图: 在该图中的每一个图标都是一个信号模块,这些模块均可拷贝到用户的模型窗里。用户可以在模
12、型窗里根据自己的需要对模块的参数进行设置(但不可在模块库里进行模块的参数设置).第九章 Simulink动态仿真仿真技术1. Sources库Sine Wave:产生幅值、频率可设置的正弦波信号。 双击图标 (认定该模块已拷贝到用户模型窗,以下均如此),弹出正弦波的参数设置框图。图中参数为Simulink默认值,用户可根据需要对这些参数重新设置。幅值、频率为2,基准为0.5,其波形如下图所示:第九章 Simulink动态仿真仿真技术1. Sources库Step:产生幅值、阶跃时间可设置的阶跃信号。 双击图标 ,弹出阶跃信号的参数设置框图。图中参数为Simulink默认值。当设置幅值为0.8,
13、阶跃时间为1秒时,阶跃波形如下图所示:第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 2. Sinks 库库 n该库包含了显示和写模块输出的模块。双击 即弹出该库的模块图: :数字表,显示指定模块的输出数值。 :X-Y绘图仪用同一图形窗口,显示X-Y坐标的图形(需先在参数对话框中设置每个坐标的变化范围),当X、Y分别为正、余弦信号时,其显示图形如下:第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 2. Sinks 库库 :示示波波器器。显示在仿真过程产生的信号波形。双击该图标,弹出示波器窗如右图所示:分别管理X-Y、X和Y轴向变焦取当前窗
14、中信号最大、最小值为纵坐标的上下限把当前轴的设置保存为该示波器的缺省设置打开示波器属性对话框设置为浮动示波器第九章 Simulink动态仿真仿真技术2.Sinks 库库示波器属性对话框设置Y轴个数设置显示的时间范围选择轴的标注方法确定显示频度(每隔n-1个数 据 点 显 示 一 次)确定显示点的时间间隔(缺省 为0表 示 连 续 显 示)示波器属性对话框General页第九章 Simulink动态仿真仿真技术2.Sinks 库库示波器属性对话框示波器属性对话框Data history页设定缓冲区接受数据的长度,勾选为缺省状态,其值为5000确定示波器数据是 否 保 存 到MATLAB工作空间。
15、若勾选则为保存,且需确定变量名和保存格式(缺省时,不被勾选)第九章 Simulink动态仿真仿真技术【例9-1】示波器应用示例。Simulink仿真模型如左图所示,示波器输入为3(Y轴个数为3)。右图为该示波器显示的三路输入信号的波形. 第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 3.Continuous 库 该库包含描述线性函数的模块。双击 即弹出下图: :微分环节。其输出为其输入信号的微分。如下图为输入斜坡信号时微分环节的输出:第九章 Simulink动态仿真仿真技术3.Continuous 库 :积分环节。其输出为其输入信号的积分。双击该模块,弹出积分器的
16、参数对话框,可设置积分器的复位、积分上限和下限等。当设置为信号下跳过零复位、积分器限幅为5时,积分器对谐波输入的输出如图所示:第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 3.Continuous 库 :分子分母为多项式形式的传递函数。双击该模块,弹出传递函数的参数对话框,设置框图中的参数后,该传递函数显示如下:第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 3.Continuous 库 :零极点增益形式的传递函数。双击该模块,弹出传递函数的参数对话框,设置框图中的参数后,该传递函数显示如下:第九章 Simulink动态仿真仿真技术9.
17、2.1 Simulink模块库 4.Math 库 该库包含描述一般数学函数的模块。双击 即弹出右图。该库中模块的功能就是将输入信号按照模块所描述的数学运算函数计算,并把运算结果作为输出信号输出。第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 4.Math 库 :加法器加法器。该模块为求和装置。求和器形状,输入信号个数和符号可设置,如右边框图。若设置如框图。则模块显示为:第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 4.Math 库 :符号函数符号函数。 该模块的输出为输入信号的符号。下图为对正弦信号经符号运算后的波形。第九章 Simul
18、ink动态仿真仿真技术4.Math 库 :实现一个数学函数。 右图为该函数的参数设置框。点击函数设置的下拉窗口,可选择所需要的函数。选定函数后,该模块图标将显示所选函数。如选择“Square”,则模块图标变为:第九章 Simulink动态仿真仿真技术9.2.1 Simulink模块库 5.Signals & Systems 库库 :信号分路器 。 将混路器输出的信号依照原来的构成方法分解成多路信号。 :信号汇总器 将多路信号依照向量的形式混合成一路信号。 (a)(b)第九章 Simulink动态仿真仿真技术9.2.2 Simulink环境下的仿真运行 1.仿真参数对话框 点击Simullink
19、模型窗simulation菜单下的Parameters命令,弹出仿真参数对话框如右图所示。它共有5页,用得较多的主要是Solver页和Workspace I/O页。Solver页页Simulation time(仿真时间): 设置Start time(仿真开始时间)和Stop time(仿真终止时间)可通过页内编辑框内输入相应数值,单位“秒”。另外,用户还可以利用Sinks库中的Stop模块来强行中止仿真。第九章 Simulink动态仿真仿真技术Solver页页Solver options(仿真算法选择): 分为定步长算法和变步长算法两类。定步长支持的算法可在Fixed step size编辑
20、框中指定步长或选择auto,由计算机自动确定步长,离散系统一般默认地选择定步长算法,在实时控制中则必须选用定步长算法;变步长支持的算法如图9-16所示,对于连续系统仿真一般选择ode45,步长范围使用auto项。 图9-15 定步长算法图9-16 变步长算法第九章 Simulink动态仿真仿真技术Solver页页Error Tolerance(误差限度): 算法的误差是指当前状态值与当前状态估计值的差值,分为Relative tolerance(相对限度)和Absolute tolerance(绝对限度),通常可选auto。 Output options(输出选择项):有Refine outp
21、ut(细化输出)、Produce additional output(产生 附 加 输 出 ) 、 Produce specified output only(只产生指定输出)。 第九章 Simulink动态仿真仿真技术Workspace I/O页页 这个页面的作用是定义将仿真结果输出到工作空间,以及从工作空间得到输入和初始状态。Load from workspace:勾选相应方框表明从工作空间获得输入或初始状态。 若勾选Input,则工作空间提供输入,且为矩阵形式。输入矩阵的第一列必须是升序的时间向量,其余列分别对应不同的输入信号。t=(0:0.1:10);u=cos(t),sin(t);如
22、在指令窗中输入:且在模型窗中的模型为:第九章 Simulink动态仿真仿真技术Workspace I/O页页 这个页面的作用是定义将仿真结果输出到工作空间,以及从工作空间得到输入和初始状态。Save to workspace:勾选相应方框表明保存输出到MATLAB工作空间。 time 和 output 为缺省选中的。即一般运行一个仿真模型后,在MATLAB 工作空间都会增加两个变量tout、yout。变量名可以设置。Save options(存储选项):存储数据到工作空间的格式,可选数组、构架数组、包含时间数据的构架数组。第九章 Simulink动态仿真仿真技术2.Simulink中的中的LT
23、I Viewer 在Simulink中建立的仿真模型也可直接输入到LTI Viewer中进行分析,具体方法如下:在Simulink 模型窗建立起仿真模型(线性系统)。点击Simulink模型窗上的【Tool:Linear analysis】,在弹出的界面中将输入输出接点分别复制到仿真模型的输入和输出。图9-19 仿真模型的输入输出接点第九章 Simulink动态仿真仿真技术2.Simulink中的中的LTI Viewer再次点击SIMULINK模型窗上的ToolLinear analysis,打开LTI Viewer仿真界面,点击该界面上Simulink Get Linearized Mode
24、l选项,即画出系统的阶跃响应曲线,表明SIMULINK中的仿真模型已和LTI Viewer相连接,因此可利用LTI Viewer对该系统进行分析。图9-20 LTI Viewer获取模型窗中模型图9-21 LTI Viewer绘制的阶跃响应曲线第九章 Simulink动态仿真仿真技术2.Simulink中的中的LTI Viewer如果在Simulink模型窗对已输入到LTI Viewer中的模型进行了修改,应重复步骤(3)重新装入模型,并删除掉旧模型。方法是点击LTI Viewer仿真界面上的【EditDelete systems】,在弹出的对话框中,进行模型的删除,如图9-22所示。图9-2
25、2 模型的删除back第九章 Simulink动态仿真仿真技术9.3 子系统创建与封装子系统创建与封装n在建立的Simulink系统模型比较大或很复杂时,可将一些模块组合成子系统,这样可使模型得到简化,便于连线;可提高效率,便于调试;可生成层次化的模型图表,用户可采取自上而下或自下而上的设计方法。n将一个创建好的子系统进行封装,也就是使子系统象一个模块一样,例如可以有自己的参数设置对话框,自己的模块图标等。这样就使子系统使用起来非常方便。 第九章 Simulink动态仿真仿真技术9.3 子系统创建与封装子系统创建与封装9.3.1 子系统的创建子系统的创建1.通过子系统模块来建立子系统n在Sim
26、ulink库浏览器,有一个子系统(Subsystems)的库模块(有的版本在Signals & Systems子库里),点击该图标即可看到不同类型的子系统模块。子模块库MATLAB6.0 版MATLAB6.5 版第九章 Simulink动态仿真仿真技术1.通过子系统模块来建立子系统n下面以PID控制器子系统创建,说明子系统的创建过程:将 子 系 统 库 模 块 中 的Subsystem模块复制到模型窗,如图9-23。双击该图标即打开该子系统的编辑窗口,如图9-24;图9-23 子系统模块复制到模型窗图9.24 原始子系统模块的内部结构型窗第九章 Simulink动态仿真仿真技术nPID控制器子
27、系统创建过程:将组成子系统的模块填加到子系统编辑窗口:将模块按设计要求连接:第九章 Simulink动态仿真仿真技术nPID控制器子系统创建过程:设置子系统各模块参数(可以是变量);修改 in1 和 out1 模块下面的标签;关闭子系统的编辑窗口,返回模型窗口,修改子系统的标签(PID),该PID子系统即可作为模块在构造系统模型时使用。 第九章 Simulink动态仿真仿真技术nPID控制器子系统创建过程:设置子系统各模块参数(可以是变量);修改 in1 和 out1 模块下面的标签;关闭子系统的编辑窗口,返回模型窗口,修改子系统的标签(PID),该PID子系统即可作为模块在构造系统模型时使用
28、。 第九章 Simulink动态仿真仿真技术9.3 子系统创建与封装子系统创建与封装9.3.1 子系统的创建子系统的创建2.组合已存在的模块来建立子系统 如果现有的模型已经包含了需要转化成子系统的模块,就可以通过组合这些模块的方式建立子系统。步骤如下:确定需建立Subsystem的模型(被选中的均标记有黑块)图9-27 圈选欲建子系统的模块第九章 Simulink动态仿真仿真技术2.组合已存在的模块来建立子系统 点 击 模 型 窗 Edit菜 单 下 的Create Subsystem 命令,则所选定的模型组合自动转化成子系统:双击该图标,可打开该子系统窗口,改写输入输出符号:关闭子系统编辑窗
29、口,设置子系统标签,则系统模型如下图所示:第九章 Simulink动态仿真仿真技术9.3 子系统创建与封装子系统创建与封装9.3.2 子系统的封装 n子系统可以建立自己的参数设置对话框,以避免对子系统内的每个模块分别进行参数设置,因此在子系统建立好以后,需对其进行封装。子系统封装的基本步骤如下:设置好子系统中各模块的参数变量;定义提示对话框及其特性;定义被封装子系统的描述和帮助文档;定义产生模块图标的命令。第九章 Simulink动态仿真仿真技术9.3 子系统创建与封装子系统创建与封装9.3.2 子系统的封装 1. 设置子系统参数变量 将原子系统中的常数改为变量,其中饱和环节的上、下限分别设为
30、au、ab (需打开该环节的参数设置框).第九章 Simulink动态仿真仿真技术9.3.2 子系统的封装 2.产生提示对话框 n选择需要封装的子系统,从模型窗口的 Edit 菜单选择Mask Subsystem命令,即弹出封装编辑器:第九章 Simulink动态仿真仿真技术2.产生提示对话框 n该编辑器分为四页(MATLAB6.5版):Icon(图标)页Parameters(参数页)Initialiation(初始化)页Documentation(文档)页 其中对于子系统封装最关键的是Parameters项,用于设置参数变量及其类型等。第九章 Simulink动态仿真仿真技术9.3.2 子系
31、统的封装 2.产生提示对话框nParameters页 AddDeleteUpDown提示符变量名直接输入变量名变量的类型为数值变量的数值可在线调节第九章 Simulink动态仿真仿真技术2.产生提示对话框 n假定子系统(Nonlinear system)的参数变量名已由封装编辑器全部输入。双击该子系统图标,即弹出如图所示子系统的参数设置框图。如图所示逐栏输入与变量所对应的参数,即完成对该子系统的参数设置。第九章 Simulink动态仿真仿真技术9.3 子系统创建与封装子系统创建与封装9.3.3 条件子系统条件子系统1.使能子系统n该子系统当使能端控制信号为正时,系统处于“允许”状态,否则为“禁
32、止”状态。“使能”控制信号可以为标量,也可以为向量。当为标量信号时,只要该信号大于零,子系统就开始执行;当为向量信号时,只要其中一个信号大于零,也“使能”子系统。第九章 Simulink动态仿真仿真技术【例9-3】积分分离式PID控制器。这种PID控制器可以让控制器中的积分项在系统响应进入稳态时投入运行,以提高稳态精度;而在系统响应处于瞬态过程时,将积分项断开以改善系统动态响应质量。积分分离式PID控制器建立如图所示: 使能模块的控制信号为delta与abs(e)的差值。delta为一很小的正数,当偏差e的绝对值小于delta时,控制器的积分项才投入使用,从而实现了控制器中的积分项的分离控制。
33、第九章 Simulink动态仿真仿真技术9.3.3 条件子系统条件子系统2.触发子系统n触发子系统只在触发事件发生的时刻执行。所谓触发事件也就是触发子系统的控制信号,一个触发子系统只能有一个控制信号,在Simulink中称之为触发输入。(a) 触发子系统模块(b) 触发子系统模型n触发事件有4种类型,即上升沿触发、下降沿触发、跳变触发和回调函数触发。双击触发子系统中的触发器模块(Trigger),在弹出的对话框中可选择触发类型。 第九章 Simulink动态仿真仿真技术触发子系统应用的一个示例。触发器设为下降沿触发,正弦输入经触发控制后,成为阶梯波,如图所示。系统仅在脉冲信号的下降沿导通,并保
34、持导通时刻的输入值至下一个脉冲下降沿。back第九章 Simulink动态仿真仿真技术9.4 Simulink仿真举例仿真举例9.4.1 悬吊式起重机动力学仿真悬吊式起重机动力学仿真 1.悬吊式起重机动力学方程mtmp Fx图9-54 悬吊式起重机结构简图l式中,mt、mp、I、c、l、F、x、 分别为起重机的小车质量、吊重、吊重惯量、等价粘性摩擦系数、钢丝绳长(不计绳重),小车驱动力、小车位移以及钢丝绳的摆角。小车水平方向受力方程 吊绳垂直方向受力方程小车的力矩平衡方程由(2)、(3)式去掉P,则有第九章 Simulink动态仿真仿真技术9.4.1 悬吊式起重机动力学仿真 2.悬吊式起重机动
35、力学Simulink仿真n为便于建模,将起重机动力学方程改写为:由以上二式可建立如图所示的起重机Simulink模型 :图中:lmp=mpl第九章 Simulink动态仿真仿真技术2.悬吊式起重机动力学Simulink仿真n在运行仿真模型前,须先计算出k1、k2和lmp。设mt =50kg,mp=270kg,l=4m,c=20N/ms,在MATLAB指令窗输入以下指令l=4;c=20;mp=270;mt=50;I=mp*l2; %计算吊重转动惯量lmp=l*mp;k1=1/(mt+mp);k2=mp*l/(I+mp*l2);第九章 Simulink动态仿真仿真技术2.悬吊式起重机动力学Simulink仿真n设置仿真时间为200s,启动Simulink仿真,则由小车位移示波器和吊重摆角示波器,可观察到系统在初始状态x(0)=0, ,(0)=0.01rad/s, 作用下x、 的变化过程曲线: 悬吊式起重机小车位移悬吊式起重机吊重摆角第九章 Simulink动态仿真仿真技术练 习 教材208-210页:1、2、3、5题back结束结束