薛定宇-控制系统同仿真第五章.ppt
第5章
Simulink在系统仿真中的应用;主要内容;5.1
Simulink建模的根底知识;Simulink简介;输入open_system(‘simulink’)命令将翻开模型库,库中还有下一级的模块组,如连续模块组、离散模块组和输入输出模块组等,用户可以用双击的方式翻开下一级的模块组,寻找及使用所需要的模块。
单击MATLAB命令窗口工具栏中的Simulink图标,也可以翻开Simulink模块浏览器窗口。;Simulink下常用模块简介;
Simulink下其他工具箱的模块组;2025/5/2;5.2
Simulink建模与仿真;Simulink建模方法简介;由于系统中含有非线性环节,所以这样的系统不能用第4章中给出的线性系统方法进行精确仿真,而建立起系统的微分方程模型,用第2章中介绍的方法去求解也是件很烦琐的事,如果哪步出现问题,那么仿真结果就可能出现错误。
图5-16:;Simulink是解决这样问题的最有效的方法,可以用下面的步骤搭建此系统的仿真模型:
①翻开模型编辑窗口;
首先翻开一个模型编辑窗口,这可以单击Simulink工具栏中新模型的图标或选择菜单项实现。
②复制相关模块;
将相关的模块组中的模块拖动到此窗口中
③修改模块参数;
④模块连接;
⑤系统仿真研究;;5.2.2仿真算法与控制参数选择;④在仿真时还可以选定最大允许的步长和最小允许的步长,这可以通过填写Maxstepsize栏目和Minstepsize的值来实现,如果变步长选择的步长超过这个限制那么将弹出警告对话框。
⑤一些警告信息和警告级别的设置可以从其中的Diagnostics标签下的对话框来实现,具体方法在这里就不赘述了。;仿真控制参数options可以通过simset()函数来设置,其调用格式为:;Simulink在控制系统
仿真研究中的应用举例;这样的微分方程在Simulink下也可以搭建相应的仿真模型,从而进行仿真。如以下图所示:;这样用下面的语句就可以绘制出各个状态变量的时间响应曲线,如图;2025/5/2;2025/5/2;【例5-3】考虑例4-19中介绍的多变量系统阶跃响应仿真问题。由于含有时间延迟,所以不可能直接用feedback()函数构造闭环系统模型,所以在例4-19的仿真中采用了近似的方法将时间延迟近似为二阶传递函数的形式进行仿真的,然而仿真的精度到底如何当时无法验证。
有了Simulink这样的工具,就可以容易地建立起精确的仿真模型,如图;回忆例4-19中利用近似得出的结果,可以利用step()函数的特殊调用格式求出其在每一路阶跃信号单独作用下的阶跃响应近似解;
g11=tf(0.1134,[1.784.481],ioDelay,0.72);
g21=tf(0.3378,[0.3611.091],ioDelay,0.3);
g12=tf(0.924,[2.071]);
g22=tf(-0.318,[2.931],ioDelay,1.29);
G=[g11,g12;g21,g22];%输入传递函数矩阵
;[n1,d1]=paderm(0.72,0,2);
g11.ioDelay=0;g11=tf(n1,d1)*g11;
[n1,d1]=paderm(0.30,0,2);
g21.ioDelay=0;g21=tf(n1,d1)*g21;
[n1,d1]=paderm(1.29,0,2);
g22.ioDelay=0;g22=tf(n1,d1)*g22;
G1=[g11,g12;g21,g22];%近似后系统传递函
数矩阵;Kp=[0.1134,0.924;0.3378,-0.318];
G2=ss(G1*Kp);%补偿后状态方程
[y1,x1,t1]=st