第2章Simulink模块操作Simulink模块操作2.1模块操作2.2改变模块外观2.3设置模块参数2.4标注方块图2.5模块属性对话框2.6显示模块输出2.7控制和显示模块的执行顺序2.8查表编辑器2.9鼠标和键盘操作概述第2章Simulink模块操作2.1模块操作2.1.1Simulink模块类型用户在创建模型时必须知道,Simulink把模块分为两种类型:非虚拟模块和虚拟模块。非虚拟模块在仿真过程中起作用,如果用户在模型中添加或删除了一个非虚拟模块,那么Simulink会改变模型的动作方式;相比而言,虚拟模块在仿真过程中不起作用,它只是帮助以图形方式管理模型。此外,有些Simulink模块在某些条件下是虚拟模块,而在其他条件下则是非虚拟模块,这样的模块称为条件虚拟模块。表2-1列出了Simulink中的虚拟模块和条件虚拟模块。第2章Simulink模块操作表2-1虚拟模块和条件虚拟模块模块名称作为虚拟模块的条件BusSelector总是纯虚模块Demux总是纯虚模块Enable当与Outport模块直接连接时是非虚模块,否则总是纯虚模块From总是纯虚模块Goto总是纯虚模块GotoTagVisibility总是纯虚模块Ground总是纯虚模块Inport除非把模块放置在条件执行子系统内,而且与输出端口模块直接连接,否则就是纯虚模块Mux总是纯虚模块Outport当模块放置在任何子系统模块(条件执行子系统或无条件执行子系统)内,而且不在最顶层的Simulink窗口中时才是纯虚模块Selector除了在矩阵模式下不是虚拟模块,其他都是纯虚模块SignalSpecification总是纯虚模块Subsystem当模块依条件执行,并且选择了模块的TreatasAtomicUnit选项时,该模块是纯虚模块Terminator总是纯虚模块TriggerPort当输出端口未出现时是纯虚模块第2章Simulink模块操作在建立Simulink模型时,用户可以从Simulink模块库(或其他库)或已有的模型窗口中将模块拷贝到新的模型窗口,拖动到目标模型窗口中的模块可以利用鼠标或键盘上的up、down、left或right键移动到新的位置。在拷贝模块时,新模块会继承源模块的所有参数值。如果要把模块从一个窗口移动到另一个窗口,则在选择模块的同时要按下Shift键。Simulink会为每个被拷贝模块分配名称,如果这个模块是模型中此种模块类型的第一个模块,那么模块名称会与源窗口中的模块名称相同。例如,如果用户从MathOperations模块库中向用户模型窗口中拷贝Gain模块,那么这个新模块的名称是Gain;如果模型中已经包含了一个名称为Gain的模块,那么Simulink会在模块名称后添加一个序列号(如Gain1,Gain2)。当然,用户也可以为模块重新命名。第2章Simulink模块操作2.1.2自动连接模块Simulink方块图中使用线表示模型中各模块之间信号的传送路径,用户可以用鼠标从模块的输出端口到另一模块的输入端口绘制连线,也可以由Simulink自动连接模块。如果要Simulink自动连接模块,可先用鼠标选择模块,然后按下Ctrl键,再用鼠标单击目标模块,则Simulink会自动把源模块的输出端口与目标模块的输入端口相连。如果需要,Simulink还会绕过某些干扰连接的模块,如图2-1所示。第2章Simulink模块操作图2-1第2章Simulink模块操作图2-2第2章Simulink模块操作如果要把一组源模块与一个目标模块连接,则可以先选择这组源模块,然后按下Ctrl键,再用鼠标单击目标模块,如图2-3所示。第2章Simulink模块操作图2-3第2章Simulink模块操作图2-4第2章Simulink模块操作2.1.3手动连接模块如果要手动连接模块,可先把鼠标光标放置在源模块的输出端口,不必精确地定位光标位置,光标的形状会变为十字形,然后按下鼠标按钮,拖动光标指针到目标模块的输入端口,如图2-5所示。当释放鼠标时,Simulink会用带箭头的连线替代端口符号,箭头的方向表示了信号流的方向。第2章Simulink模块操作图2-5第2章Simulink模块操作用户也可以在模型中绘制分支线,即从已连接的线上分出支线,携带相同的信号至模块的输入端口,利用分支线可以把一个信号传递到多个模块。首先用鼠标选择需要分支的线,按下Ctrl键,同时在分支线的起始位置单击鼠标,拖动鼠标指针到目标模块的输入端口,然后释放Ctrl键和鼠标按钮,Simulink会在分支点和模块之间建立连接,如图2-6所示。第2章Simulink模块操作图2-6第2章Simulink模块操作用户也可以在连线上插入模块,但插入的模块只能有一个输入端口和一个输出端口。首先用鼠标选择要插入的模块,然后拖动模块到连线上,释放鼠标按钮并把模块放置到线上,Simulink会在连线上自动插入模块,如图2-7所示。第2章Simulink模块操作图2-7第2章Simulink模块操作2.2改变模块外观2.2.1改变模块方向缺省时,Simulink模型中的信号从左向右在模块中传递,通常输入端口在左边,输出端口在右边。用户可以选择模型窗口中Format菜单的下列命令改变模块的方向:FlipBlock命令:把模块旋转180°;RotateBlock命令:顺时针旋转模块90°。图2-8说明了对模块使用RotateBlock命令和FlipBlock命令后,Simulink是如何改变模块端口的顺序的。第2章Simulink模块操作Flip由右向左由左向右RotateRotateRotateRotate11223向下1233向上123图2-8第2章Simulink模块操作2.2.2改变模块名称模型中所有模块的名称都必须是唯一的,而且至少包含一个字符。缺省时,若模块端口位于模块左右两侧,则模块名称位于模块下方;若模块输入端口位于模块顶部,输出端口位于模块底部,则模块名称位于模块左侧,如图2-9所示。第2章Simulink模块操作图2-9第2章Simulink模块操作1.改变模块名称用户可以用鼠标双击模块名称,在激活的文本框内输入新的名称,即可更改模块的名称。当在模型中的任一位置单击鼠标或执行其他操作时,Simulink会停止模块名称的编辑。如果把模块的名称改变为模型中已有模块的名称,或者名称中不含有任何字符,那么Simulink会显示一个错误消息。第2章Simulink模块操作2.改变模块名称的字体如果用户想要改变模块名称的字体,可以先选中模块,然后选择模型窗口中Format菜单下的Font命令,从弹出的SetFont对话框中选择一种字体,这个过程也会改变模块图标上的文本字体。第2章Simulink模块操作3.改变模块名称的位置如果用户想要改变模块名称的位置,可以利用如下两种方式:把模块名称拖动到模块对面的位置,也就是位于模块下方的名称拖动到模块上方,位于模块左侧的名称拖动到模块右侧。这是因为,Simulink不允许用户任意安排模块名称的位置,若用户强行将名称拖动到其他位置,Simulink会忽视用户操作。选择Format菜单下的FlipName命令,这个命令可将模块名称的位置改变到模块对面位置。第2章Simulink模块操作4.是否显示模块名称如果用户想要隐藏模块的名称,可先选中这个模块,然后选择Format菜单下的HideName命令,即可隐藏该名称。之后,若再选中这个模块,该命令将变为ShowName,选择这个命令后,会显示被隐藏的模块名称。第2章Simulink模块操作5.显示模块阴影用户可以为模型中的模块添加阴影,以使整个模型的外观更漂亮一些。选择Format菜单下的ShowDropShadow命令,可以为选中的模块添加阴影,阴影的颜色将与模块的前景色相同。之后,再次选中这个模块,该命令将改变为HideDropShadow,选择这个命令,则会取消模块的阴影。图2-10是添加阴影后的模型图。第2章Simulink模块操作图2-10第2章Simulink模块操作2.2.3指定方块图颜色Simulink允许用户在方块图中指定任何模块或标注的前景色和背景色,也可以指定方块图的背景色。若要设置方块图的背景色,可选择Simulink模型窗口中Format菜单下的Screencolor命令;若要设置模块或标注的背景色,可首先选择这些模块或标注,然后选择Simulink模型窗口中Format菜单下的Backgroundcolor命令;若要设置模块或标注的前景色,可首先选择这些模块或标注,然后选择Simulink模型窗口中Format菜单下的Foregroundcolor命令。不管选择了哪些命令,Simulink都会显示一个颜色选择菜单,从这个菜单中选择希望的颜色,Simulink就会按照选择的颜色更改前景色或背景色。第2章Simulink模块操作图2-11第2章Simulink模块操作如果选择了Custom命令,则Simulink会显示ChooseCustomColor对话框,如图2-11所示,用户可以在调色板中选择自定义颜色。用户也可以在MATLAB命令行或M文件中利用set_param命令中的参数来设置方块图的背景色或模块的前景色和背景色。表2-2给出了set_param命令中用来控制模块方块图的参数。第2章Simulink模块操作表2-2控制模块方块图的参数参数定义ScreenColor模型方块图的背景色BackgroundColor模块和标注的背景色ForegroundColor模块和标注的前景色第2章Simulink模块操作用户可以把这些参数设置为如下任一值:'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章Simulink模块操作2.3设置模块参数所有的Simulink模块都有一组共同的参数,称为模块属性,用户可以在模块属性对话框内设置这些属性。此外,许多Simulink模块都有一个或多个模块专用参数,通过设置这些参数,用户可以自定义这些模块的行为,以满足用户的特定要求。第2章Simulink模块操作2.3.1设置模块特定参数带有特定参数的模块都有一个模块参数对话框,用户可以在对话框内查看和设置这些参数。用户可以利用如下几种方式打开模块参数对话框:在模型窗口中选择模块,然后选择模型窗口中Edit菜单下的BLOCKparameters命令。这里BLOCK是模块名称,对于每个模块会有所不同。在模型窗口中选择模块,用鼠标右键单击模块,从模块的上下文菜单中选择BLOCKparameters命令。用鼠标双击模型或模块库窗口中的模块图标,打开模块参数对话框。第2章Simulink模块操作对于每个模块,模块的参数对话框也会有所不同,用户可以用任何MATLAB常值、变量或表达式作为参数对话框中的参数值。例如,图2-12(a)在模型窗口中选择的是SignalGenerator模块,利用Edit菜单下的SignalGeneratorparameters命令打开模块参数对话框,或者双击该模块打开模块参数对话框;图2-12(b)是该模块的参数对话框。由于SignalGenerator模块是信号发生器模块,因此用户可以在参数对话框内利用Waveform参数选择不同的信号波形,并设置相应波形的参数值。第2章Simulink模块操作图2-12(a)(b)第2章Simulink模块操作2.3.2来自工作