《【精品】matlab8.x程序设计及典型应用第七章 simulink交互式仿真建成环境(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】matlab8.x程序设计及典型应用第七章 simulink交互式仿真建成环境(可编辑.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB8.X程序设计及典型应用第七章 Simulink交互式仿真建成环境第七章Simulink交互式仿真建成环境本章主要介绍Simulink的模块库、具体建 模方法、建模实例以及子系统及其封装。本章的主要内容有:Simulink的启动和模型库模型文件的创建和保存仿真的配置子系统及其封装在MATLAB指令窗中运行Simulink模型7.1 Simulink概述及其特点Simulink是MATLAB中的一个重要组件,它是simulation和 link的缩写,是一个进行动态系统建模、仿真和综合分析的集成软件包。它支持连续、离散以及两者混合的线性和非线性系统的仿真;支持具有单任务、多任务的离散
2、事件系统。在Simulink软件环境下,用户可以在屏幕上调用现成的模块,并将它们适当地连接起来构成系统的模型,即所谓的可视化建模。运用Simulink创建的模型外表为方块图形,且采用分层结构,既适宜自上而下的设计流程(概念、功能、系统、子系统直至器件),又适宜自下而上的设计,具有方便、灵活的特点。在该环境中,用户可以在仿真过程中改变感兴趣的参数,实时地观察系统行为的变化。Simulink环境使用户摆脱了枯燥的数学推导和繁琐地编程,甚得科研工作者的青睐。7.2 Simulink的启动和模型库 如果用户在安装MATLAB的过程中选择了Simulink组件,则在MATLAB安装完成后,Simulin
3、k也安装完毕。用户必须注意,Simulink不能独立运行,只能在MATLAB环境中运行。7.2.1 Simulink的启动与退出在MATLAB的命令窗口输入语句simulink并执行:simulinkSimulink启动后会显示如图7.1所示的Simulink模块库浏览器(Simulink Library Browser)窗口。窗口的左边是以树状列表形式列出的各类Simulink模块库名称。双击对应模块库的“+”号可以展开子模块库。窗口右边有三个切换窗口,一个是对应用户选中左侧模块库中的模块图标和名称;一个是通过搜索模块名称得到的搜索结果;还有一个是使用频率最高的模块列表。表7-1信号源子库中
4、模块图标、名称、功能一览表表7-1信号源子库中模块图标、名称、功能一览表2、连续系统子模块库(Continuous)连续系统子库提供了诸多关于连续系统运算的模块,包括微分运算、积分运算等,其图标、名称和功能见表7-2。3、离散系统子模块库(Discrete)离散系统子库提供了诸多关于离散系统运算的模块,包括滤波器、差分运算等,其图标、名称和功能见表7-3所示。4、数学运算子模块库(Math)数学运算子库提供了诸多关于数学运算的模块,其中主要运算模块的图标、名称和功能见表7-4所示。5、提取信号子模块库(Sinks)输出子库中提供的模块用来输出系统仿真的结果输出子库中提供的模块用来输出系统仿真的
5、结果。它只有输入端口,用。它只有输入端口,用以接受模型传递过来的信号。输出子模块库中各模块的图标、名称和功以接受模型传递过来的信号。输出子模块库中各模块的图标、名称和功能见表能见表7-5所示。所示。6、用户自定义的函数子模块库(User-Defined Functions)用户如果自己编写函数文件来实现某一功能,可以使用用户自定义的函数子模块库中的模块。说明:用户如果想了解更多关于该模块的信息,可以使用该模块的帮助信息。用鼠标右击需要查询的模块图标,在下拉菜单中选择帮助选项,MATLAB将会提供该模块的帮助信息。7.3 模型文件的创建和保存 Simulink模块库提供了功能齐全的模块,用户可以
6、通过这些模块来创建模型文件,并进行仿真和系统分析。【例7-1】创建 模型并分析结果 在MATLAB指令窗内执行Simulink或者单击MATLAB主窗口工具栏上的图标 按钮,打开Simulink模块库浏览器窗口,(如图7.1)。单击该窗口工具条上的新建图标 打开一个未命名(untitled)的空白模型窗,如图所示。(1)进入Simulink环境鼠标单击图7.1界面上“Sources”进入信号源子模块库,选择正弦信号图标 鼠标右击,选择“Add to”选项将该框图添加到模型窗中,如图。(2)进入信号源子模块库,添加正弦信号发生器模块,查看默认参数或重新设置参数或者,按住鼠标左键不动将正弦信号发生
7、器框图直接拖到模型窗中,效果相同。双击模型窗中的正弦信号发生器模块,打开关于该模块参数设置的对话框,如图7.6所示。(2)进入信号源子模块库,添加正弦信号发生器模块,查看默认参数或重新设置参数(3)进入输出子模块库,选择输出方式鼠标单击图7.1界面上的“Sinks”子模块库,选择示波器(Scope)图标 将其添加到模型窗中。双击示波器图标,打开示波器窗口。示波器窗口有一个工具条,其上各按钮从左到右的功能分别为:打印、示波器参数、同时放大x、y坐标轴、放大x轴、放大y轴、自动缩放、保存坐标轴设置、恢复坐标轴设置、浮动示波器、释放坐标轴选项、信号选择器。单击图标 打开示波器参数设置窗口,如图7.7
8、所示。示波器的参数设置对话框有两个切换选项卡:General选项卡,可设置4个参数,常用的为坐标轴数目(Number of axes);History选项卡可设置两个参数,常用的是保存到工作空间(Save data to workspace)。(3)进入输出子模块库,选择输出方式(4)进入数学运算子模块库,选取叠加函数模块。鼠标单击图7.1界面上的“Math Operations”,选择“Add”的图标 并将其添加到模型窗中。鼠标双击该模块,将其设置成“+-”形式,如图7.9所示.如果用户选择将图标(Icon shape)设置为圆形,其外观和功能等同于模块(5)搭建模型,完成仿真。在未命名的模
9、型窗中,用鼠标画线,将各个模块连接成一个完整的模型,具体连线操作为:先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标左键并拖动,直到另一模块的输入端。如果需要将连接线分支,则需将光标指向信号线的分支点上,按鼠标右键,待光标变为十字符,拖动鼠标直到另一模块的输入端即可。连接线的箭头指向为信号流动方向。模型见图7.10。搭建好模型后,鼠标单击模型窗工具条中的图标 启动Simulink系统进行仿真。鼠标双击示波器,可以看到运行后的结果,如图7.11所示.其中运用示波器工具条中的 按钮使得图形充满整个坐标系,如信号x。(5)搭建模型,完成仿真。(5)仿真结果的分析本例选择三个单踪示波器,分别
10、显示正弦信号、余弦信号和运算后的信号,为了更好地比对信号运算后的变化,用户可以将三个信号送给基本工作空间(WorkSpace),变量名称分别为x1,x2,x,并以数值形式保存。具体设置为:勾选“Save data to workspace”,变量名改为x1,“Format”下拉菜单选择“Array”,然后点击“OK”或者“Apply”完成设置。如图7.12所示,为正弦信号x1的设置,信号x2、x的设置方法同上。启动仿真后,示波器立刻得到仿真的结果,该结果根据设置同时送给MATLAB基本工作空间。工作空间有四个变量tout、x1、x2和x,.其中,tout为时间变量默认名,x1,x2,x均为为5
11、12数组,其中各数组的第一列数值即为变量tout,第二列为各自输出信号的振幅。在MATLAB编辑器中编写文件名为exm7_1的M文件:plot(x1(:,1),x1(:,2),r:,LineWidth,3)hold onplot(x2(:,1),x2(:,2),k-.,LineWidth,3)plot(x(:,1),x(:,2),b,LineWidth,3)hold offlegend(输入正弦信号,输入余弦信号,输出信号,3)xlabel(时间),ylabel(振幅)在指令窗中执行文件exm7_1.m,结果如图所示(5)搭建模型,完成仿真。由图可知,两个信号运算后产生的信号振荡频率与原信号相
12、同,但振幅和初相位都发生了变化。创建完善的模型可以存盘。保存模型的方法和保存M文件的方法类似,模型文件的扩展名为.mdl。点击模型文件编辑器的保存图标 将该模型文件命名为exm1.若要打开该文件,可以通过以下3种方法:在MATLAB指令窗中输入模型文件名,注意:不要带扩展名,但该文件一定要在当前目录或MATLAB的搜索路径上,否则必须注明路径目录。2.点击模块库浏览器或某一模型窗中的菜单FileOpen,选中该模型文件打开。3.点击模块库浏览器或某一模型窗中的图标 打开该模型文件 7.3 模型文件的创建和保存 7.4 仿真的配置 Simulink模型实际上是一个计算机程序,它定义了描写被仿真系
13、统的一组微分方程或差分方程。当对模型窗中的模型进行仿真时,Simulink系统就开始了用一种数值解算方法求解方程。用户在对模型进行仿真时,如果不做特别设置(如例7-1),Simulink总以默认的参数进行数值解算。如果用户不采用系统默认的仿真设置,就必须对各种仿真参数进行配置(Configuration),其中包括:仿真步长的选择、仿真起始时刻和终止时刻的设定、数值积分算法的选择以及各种仿真容差的选择等。在模型窗的主菜单Simulink下拉子菜单中单击仿真参数配置选项(Configuration Parameters),弹出仿真参数配置对话窗。图图7.14 Simulink仿真参仿真参数配置数
14、配置窗口窗口在该窗口中有若干个选项,对于一般用户而言,比较常用的选项为仿真时间(Simulink time)和解算器选项(Solver options)。下面就这两个选项来阐述参数值的内涵。7.4 仿真的配置 7.4.1 仿真时间选项 参数配置窗口中的时间选项提供了起始时刻(Start time)和终止时刻(Stop time)的参数设置,默认时分别为0和10.表示仿真时长为10秒,如果解算器设置的计算步长为0.01,则计算机需要执行1000步结束。如果将计算步长设置得长一些,比如0.1,则相应的,计算机执行次数就减少,即100步即可完成。因此,这里的时间概念和计算机真实地执行时间是有差别的。
15、相同的时间设置,如果计算步长设置得越长,实际的执行时间就越短。7.4.2 解算器选项 在解算器选项解算类型(Tyep)中,有变步长(Variable-step)和定步长(Fixed-step)两种。对于变步长选项,在算法(Solver)选项中列出了多种变步长解算方法,对于连续系统,默认的算法ode45即为最佳算法,建议其对应的最大步长(Max step size)、最小步长(Min step size)和初始步长(Initial step size)使用默认(auto)值,如图(1)。(1)变步长选项(2)定步长选项 对于离散系统,Simulink一般默认选择定步长算法,如图(2),其中默认算
16、法ode4即为最佳算法。如果用户希望选择其他的算法,或者使用需要的步长,则通过鼠标在算法的下拉菜单中选择,在Fixed-step size中填入数据,点击OK或者Apply即可完成解算参数的设置。7.4.2 解算器选项选择状态变量:令则原方程演变为非线性状态方程组:初始条件为:【例7-2】求解范德波(Van de Pol)微分方程 在初始条件 下在 范围内的数值解,并绘制解的曲线和相轨迹。(参数 )。分析:信号 为模型的输出。第一个方程可以看做是将变量 作为积分器的输入信号,则积分器的输出信号为 .第二个方程可以将 看做是另外一个积分器的输出信号 ,该积分器的输入信号为 .利用Simulink
17、提供的模块搭建一个名为exm2.mdl的模型,如图所示。为了分析需要,用户可以将仿真结果送到MATLAB基本工作空间(Workspace):在Sinks子模块库中选择To Workspace子模块。本例调用两个这样的模块,并分别对模块的参数进行设置,将仿真产生的结果保存变量名为y1和y2,保存格式为数值数组。在Sinks模块库中选择XY Graph模块,该模块有两个输入端口,并以第一个输入端口为X轴坐标,第二个端口输入为Y轴坐标。在仿真配置选项里,将图7.17中的Stop time设置为15;解算器选项中选择变步长的ode23算法。启动仿真,仿真结束后在MATLAB工作空间产生了变量tout,
18、y1,y2在MATLAB指令窗中输入指令并执行:plot(tout,y1,r-.,tout,y2,LineWidth,3)legend(x(t),dx(t)/dt,2)grid on结果如图所示。XY Graph模块显示方程的相轨迹,如图所示【说明】在Simulink模型中,运用鼠标就可以对模块进行选定、复制、移动、删除和缩放。在模块上单击鼠标,即可选定该模块,此时模块的四角处会出现小黑块编辑框。选中模块后,右击鼠标可以引出对该模块的操作菜单,其中包括模块对应的字体以及模块的翻转等操作,如图所示。在模块编辑窗的任意位置双击鼠标,在光标位置会出现矩形文本输入框,可以添加文本注释(label)。利
19、用鼠标可以将注释框拖到模型窗的任何位置。对于数学函数(Math Function)模块,必须将函数设置为平方(square)计算,如图所示。另外,两个积分模块里的初始值(Initial condition)也要依据题目条件来设置置。将加法(Add)模块设置成正确的+或者-+的形式。将乘法(Product)模块设置为三个输入端口。【说明】创建Simulink模型,如图7.22所示 图7.22 饱和非线性系统的Simulink模型【例7-3】某饱和非线性系统如图7.21所示,求该系统的单位阶跃响应。x(t)+-0.51y(t)图7.1界面上User-Defined Functions模块库中选择M
20、ATLAB Fcn模块,并将该模块的MATLAB function栏目中输入sat。传递函数(Transfer Fun)模块位于图7.1界面上的“Continuous”模块库内,将该模块添加到模型窗中,双击该模块,进入传递函数(Transfer Fun)模块的参数设置界面。输入设计中的参数值,如图。编写函数名为sat的函数文件:function yo=sat(yi)%SAT Function for exm4.mdl%yi 来自于增益模块的输入宗量%yo 送给传递函数模块的输出宗量if yi=1 yo=sqrt(yi);elseif yi sim(exm4)打开示波器,得到仿真结果,如图所示。
21、编写文件名为exm7_5的脚本文件:clear,clf,sat=-1,2;sim(exm4);plot(yo(:,1),yo(:,2),r-.,LineWidth,3)hold on,sat=-2,1;sim(exm4);plot(yo(:,1),yo(:,2),k:,LineWidth,3)xlabel(t),ylabel(y),hold off,gridlegend(饱和区间为-1,2,饱和区间为-2,1)运行exm7_5.m后,得到如图7.35所示的两条阶跃响应曲线。将子系统模块参数saturation的输入值设置为sat.将示波器的仿真结果,以数值变量形式赋值给yo.【例7-5】(续例7-4)指令sim()运用实例。