SIMULINK仿真_精品文档.ppt
《SIMULINK仿真_精品文档.ppt》由会员分享,可在线阅读,更多相关《SIMULINK仿真_精品文档.ppt(54页珍藏版)》请在冰豆网上搜索。
第第4章章Simulink仿真环境仿真环境Simulink仿真环境仿真环境lSimulink是一个以MATLAB为基础的软件包,用于对动态系统进行建模和仿真。
它使得MATLAB的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。
l【本章学习目标】l熟悉Simulink的操作环境。
l掌握绘制系统模型的方法。
l掌握子系统模块的建立与封装技术。
l了解S函数的功能与设计方法。
4.1初识初识Simulink一个简单的仿一个简单的仿真实例真实例l在MATLAB的命令窗口输入Simulink,或单击MATLAB主窗口工具栏上的“Simulink”命令按钮即可启动Simulink。
Simulink启动后会显示如图4.1所示的Simulink模块库浏览器(SimulinkLibraryBrowser)窗口。
l1模型元素l一个典型的Simulinnk模型包括以下3种元素。
l信号源(Source)l被模拟的系统模块l信号输出(Sink)l2仿真步骤l
(1)建立系统仿真模型,包括添加模块、设置模块参数、进行模块连接等操作。
l
(2)设置仿真参数。
l(3)启动仿真并分析仿真结果。
输入系统输出l3仿真实例l【例4.1】利用Simulink仿真曲线。
l正弦信号由信号源模块库(Sources)中的SineWave模块提供,求和用数学运算模块库(MathOperations)中的数学函数模块(Add)产生,再用信号输出模块库(Sinks)中的示波器模块(Scope)输出波形l
(1)打开一个名为untitled的模型编辑窗口l
(2)将所需模块添加到模型中。
l(3)用连线将各个模块连接起来组成系统仿真模型l(4)设置模块参数并连接各个模块组成仿真模型。
模型建好后,将模型以模型文件的格式(扩展名为.mdl)存盘。
Simulink仿真环境仿真环境l(5)设置系统仿真参数。
l(6)仿真操作。
4.2仿真模型的建立仿真模型的建立l4.2.1Simulink的基本模块l模块是构成系统仿真模型的基本单元。
构建系统仿真模型主要涉及Simulink模块的操作。
l基本模块库l专业模块库Simulink仿真环境仿真环境l4.2.2模块操作l1添加与删除模块l2选取模块l3复制模块l4模块外形的调整l5模块名的处理Simulink仿真环境仿真环境l4.2.3模块的连接l1连接两个模块l2模块间连线的调整l3连线的分支l4标注连线4.3系统的仿真与分析系统的仿真与分析l4.2.4模块的参数和属性设置l1模块的参数设置l2模块的属性设置lDescription:
对该模块在模型中的用法进行说明。
lPriority:
规定该模块在模型中相对于其他模块执行的优先顺序。
lTag:
用户为模块添加的文本格式的标记。
l“BlockAnnotation”选项卡中指定在该模块的图标下显示模块的哪个参数。
“Callbacks”选项卡中指定当对该模块实施某种操作时需要执行的MATLAB命令或程序。
Simulink仿真环境仿真环境l4.3.1设置仿真参数l打开系统仿真模型,从模型编辑窗口的“Simulation”菜单中选择“ConfigurationParameters”命令,打开一个仿真参数对话框,在其中可以设置仿真参数。
在此对话框中,仿真参数设置被分为8类。
lSolver类:
用于设置仿真起始和停止时间,选择微分方程求解算法并为其规定参数,以及选择某些输出选项。
lDataImport/Export类:
用于管理工作空间数据的导入和导出。
lOptimization类:
用于设置仿真优化模式。
lDiagnostics类:
用于设置在仿真过程中出现各类错误时发出警告的等级。
lHardwareImplementation类:
用于设置实现仿真的硬件。
lModelReferencing类:
用于设置参考模型。
lSimulationTarget类:
用于设置仿真模型目标。
lHDLCoder类:
用于设置通过自动代码生成技术将设计算法生成HDL代码的方法l1Solver类设置l
(1)设置仿真起始和停止时间(Simulinktime)l
(2)仿真算法的选择(Solveroptions)l在“Type”编辑框中设定算法类别:
固定步长(Fixed-step)和变步长(Variable-step)算法,在“Solver”编辑框中选择具体算法。
Simulink仿真环境仿真环境l2DataImport/Export类设置l矩阵形式。
MATLAB把矩阵的第一列默认为时间向量,后面的每一列对应每一个输入端口,矩阵的第一行表示某一时刻各输入端口的输入状态。
另外,也可以把矩阵分开来表示,即MATLAB默认的表示方法t,u,其中t是一维时间列向量,表示仿真时间,u是和t长度相等的n维列向量(n表示输入端口的数量),表示状态值。
例如,在命令窗口中定义t和u:
lt=(0:
0.1:
4);lu=sin(t),cos(t).*sin(t),exp(-2*t).*sin(t);Simulink仿真环境仿真环境l包含时间数据的结构形式。
结构变量包含若干个成员,对结构成员的引用格式为:
结构变量名.成员名。
在结构中必须有成员:
time和signals。
在time成员中包含一个列向量,表示仿真时间;在signals成员中包含一个数组,数组中的每个元素对应一个输入端口,并且每个元素必须包含一个名字同样不能改变的values成员,values成员也包含一个列向量,对应于输入端口的输入数据。
例如,对于上例,若改为包含数据的结构输入,则命令格式如下:
lt=(0:
0.1:
4);lA.time=t;lA.signals
(1).values=sin(t);lA.signals
(2).values=cos(t).*sin(t);lA.signals(3).values=exp(-2*t).*sin(t);Simulink仿真环境仿真环境l
(2)保存到工作空间(Savetoworkspace)l在Savetoworkspace栏中,可以选择的选项有:
Time(时钟)、States(状态)、Output(输出端口)、Finalstate(最终状态)和Signallogging(信号)。
同载入数据的形式一样,保存数据也有矩阵、结构和包含时间数据的结构3种形式Simulink仿真环境仿真环境l(3)保存选项(Saveoptions)l在保存选项栏中的“Format”下拉列表中有矩阵、结构和包含时间的结构3种选择。
“Limitdatapointstolast”用来限定保存到工作空间中的数据的最大长度。
l输出选项(Outputoptions)有:
lRefineoutput(细化输出)lProduceadditionaloutput(产生附加输出)lProducespecifiedoutputonly(仅在指定的时刻产生输出)Simulink仿真环境仿真环境l4.3.2仿真结果分析l为了观察仿真结果的变化轨迹可以采用3种方法。
l
(1)把输出结果送给Scope模块或者XYGraph模块。
Scope模块显示系统输出量对于仿真时间的变化曲线,XYGraph模块显示送到该模块上的两个信号中的一个对另一个的变化关系。
l
(2)把仿真结果送到输出端口并作为返回变量,然后使用MATLAB命令画出该变量的变化曲线。
l(3)把输出结果送到ToWorkspace模块,从而将结果直接存入工作空间,然后用MATLAB命令画出该变量的变化曲线。
l【例4.2】利用Simulink仿真求l首先打开一个模型编辑窗口,将所需模块添加到模型中。
l设置模块参数并连接各个模块组成仿真模型。
设置系统仿真停止时间为2s。
单击模型编辑窗口中的Startsimulation按钮或选择模型编辑窗口Simulation菜单中的Start命令开始系统仿真。
系统仿真结束后,显示模块Display,显示仿真结果为4。
l4.3.3系统仿真实例l【例4.3】有初始状态为0的二阶微分方程y+1.5y+4y=2u(t)+4u(t),其中u(t)是单位阶跃函数,试建立系统模型并仿真。
l方法1:
用微分/积分器直接构造求解微分方程的模型。
l把原微分方程改写为ly=2u(t)+4u(t)1.5y4ylu经微分作用得u,y经积分作用得y,y再经积分模块作用就得y,而u、u、y和y经代数运算又产生y,据此可以建立系统模型并仿真。
l
(1)利用Simulink模块库中的基本模块建立系统模型
(2)设置系统仿真参数。
在模型编辑窗口的Simulationstoptime栏把仿真的停止时间设置为5。
(3)仿真操作。
示波器示波器示波器属性对话框示波器属性对话框示波器属性对话框示波器属性对话框示波器纵坐标设置示波器纵坐标设置4.4子系统与封装子系统与封装l子系统把功能上有关的一些模块集中到一起保存,能够完成几个模块的功能。
l4.4.1子系统的建立l1通过Subsystem模块建立子系统l新建一个仿真模型,打开Simulink模块库中的Ports&Subsystems模块库,将Subsystem模块添加到模型编辑窗口中。
双击Subsystem模块打开一个Subsystem窗口,窗口中已经自动添加了一个输入模块和输出模块(表示子系统的输入端口和输出端口)。
将要组合的模块插入到输入模块和输出模块中间,一个子系统就建好了。
若双击该Subsystem模块,则打开原来的子系统内部结构窗口。
l2通过已有的模块建立子系统l先选择要建立子系统的模块,不包括输入端口和输出端口。
选择模型编辑窗口Edit菜单中的CreateSubsystem命令,这样,子系统就建好了,原来的模块变为子系统的图标。
l先建立PID控制器的模型l选中模型中所有模块,使用模型编辑窗口Edit菜单中的CreateSubsystem命令建立子系统,模型将被一个Subsystem模块取代l4.4.2子系统的条件执行l子系统的执行可以由输入信号来控制,用于控制子系统执行的信号称为控制信号,而由控制信号控制的子系统称为条件执行子系统。
l条件执行子系统分为l1使能子系统l使能子系统表示子系统在由控制信号控制时,控制信号由负变正时子系统开始执行,直到控制信号再次变为负时结束。
控制信号可以是标量也可以是向量。
l建立使能子系统的方法是:
打开Simulink模块库中的Ports&Subsystems模块库,将Enable模块复制到子系统模型中,则系统的图标发生了变化。
Simulink仿真环境仿真环境l2触发子系统l触发子系统是指当触发事件发生时开始执行子系统。
与使能子系统相类似,触发子系统的建立要把Ports&Subsystems模块库中的Trigger模块添加到子系统中或直接选择TriggeredSubsystem模块来建立触发子系统。
l触发形式由Trigger模块参数对话框(见图4.27)中“Triggertype”下拉列表中选择。
l
(1)rising(上跳沿触发)l
(2)falling(下跳沿触发)l(3)either(上跳沿或下跳沿触发)l(4)funtion-call(函数调用触发)l【例4.6】利用触发子系统将一锯齿波转换成方波。
l用SignalGenerator、TriggeredSubsystem和Scope模块构成如图4.28所示的子系统。
触发事件形式为“either”触发信号端接锯齿波3使能加触发子系统使能加触发子系统所谓使能加触发子系统就是把Enable和Tirgger模块都加到子系统中,使能控制信号和触发控制信号共同作用子系统的执行,也就是前两种子系统的综合。
该系统的行为方式与触发子系统相似,但只有当使能信号为正时,触发事件才起作用。
Simulink仿真环境仿真环境l4.4.3子系统的封装l所谓子系统的封装(Masking),就是为子系统定制对话框和图标,使子系统本身有一个独立的操作界面,把子系统中的各模块的参数对话框合成一个参数设置对话框,在使用时不必打开每个模块进行参数设置。
l选中所要封装的子系统,再选择模型编辑窗口Edit菜单中的“MaskSubsystem”命令,这时将出现封装编辑器(M