第2章Simulink模块操作Simulink模块是构成Simulink模型的基本元素,本章介绍Simulink模块的操作方式,本章的主要内容包括:连接模块如何利用Simulink自动连接模块,以及如何以手动方式连接模块改变模块外观如何改变模块方向和更改模块名称,如何为方块图指定颜色设置模块参数如何在模块参数对话框和MATLAB工作区内设置模块参数标注模型图如何在模型图中利用TeX命令编辑带有数学符号、希腊字母和其字符的标注模块属性对话框如何设置模块属性,包括模块优先级和编辑指定模块标注模块优先级如何控制和显示模型中模块的优先级查表编辑器如何利用查表编辑器编辑和显示查表模块和自定义LUT模块第2章Simulink模块操作192.1模块操作模块是构成Simulink模型的基本元素,用户可以通过连接模块构造任何动态系统模型。在MicrosoftWindows系统下,Simulink在弹出的模块属性对话框中显示模块信息,若要关闭这个特性或者控制显示所包含的信息,选择Simulink中View菜单下的Datatipsoptions命令。2.1.1Simulink模块类型在创建模型时,用户必须知道,Simulink把模块分为两种类型:非纯虚模块和纯虚模块。非纯虚模块在仿真过程中能够影响系统地执行次序,如果用户在模型中添加或删除一个非纯虚模块,那么Simulink会改变模型的动作方式;相比而言,纯虚模块在仿真过程中不起作用,它只是帮助以图形方式管理模型。此外,有些Simulink模块在某些条件下是纯虚模块,而在其它条件下则是非纯虚模块,这样的模块称为条件纯虚模块,表2-1列出了Simulink中的纯虚模块和条件纯虚模块。表2-1纯虚模块和条件纯虚模块模块名称作为纯虚模块的条件BusSelector总是纯虚模块Demux总是纯虚模块EnablePort总是纯虚模块From总是纯虚模块Goto总是纯虚模块GotoTagVisibility总是纯虚模块Ground总是纯虚模块Inport除非把模块放置在条件执行子系统内,而且与输出端口模块直接连接,否则就是纯虚的。Mux总是纯虚模块Outport当模块放置在任何子系统模块(条件执行子系统或无条件执行子系统)内,而且不在昀顶层的Simulink窗口中时才是纯虚的。Selector除了在矩阵模式下不是纯虚的,其它都是纯虚的。Subsystem除非模块依条件执行,而且/或者选择了模块的TreatasAtomicUnit选项。Terminator总是纯虚模块。TriggerPort当输出端口未出现时是纯虚的。20第2章Simulink模块操作当建立Simulink模型时,用户可以从Simulink模块库或其它库或已有的模型窗口中将模块拷贝到新的模型窗口,拖动到目标模型窗口中的模块可以利用鼠标或键盘上的up、down、left或right键移动到新的位置。当拷贝模块时,新模块会继承源模块的所有参数值。如果要把模块从一个窗口移动到另一个窗口,在选择模块的同时要按下Shift键。Simulink会为每个被拷贝模块分配名称,如果这个模块是模型中此种模块类型的第一个模块,那么模块名称会与源窗口中的模块名称相同。例如,如果用户从MathOperations模块库中向用户模型窗口中拷贝Gain模块,那么这个新模块的名称是Gain,如果模型中已经包含了一个名称为Gain的模块,那么Simulink会在模块名称后添加一个序列号(如Gain1,Gain2),用户也可以为模块重新命名。注意:当把Sum、Mux、Demux、BusCreator和BusSelector模块从模块库中拷贝到模型窗口中时,Simulink会隐藏这些模块的名称,这样做是为了避免模型图的不必要混乱,而且这些模块的形状已经清楚地标明了它们各自的功能。2.1.2自动连接模块Simulink方块图使用线表示模型中各模块之间信号的传送路径,用户可以用鼠标从模块的输出端口到另一模块的输入端口绘制连线,也可以由Simulink自动连接模块。如果要Simulink自动连接模块,先用鼠标选择模块,然后按下Ctrl键,再用鼠标单击目标模块,Simulink会自动把源模块的输出端口与目标模块的输入端口相连,如果需要,Simulink还会绕过某些干扰连接的模块,如图2-1所示。如果连接两个模块时,两个模块上有多个输出端口和输入端口,Simulink会尽可能地连接这些端口,如图2-2所示。如果要把一组源模块与一个目标模块连接,可以先选择这组源模块,然后按下Ctrl键,再用鼠标单击目标模块,如图2-3所示。图2-1图2-2第2章Simulink模块操作21如果要把一个源模块与一组目标模块连接,可以选择这组目标模块,然后按下Ctrl键,再用鼠标单击源模块,如图2-4所示。2.1.3手动连接模块如果要手动连接模块,先把鼠标光标放置在源模块的输出端口,不必精确地定位光标位置,光标的形状会改变为十字型,然后按下鼠标按钮,拖动光标指针到目标模块的输入端口,如图2-5所示。当释放鼠标时,Simulink会用带键头的连线替代端口符号,箭头的方向表示了信号流的方向。用户也可以在模型中绘制分支线,即从已连接的线上分出支线携带相同的信号至模块的输入端口,利用分支线用户可以把一个信号传递到多个模块。首先用鼠标选择需要分支的线,按下Ctrl键,同时在分支线的起始位置单击鼠标,拖动鼠标指针到目标模块的输入端口,然后释放Ctrl键和鼠标按钮,Simulink会在分支点和模块之间建立连接,如图2-6所示。图2-3图2-4图2-5图2-622第2章Simulink模块操作注意:如果要断开模块与线的连接,按下Shift键,然后将模块拖动到新的位置即可。用户也可以在连线上插入模块,但插入的模块只能有一个输入端口和一个输出端口。首先用鼠标选择要插入的模块,然后拖动模块到边线上,释放鼠标按钮并把模块放置到线上,Simulink会在连线上插入模块,如图2-7所示。2.2改变模块外观Simulink编辑器允许用户改变方块图中模块的大小、方向、颜色和标签位置。2.2.1改变模块方向缺省时,Simulink模型中的信号从左向右从模块中传递,输入端口通常都在左边,输出端口在右边,用户可以选择模型窗口中Format菜单中的下列命令改变模块的方向:FlipBlock命令把模块旋转180度;RotateBlock命令顺时针旋转模块90度。图2-8说明了对模块使用RotateBlock命令和FlipBlock命令后,Simulink是如何改变模块端口的顺序的。Flip由右向左由左向右RotateRotateRotateRotate11223向下1233向上123图2-82.2.2操纵模块名称图2-7第2章Simulink模块操作23模型中所有模块的名称都必须是唯一的,而且至少包含一个字符。缺省时,若模块端口位于模块左右两侧,则模块名称位于模块下方;若模块输入端口位于模块顶部,输出端口位于模块底部,则模块名称位于模块左侧,如图2-9所示。图2-91.改变模块名称用户可以用鼠标双击模块名称,在激活的文本框内输入新的名称更改模块名称,当在模型中的任一位置单击鼠标或执行其它操作时,Simulink会停止模块名称的编辑。如果把模块的名称改变为模型中已有模块的名称,或者名称中不含有任何字符,那么Simulink会显示一个错误消息。2.改变模块字体如果用户想要改变模块名称的字体,可以先选中模块,然后选择模型窗口中Format菜单下的Font命令,从弹出的SetFont对话框中选择一种字体,这个过程也会改变模块图标上的文本字体。3.改变模块名称的位置如果用户想要改变模块名称的位置,可以利用如下两种方式:把模块名称拖动到模块对面的位置;选择Format菜单下的FlipName命令,这个命令将模块名称的位置改变到模块对面位置。4.是否显示模块名称如果用户想要隐藏模块的名称,先选中这个模块,然后选择Format菜单下的HideName命令隐藏名称,之后若再选中这个模块,该命令改变为ShowName,选择这个命令后则会显示被隐藏的模块名称。2.2.3指定方块图颜色Simulink允许用户在方块图中指定任何模块或标注的前景色和背景色,也可以指定方块图的背景色。若要设置方块图的背景色,选择Simulink中Format菜单下的Screencolor命令;若要设置模块或标注的背景色,首先选择这些模块或标注,然后选择Simulink中Format菜单下的Backgroundcolor命令;若要设置模块或标注的前景色,首先选择这些模块或标注,然后选择Simulink中Format菜单下的Foregroundcolor命令。不管选择了哪些命令,Simulink都会显示一个颜色选择菜单,从这个菜单中选择希望的颜色,Simulink会按照选择的颜色更改变前景色或背景色。如果选择了Custom命令,Simulink会显示Simulink的图2-1024第2章Simulink模块操作ChooseCustomColor对话框,如图2-10所示,用户可以在调色板中选择自定义颜色。用户也可以在MATLAB命令行或M文件中利用set_param命令中的参数设置方块图的背景色或模块的前景色和背景色。表2-2概略给出了set_param命令中用来控制模块方块图的参数。表2-2控制模块方块图的参数参数定义ScreenColor模型方块图的背景色BackgroundColor模块和标注的背景色ForegroundColor模块和标注的前景色用户可以把这些参数设置为如下任一值:‘black’,’white’,’red’,’green’,’blue’,’cyan’,’magenta’,’yellow’,’gray’,’lightBlue’,’orange’,’darkGreen’‘[r,g,b]’:这里,r、g和b是颜色分量中的红、绿和蓝分量,范围在0.0至1.0之间。例如,下面的命令把当前选择的系统或子系统的背景色设置为淡绿色:set_param(gcs,’ScreenColor’,‘[0.3,0.9,0.5]’)用户也可以选择Format菜单下的ShowDropShadow命令为所选模块添加阴影。2.3设置模块参数所有的Simulink模块都有一组共同的参数,称为模块属性,用户可以在模块属性对话框内设置这些属性。此外,许多Simulink模块都有一个或多个模块专用参数,通过设置这些参数,用户可以自定义这些模块的行为,以满足用户的特定要求。2.3.1设置模块特定参数带有特定参数的模块都有一个模块参数对话框,用户可以在对话框内查看和设置这些参数。用户可以利用如下几种方式打开模块参数对话框:在模型窗口中选择模块,然后选择模型窗口中Edit菜单下的BLOCKparameters命令,这里BLOCK是模块名称,对于每个模块会有所不同;在模型窗口中选择模块,用鼠标右键单击模块,从模块的上下文菜单中选择BLOCKparameters命令,这里BLOCK是模块名称,对于每个模块会有所不同;用鼠标双击模型或模块库窗口中的模块图标,打开模块参数对话框。注意:上述的所有方式对包含特定参数的所有模块都是适用的,但不包括Subsystem模块,用户必须用模型窗口中Edit菜单下的Subsystem第2章Simulink模块操作25parameters命令或上下文菜单才能打开Subsystem模块的参数对话框。对于每个模块,模块的参数对话框也会有所不同,用户可以用任何MATLAB常值、变量或表达式作为参数对话框中的参数值。例如,图2-11(a)在模型窗口中选择的是SignalGenerator模块,利用Edit菜单下的SignalGeneratorparameters命令打开模块参数对话框,或者双击该模块打开模块参数对话框,图2-11(b)是该模块的参数对话框。由于SignalGenerator模块是信号发生器模块,用户可以在参数对话框内利用Waveform参数选择不同的信号波形