第五章SIMULINK仿真基础知识在实际工程中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析和仿真。因此,熟悉掌握SIMULINK对于从事自动控制方面、信息处理、金融财务等领域的分析、仿真和设计的工作来说是非常重要的。SIMULINK是一个集建模、仿真和分析动态系统为一体的软件,是一种基于MATLAB的图形设计环境。通过SIMULINK,可以轻松地完成对应用问题的仿真,并实时地观察可能出现的结果。SIMULINK提供了一个建立模型方框图的图形用户接口(GUI),模型的创建只需要单击和拖动鼠标即可完成。SIMULINK中包含了许多实现不同功能的模块库,使得在这种设计中,不必考虑模块的内部结构而直接实现其“想要”的功能。同时,在建立模型之后,可以直接进行一种“交互式的”仿真,通过相关菜单或命令的使用来执行仿真,得到能够按照自己的设定来进行仿真并观察对应的结果。利用此软件,几乎可以做到不用写一行代码,就能完成整个动态系统的建模工作。SIMULINK启动启动SIMULINK之前,首先要打开MATLAB,具体方法可参见前面的章节。方法一:单击MATLAB主窗口工具栏的simulink命令按钮,就可以启动。方法二:打开MATLAB主界面,在命令窗口(CommandWindow)输入命令simulink,回车即可启动SIMULINK,即打开SIMULINK库浏览器(SimulinkLibraryBrowser)窗口,如图所示。模型的建立是在模型窗口中实现的,其界面如图所示,整个模型窗口由菜单栏、工具栏、编辑框和状态栏组成。怎么建立模型窗口?建立模型窗口方法一:在MATLAB主窗口file---new---Model。方法二:在SIMULINK模块库浏览器的工具栏中选‘newmodel’命令按钮。这时在出现SIMULINK模块库浏览器的同时,还会出现一个名为‘untitled’模型编辑窗口。模型创建完成后,从模型编辑窗口的file—saveas保存模型文件,其格式为XXX.mdl。打开模型文件如需对一个已经存在的模型文件进行编辑、修改,需要打开该模型文件时,方法如下:方法一:在MATLAB命令窗口直接输入模型文件名(不须加文件类型.mdl)。(注意:必须在该文件保存的目录下)方法二:在模型库浏览器窗口或模型编辑窗口的file菜单中选择open,然后选择或输入编辑模型的名字。方法三:单击在模型浏览器窗口工具栏上的打开命令按钮,或模型编辑窗口工具栏上的打开命令按钮。退出文件直接关闭模型窗口。SIMULINK的演示和帮助help—demo—ModelingFeatures—DataTypingFilterSIMULINK模型库浏览器简介模型窗口工具栏和状态栏按钮功能按钮功能仿真启动或继续模型框图修改后的一致化结束仿真打开库浏览器查窗口设置仿真结束时间打开或隐藏模型资源管理器选择仿真加速模式切换模型单双窗口外形准备显示当前子系统的父系统产生RTW代码启动SIMULINK的调试器模型窗口的状态栏Ready表示随时间可以开始仿真。100%表示编辑栏中模型以100%比例显示。Ode45表示仿真所采用的积分算法为Ode45。SIMULINK模块库:常用模块库Commonlyuseblocks连续模块库Continuous非连续模块库Discontinuous离散模块库discrete逻辑与位操作模块库Logicandbitoperation查询表模块库lookuptables数学运算模块库mathoperations模型检测模块库modelverification模型扩充工具箱模块库model-wideutilitises端口和子系统模块库ports&subsystems信号属性signalattributes信号路线signalrouting接收器模块库sinks输入源模块库sources用户自定义函数模块库user-definedfunctions附加模块库additionalmath&discrete常用的CommonlyUsedBlocks子库常用的Sourse子库常用的Sink子库例:显示振幅调制的功能正弦波要用到的模块Sinewave--正弦波该模块产生一个正弦波曲线,模块可以在连续或离散模块中工作。输出由下式决定:Y=amplitude*sin(frequency*time+phase)Gain–增益模块将模块的输入乘上一个指定的常数、变量或表达式后输出。如果模块足够大,Gain的图标会显示gain参数域中输入的值或变量等。如果参数过长,则显示-K-。Buscreator—创建信号总线Scop—示波器书上图5-10Chirpsignal—噪声信号产生频率为随时间线性增加的正弦信号(调频信号)。此模块用于非线性系统的频谱分析。模块产生标量或矢量输出。TransferFcn—分子分母形式的传递函数传递函数是频域下常用来描述线性微分方程的一种方法,通过引入laplace变换可以将原来的线性微分方程在零初始条件下变化为‘代数’的形式,从而以多项式的比值形式描述系统。传递函数的形式:11211121...()()()...mmmnnnbsbsbnumsGsdensasasaXYgraph—XY图表该模块将输入的X-Y平面图显示在一个MATLAB图形窗口上。模块有两个输入。模块根据第一个输入的数据(X方向)和第二个输入的数据(Y方向)绘图。此模块在检查和其他双态数据等方面是很有用的,超出指定范围的数据将不显示。模块的连接操作注意:改变连线的粗细Format—port/signaldisplays—widevectorlines设定连线标签直接在连线上双击鼠标,就可以输入该线的说明标签。连线的分支在需要分支的地方,按住鼠标右键不放拉出到需要连接的地方;或按住ctrl键拉出。连线弯转在要弯转的地方按住shift,再按住鼠标左键不放拉出。模块旋转的方式有两种:•使用快捷键Ctrl+R进行顺时针90°旋转,注意是模块端口顺序的变化。•使用模型窗口菜单栏中【Format】菜单。选择菜单栏【Format/FlipBlock】选项,可将模块旋转180°。选择【Format/RotateBlock】可将模块旋转90°,与使用快捷键Ctrl+R效果相同。模块的移动按住shift拖动,是脱离连线的移动;不按shift拖动,会与线保持连接状态移动。改变模块效果制定任何模块或者标注的前景色和背景色,也可以设定整个模型框图的背景色。•改变模块或标注的前景色(模块边框色)。选择要改变的模块或标注,然后选择菜单栏【Format/Foregroundcolor】选项设置。•改变模块或标注的背景色(模块填充色)。选择要改变的模块或标注,然后选择菜单栏【Format/Backgroundcolor】选项设置。•设置模型框图的背景色(整个窗口色)。选择菜单栏【Format/Screencolor】选项设置。•显示模块阴影效果。选中要添加阴影的模块,选择菜单栏【Format/ShowDropShadow】选项来为选中模块添加阴影效果复制按住鼠标右键拖住不放;或ctrl+c/v第六章SIMULINK系统建模及仿真应用6.1创建模型的步骤•新建模型窗口•将所需的模块方框图拖到模块窗口。•设置模块参数系统仿真参数,并连接各个模块组成仿真模型。•连接各模块(最好按信号流动顺序连)•保存模型(保存为XXX.mdl文件)•开始系统仿真•观察结果步骤主要包括建立模型窗口、将所需要的模块方框图拖动到模型窗口、调整模块输入端口数目、模块间连线、模块相应参数的设置和模型保存等。仿真器参数设置simulink窗口下file—parameters命令。SimulinkParameters对话框中仿真参数主要包括,解法器设置(Solver)、仿真参数输入输出(DataImport/Export)、仿真优化(Optimization)、仿真诊断(Diagnostics)、仿真硬件实现(HardwareImplementation)、参考模型(ModelReferencing)和实时工作间(Real-timeworkshop)。simulink窗口下file—parameters—confgurationdefaults—solver.仿真器参数的设置界面主要用于仿真起始时间、解法器及输出项等。仿真步长模式在type后面的第一个下拉选项中指定仿真的步长选取方式有变步长(variable-step)和固定步长(fixed-step)两种。选择变步长模式则可以在仿真过程中改变步长,提供误差控制和过零检测。固定步长则在仿真过程中提供固定的步长,不提供误差控制和过零检测。在solver后面可以选择变步长模式的解法器,变步长模式的解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和dicrete.Ode45:默认值,表示四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用与刚性(stiff)系统。一般来说,面对一个仿真问题最好首先试试ode45。Ode23:表示二/三阶龙格-库塔法,它在误差限要求不高、求解问题不太难的情况下,可能比ode45更有效,它也是一个单步解法器。仿真步长设置对于可变步长算法,用户可以设置最大步长和初始步长。在默认状下,步长是自动确定的,用auto值表示。对于定步长算法,用户可以设置固定大小的步长,默认值是auto。最大步长参数(Maxstepsize)。该参数决定解法器能够使用的最大时间步长,在默认设置下,其最大步长是仿真时间跨度的1/50。一般来说默认值对于仿真来说足够了,若用户确定积分中失去了重要的步骤,可以改变参数以阻止积分采用过大的步长。假如仿真时间过长,默认的步长就可能过长。另外,如果用户的系统是个周期系统,那么把最大步长设置为其周期值的一部分(如1/4)是可行的。。初始步长参数(Initialstepsize)。默认时积分器通过检查初始时间状态的派生来选择初始步长。初始步长过大,可能导致积分中失去一些重要特性。初始步长是个建议值,系统将尝试这个步长,如果发生错误,就要减小这个步长最小步长参数(Minstepsize)。如果算法需要更小的步长来满足误差容限,则会发出警告信息指出当前有效的相对误差。该参数可以是实数也可以是一个包含两个元素的一维向量,其中第一个元素是最小步长,第二个元素是模型出现错误前可以发出的最小步长警告的最大次数。若把第二个元素设置为1,表示可以有无限此警告,如果该参数输入的是标量值,则其表示为向量形式是该向量的第二个元素为1,第一个元素为输入的标量值。误差容限设置在SIMULINK中,算法采用标准的局部误差控制法,就是在每个时间步内,算法都会在时间步的结束处确定局部误差,然后与容许误差(AcceptableError)比较,若对于任何一个状态,状态的局部误差都大于容许误差,那么算法会减小步长重新计算,容许误差是相对误差(Rtol)和绝对误差(Atol)的函数。相对误差(Relativetolerance)。这是可变步长解法器的设置参数。指误差相对于状态的值,百分比表示,默认值为1e-3,表示状态的计算值要精确到0.1%。绝对误差(Absolutetolerance)。这也是可变步长解法器的设置参数。表示误差值的门限,或者是在状态值为零的情况下可以接受的误差。6.3SIMULINK仿真系统及结果输出书上图6-5中SignalGenerator---信号发生器该模块可以产生3种不同波形的信号:正弦波、方波和锯齿波。信号的单位可以是Hz(赫兹)或rad/s(弧度/秒)书上图6-7Constant—常数该模块输出与时间无关的实数或复数。它只有一个输出,用户可以通过对话框上的constantvalue参数栏制定常数(或数组),其长度也就决定了输出时标量还是矢量。Display—显示模块用于显示模块输入的值。