2019/12/301控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院第5章Simulink在系统仿真中的应用薛定宇著《控制系统计算机辅助设计—MATLAB语言与应用》第二版,清华大学出版社2006CAI课件开发:鄂大志、薛定宇2019/12/302控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院主要内容Simulink建模的基础知识Simulink建模与仿真非线性系统分析与仿真子系统与模块封装技术M-函数、S-函数编写及其应用本章要点小结2019/12/303控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.1Simulink建模的基础知识Simulink简介Simulink下常用模块简介Simulink下其他工具箱的模块组2019/12/304控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.1.1Simulink简介控制系统仿真研究的一种很常见的要求是通过计算机得出系统在某信号驱动下的时间响应,从中得出期望的结论。对线性系统来说,可以按照第4章介绍的方法,对于更复杂的系统来说,Simulink环境就是解决这样问题的理想工具,它提供了各种各样的模块,允许用户用框图的形式搭建起任意复杂的系统,从而对之进行准确的仿真。2019/12/305控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院输入open_system(‘simulink’)命令将打开模型库,库中还有下一级的模块组,如连续模块组、离散模块组和输入输出模块组等,用户可以用双击的方式打开下一级的模块组,寻找及使用所需要的模块。单击MATLAB命令窗口工具栏中的Simulink图标,也可以打开Simulink模块浏览器窗口。2019/12/306控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.1.2Simulink下常用模块简介1.输入模块组Sources2.输出池模块组sbfSinks3.连续系统模块组Continuous4.离散系统模块组Discrete5.非线性模块组Discontinuities6.数学函数模块组MathOperations7.查表模组块Look-upTables8.用户自定义函数模块组User-definedFunctions9.信号模块组SignalRouting10.信号属性模块组SignalAttributes2019/12/307控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.1.3Simulink下其他工具箱的模块组除了上述的各个标准模块组之外,随着MATLAB工具箱安装的不同,还有若干工具箱模块组和模块集(blockset),其他模块组如下图所示。2019/12/308控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/309控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.2Simulink建模与仿真Simulink建模方法简介仿真算法与控制参数选择Simulink在控制系统仿真研究中的应用举例2019/12/3010控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.2.1Simulink建模方法简介【例5-1】考虑图5-16中给出的典型非线性反馈系统框图,其中控制器为PI控制器,其模型为:2019/12/3011控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院由于系统中含有非线性环节,所以这样的系统不能用第4章中给出的线性系统方法进行精确仿真,而建立起系统的微分方程模型,用第2章中介绍的方法去求解也是件很烦琐的事,如果哪步出现问题,则仿真结果就可能出现错误。图5-16:2019/12/3012控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院Simulink是解决这样问题的最有效的方法,可以用下面的步骤搭建此系统的仿真模型:打开模型编辑窗口;复制相关模块;修改模块参数;模块连接;系统仿真研究。2019/12/3013控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.2.2仿真算法与控制参数选择选中Simulink模型窗口的Simulation菜单项,其中的ConfigurationParameters菜单项允许用户设置仿真控制参数:Starttime和Stoptime栏目分别允许用户填写仿真的起始时间和结束时间。2019/12/3014控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院Solveroptions的Type栏目有两个选项,允许用户选择定步长和变步长算法。仿真精度控制有RelativeTolerance选项、AbsoluteTolerance等,其中相对误差限的默认值设置为1e-3,该值在实际仿真中显得偏大,建议选择1e-6和1e-7。值得指出的是,由于采用的变步长仿真算法,所以将误差限设置到这样小的值也不会增加太大的运算量。2019/12/3015控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院在仿真时还可以选定最大允许的步长和最小允许的步长,这可以通过填写Maxstepsize栏目和Minstepsize的值来实现,如果变步长选择的步长超过这个限制则将弹出警告对话框。一些警告信息和警告级别的设置可以从其中的Diagnostics标签下的对话框来实现,具体方法在这里就不赘述了。2019/12/3016控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院仿真控制参数options可以通过simset()函数来设置,其调用格式为:除了用Simulation菜单启动系统仿真的进程外,还可以调用sim()函数来进行仿真分析,该函数的调用格式为:2019/12/3017控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院5.2.3Simulink在控制系统仿真研究中的应用举例【例5-2】非线性微分方程的框图求解考虑例2-34中给出的方程,其数学表达式为:2019/12/3018控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院这样的微分方程在Simulink下也可以搭建相应的仿真模型,从而进行仿真。如下图所示:2019/12/3019控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院这样用下面的语句就可以绘制出各个状态变量的时间响应曲线,如图2019/12/3020控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3021控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3022控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院【例5-3】考虑例4-19中介绍的多变量系统阶跃响应仿真问题。由于含有时间延迟,所以不可能直接用feedback()函数构造闭环系统模型,所以在例4-19的仿真中采用了近似的方法将时间延迟近似为二阶传递函数的形式进行仿真的,然而仿真的精度到底如何当时无法验证。有了Simulink这样的工具,就可以容易地建立起精确的仿真模型,如图2019/12/3023控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3024控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院回顾例4-19中利用近似得出的结果,可以利用step()函数的特殊调用格式求出其在每一路阶跃信号单独作用下的阶跃响应近似解2019/12/3025控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3026控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3027控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3028控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院直接用Simulink模型进行仿真,则可以容易地得出该系统分别在两路阶跃单独作用下阶跃响应的精确解,并将解析解和近似解在同一坐标系下绘制出来,如下图所示。2019/12/3029控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院【例5-4】计算机控制系统的仿真考虑如下图所示经典的计算机控制系统模型,其中,控制器模型是离散模型,采样周期为秒,ZOH为零阶保持器,而受控对象模型为连续模型,假设受控对象和控制器都已经给定。其中,对这样的系统来说,直接写成微分方程形式再进行仿真的方法是不可行的,因为其中既有连续环节,又有离散环节,不可能直接写出系统的微分方程模型。2019/12/3030控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院解决这样的系统仿真问题也是Simulink的强项,由给出的控制系统框图,可以容易地绘制出系统的Simulink仿真框图,如下图所示。2019/12/3031控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3032控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3033控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3034控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3035控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院这时离散控制器的传递函数模型为:这些语句能够得出和Simulink完全一致的结果,且分析格式更简单,但也应该注意到其局限性,因为该方法只能分析线性系统,若含有非线性环节则无能为力,而Simulink求解则没有这样的限制。2019/12/3036控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3037控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3038控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3039控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3040控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3041控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3042控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3043控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院建立了仿真模型之后,就可以给出下面MATLAB命令,对该系统进行仿真,并得出该时变系统的阶跃响应曲线,如图所示。2019/12/3044控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3045控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3046控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院Simulink仿真框图如下:2019/12/3047控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3048控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3049控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3050控制系统计算机辅助设计-MATLAB语言与应用(第二版)东北大学信息学院2019/12/3051控制系统