




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Simulink的使用 Matlab的Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。它使得Matlab的功能得到进一步的扩展,这种扩展表现在三个方面: (1)实现了可视化建模,在Windows环境下,用户可以通过简单的鼠标操作建立直观的系统模型,进行分析仿真。 (2)实现了多种环境间的文件共享与数据交换,甚至能够与硬件实现实时信息交换。 (3)把理论研究与工程实现有机地结合在一起。Simulink支持连续、离散及混合的线性系统和非线性系统,并且支持多采样率系统。其可视化建模体现在为用户提供了用方框图进行系统建模的图形接口.Simulink具有一个较为完整的模型库,包括源节点
2、(Source)、阱节点(Sink)、线性环节(Linear)、非线性环节(Nonlinear)、连线与接口(Connections)和其他环节(Extra),用户还可以根据需要定制和创建自己的模块。 Simulink模型具有分层的等级结构,用户可以采用由上到下或从下到上的方式构建系统模型。可以从全局的角度来考察系统,然后用鼠标双击其中的子系统模块,来查看下一级的内容,依此类推,可以看到系统模型的全部细节。这种方式帮助用户洞察整个系统模型的体系结构及其各个部分的相互关系。 定义完一个模型后,用户可以通过Simulink的菜单或者Matlab命令对它进行仿真。可以在仿真的同时显示仿真结果,非常实
3、用。除此之外,还可以在用户改变参数之后迅速观察到系统中发生的变化。Simulink的仿真结果可以输入到Matlab工作空间,进行事后处理或者可视化输出。 Simulink的实时工作间(Real-Time Workshop,以后简称RTW)直接从Simulink的系统框图自动生成C语言代码,这样一来,就允许在更广的计算机平台(包括实时硬件)上执行连续、时间离散及混合系统模型。Simulink RTW的Ada扩展的作用是直接从Simulink的系统框图自动生成Ada浯言代码。 1. 启动Simulink启动Simulink通常有三种方式:1)直接从Matlab指令窗口选取菜单File| New|
4、Modal命令,Matlab将会打开Simulink库浏览器和名为untitled的模型窗口。2)在Matlab命令窗口中键入Simulink命令,Matlab将会打开Simulink库浏览器。3)点击Matlab命令窗口工具条的图标,启动Simulink库浏览器。由启动Simulink的三种方式,要新建一个模型文件,至少可以采用两种方式:1)直接从Matlab指令窗口选取菜单File|New|Modal命令。2)先启动Simulink库浏览器,然后点击Simulink库浏览器的工具条中的“新建模型”图标,建立新的模型文件。如果模型文件已经存在,至少有三种方法打开模型文件:1)从Matlab指
5、令窗口选取菜单File|Open命令。2)先启动Simulink库浏览器,然后点击Simulink库浏览器的工具条中的“打开模型”图标,打开已经存在的模型文件,对它进行编辑、修改和仿真。3)在Matlab命令窗口中键入模型文件名称,不需要mdl后缀。Simulink用不同的窗口显示模块库、模型号和仿真输出图形结果这些窗口不是Matlab图形窗口,不能用句柄图形命令来操作。 2. Simulink例 本节通过一个实例,先简单地介绍一下Simulink环境,然后介绍如何使用Simulink进行系统建模、系统仿真。现在需要对一个正弦信号积分,显示正弦信号与积分结果,该模型的框图如图1所示。图1 目标
6、正弦积分模型要构建一个模型,必须先启动Matlab。然后在Matlab命令窗口下键入Simulink命令,便打开一个名为Simulink Library Browser的Simulink模块库浏览器。将鼠标指针移到Simulink库之上点击鼠标右键,将出现弹出菜单Open the Simulink Library;点击左键选择打开,则启动Simulink库的窗口界面。点击新建模型工具条按钮,创建一个新的系统模型,此时Simulink打开一个名为untitled的空白窗口.将新模型窗口移到屏幕的右侧,使屏幕上能够同时看到窗口的内容和模块库的内容。从模型的功能框图可以看出,该模型用到了如下模块库:
7、源节点库(正弦波模块)。阱节点库(观测器模块)。连续信号库(积分器模块)信号与系统库(多路转换器模块)。现在需要将所需的模块逐一拷贝到模型窗口中。在Simulink库浏览器中,将Simulink库浏览树展开,点击Sources选择源节点库,再在右边找到正弦波模块。将图中的Scope拖放到新建的模型窗口中。用同样的方法拷贝其他几个模块。每个模块的图标外面都有符号“>”,表示信号的输入输出,这些端口符号在模块连线以后将消失。进行模块间连线。将鼠标指针移到模块端口附近,鼠标指针变为“+”,按下左键,拖动鼠标到另一连接点,松开左键即可。在模块连线中,有一条线必须分支,分支线的画法与普通线的画法略
8、有不同。先将鼠标指针移到要分支的线上,按住Ctrl键,再按下左键,将鼠标拖到另一连接点,松开左键即可。为方便观察各个模块的名称及其数据,鼠标选取菜单View |Blockdata tips options的三个选项。此时将鼠标指针停在正弦波模块上,弹出窗口显示相应模块的名称、参数名称及参数数值、用户定义字符串。如果需要修改模块的属性,只需双击该模块,即可在其属性窗口中任意修改。在本例中,所有模块的属性都使用缺省值,关于如何设置各个模块的属性,后面会专门讨论。选择窗口菜单Simulation|Start,执行模型仿真。3.构建模型l 标准模块的选取构建Simulink模型的许多操作,如拷贝模块或
9、删除连线,都需要准确地选取这些对象。选取单一对象,鼠标点击即可。选取多个对象,其操作是按住Shift键,用鼠标逐一点击需要选取的对象。另外,模型窗口的菜单Edit|SelectAll命令可选择模型窗口中所有的对象。l 模块的编辑模块的编辑包括模块的移动、拷贝、剪切、粘贴和删除。所有这些操作都与Windows环境下的操作一样。l 模块属性的修改对模块进行多种格式设置,格式设置操作均由菜单Format中的命令完成。下面分别介绍几种常用的操作。1改变模块的方向菜单命令“Format|Flip Block,旋转模块180度;菜单命令“Format|Rotate Block",顺时针旋转模块9
10、0度。2.改变模块的尺寸该操作与在Word中改变图片尺寸的操作一模一样,先选中对象,再移动鼠标到适当位置按下左键,拖动员标即可。3改变模块的名称 ·在前面的例子中我们已经看到,模块下面都有相应的标题名称,用户可以根据实际情况对模块的标题进行修改。其操作相当简单,用鼠标点击模块标题名称,Simulink在模块名称外置一方框,删除现有标题,输入新标题,中西文皆可,最后在窗口的其他位置点击鼠标,修改工作完成。菜单命令Format|Flip Name改变模块名称的位置。菜单命令Format|Hide NameFormat|ShowName,显示或隐藏模块名称。菜单命令Format|Font,
11、显示字体设置对话框,改变模块的字体。在很多情况下,我们希望在系统框图中的适当位置显示各个模块的参数。Simulink提供了在模块图标下显示对应参数的功能,在实现时至少有两种方法。第一种方法:先选中模块,再运行菜单命令Edit|Block properties显示模块属性对话框, 然后在Attributes frmat string一栏中输入属性格式化字符串。在模块上点击鼠标右键,弹出菜单中同样有Block properties项,其功能与前者一样。第二种方法:使用函数set_param设置模块的AttributesFormatString为属性格式化字符串。属性格式化字符串是内嵌参数名称的任意
12、文本字符串(textstring)。内嵌参数名称由参数名称前力口上“<”、后面加上“>”构成,如“<priority>”。Simulink将属性格式化字符串中每个参数名称替换为对应的参数值,显示在模块图标下面。可以使用换行符(n)将每个参数显示为单独的一行,如对一个正弦波模块: Amp=<Amplitude>nFreq=<Frequency>如果参数值不是字符串或整数,Simulink将参数值显示为“NS”;如果参数名无效,则显示为“?”。l 模块的连接将鼠标指针置于模块间连线的适当位置,按下鼠标右键,鼠标指针变为“+”,拖动鼠标到合适的位置,释
13、放右键,窗口中出现一条箭头线;再从此箭头开始,按住鼠标右键或左键,拖动鼠标到合适的位置,依此类推,直到完成整个“折”线。l 构建子系统在系统模型不断变大、变复杂时,可以采用定义子系统的方式简化系统框图。运用子系可以减少模型窗口中显示模块的数目,并可将功能相关的模块集中在一起,使建立的系统框层次结构化。可以采用两种方法构建子系统:其一是在系统模型中添加Subsystem模块,然后将模块打添加内容;其二是先添加子系统中的模块,再将这些模块组合成子系统。本小节就分别介绍两种方法。1添加Subsystem模块方法这种方法构建子系统有三个步骤:1)从信号与系统库中拷贝添加Subsystem模块。2)双击
14、Subsystem打开Subsystem模块。3)同构建普通系统一样,为新建的子系统添加所需的模块。用Input模块表示从子系统外输入;用Output模块表示子系统对外的输出.2由现存模块组合子系统由现存模块组合子系统的操作可以分为两个步骤:1)将所有希望包括在子系统中的模块和连线选择在同一个框中,注意不可以逐一单独选择,不可以用SelectAll命令.2)从Edit菜单中选择Create Subsystem命令,Simulink将选中的模块用一个Subsystem模块代替.如果打开Subsystem模块,可以看到其内容。注意Simalink添加了Input和Output模块,表示子系统的输入
15、输出。l 模型文件的保存及其格式构建好一个模型后,选择菜单命令File|Save或File|SaveAs将模型存盘。文件是以ASCII形式存储的mdl文件,文件中包含了该模型的所有信息,既包括数学模型内涵,也包括外部框图的形状位置信息。如果是第一次保存某个模型,菜单命令Pile|Save将激活标准的文件保存对话框,指定文件路径与名称,点击“保存”按钮即可。值得注意的是模型文件的名称必须以字母开头,只能使用字母、数字和下划线,长度不大于31个字符。由于模型文件是以ASCII形式存储的,所以可以用type指令查看其内容,也可以用字处理器对它进行编辑修改。为了对模型文件有一个比较清楚的了解,现对其简
16、要介绍。准确地说,模型文件是一种结构化的ASCII文件,包括文件关键字和描述模型的参数、参数值,其结构如下:Model <模型参数名称> <模型参数值> . BlockDefaults <模块参数名称> <模块参数值> . AnnotationDefaults <标注参数名称> <标注参数值> . System <系统参数名称> <系统参数值> . Block <模块参数名称> <模块参数值> . Line <线条参数名称> <线条参数值> Branc
17、h <分支参数名称> <分支参数值> . Annotation <标注参数名称> <标注参数值> . 可以用记事本打开某个模型文件看一看,并且动手适当修改。虽然可以用文字编辑器对模型文件进行修改,而且在有些场合确实比较方便,但是建议不要这么做,除非对此有十分的把握。l 框图的打印菜单命令File|Print执行打印框图的操作。当我们运行打印命令时,Simulink首先显示打印对话框,该对话框允许选择需要打印的内容。打印工作支持以下选项:l 打印当前系统。l 打印当前系统与模型中所有级别比它高的系统。l 打印当前系统与模型中所有级别比它低的系统。l
18、 打印模型中所有的系统。l 打印时为每一框图添加边框。当选择选项Current system and below或All systems时,打印对话框中的两个复选框可用.选择复选框“Frame”,打印时为每一框图添加题头边框。先用Matlab边框编辑器定义一个有自己特色的题头边框,然后在Frame复选框后指定边框文件的路径,即可在模型框图上添加漂亮的边框。4.运行Simulink(1)仿真参数对话框在介绍运行Simulink之前,先介级仿真参数对话框。在仿真参数对话框中对各种参数进行设置与使用sim和simset命令的效果是一样的。Simulation| Simulation Paramete
19、rs仿真参数设置对话框,包含有5页不同的内容(如果没有安装RTW,将只有前4页内容)。1Solver页Solver页包括三个方面的设置内容:设置仿真的起止时间;选择算解程序并指定参数;选择输出选项。仿真时间的缺省值为0秒开始至10秒结束。注意仿真时间与真实时间是不一样的。比方说运行一个10秒的仿真通常就不需要10秒时间,仿真实际需要的时间与很多因素有关,包括模型的复杂程度、算解程序的步长、计算机的速度等。由于Simulink模型的仿真涉及到常微分方程的数值积分,对相同的问题、不同的算法会产生不同的效果,所以Simulink提供了多种算解程序,供用户根据系统的动态特性选择使用。更为详细的介绍请单
20、击help按钮查阅。输出选项有三种选择项:净化输出、产生附加输出、只产生特定输出。当仿真输出数据过于粗糙时,净化输出将自动产生附加输出点。净化系数是一个整数,指定任意时间点之间输出数据的数目。缺省净化系数为1。产生附加输出选项允许指定算解程序输出特定时间点的结果,当选择此项后,必须在Output Times栏中指定输出时间。这种情况下,输出结果将输出与附加输出融合在一起。只产生特定输出选项指定算解程序,只输出规定的时间点仿真结果。例如,某仿真在以下时间点输出:0, 25, 5, 85, 10现选择净化输出,并指定净化系数为2,则产生如下时间点的输出:0,125,25,375,5,675,85,
21、925,10如果选择产生附加输出,并指定附加输出时间为0:10,则产生如下时间点的输出:0, 1, 3, 4, 5, 6, 7, 8, 9, 10以及其他一些时间点(取决于算解程序的步长)。如果选择只产生指定输出,并指定附加输出时间为0:10,则产生如下时间点的输出:0, 1, 3, 4, 5, 6, 7, 8, 9, 10而不再有其他的输出点。2Workspace IO页在Simulink中进行仿真运算时,可以直接从工作空间中输入数据和初始状态,也可以将仿真结果输出到工作空间的变量中。所有这些都在仿真参数对话框的Workspace IO页中进行设置,如图7-22所示。该页的设置包括三部分内容
22、,其一是指定从工作空间中加载的内容,包括输入与初始状态两项内容;其二是指定输出到工作空间的数据,包括时间、状态、输出和最终状态四项内容;其三是保存的选项。 图7-22仿真参数对话框WorkspaceIO页从工作空间中加载数据时,先选中Input复选框,然后即可在复选框右边的输入栏中输入已经在工作空间中定义好的数据。当然用户最关心的是输入数据的格式,Simulink允许多种输入格式,可以是矩阵输入,带时间的结构输入,普通结构输入。当使用外部矩阵输入时,如果系统模型有n个输入,那么输入矩阵必须是n+l列的。例如,某模型有两个输入端,其中一个输入端接收两个信号,另一个输入端接收一个信号。假设在工作空
23、间中如下定义u和t:t=(0:0.1:1);u=sin(t),cos(t),4*cos(t);现在为该模型指定外部输入,仅需选中Input复选框即可,因为参数设置对话框中为模型设置的外部输入缺省值为t,u.如果在输入数据中指定的是工作空间中的一个结构,同样是可以的。此时的输入结构要求必须包含两个顶级字段:time和signals,signals字段包含每个输入端对应的信号的子结构,每个子结构必须包含values字段,values字段为对应每个输入端的输入列矢量。例如某系统模型有两个输入端,每个输入端输入一个信号。假设在工作空间中如下定义输入矢量a: a.time= (0:01:1); a.si
24、gnals(1).values=sin(a.time); a.signals(2).values=cos(a.time);现将a指定为该模型的外部输入,选定复选框Input,在其右边的输入框中键入字母a即可。选定Time、States、Output复选框,并指定相应的返回变量名称,如果需要指定多个返回变量,在变量名称之间加上逗号即可。在保存输出结果时,Simulink的采样率为模型的基采样速率。如果希望改变输出结果的采样率,则必须在模型中使用一个名为了To Workspace的模块。保存选项允许指定输出格式、限制输出数量。3Diagnostics页通过Diagnostics(诊断)页,可以指定
25、仿真过程中16种特殊事件和特定条件的理想动作:不动作,告警或报错,如图7-23所示。在本页中还提供仿真运算的两个选项:一致性检查和边界检查。一致性检查是检查Simulink ODE算解程序的某些假定的有效性的调试工具。其主要作用是保证模型的S函数与Simulink内建模块遵循相同的规则。由于一致性检查通常导致仿真性能显著下降,一般情况下将该项设置为off。边界检查的作用是在仿真过程中,Simulink检查模块是否在分配的内存空间以外执行写操作这种情况通常主要发生在当用户定义的S函数有bug时。如果边界检查使能,则每次运行模型中的任意模块时均执行这一检查,其结果是显著降低模型仿真速度。因此,为了
26、避免不必要地降低仿真速度,仅当怀疑自定义S函数有bugfl寸才使这一选项使能。4Advanced页Advanced页允许用户设置各种影响仿真性能的选项,如图7-24所示。由于该页涉及的均属于仿真中的高级设置,读者在实际工作需要时,可查看帮助文档进行适当设置,这里不再详细介绍。(2)用菜单命令运行仿真用菜单命令运行仿真,首先选择菜单命令Simulation | Simulationparameters,这一命令的快捷键为Ctrl-E,对仿真参数进行设置。在算解程序页设置仿真的起止时间、选择适当的算解程序、设置算解程序参数,并选择适当的输出选项。在Workspace I0页设置从Matlab的输入
27、数据及格式,设置输出到Matlab的数据及相关限制;诊断页选择仿真过程中显示警告信息的级别层次:在选择箅解程序并指定仿真参数之后,点击对话框底部的Apply按钮,使得所有设置生效,最后点击Close按钮结束设置。选择菜单命令SimulationIStart开始仿真,这一命令的快捷键为Ctrl-T;菜单命令Simulation|Stop终止仿真,这一命令的快捷键同样为CtrlT。这两个命令在模型窗口的工具条都有相应的按钮。在仿真结束时,计算机有声音提示。在系统模型的仿真过程中,我们总希望能够修改模型中的各个模块的参数,比方说改变正弦信号的频率和幅度,充分了解系统的性能。在Simulink中,我们
28、可以通过鼠标双击任意模块,在模块参数框中任意修改模块的参数指标。仿真过程中,免不了要出错,Simulink在仿真过程中遇到错误即停止仿真,并显示诊断对话框。点击Open按钮,显示模型错误所在。(3)用命令行运行仿真命令行运行仿真命令的完整语法为:t,x,y=sim(model,timespan,options,ut);所有参数中只有“model”是必须的。命令set_param可以启动、终止、暂停、继续仿真。而命令get_param则返回仿真的状态。命令set param的用法为:set_param('sys',SimulationCommand',cmd')其
29、中sys为系统的名称,cmd为start、stop、pause、contlnu和update之一。命令get param的用法为:get_param(sys',SimulationStatus')该函数的返回值为'stopped、initializing、running、paused、terminating、external之一。(4) Simulink的调试 Simulink debugger是一个定位诊断Simulink模型错误的工具,它允许单步执行仿真,并显示其中各个模块的状态与输入输出。在Matlab 60中,既可以采用传统的方式,在命令窗口调式仿真模型,也可以
30、使用集成调试环境,这两种方式的实质是相同的。为便于读者掌握Simulink debugger. l 命令窗口调试在命令窗口中,有两种方法在调试器下启动模型,第一种方法是使用sldebug命令,第二种方法是使用sim命令设置调试属性。例如现在调试一个名为deb的模型,就可以使用下面的命令:sim('deb',O,10,simset('debug',on')或者sldebug deb命令将deb模型调入内存,并且于第一个时间点暂停在第一个模块。调试器启动模型框图中的初始模块及其相关的输出信号。调试器还在Matlab命令窗口中打印出仿真开始时间,同时还打印出调
31、试命令提示行。如前面的命令即在启动模型的同时,还在Matlab命令窗口有如下输出:>>sldebug debTm=0 *Start* Of system deb outputs(sldebug 0:0 debSine Wave):现在,可以在调试命令提示行后输入适当的命令,获取调试帮助、单步运行仿真和其他的仿真调试任务。l 获取调试帮助在调试命令提示行后输入help或?,Maclab将打印出调试命令的简短帮助。如果需要详细的帮助,可以查看相关的文档。l 单步调试命令step将当前调试的仿真运行到下一个模块。在执行完某个模块之后,调试器在Matlab命令窗口打印出该模块的输入(用U表
32、示)输出(用Y表示),并再次显示调试命令提示行,准备下一步调试。当一轮仿真结束即将开始下一轮仿真时,调试器暂停在第一个模块前,并打印当前仿真时间,以作为开始下一轮仿真运算的提示。 (sldebug 0:0 debSine Wave):step Y1=0.5646424733950355 (sldebug 0:1 debGain): step U1=0.5646424733950355 Y1=1.693927420185106 Tm=0.8 *Start* of system deb outputs (sldebug 0:0 debSine Wave):命令next执行当前仿真时间所有尚未执行的
33、模块。如果在仿真中,对剩余的各个模块不再感兴趣,这一命令极为方便。请看下面的例子: (sldebug 0:0 debSine Wave):next Tm=1.2 *Start* of system deb outputs (sldebug 0:0 debSine Wave):next Tm=1.4 *Start* of system deb outputs (sldebug 0:0 debSine Wave):l 断点调试要采用断点方式调试模型,首先在模型中设置断点。命令break用于在模块前设置断点,当调试器每次运行到断点处时停止仿真。可以通过图形方式或指定模块索引为指定模块设置断点。先在模
34、型窗口中选定需要设置断点的模块,然后在Matlab命令窗口中调试命令提示行后输入break gcb即可。命令barter与命令break相似,不同的是,命令bafter在模块后设置断点。命令tbmak在指定的仿真时间点设置断点,该命令带一个参数即时间值,如: (sldebug 0:0 debSine Wave):tbreak 9 (sldebug 0:0 debSine Wave):continue Time break point found(tbreak) Tm=9 *Start* of system deb outputs (sldebug 0:0 debSine Wave):命令cle
35、ar清除所有的断点,也可以通过指定模块索引或在模型窗口中选定模块后,清除界定模块的断点。命令continue将仿真从当前断点执行到下一个断点。命令run将仿真从当前断点执行到仿真结束。l 设置调试断点l 显示仿真信息 显示模块的输入输出的命令有三个:probe、disp和trace。 命令probe的功能是进入或退出探测模式。在探测模式下,调试器立即显示模型中任意指定模块的输入输出。在探测模式下再键入probe命令,即退出探测模式。进人探测模式命令为: (sldebug 0:0 debSine Wave):probe gcb I/O of 0:1 debGain: U1=0 Y1=0 (sld
36、ebug 0:0 debSine Wave):命令disp使调试器一旦停止仿真就显示指定模块的输入输出,dispgcb设置显示,undisp 0:0或者undisp gcb取消显示,命令如下: (sldebug 0:0 deb/Sine Wave):disp gcb display of blolk 0:0 debSine Wave installed (sldebug 0:0 deb/Sine Wave):s Y1=0479425538604203 (sldebug 0:l debGain): undisp gcb命令trace使得调试器在仿真过程中一旦遇到指定跟踪模块就显示其输入输出。它允
37、许用户无需停止仿真即可获得模块的输入输出的完整记录,如: >>sldebug deb Tm=0 *Start* of system deb outputs (Sldebug 0:0 debSine wave): trace gcb Trace of block 0:2 debZero -order hold instalied (sldebug 0:0 debSine Wave): c Tm=0 I/O of block 0:2 debZero-Order Hold U1=0 Y1=0 Tm=0.5 I/O of block 0:2 debZero-Order Hold U1=1.
38、438276615812609 Y1=1.438276615812609 Tm=0.1 I/O of block 0:2 debZero-Order Hold U1=2.524412954423689 Y1=2.524412954423689调试命令states在Madab命令窗口中列出当前系统状态值,例如: >>Sldebug bounce Tm=0 *Start* of system bounce outputs (Sldebug 0:0 bouncePosition):states Continuous state vector (value,index,name): 10
39、0 (0:0 bouncePosition) 15 1 (0:5 bounceVelocity) (Sldebug 0:0 bouncePositiOn):next Tm=0.01 *Start* of system bounce outputs (Sldebug 0:0 bouncePosition):states Continuous state vector (value,index,name): 10.1495095 0 (0:0 bouncePosition) 14.9019 1 (0:5 bounceVelocity)本例的bounce模型为Matlab提供的一个样板模型,本例显示
40、仿真最初的两个时间点的状态。l 显示模型信息命令slist可以显示模型中各个模块的仿真执行顺序,同样以bounce模型为例,有:(Sldebug 0:0 bouncePosition): slist - Sorted list for bounce 9 blocks,7 nonvirtual blocks, directFeed=00:0 bouncePositiOn (integrator, tid=0)0:1 bounceBouncing Ball Display (Scope,tid=0)0:2 bOUBCeElasricity (Gain, tid=0)0:3 bounceGrayit
41、y (constant,tid=1)0:4 bounceIC (InitialCondition, tid=0)0:5 bounceVelocity (Integrator, tid=0)0:6 bounceVelocity Scope (Scope,tid=0)命令status显示各种调试信息,同样以bounce模型为例,有:sldebug 0:0 bouncePosition):statusCurrent simulation time :0.01(MaiorTimeStep)Default command tO execute On returnenter : “”Stop in min
42、or times steps :disabledBreak at zero crossing events :disabledBreak when step size is limiting by a state :disabledTime break point :disabledBreak On nonfinite (NaN,Inf) values :disabledNumber Of installed break points : 0Number Of installed display points : 0Number Of installed trace points : 0Dis
43、play Of integration information :disabledAlgebraic loop tracing level :0 在调试过程中,有时需要知道哪些模块中存在没有被采样到的过零点,命令zclist将所有这些的模块显示出来,供分析使用,如: (sldebug 0:0 bouncePosition): zclist 0:0 bouncePosition (Integrator) 0:0 bouncePosition (Integrator) 0:0 bouncePosition (Integrator) 0:5 bounceVelociCy (Integrator)l
44、使用集成环境的SimulinkDebugger在Simulink模型窗口中,选择菜单ToolsISimulinkDebugger,或者点击工具条上的按钮,启动Simulink Debugger。在Simulink Debugger窗口中点击工具条中Startcontinue按钮,开始调试Simulink模型。此时,模型窗口如图所示。我们可以从调试器的输出窗口看到,其输出内容与命令窗口调试输出的内容完全相同。与命令窗口调试不同的是在调试过程中,除了可以看到调试的输出内容外,还可以通过Execution Orders窗口看到执行的先后次序,通过Status窗口看到调试的各种状态。所有这些给调试工作
45、带来了极大的方便。由于我们已经熟识Simulink的调试命令,所以可以将SimulinkDebugger的工具条与相应的命令等同起来。在Simulink Debugger中设置中断是非常方便的,在模型窗口选择需要设置断点的模块,然后在Simulink Debugger中点击设置中断按钮即可。设置中断后,Simulink Debugger会在BreaksDisplay points窗口中明确显示所有设置断点的模块,如图7-32所示。如果需要删除断点,先用鼠标选择所有要删除的断点(BreaksDisplay points窗口支持复选),然后点击Remove selected points按钮即完成
46、删除操作。 我们可以看到,BreaksDisplay points窗口分为三列,最左边的一列显示模块名称,其他两列为复选按钮,分别对应是否在该模块设置断点,是否显示该模块的输入输出。现在,我们可以在该窗口中随意设置断点,随意指定需要显示的内容。所以,调试Simulink模型方便多了。l 子系统面罩的使用子系统的面罩(mask)技术允许用户定制子系统的对话框和图标。使用面罩技术有以下好处:将子系统中的多个对话框简化为单独一个,这样用户可以一次设定子系统的参数而无需为每一个模块设置参数;可以提供一个优化的用户界面;按照子系统的特性生成描述性图标;可以防止无意中修改子系统的内容;等等。本节通过一个具
47、体的例子来说明如何使用这一技术。现在有如图7-33所示的系统模型。在模型窗口中,选中子系统的图标,然后执行Edit|MaskSystem命令,将弹出面罩编辑器对话框。该对话框有三页内容,分别为Icon(图标)、Initialization(初始化)和Documentation(文件)。 先对初始化页进行设置,如图7-34所示。 初始化页设置的具体内容是设置面罩对话框的提示。先点击按钮Add两次,为面罩添加两个参数。然后在参数列表中点击其中一个,修改提示prompt为Constant、变量variable为c,选择控制类型Control type为Edit、赋值Assignment为Evalua
48、te;再选中另外一个参数,修改提示prompt为Gain、变量variable为g,选择控制类型Control type为Edit、赋值Assignment为Evaluate。这时为子系统添加参数的工作已经完成,点击Apply(应用)按钮。回到模型窗口中,点击子系统图标,将弹出图7,35所示对话框。 从图7-35可以看到,对话框中列出了两个参数,提示分别为Constant和Gain。根据定义,它们的值实际上对应常数c和增益go现在可以在这里输入相应的值对系统进行仿真,无需单独为每一个模块设置参数。面罩编辑器的Documentation(文件)页定义面罩的描述与帮助。如图7-36,输入特定信息。
49、 点击Apply(应用)按钮,回到模型窗口中,双击子系统的图标,弹出的将是如图7-37所示的对话框。面罩编辑器的图标(1con)页如图7-39所示。绘图命令指在于系统面罩中绘制指定图形的命令,在绘图命令中加人命令:plot(0:0.1:6.3,cos(0:0.1:6.3)点击Apply(应用)按钮,再回到模型窗口中,子系统的图标已经变成图7-40所示的样子。当然,这样的绘图命令是可以任意定制的。 关于子系统面罩编辑器的使用,还有很多很有意思的内容,读者可以通过查看帮助文件,在实践中不断总结提高。Simulink产品说明§ 介绍和主要功能§ 创建和处理模型§ 定义和
50、管理信号§ 运行仿真§ 分析结果介绍Simulink®是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.Simulink 入门 3:27构建和仿真模型。构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB® 紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批
51、处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。特点§ 丰富的可扩充的预定义模块库§ 交互式的图形编辑器来组合和管理直观的模块图§ 以设计功能的层次性来分割模型,实现对复杂设计的管理§ 通过Model Explorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码§ 提供API用于与其他仿真程序的连接或与手写代码集成§ 使用Embedded MATLAB 模块在Simulink和嵌入式系统执行中调用MATLAB算法§ 使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerato
52、r,Rapid Accelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型§ 图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为§ 可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据§ 模型分析和诊断工具来保证模型的一致性,确定模型中的错误左图是汽车动力系统模型,下图和右图是汽车动力系统. 创建和使用模型通过Simulink® 可使用大量的预定义模块快速地推导、建模和维护系统详细的模块图。Simulink提供层次化建模、数据管理、定制子系统工具,无论工程师的系统有多复杂,都可以轻松完成简明精
53、确的模型描述.选择和定制模块Simulink包含广泛的用于对系统建模的模块库。这些库包括:§ 连续和离散动态模块,如Integration和Unit Delay§ 算法模块,如Sum, Product, Lookup Table§ 信号结构模块,如 Mux, Switch, Bus Selector可定制这些内联的模块或直接在Simulink中创建新的模块然后将其放置到自己的库中.创建库 2:18创建自定义的库模块以共享和重复利用特定功能。额外的模块库(需另外购买)扩展了Simulink的特殊应用功能,如对航空航天、通讯、无线电频率、信号处理、视频和图像处理和其他
54、领域的应用.可在Simulink中对物理系统建模。Simscape, SimDriveline, SimHydraulics®, SimMechanics, SimPowerSystems (需另外购买)扩展了Simulink对物理系统建模的功能,广泛应用于如机械、电力电子和液压领域.集成MATLAB® 算法代码和手写代码可调用MATLAB函数来集成MATLAB代码从而用于数据分析与可视化;此外,Simulink可使用 Embedded MATLAB 来设计嵌入式算法模块,然后和模型的其他模块一起以代码生成的方式实施使用;也可以在模型中创建自定义模块,直接集成手写的C/Fo
55、rtran/Ada代码.将 MATLAB 算法用于 Simulink 模型 2:11使用嵌入式 MATLAB 功能模块将 MATLAB 代码用于 Simulink 模型。 建立和编辑模型Simulink在使用时,从Library Browser中拖放模块到图形编辑器、然后用线连接模块来建立模块之间的数学关系,从而完成模型的建立,同时可以通过使用图形编辑功能来对模型布局,如拷贝、粘贴、撤销、对齐、分布和改变尺寸等.连接模块有多种方式,使用鼠标手动连接,或通过内部模块或复杂拓扑进行自动连接Simulink user interface使得在屏幕上的所见所用都可以得到全面控制。用户可以添加指令和子菜单到编辑器和文件菜单中,也可以对菜单、菜单项和对话框进行禁用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床医学实务考试试题及答案
- 2025-2030宠物美容浴缸行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030婴儿训练尿布行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030塞来昔布行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030土壤保水剂行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 2025-2030国内混合油行业市场发展现状及发展前景与投资机会研究报告
- 2025-2030国内卫生巾行业市场发展分析及竞争格局与投资前景研究报告
- 2025-2030国内丝苗米行业市场发展现状及竞争策略与投资发展研究报告
- 剧组合同标准文本
- 2025-2030合成纤维行业并购重组机会及投融资战略研究咨询报告
- GB/T 11313.101-2015射频连接器第101部分:MMCX系列射频同轴连接器分规范
- 10kV架空配电线路带电安装故障指示器
- 目标与计划的重要性课件
- 教师招聘考试题库《班主任与班级管理》必看知识点
- 显示屏出厂合格证
- (中职)电子技术基础与技能(电子信息类)教案
- 三晶变频器说明书SAJ系列简约
- 混凝土模板支撑工程专项施工方案(140页)
- MATLAB_第6讲_GUI界面设计
- 高中英语北师大版(2019)必修第一册 Unit3Lesson1SpringFestival
- 《公输》(共44张PPT)
评论
0/150
提交评论