第六章Simulink使用基础.ppt
Matlab程序设计,第六章 Simulink使用基础,Matlab程序设计,Simulink简介 Simulink是MATLAB的重要组成部分,提供建立系统模型、选择仿真参数和数值算法、启动仿真程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能。,Matlab程序设计,1 启用Simulink并建立系统模型,1)启动Simulink有两种方式:(1)用命令行方式启动Simulink。即在MATLAB的命令窗口中直接键入如下命令:simulink(2)使用工具栏按钮启动Simulink。即用鼠标单击MATLAB工具栏中的Simulink按钮。,2)Simulink的退出为了退出Simulink,只要关闭所有模型编辑窗口和Simulink模块库浏览器窗口即可。,3)Simulink的基本模块Simulink的模块库提供了大量模块。单击模块库浏览器中Simulink前面的“+”号,将看到Simulink模块库中包含的子模块库,单击所需要的子模块库,在右边的窗口中将看到相应的基本模块,选择所需基本模块,可用鼠标将其拖到模型编辑窗口。同样,在模块库浏览器左侧的Simulink栏上单击鼠标右键,在弹出的快捷菜单中单击Open the Simulink Libray 命令,将打开Simulink基本模块库窗口。单击其中的子模块库图标,打开子模块库,找到仿真所需要的基本模块。,Matlab程序设计,模块库和工具箱,说明栏,子模块库,Matlab程序设计,Simulink公共模块库,Continuous(连续系统模块库)Discrete(离散系统模块库)3.Functions&Tables(函数与表库)4.Math(数学运算库)5.Nonlinear(非线性系统模块库)6.Signals&Systems(信号与系统模块库)7.Sinks(系统输出模块库)8.Sources(系统输入模块库)9.Subsystems(子系统模块库),Matlab程序设计,Simulink的公共模块库,Matlab程序设计,连续系统模块库及其功能,Matlab程序设计,离散系统模块库及其功能,Matlab程序设计,系统输出模块库及其功能,Matlab程序设计,系统输入模块库及其功能,Matlab程序设计,构建Simulink框图,例:输入为一个正弦波信号,输出为此正弦波信号与一个常数的乘积。要求建立系统模型,并以图形方式输出系统运算结果。,系统输入:系统输出:,t0,Matlab程序设计,1 模块选择:欲建立此简单系统的模型,需要如下的系统模块:(1)系统输入模块库Sources中的Sine Wave模块:产生一个正弦波信号。(2)数学库Math中的Gain模块:将信号乘上一个常数(即信号增益)。(3)系统输出库Sinks中的Scope模块:图形方式显示结果。,Matlab程序设计,Matlab程序设计,2 连线:按照系统的信号流程将各系统模块正确连接起来。步骤如下:(1)将光标指向起始块的输出端口,此时光标变成“+”。(2)单击鼠标左键并拖动到目标模块的输入端口,在接近到一定程度时光标变成双十字。这时松开鼠标键,连接完成。完成后在连接点处出现一个箭头,表示系统中信号的流向,Matlab程序设计,连接系统模块还有如下更有效的方式:(1)使用鼠标左键单击起始模块。(2)按下Ctrl键,并用鼠标左键单击目标块。,Matlab程序设计,模块操作,1.模块的复制 1)可以使用鼠标右键单击并拖动某个块进行拷贝。2)在选中所需的模块后,使用Edit菜单上的 Copy 和Paste 3)使用热键Ctrl+C和Ctrl+V。4)在选定的模块上点击右键,在弹出菜单上的 Copy 和Paste。,Matlab程序设计,2.模块的插入 1)对单输入单输出模块,可以将这个模块移到线上就可以自动连接。2)对于其他的模块,只能先删除连线,放置块,然后再重新连线。,系统模块的插入,Matlab程序设计,3.连线分支与连线改变 在某些情况下,一个系统模块的输出同时作为多个其它模块的输入,这时需要从此模块中引出若干连线,以连接多个其它模块。对信号连线进行分支的操作方式为:使用鼠标右键单击需要分支的信号连线(光标变成“+”),然后拖动到目标模块。,Matlab程序设计,对信号连线还有以下几种常用的操作:(1)使用鼠标左键单击并拖动以改变信号连线的路径。(2)按下Shift键的同时,在信号连线上单击鼠标左键并拖动,可以生成新的节点。(3)在节点上使用鼠标左键单击并拖动,可以改变信号连线路径。,Matlab程序设计,运行仿真,系统模块参数设置(1)双击系统模块,打开系统模块的参数设置对话框。(2)在参数设置对话框中设置合适的模块参数。2.运行仿真(1)选择菜单Simulation中的Start Simulation。(2)使用系统组合热键Ctrl+T。(3)使用模型编辑器工具栏中的Play按钮(即黑色三角形)。,Matlab程序设计,在使用Simulink对简单系统进行仿真时,影响仿真结果输出的因素有仿真起始时间、结束时间和仿真步长。对于简单系统仿真来说,不管采用何种求解器,Simulink总是在仿真过程中选用最大的仿真步长。,Matlab程序设计,Matlab程序设计,3 系统仿真参数设置 在缺省情况下,Simulink默认的仿真起始时间为0 s,仿真结束时间为10 s。设置仿真时间的方法为:选择菜单Simulation中的Simulation Parameters(或使用快捷键Ctrl+E),打开仿真参数设置对话框,在Solver选项卡中设置系统仿真时间区间。,Matlab程序设计,系统仿真时间设置,Matlab程序设计,框图的视图调整视图调整的方法如下所述:(1)使用View菜单控制模型在视图区的显示,用户可以对模型视图进行任意缩放。(2)使用系统热键R(放大)或V(缩小)。(3)按空格键可以使系统模型充满整个视图窗口。,Matlab程序设计,模块的名称操作 在使用Simulink中的系统模块构建系统模型时,Simulink会自动给系统模型中的模块命名,对于系统模型中相同的模块,Simulink会自动对其进行编号。一般对于简单的系统,可以采用Simulink的自动命名;但对于复杂系统,给每个模块取一个具有明显意义的名称非常有利于系统模型的理解与维护。,Matlab程序设计,(1)模块命名:使用鼠标左键单击模块名称,进入编辑状态,然后键入新的名称。(2)名称移动:使用鼠标左键单击模块名称并拖动到模块的另一侧,或选择Format菜单中的Flip Name翻转模块名称。(3)名称隐藏:选择Format菜单中的Hide Name隐藏系统模块名称。注意:系统模型中模块的名称应当是唯一的,否则Simulink会给出警告并自动改变名称。,Matlab程序设计,系统框图注释,在系统模型编辑器的背景上双击鼠标左键以确定添加注释文本的位置,并打开一个文本编辑框,用户便可以在此输入相应的注释文本。输入完毕后,使用鼠标左键单击以退出编辑并移动文本位置(编辑框未被选中情况下)到合适的地方。在文本对象上单击鼠标右键,可以改变文本的属性如大小、字体和对齐方式等。在任何时候都可以双击注释文本进行编辑。,Matlab程序设计,信号标签,生成信号标签(1)使用鼠标左键双击需要加入标签的信号(即系统模型中与信号相对应的模块连线),这时便会出现标签编辑框,在其中键入标签文本即可。当一个信号定义了标签后,从这条信号线引出的分支线会继承这个标签(2)用鼠标左键单击信号连线,然后使用Edit菜单下的 Signal Properties项,在打开的界面中编辑信号的名称,而且还可以使用这个界面对信号作简单的描述并建立HTML文档链接。,Matlab程序设计,Simulink子系统,所谓的子系统可以理解为一种“容器”,此容器能够将一组相关的模块封装到一个单独的模块中,并且与原来系统模块组的功能一致。,Matlab程序设计,1.子系统生成,在已有的系统模型中建立子系统:首先选中需要放置到子系统中的模块与信号;然后选择Edit菜单下的Create Subsystem,即可建立子系统建立空的子系统:使用Subsystems模块库中的模块建立子系统。这样建立的子系统内容为空,然后双击子系统对其进行编辑。,Matlab程序设计,【例】,系统模块参数设置,Matlab程序设计,系统仿真及结果输出,子系统建立:选择模块生成子系统,Matlab程序设计,2.子系统操作,在生成子系统之后,子系统相当于具有一定功能的系统模块,用户可以对子系统进行各种与系统模块相类似的操作。,子系统命名:命名方法与模块命名类似。子系统编辑:用鼠标左键双击子系统模块图标,打开子系统以对其进行编辑。子系统的输入:使用Sources模块库中的Inport输入模块(即In1模块)作为子系统的输入端口。子系统的输出:使用Sinks模块库中的Outport输出模块(即Out1模块)作为子系统的输出端口。,Matlab程序设计,3 子系统基本类型,(1)使能子系统:是指当控制信号的值为正时,子系统开始执行。(2)触发子系统:是指当控制信号的符号发生改变时(也就是控制信号发生过零时),子系统开始执行。触发子系统的触发执行有三种形式:控制信号上升沿触发:控制信号具有上升沿形式。控制信号下降沿触发:控制信号具有下降沿形式。控制信号的双边沿触发:控制信号在上升沿或下降沿时触发子系统。(3)使能触发子系统,Matlab程序设计,Matlab程序设计,Simulink与MATLAB的接口,1 由MATLAB工作空间变量设置系统模块参数,(1)直接使用MATLAB工作空间中的变量设置模块参数。(2)使用变量的表达式设置模块参数。,2 将信号输出到MATLAB工作空间中,使用Sinks模块库中的To Workspace 模块,可以轻易地将信号输出到MATLAB工作空间中,Matlab程序设计,3 使用工作空间变量作为系统输入信号 使用Sources模块库中的From Workspace模块可以将MATLAB工作空间中的变量作为系统模型的输入信号。变量的格式:,t=0:time_step:final_time;%表示信号输入时间范围与时间步长x=func(t);%表示在每一时刻的信号值input=t,x;%表示信号的输入向量,输入变量第一列须为时间序列,接下来的各列代表信号的取值,MATLAB工作空间变量作为系统输入信号,