合肥工业大学MATLAB基础与应用课件8MATLAB Simulink仿真_第1页
合肥工业大学MATLAB基础与应用课件8MATLAB Simulink仿真_第2页
合肥工业大学MATLAB基础与应用课件8MATLAB Simulink仿真_第3页
合肥工业大学MATLAB基础与应用课件8MATLAB Simulink仿真_第4页
合肥工业大学MATLAB基础与应用课件8MATLAB Simulink仿真_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第八章

MATLAB

Simulink

仿真Simulink的基本操作Simulink模块库与系统仿真Simulink子系统与模块封装Simulink仿真实例合肥工业大学《MATLAB基础与应用》8.1

Simulink的基本操作8.1.1

Simulink的启动打开MATLAB,在命令窗口输入simulink后按回车键或用鼠标单击MATLAB主窗口工具栏上的Simulink快键命令按钮,即可启动Simulink,如图8.1所示。图8.1

Simulink启动窗口8.1

Simulink的基本操作Simulink启动后会在桌面弹出Simulink模块库浏览器(Simulink

LibraryBrowser)窗口,其中左侧列出的是模块库和工具箱,右侧列出的是左侧模块对应的子模块库;如图8.2所示。图8.2

Simulink模块库浏览器窗口8.1

Simulink的基本操作8.1.2

Simulink模型窗口的建立在MATLAB主菜单中,选择File菜单中New菜单项的Simulink

Model命令,便可打开模型编辑窗口,如图8.3所示。在模型窗口中用户可通过选择模块库中的仿真模块来建模和仿真。图8.3

Simulink模型编辑窗口8.2

Simulink模块库与系统仿真8.2.1

Simulink模块库Simulink的模块库提供了大量模块。单击模块库浏览器中Simulink前面的符号,将看到Simulink模块库中包含的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。常见的Simulink公共模块库如图8.4所示。图8.4

Simulink公共模块库【例8.1】利用Simulink设计一个简单模型,将一时间信号输出到示波器中。解题基本步骤如下:在MATLAB中打开Simulink模块库浏览器(Simulink

Library

Browser)窗口。选择菜单File→New→Model,新建一个名为untitled的空白模型窗口。在空白模型窗口右侧的子模块窗口中,单击Source子模块库前的“+”号便可看到各种输入源模块。用鼠标单击所需的输入信号源模块Clock(时间信号),将其拖放到的空白模型窗口untitled,则Clock模块就被添加到untitled窗口;用同样的方法打开接收模块库Sinks,选择其中的Scope模块(示波器)并拖放到

untitled窗口中。在untitled窗口中,用鼠标指向Clock右侧的输出端,当光标变为十字符时,按住鼠标拖向Scope模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,即建成了一个简单的模型,如图8.5所示。开始仿真。单击untitled模型窗口中的“开始仿真”图标,或者选择菜单Simulink→Run,则仿真开始。双击Scope模块出现示波器显示屏,结果如图8.6所示。8.2

Simulink模块库与系统仿真8.2

Simulink模块库与系统仿真图8.5

Simulink模型窗口图8.6仿真结果(8)保存模型,单击工具栏的图标,将该模型保存为Ex0801.mdl文件。8.2

Simulink模块库与系统仿真8.2.2

Simulink环境下的仿真运行1.设置仿真参数在系统仿真过程中,需先对仿真算法、输出模式等各种仿真参数进行设置,如图8.9所示。图8.9仿真参数设置对话框8.2

Simulink模块库与系统仿真启动系统仿真与仿真结果分析设置完仿真参数后,从Simulation中选择Run菜单项或单击模型编辑窗口中的快键命令按钮,便可启动对当前模型的仿真。为了观察仿真结果的变化轨迹,可以采用三种方法:把输出结果送给Scope模块或XY

Graph模块。把仿真结果送到To

File模块并作为返回变量,默认文件名的后缀为.mat,然后使用MATLAB命令画出该变量的变化曲线。把输出结果送到To

Workspace模块,将结果直接存入工作空间,然后用MATLAB命令画出该变量的变化曲线。8.2

Simulink模块库与系统仿真【例8.2】用Simulink创建一个正弦信号的仿真模型。本例解题的基本步骤如下:打开Simulink模块库浏览器(Simulink

Library

Browser)窗口,如图

8.10所示。新建一个名为untitled的空白模型窗口。图8.10

Simulink

Library

Browser8.2

Simulink模块库与系统仿真用鼠标单击Source子模块库中的输入信号源模块Sine

