《MATLAB 8.X程序设计及典型应用》课件第7章_第1页
《MATLAB 8.X程序设计及典型应用》课件第7章_第2页
《MATLAB 8.X程序设计及典型应用》课件第7章_第3页
《MATLAB 8.X程序设计及典型应用》课件第7章_第4页
《MATLAB 8.X程序设计及典型应用》课件第7章_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.1Simulink的启动和模型库7.2模型文件的创建和保存7.3仿真的配置7.4子系统及其封装7.5在MATLAB指令窗中运行 Simulink模型第7章Simulink交互式仿真集成环境

7.1Simulink的启动和模型库

如果用户在安装MATLAB的过程中选择了Simulink组件,则在MATLAB安装完成后,Simulink也安装完毕。用户必须注意,Simulink不能独立运行,只能在MATLAB环境中运行。7.1.1Simulink的启动与退出

在MATLAB的命令窗口输入语句simulink并执行:

>>simulink图7.1Simulink模块库浏览器图7.2Simulink按钮7.1.2Simulink常用模块

1.信号源子模块库(Sources)

信号源子模块库提供的模块都没有输入端口,而至少有一个输出端口。信号源子模块库中提供了很多标准信号,各模块的图标、名称、功能见表7-1。

2.连续系统子模块库(Continuous)

连续系统子模块库提供了诸多关于连续系统运算的模块,包括微分运算、积分运算等,其图标、名称和功能见表7-2。

3.离散系统子模块库(Discrete)

离散系统子模块库提供了诸多关于离散系统运算的模

块,包括滤波器、差分运算等,其图标、名称和功能见表

7-3所示。

4.数学运算子模块库(Math)

数学运算子模块库提供了诸多关于数学运算的模块,其中主要运算模块的图标、名称和功能见表7-4所示。

5.提取信号子模块库(Sinks)

提取信号子模块库中提供的模块用来输出系统仿真的结果。它只有输入端口,用以接收模型传递过来的信号。提取信号子模块库各模块的图标、名称和功能见表7-5所示。

6.用户自定义的函数子模块库(User-DefinedFunctions)

用户如果自己编写函数文件来实现某一功能,可以使用用户自定义的函数子模块库中的模块。用户自定义函数子模块库中的各模块图标、名称和功能见表7-6所示。图7.3获取模块帮助信息

7.2模型文件的创建和保存

【例7-1】创建模型并分析结果。

(1)进入Simulink环境。

在MATLAB指令窗内执行“Simulink”或者单击MATLAB主窗口工具栏上的图标,打开Simulink模块库浏览器窗口(如图7.1所示),单击该窗口工具条上的新建图标按钮,打开一个未命名(untitled)的空白模型窗,如图7.4所示。图7.4Simulink新建模型窗

(2)进入信号源子模块库,添加正弦信号发生器模块,查看默认参数或重新设置参数。

鼠标单击图7.1界面上的“Sources”,进入信号源子模块库,选择正弦信号图标,鼠标右击,选择“Addto…”选项,将该框图添加到模型窗中,如图7.5所示。图7.5信号源子模块库图7.6正弦信号发生器的Simulink仿真参数设置界面

(3)进入输出子模块库,选择输出方式。

鼠标单击图7.1界面上的“Sinks”子模块库,选择示波器(Scope)图标,将其添加到模型窗中。图7.7示波器及其参数设置对话窗图7.8双显示示波器的参数设置

(4)进入数学运算子模块库,选取叠加函数模块。

鼠标单击图7.1界面上的“MathOperations”,选择“Add”的图标,并将其添加到模型窗中。鼠标双击该模块,将其设置成“+-”形式,如图7.9所示。图7.9Add模块参数的设置

(5)搭建模型,完成仿真。

在未命名的模型窗中,用鼠标画线,将各个模块连接成一个完整的模型。具体连线操作为:先将光标指向一个模块的输出端,待光标变为十字符后,按下鼠标左键并拖动,直到另一模块的输入端。如果需要将连接线分支,则需将光标指向信号线的分支点上,按鼠标右键,待光标变为十字符后,拖动鼠标直到另一模块的输入端即可。连接线的箭头指向为信号流动方向。模型见图7.10。图7.10信号叠加的Simulink模型图7.11输入信号x1和x2以及输出信号x波形图

(6)仿真结果的分析。

本例选择三个单踪示波器,分别显示正弦信号、余弦信号和运算后的信号。为了更好地比对信号运算后的变化,用户可以将三个信号送给基本工作空间(WorkSpace),变量名称分别为x1,x2,x,并以数值形式保存。具体设置为:勾选“Savedatatoworkspace”,变量名改为x1,在“Format”下拉菜单中选择“Array”,然后点击“OK”或者“Apply”完成设置。图7.12所示为正弦信号x1的设置。信号x2、x的设置方法同上。图7.12示波器参数设置图7.13仿真结果的M文件绘图若要打开该文件,可以通过以下3种方法实现:

(1)在MATLAB指令窗中输入模型文件名。注意:不要带扩展名,但该文件一定要在当前目录或MATLAB的搜索路径上,否则必须注明路径目录。

(2)点击模块库浏览器或某一模型窗中的菜单File→Open,选中该模型文件打开。

(3)点击模块库浏览器或某一模型窗中的图标,打开该模型文件。

7.3仿 真 的 配 置

Simulink模型实际上是一个计算机程序,它定义了描写被仿真系统的一组微分方程或差分方程。当对模型窗中的模型进行仿真时,Simulink系统就开始用一种数值解算方法求解方程。用户在对模型进行仿真时,如果不做特别设置(如例7-1),Simulink总以默认的参数进行数值解算。图7.14Simulink仿真参数配置窗口7.3.1仿真时间选项

