第7讲-MATLAB仿真-SIMULINK

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7讲SIMULINK第7讲MATLAB仿真_SIMULINK第7讲SIMULINKSimulink仿真7.1Simulink1.SimulinkSimulink是MATLAB中的一个建立系统方框图和基于方框图级的系统仿真环境,是一个对动态系统进行建模、仿真并对仿真结果进行分析的软件包。使用Simulink可以更加方便地对系统进行可视化建模,并进行基于时间流的系统级仿真,使得仿真系统建模与工程中的方框图统一起来。并且仿真结果可以近乎“实时”地通过可视化模块,如示波器模块、频谱仪模块以及数据输入输出模块等显示出来,使得系统仿真工作大为方便。第7讲SIMULINK•Simulink全方位地支持动态系统的建模仿真,它支持连续系统、离散系统、连续离散混合系统、线性系统、非线性系统、时不变系统、时变系统的建模仿真,也支持具有多采样速率的多速率系统。可以说,在通用系统仿真领域,Simulink是无所不包的。•结合MATLAB编程和Simulink可视化建模仿真各自的特点,可以构建更为复杂的系统模型,并进行自动化程度更高的仿真和仿真结果的数据分析,这是MATLAB的高级应用方面。第7讲SIMULINK2.使用Simulink启动MATLAB之后,在命令窗口中输入命令“simulink”或单击MATLAB工具栏上的Simulink图标,Simulink模块库窗口。在Simulink模块库窗口中单击菜单项“File|New|Model”,就可以新建一个Simulink模型文件,如图2-8所示。第7讲SIMULINK图2-8Simulink模块库界面和新建模型文件窗口第7讲SIMULINK以二阶系统为例。其输入输出的传递函数为(2-28)其中,R=3Ω,L=1H,C=0.1F。H(s)利用鼠标单击Simulink基础库中的Continuous子库,选取传递函数模块,将它拖动到新建模型窗口中的适当位置,如图2-9所示。11)()()(2ssRCLCsFsUcsH75.71075.7)5.1(75.710310)(222ssssH(2-29)第7讲SIMULINK图2-9利用模块库建立仿真模型第7讲SIMULINK•如果需要对模型模块进行参数设置和修改,只需选中模型文件中的相应模块,单击鼠标右键,弹出快捷菜单,从中选取相应参数进行修改,如图2-10所示。•单击模块下方的“TransferFun”可以对其进行编辑,例如修改为“传递函数”字样。•从快捷菜单中选取“TransferFunparameters...”项修改传递函数参数,在弹出的对话框中的传递函数分子系数“Numerator:”栏填入[10];在传递函数分母系数“Denominator”栏填入[1,3,10],其余参数使用默认值。第7讲SIMULINK图2-10修改仿真模型的参数第7讲SIMULINK•采用同样的方法,在Simulink基础库中的Sources子库中选取激励信号源,例如我们选取阶跃信号源,将之拖入建模窗口中。•在Sinks子库中选取示波器作为系统输出波形显示。接下来利用鼠标将这三个模块连接起来。•模块外部的大于符号“”分别表示信号的输入输出节点,为了连接两个模块的输入输出,可以将鼠标置于节点处,这时鼠标显示为“十”字形状,拖动鼠标到另一个模块的端口,然后释放鼠标按钮,则形成了带箭头的连线,箭头方向表示信号的流向。•完成后的建模系统可以通过“File”菜单存盘为模型文件,扩展名为“mdl”,如“lizi1.mdl”,如图2-11所示。第7讲SIMULINK图2-11完成的建模方框图第7讲SIMULINK•接下来,需要对输入信号源(阶跃)的参数进行设置。将鼠标指向阶跃信号模块双击或通过快捷菜单打开属性设置对话框,设置阶跃信号的参数,如图2-12所示•对于阶跃信号源来说,其参数含义、默认值以及我们根据仿真需要修改后的参数值如表2-1所示。第7讲SIMULINK表2-1阶跃信号源的参数含义、默认值及修改后的参数值第7讲SIMULINK图2-12阶跃信号源模块的参数设置对话框及其帮助文档第7讲SIMULINK•根据仿真要求,我们将仿真-2~10s时间区间内的系统阶跃响应的输出波形,在时间为0s时的跃变。•然后设置仿真参数,主要是仿真求解器的选择和仿真步长等参数的选取。通过前面的分析可知,动态系统仿真的本质就是求解其状态方程,而对状态方程的数值求解算法有多种,求解算法的步长也可以不同。•不同的算法适用的范围有所不同,而算法的步长也直接影响求解的精度。因此,对求解器的选择以及其仿真步长等参数的设定对系统仿真来说就成为相当重要的事情。•从系统建模窗口的状态栏可以看到当前使用的求解器,如图2-11中显示的仿真求解器是“ode45”算法。从建模窗口菜单项“Simulation|SimulationParameters...”打开仿真参数设置对话框(快捷键为Ctrl+E),我们现在设置求解器标签下的参数部分,如图2-13所示。第7讲SIMULINK设置仿真起始时间为-2秒,仿真结束时间为10秒,其余参数为默认值:求解器采用“ode45”算法,步长设定为自适应变步长的,最大步长、最小步长以及初始步长均设为自动选取,相对求解精度为1e-3,绝对求解精度自动选取。第7讲SIMULINK图2-13仿真参数设置对话框第7讲SIMULINK最后,双击示波器模型图标,打开示波器显示窗口。在显示窗口中单击鼠标右键,通过快捷菜单设置显示坐标范围等属性,这里我们设置为自动刻度,如图2-14所示。第7讲SIMULINK图2-14示波器显示窗口以及参数设置第7讲SIMULINK所有这些工作完成之后,就可以进行仿真了。可通过建模窗口菜单项“Simulation|Start”启动仿真,也可以单击工具栏上的小三角按钮或使用快捷键Ctrl+T启动仿真。仿真结果如图2-15所示。读者可以将结果与图2-3所示的结果进行比较。第7讲SIMULINK图2-15仿真结果第7讲SIMULINK•更换信号源为Sources子模块库中的SignalGenerator,并设置信号源为0.2Hz的方波,幅度为1,如图2-16左边对话框所示。•设置示波器显示窗口的属性(Parameters),使之成为双踪显示,然后将示波器第二输入节点与信号源输出相连,这样我们就可以同时观察系统的输入输出波形了。系统建模如图2-16中间窗口所示。•将仿真时间设定为0秒到20秒,其余参数使用默认参数。运行仿真后的结果如图2-16右边窗口显示。•还可以进一步修改信号源参数,使用三角波、正弦波等作为激励信号,观察输出信号的情况。第7讲SIMULINK图2-16第7讲SIMULINK3.MATLAB命令窗口与Simulink我们还可以通过MATLAB命令来打开Simulink模型并进行仿真。在MATLAB命令窗口中,使用“openlizi1.mdl”,然后使用“sim(′lizi1.mdl′)”就可以启动对模型lizi1.mdl的仿真计算。而Simulink仿真的数据结果也可以送回MATLAB工作空间中作进一步数值分析。第7讲SIMULINK•仍以上例加以说明。首先设置示波器,使得显示波形数据能够送回MATLAB工作空间。在示波器波形显示窗口单击“参数Parameters”工具图标,打开显示参数设置对话框。选中Datahistory标签下的Savedatatoworkspace,并设传递变量名称,例如设为ScopeData,格式选择为Structurewithtime(带时间的结构型变量)。参数设置的情况如图2-17所示。第7讲SIMULINK图2-17示波器显示窗口的参数设置第7讲SIMULINK将建模存盘为lizi1.mdl,然后在MATLAB下运行如下命令(参见图2-18)clear;%openlizi1.mdl;%这时将看到建模模型文件被打sim(′lizi1.mdl′);%启动模型仿真,显示出仿真波whosNameSizeBytesClassScopeData1x13578structarrayGrandtotalis307elementsusing3578bytes第7讲SIMULINK图2-18通过命令启动Simulink仿真第7讲SIMULINK可见,仿真完成之后,工作空间中出现了“ScopeData”结构变量,其中包含了示波器显示的全部波形数据。通过“plot”命令可以作出这些数据对应的波形,t=ScopeData.time;%signal=ScopeData.signals;wave1=signal(1,1).values;wave2=signal(1,2).values;subplot(2,1,1);plot(t,wave1);subplot(2,1,2);plot(t,wave2);axis([0,20,-2,2]);作出的波形如图2-19所示。读者可以对比示波器上得到的波形(参见图2-18)。我们在此说明了Simulink与MATLAB工作空间进行数据交换的一种方法。第7讲SIMULINK图2-19示波器数据传入工作空间后进行波形作图显示第7讲SIMULINK•事实上,MATLAB提供了许多途径用于与Simulink的数据交互。•通过Sources子模型库中的FromWorkspace模块可以从工作空间中读入仿真所需要的输入数据•通过Sinks子模型库中的ToWorkspace模块可以将Simulink中产生的数据回送到工作空间,从而可以实现MATLAB编程与Simulink模型相结合的混合仿真。•下面的例子中,我们将从工作空间中读入输入波形数据,通过Simulink建模仿真之后,将仿真结果再送回工作空间中进行处理。通过这种方式,MATLAB程序产生任意的数据送入Simulink中加以处理,然后再利用MATLAB强大的统计分析功能来处理数据。第7讲SIMULINK首先建立Simulink模型,如图2-20所示。图中使用了Sources子模型库中的FromWorkspace模块,以便从工作空间中读入数据。使用Sinks子模型库中的ToWorkspace模块,将输出数据回送到工作空间。设计输入为阶跃信号,仿真建模中使用Continuous子库中的微分器来获得系统的阶跃响应的微分——冲激响应。第7讲SIMULINK图2-20用于测试与MATLAB工作空间进行数据交互的Simulink模型第7讲SIMULINK图2-20中,FromWorkspace模块的参数设置如图2-21所示。其中,Data项使用了两个矢量[T,U]参数组合。T表示离散时间序列,U表示对应于离散时间序列T的波形取值。Sampletime项设置为0,表示采用仿真求解器的默认采样时间间隔。Interpolatedata选中表示允许数据插值,并且通过数据外插(Extrapolation)方式在最终数值后形成输出。第7讲SIMULINK图2-21FromWorkspace模块的参数设置第7讲SIMULINK模型中我们使用了两个ToWorkspace模块,分别接不同的输出信号,这两个ToWorkspace模块的输出变量分别为simout1和simout2。数据格式可设置为带时间的结构变量,如图2-22所示。仿真求解器采用ode45算法。但是为了获得更为精细的波形,可以设定求解的初始步长和最大步长为0.01,最小步长为auto,仿真时间段为0~20s。其余参数采用默认值。建模完成之后,将模型文件存盘为lizi2.mdl文件。然后编写如下的MATLABpro4lizi2.m,对模型进行仿真和分析。第7讲SIMULINK图2-22ToWorkspace模块的参数设置第7讲SIMULINK程序2-14%pro4lizi2.mclear;T=(0:0.1:20)′;%仿真时间段和步进,U=(T5);%在时间为5sim(′lizi2.mdl′);%运行仿真lizi2.mdlfigure(1);plot(simout1.time,s

1 / 94
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功