Wave(正弦信号),将其拖放到的空白模型窗口untitled,如图8.11所示。用同样的方法打开接收模块库Sinks,选择其中的Scope模块(示波器)并拖放到untitled窗口中。图8.11

Simulink界面8.2

Simulink模块库与系统仿真在untitled窗口中,将两个模块连接起来,建成一个简单的模型,如图8.12所示。开始仿真。单击untitled模型窗口中的“开始仿真”图标,则仿真开始。双击Scope模块出现示波器显示屏,可以看到正弦波形,如图8.13所示。图8.13仿真结果图8.12

Simulink模型窗口(7)保存模型。单击工具栏上的图标,将该模型保存为Ex0802.mdl文件。8.3

Simulink子系统与模块封装8.3.1

Simulink子系统的建立建立子系统有两种方法:通过Subsystem模块建立子系统和通过已有的模块建立子系统。通过Subsystem模块建立子系统操作步骤如下:先打开Simulink模块库浏览器,新建一个空白模型编辑窗口。打开Simulink模块库中的Ports

&

Subsystems模块库,将

Subsystem模块添加到模型编辑窗口中,如图8.14所示。双击Subsystem模块,Simulink会在当前窗口或一个新的模型窗口中打开子系统,如图8.15所示。用户可将要组合的模块添加到该窗口中,这样就建好了一个子系统。子系统窗口中的Inport模块表示来自于子系统外的输入,Export模块表示外部输出。8.3

Simulink子系统与模块封装在图8.15的基础上,再添加一个In1模块、一个Add模块,并用线连接起,如图8.16(a)所示。原来的子系统也变成了新的子系统,这个子系统表示对两个外部输入求和,并将结果通过Export模块输出到子系统外的模块,如图8.16(b)所示。图8.14

Simulink模型窗口图8.15子系统模型窗口图8.16(a)新的子系统模型窗口图8.16(b)新的子系统模型窗口8.3

Simulink子系统与模块封装【例8.3】用Simulink创建一个子系统,求n个自然数之和。基本步骤如下:打开Simulink模块库浏览器,新建一个名为untitled的空白模型窗口。添加模块。将Sources子模块库中的Constant模块、Ports

&

Subsystems模块库

中的For

Iterator

Subsystem模块、Sinks模块库中的Display模块依次添加到模型编辑窗口中并连接,如图8.17所示。打开子系统模块。双击图8.17中r

For

Iterator

Subsystem模块,打开默认子系统模块,如图8.18所示。图8.17

Simulink模型窗口图8.18默认子系统模块8.3

Simulink子系统与模块封装设置模块属性。在图8.18的模型窗口中双击ForIterator模块,将ForIterator模块参数对话框中的Statewhenstarting参数设置为reset,将Iteration

limitsource参数设置为external,并选择Show

iteration

variable复选框,如图8.19所示。在子系统中添加模块。将Commonly

Used

Blocks子模块库中的Data

TypeConversion模块、Math

Operations模块库中的Add模块、Discrete模块库中的UnitDelay模块依次添加到模型编辑窗口中并连接,如图8.20所示。图8.19模块参数设置对话框图8.20子系统模块8.3

Simulink子系统与模块封装返回主系统,双击常数模块Constant,打开参数对话框,将参数Constant

Value的值设为100,如图8.21所示。开始运行。单击untitled模型窗口中的“开始仿真”图标,结果如图8.22所示。由运行结果可知前100个自然数之和为5050,这与理论计算结果是一致的。图8.21常数模块参数设置对话框图8.22运行结果8.3

Simulink子系统与模块封装通过已有的模块建立子系统操作步骤为:先选择要建立子系统的模块,不包括输入端口和输出端口。选择模型编辑窗口Diagram菜单中的Create

Subsystem

from

Selection命令,或者按快捷键Ctrl+G,就建好了子系统,系统会自动把输入模块和输出模块添加到子系统中,并把原来的模块变为子系统的图标。【例8.4】为图8.22所示子系统模块建立一个新的子系统。基本步骤如下:在图8.22中的编辑模型窗口中,单击鼠标左键并拖动,全选所有模块,如图8.23所示。单击模型编辑窗口Diagram菜单中的Create

Subsystem

from

Selection命令,

Simulink会将所选模块用Subsystem模块代替,如图8.24所示。8.3

Simulink子系统与模块封装图8.23选择子系统中全部模块图8.24新的子系统模块8.3

Simulink子系统与模块封装8.3.2