参数配置窗口中的时间选项提供了起始时刻(Starttime)和终止时刻(Stoptime)的参数设置,默认时分别为0和10,表示仿真时长为10秒。如果解算器设置的计算步长为0.01,则计算机需要执行1000步结束。如果将计算步长设置得长一些,比如0.1,则相应地计算机执行次数就减少,即100步即可完成。因此,这里的时间概念和计算机真实地执行时间是有差别的。相同的时间设置,如果计算步长设置得越长,则实际的执行时间就越短。7.3.2解算器选项

在解算器选项解算类型(Tyep)中,有变步长(Variable-step)和定步长(Fixed-step)两种。对于变步长选项,在算法(Solver)选项中列出了多种变步长解算方法,对于连续系统,默认的算法ode45即为最佳算法,建议其对应的最大步长(Maxstepsize)、最小步长(Minstepsize)和初始步长(Initialstepsize)使用默认(auto)值,如图7.15(a)所示。对于离散系统,Simulink一般默认选择定步长算法,如图7.15(b)所示,其中默认算法ode4即为最佳算法。图7.15Simulink解算器选项图7.16范德波(VandePol)微分方程的Simulink模型在仿真配置选项里,将图7.17中的Stoptime设置为15;在解算器选项中选择变步长的ode23算法。启动仿真,仿真结束后在MATLAB工作空间产生了变量tout、y1、y2。在MATLAB指令窗中输入指令并执行:

>>plot(tout,y1,‘r-.’,tout,y2,‘LineWidth’,3)

>>legend(‘x(t)’,‘dx(t)/dt’,2)

>>gridon

结果如图7.17所示。图7.17范德波(VandePol)微分方程的Simulink实现图7.18范德波(VandePol)微分方程的相轨迹图7.19关于模块操作的子菜单图7.20数学函数模块的参数设置

【例7-3】某饱和非线性系统如图7.21所示,求该系统的单位阶跃响应。图7.21饱和非线性系统创建Simulink模型,如图7.22所示。图7.22饱和非线性系统的Simulink模型传递函数(TransferFcn)模块位于图7.1界面上的“Continuous”模块库内,将该模块添加到模型窗中,双击该模块,进入传递函数(TransferFcn)模块的参数设置界面。输入设计中的参数值,如图7.23所示。图7.23传递函数(TransferFcn)模块的参数设置图7.24饱和非线性系统的阶跃响应

7.4子系统及其封装

对于简单的动态系统,涉及的元件较少,功能简单,可以用Simulink系统建模仿真。但对于大型复杂系统,由于涉及的模块比较多,直接由基本模块构成的Simulink模型会非常庞大和复杂,模型中的信号流向也不容易辨认,给模型的检测和调试都带来了麻烦。因此,针对庞大的模型,用户可以将各个独立功能部分封装成子系统(Subsystem)模块,这样整个系统的结构和层次变得清晰明了,而且由于各独立功能子模块进行了封装,可移植性也大大加强。7.4.1子系统的创建

正如函数文件中的子函数,Simulink模型中也存在子系统。创建子系统的方法有两种:

(1)在已经建立好的模型中创建子系统。

【例7-4】(续例7-3)创建子系统示例。

将上例Simulink模型“MATLABFcn”模块替换为“CommonlyUsedBlocks”模块库中的“saturation”模块,将文件命名为exm4并保存。在“exm4.mdl”窗口中,用鼠标拖出虚线框,框住需要加入子系统的模块。然后右击鼠标,在打开的菜单选项里选择“CreatSubsystem”,如图7.25(a)所示。图7.25(b)中的模块名默认为“Subsystem”,用户可以修改模块名称。图7.25创建子系统演示图7.26子系统模型窗

(2)在仿真模型中使用Subsystem模块建立空白子系统。

选择Parts&Subsystems子模块库中的Subsystem模块,双击该模块,可以编辑子系统的模型。在空白的子系统中,只有一个输入端口和一个输出端口。用户还可以在该模块中添加输入和输出端口。7.4.2封装子系统

1.封装子系统的步骤

封装子系统的步骤为:

(1)选中需要封装的子系统,单击鼠标右键,在弹出的菜单中选择“Mask”→“CreatMask...”,打开如图7.27所示的封装编辑器(MaskEditor)对话窗。图7.27封装编辑器对话窗

(2)设置封装编辑器中的各项选项,单击“OK”、“Apply”即可。

封装编辑器对话窗用于创建自定义的子系统图标和参数选项,完成初始化封装后的子系统参数以及为子系统创建在线使用说明。

2.封装编辑器(MaskEditor)

1)图标(Icon&Ports)选项及其设置

封装编辑器对话窗中的图标(Icon)选项如图7.28所示,它主要用于设置子系统封装的图标,还包括创建描述文本、数学模型等。图7.28图标选项设置窗口

2)参数(Parameters)选项及其设置

参数(Parameters)选项用来封装子系统模型中的变量名称以及相应的提示,MATLAB7.X和8.X在这个界面调整较大。图7.29分别给出了两种界面。图7.29参数(Parameters)选项

3)初始化(Initialization)选项及其设置

初始化选项如图7.30所示。初始化指令(Initializationcommands)用于输入合法的执行指令,用于设置子系统模块

的初始化信息,包括变量的初始值设定、参数的相关运算含义等。图7.30初始化(Initialization)选项

4)文档(D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论