matlab教学PPT第7讲MATLAB仿真SIMULINK.ppt
《matlab教学PPT第7讲MATLAB仿真SIMULINK.ppt》由会员分享,可在线阅读,更多相关《matlab教学PPT第7讲MATLAB仿真SIMULINK.ppt(94页珍藏版)》请在三一办公上搜索。
1、第7讲 MATLAB仿真_SIMULINK,Simulink仿真,7.1 Simulink仿真入门1.Simulink的特点Simulink是MATLAB中的一个建立系统方框图和基于方框图级的系统仿真环境,是一个对动态系统进行建模、仿真并对仿真结果进行分析的软件包。使用Simulink可以更加方便地对系统进行可视化建模,并进行基于时间流的系统级仿真,使得仿真系统建模与工程中的方框图统一起来。并且仿真结果可以近乎“实时”地通过可视化模块,如示波器模块、频谱仪模块以及数据输入输出模块等显示出来,使得系统仿真工作大为方便。,Simulink全方位地支持动态系统的建模仿真,它支持连续系统、离散系统、连
2、续离散混合系统、线性系统、非线性系统、时不变系统、时变系统的建模仿真,也支持具有多采样速率的多速率系统。可以说,在通用系统仿真领域,Simulink是无所不包的。结合MATLAB编程和Simulink可视化建模仿真各自的特点,可以构建更为复杂的系统模型,并进行自动化程度更高的仿真和仿真结果的数据分析,这是MATLAB的高级应用方面。,2.使用Simulink建模和仿真的过程启动MATLAB之后,在命令窗口中输入命令“simulink”或单击MATLAB工具栏上的Simulink图标,打开Simulink模块库窗口。在Simulink模块库窗口中单击菜单项“File|New|Model”,就可以
3、新建一个Simulink模型文件,如图2-8所示。,图2-8 Simulink模块库界面和新建模型文件窗口,以二阶系统为例。其输入输出的传递函数为(2-28)其中,R=3,L=1H,C=0.1F。H(s)简化为利用鼠标单击Simulink基础库中的Continuous子库,选取传递函数模块,将它拖动到新建模型窗口中的适当位置,如图2-9所示。,(2-29),图2-9 利用模块库建立仿真模型,如果需要对模型模块进行参数设置和修改,只需选中模型文件中的相应模块,单击鼠标右键,弹出快捷菜单,从中选取相应参数进行修改,如图2-10所示。单击模块下方的“TransferFun”可以对其进行编辑,例如修改
4、为“传递函数”字样。从快捷菜单中选取“Transfer Fun parameters.”项修改传递函数参数,在弹出的对话框中的传递函数分子系数“Numerator:”栏填入10;在传递函数分母系数“Denominator”栏填入1,3,10,其余参数使用默认值。,图2-10 修改仿真模型的参数,采用同样的方法,在Simulink基础库中的Sources子库中选取激励信号源,例如我们选取阶跃信号源,将之拖入建模窗口中。在Sinks子库中选取示波器作为系统输出波形显示。接下来利用鼠标将这三个模块连接起来。模块外部的大于符号“”分别表示信号的输入输出节点,为了连接两个模块的输入输出,可以将鼠标置于节
5、点处,这时鼠标显示为“十”字形状,拖动鼠标到另一个模块的端口,然后释放鼠标按钮,则形成了带箭头的连线,箭头方向表示信号的流向。完成后的建模系统可以通过“File”菜单存盘为模型文件,扩展名为“mdl”,如“lizi1.mdl”,如图2-11所示。,图2-11 完成的建模方框图,接下来,需要对输入信号源(阶跃)的参数进行设置。将鼠标指向阶跃信号模块双击或通过快捷菜单打开属性设置对话框,设置阶跃信号的参数,如图2-12所示对于阶跃信号源来说,其参数含义、默认值以及我们根据仿真需要修改后的参数值如表2-1所示。,表2-1阶跃信号源的参数含义、默认值及修改后的参数值,图2-12 阶跃信号源模块的参数设
6、置对话框及其帮助文档,根据仿真要求,我们将仿真-210s时间区间内的系统阶跃响应的输出波形,在时间为0s时的跃变。然后设置仿真参数,主要是仿真求解器的选择和仿真步长等参数的选取。通过前面的分析可知,动态系统仿真的本质就是求解其状态方程,而对状态方程的数值求解算法有多种,求解算法的步长也可以不同。不同的算法适用的范围有所不同,而算法的步长也直接影响求解的精度。因此,对求解器的选择以及其仿真步长等参数的设定对系统仿真来说就成为相当重要的事情。从系统建模窗口的状态栏可以看到当前使用的求解器,如图2-11中显示的仿真求解器是“ode45”算法。从建模窗口菜单项“Simulation|Simulatio
7、nParameters.”打开仿真参数设置对话框(快捷键为Ctrl+E),我们现在设置求解器标签下的参数部分,如图2-13所示。,设置仿真起始时间为-2秒,仿真结束时间为10秒,其余参数为默认值:求解器采用“ode45”算法,步长设定为自适应变步长的,最大步长、最小步长以及初始步长均设为自动选取,相对求解精度为1e-3,绝对求解精度自动选取。,图2-13 仿真参数设置对话框,最后,双击示波器模型图标,打开示波器显示窗口。在显示窗口中单击鼠标右键,通过快捷菜单设置显示坐标范围等属性,这里我们设置为自动刻度,如图2-14所示。,图2-14 示波器显示窗口以及参数设置,所有这些工作完成之后,就可以进
8、行仿真了。可通过建模窗口菜单项“Simulation|Start”启动仿真,也可以单击工具栏上的小三角按钮或使用快捷键Ctrl+T启动仿真。仿真结果如图2-15所示。读者可以将结果与图2-3所示的结果进行比较。,图2-15 仿真结果,更换信号源为Sources子模块库中的SignalGenerator,并设置信号源为0.2Hz的方波,幅度为1,如图2-16左边对话框所示。设置示波器显示窗口的属性(Parameters),使之成为双踪显示,然后将示波器第二输入节点与信号源输出相连,这样我们就可以同时观察系统的输入输出波形了。系统建模如图2-16中间窗口所示。将仿真时间设定为0秒到20秒,其余参数
9、使用默认参数。运行仿真后的结果如图2-16右边窗口显示。还可以进一步修改信号源参数,使用三角波、正弦波等作为激励信号,观察输出信号的情况。,图2-16 更换信号源并使用双踪示波器之后的仿真结果,3.MATLAB命令窗口与Simulink之间的交互 我们还可以通过MATLAB命令来打开Simulink模型并进行仿真。在MATLAB命令窗口中,使用“open lizi1.mdl”,然后使用“sim(lizi1.mdl)”就可以启动对模型lizi1.mdl的仿真计算。而Simulink仿真的数据结果也可以送回MATLAB工作空间中作进一步数值分析。,仍以上例加以说明。首先设置示波器,使得显示波形数据
10、能够送回MATLAB工作空间。在示波器波形显示窗口单击“参数Parameters”工具图标,打开显示参数设置对话框。选中Data history标签下的Savedatatoworkspace,并设传递变量名称,例如设为ScopeData,格式选择为Structurewithtime(带时间的结构型变量)。参数设置的情况如图2-17所示。,图2-17 示波器显示窗口的参数设置,将建模存盘为lizi1.mdl,然后在MATLAB下运行如下命令(参见图2-18):clear;%工作空间初始化open lizi1.mdl;%这时将看到建模模型文件被打开sim(lizi1.mdl);%启动模型仿真,显示
11、出仿真波形whosNameSizeBytesClassScopeData1x13578structarrayGrandtotalis307elementsusing3578bytes,图2-18 通过命令启动Simulink仿真,可见,仿真完成之后,工作空间中出现了“ScopeData”结构变量,其中包含了示波器显示的全部波形数据。通过“plot”命令可以作出这些数据对应的波形,即t=ScopeData.time;%仿真的时间变量signal=ScopeData.signals;wave1=signal(1,1).values;wave2=signal(1,2).values;subplot(
12、2,1,1);plot(t,wave1);subplot(2,1,2);plot(t,wave2);axis(0,20,-2,2);作出的波形如图2-19所示。读者可以对比示波器上得到的波形(参见图2-18)。我们在此说明了Simulink与MATLAB工作空间进行数据交换的一种方法。,图2-19 示波器数据传入工作空间后进行波形作图显示,事实上,MATLAB提供了许多途径用于与Simulink的数据交互。通过Sources子模型库中的FromWorkspace模块可以从工作空间中读入仿真所需要的输入数据通过Sinks子模型库中的ToWorkspace模块可以将Simulink中产生的数据回送
13、到工作空间,从而可以实现MATLAB编程与Simulink模型相结合的混合仿真。下面的例子中,我们将从工作空间中读入输入波形数据,通过Simulink建模仿真之后,将仿真结果再送回工作空间中进行处理。通过这种方式,我们可以通过MATLAB程序产生任意的数据送入Simulink中加以处理,然后再利用MATLAB强大的统计分析功能来处理数据。,首先建立Simulink模型,如图2-20所示。图中使用了Sources子模型库中的FromWorkspace模块,以便从工作空间中读入数据。使用Sinks子模型库中的ToWorkspace模块,将输出数据回送到工作空间。设计输入为阶跃信号,仿真建模中使用C
14、ontinuous子库中的微分器来获得系统的阶跃响应的微分冲激响应。,图2-20 用于测试与MATLAB工作空间进行数据交互的Simulink模型,图2-20中,FromWorkspace模块的参数设置如图2-21所示。其中,Data项使用了两个矢量T,U参数组合。T表示离散时间序列,U表示对应于离散时间序列T的波形取值。Sampletime项设置为0,表示采用仿真求解器的默认采样时间间隔。Interpolatedata选中表示允许数据插值,并且通过数据外插(Extrapolation)方式在最终数值后形成输出。,图2-21 FromWorkspace模块的参数设置,模型中我们使用了两个ToW
15、orkspace模块,分别接不同的输出信号,这两个ToWorkspace模块的输出变量分别为simout1和simout2。数据格式可设置为带时间的结构变量,如图2-22所示。仿真求解器采用ode45算法。但是为了获得更为精细的波形,可以设定求解的初始步长和最大步长为0.01,最小步长为auto,仿真时间段为020s。其余参数采用默认值。建模完成之后,将模型文件存盘为lizi2.mdl文件。然后编写如下的MATLAB仿真程序pro4lizi2.m,对模型进行仿真和分析。,图2-22 ToWorkspace模块的参数设置,程序2-14%pro4 lizi2.mclear;T=(0:0.1:20)
16、;%仿真时间段和步进,为列向量U=(T5);%在时间为5秒跃变的阶跃信号sim(lizi2.mdl);%运行仿真lizi2.mdlfigure(1);plot(simout1.time,simout1.signals.values);xlabel(timesec)%阶跃响应figure(2);plot(simout2.time,simout2.signals.values);xlabel(timesec)%冲激响应程序运行结果如图2-23所示。,图2-23 MATLAB编程调用Simulink模型的仿真结果(阶跃响应和冲激响应),4.Simulink子系统的构造实际建模过程中,常常会遇到一些较
17、为复杂的系统,难以在一张模型方框图中画出来。这时候,就需要以层次结构来绘制框图。也就是首先将大系统中的一些具有独立功能的部分封装起来,形成一些子系统,然后再利用这些子系统来构成整个系统。Simulink允许构造多层子系统,即在子系统中仍然允许包含若干下层子系统。,Simulink中子系统的构造方法举例说明如下:首先将Simulink模块库中Ports&Subsystems子模块库中的Subsystem模块拖动到新建的模型文件窗口中,双击该Subsystem模块,就会打开该子系统,其输入用In模块表示,输出用Out模块表示,一个子系统可以有多个输入、输出。然后利用Simulink模型库中的连续时
18、间Continuous子库中的传递函数TransferFcn模块,数学操作MathOperations子库中的增益Gain模块、求和Sum模块以及乘法模块Product构成子系统。该子系统有两个输入端口,一个输出端口。在子系统外部输入端口加入两个信号源,在其输出端口接上示波器,如图2-24所示。,图2-24 子系统的构建和仿真,系统参数的设置如表2-2所示。,表2-2 lizi3.mdl模型的参数设置,注意,在仿真运行之前,必须将子系统中的以变量表达的参数值确定下来。这些参数值只需在MATLAB命令窗口中输入即可。例如,在命令窗口中输入参数值后运行仿真:G=1;A=1;B=0.001;C=1;
19、sim(lizi3.mdl);仿真运行结果如图2-25所示。,图2-25 lizi3.mdl的仿真结果,如果结合循环语句来自动修改参数,并将仿真结果送回MATLAB工作空间,则我们可以让计算机在不同系统参数条件下自动仿真若干次,得出响应的结果。如果不使用命令“sim”来进行仿真,那么我们只好通过Simulink可视化界面来修改系统参数,并通过使用鼠标点击仿真运行工具来启动仿真,这样效率将是十分低下的。由此可见MATLAB编程与Simulink结合进行仿真的优势。,5.封装子系统子系统中的参数(如增益G),传递函数系数等等,是通过MATLAB工作空间传入的,这就破坏了子系统内部的隐藏性质。为此,
20、Simulink中给出了一种解决办法,也就是所谓的模块封装技术。对子系统封装以后,它就可以像Simulink模块库所提供的模块一样来使用,子系统模块内部的参数可以通过一个设计的对话框来输入。,对一个用户自己建立的系统模型进行封装,首先要通过上面所讲的方法将系统模型转化为子系统,然后选中该子系统图标,选择“Edit|MaskSubsystem”菜单项(快捷键为Ctrl+M),然后设置所弹出的对话框内容。下面我们对lizi3.mdl中建立的子系统进行封装。打开lizi3.mdl,另存为lizi4.mdl,然后选中子系统模块,将其改名为Mysubsystem,选择“Edit|MaskSubsyste
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 教学 PPT 仿真 SIMULINK
链接地址:https://www.31ppt.com/p-6511895.html