子系统的条件执行条件执行子系统也是一个子系统,但在模型中是否执行条件子系统则取决于其他条件信号。常见的有以下几种类型的条件执行子系统。1.使能子系统使能子系统(Enabled

Subsystem)模块可作为单个单元执行,用户可以按在子系统内放置Enable模块的方式来创建使能子系统,并设置使能子系统内Enable端口模块中的States

when

enabling参数来配置子系统内的模块状态,但它只有在驱动子系统使能端口的输入信号大于零时才会执行。建立使能子系统的方法是:打开Simulink模块库中的Ports

&Subsystems模块库,将Enable模块复制到子系统模型中,则系统的图标发生了变化。8.3

Simulink子系统与模块封装【例8.5】建立一个用使能子系统控制正弦信号为半波整流信号的模型。基本步骤如下:打开Simulink模块库浏览器,新建一个名为untitled的空白模型窗口。添加模块。模型以Sine

wave(正弦信号)为输入信号源,以

Enabled

Subsystem(使能子系统)为控制模块,以Scope(示波器)为接收模块,依次添加模块并连接模块,将Sine

wave模块的输出作为

Enabled

Subsystem的控制信号,模型如图8.25所示。设置模块参数。打开Enable模块对话框,如图8.26所示,States

when

enabling参数包括两个选项:held选项表示使状态保持为最近的值,reset选项表示使状态返回到初始条件。Enable模块对话框的另一个选项是Show

output

port复选框,选择这个选项表示允许用户输出使能控制信号。8.3

Simulink子系统与模块封装图8.25

使能子系统模型

图8.26

Enable模块参数设置打开使能子系统中每个Export输出端口模块的对话框,如图8.27所示。8.3

Simulink子系统与模块封装(4)开始仿真。由于EnabledSubsystem的控制为正弦信号,大于零时执行输出,小于零时就停止,因此示波器显示为半波整流信号,示波器的显示如图8.28所示。图8.27

Out1模块参数设置图8.28示波器显示的半波整流信号8.3

Simulink子系统与模块封装触发子系统触发子系统(Triggered

Subsystem)是指当触发事件发生时开始执行子系统。与使能子系统相类似,触发子系统的建立要把Ports

&

Subsystems模块库中的Trigger模块添加到子系统中,或直接选择Triggered

Subsystem模块来建立触发子系统。【例8.6】建立一个用触发子系统控制正弦信号输出阶梯波形的模型。基本步骤如下:打开Simulink模块库浏览器,新建一个名为untitled的空白模型窗口。添加模块。模型以Sine

wave(正弦信号)为输入信号源,以

Triggered

Subsystem(触发子系统)为控制模块,以Scope(示波器)为接收模块,选择Sources模块库中的Pulse

Generator模块为控制信号。连接模块,将Pulse

Generator模块的输出作为Triggered

Subsystem的控制信号,模型如图8.29所示。8.3

Simulink子系统与模块封装(3)设置模块参数。打开Trigger模块的参数对话框,如图8.30所示,其中Trigger

type参数包括上升沿、下降沿、双边沿、函数调用触发。当触发事件发生时,触发子系

统不能重新设置它们的状态,任何离散模块的状态在两次触发事件之间会

一直持续下去。图8.29触发子系统模型图8.30

Trigger模块参数设置8.3

Simulink子系统与模块封装(4)开始仿真。由于Triggered

Subsystem的控制为Pulse

Generator模块的输出,示波器输出如图8.31所示。图8.31示波器显示的触发信号8.3

Simulink子系统与模块封装3.触发使能子系统所谓使能加触发子系统(Enabled

and

Triggered

Subsystem),就是把Enable和Tirgger模块都加到子系统中,使能控制信号和触发控制信号共同作用子系统的执行,即前两种子系统的综合。该系统的行为方式与触发子系统相似,但只有当使能控制信号为正值时,触发使能子系统才执行一次。8.3

Simulink子系统与模块封装8.3.3

Simulink子系统的封装所谓子系统的封装(Masking),是指为子系统定制对话框和图标,使子系统本身有一个独立的操作界面,把子系统中各模块要设置的参数设为变量进行封装,使变量可在封装系统的参数设置对话框中统一进行设置,从而不必打开每个模块进行参数设置,进而使子系统的使用更加便捷且不易出错。封装子系统的步骤:创建子系统。选择要封装的子系统并双击打开,给需要进行赋值的参数指定一个变量名。返回子系统,单击菜单栏中的Diagram选项或单击鼠标右键,选择

Mask→Create

Mask,即可打开封装对话框。在封装对话框中设置封装子系统的相关参数,主要有Icon

&

Ports、

Parameters、I

温馨提示

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

评论

0/150

提交评论