指定模块属性
对于模型中的每个模块,可以设置常规模块属性,例如:
-
模块说明
-
模块执行顺序
-
模块注释
-
模块回调函数
要设置模块属性,使用 Property Inspector。当模块处于选中状态时,可以在 Property Inspector 的 Properties 和 Info 选项卡上设置属性。也可以使用 Block Properties 对话框。
一、设置模块注释属性
在 Property Inspector 中,使用 Block Annotation 部分显示选定的模块参数在注释中的值。注释显示在模块图标下方。在文本框中输入注释文本。可以在注释中使用模块属性标记。属性值将替换模型注释中的标记。要显示可以在注释中使用的标记列表,在文本框中键入 %
。将显示对选定模块有效的参数。
假设为 Product 模块指定以下注释文本和标记:
Multiplication = %<Multiplication>
Sample time = %<SampleTime>
在 Simulink Editor 中,模块显示以下注释:
还可以通过编程方式创建模块注释。
二、指定模块回调
使用 Callbacks 部分指定模块回调。回调是在发生特定的模型操作(如选择或删除模块)时执行的 MATLAB® 命令。
(1)选择要为其设置回调的模块。
(2)在 Property Inspector 的 Properties 选项卡上,在 Callbacks 部分选择要为其指定回调的函数。例如,选择 OpenFcn
以指定双击模块时的行为。
(3)在文本框中,输入触发该模块函数时希望执行的命令。
将回调指定给某个函数之后,在函数列表中,该函数旁边将会显示一个星号。星号可以帮助了解已经为哪些函数指定了回调。
注意:将 OpenFcn
回调添加到模块后,双击模块不会打开模块对话框。此外,选择了模块时,模块参数不会出现在 Property Inspector 中。要设置模块参数,请从模块上下文菜单中选择 Block Parameters。
1、以编程方式设置模块回调
如何使用 OpenFcn
回调在双击模块时执行 MATLAB 脚本。例如,在 MATLAB 脚本中,可以定义变量或打开仿真数据图。
要以编程方式创建回调,选择要为其添加此属性的模块。然后,在 MATLAB 命令提示符下输入以下格式的命令:
set_param(gcb,'OpenFcn','myfunction')
在例子中,myfunction
表示一个有效的 MATLAB 命令或者 MATLAB 搜索路径中的一个 MATLAB 脚本。
三、指定模块执行优先级和标记
在模块属性的 Advanced Properties 部分,可以指定模块优先级,并通过为 Tag 属性指定值来标识该模块。
-
Priority - 指定该模块相对于模型中其他模块的执行优先级。
-
Tag - 为模块指定一个标识符。指定要为模块的 Tag 参数指定的文本。设置此属性有助于通过搜索的方式或使用find_system以编程的方式在模型中找到该模块。
四、使用模块说明标识模块
Info 选项卡显示有关模块类型的信息。此说明信息由模块的作者提供。还可以在 Description 框中输入说明,以提供有关模块实例的信息。
-
如果添加了说明,则可以设置模型的显示,使其将鼠标指针悬停在模块上方时在工具提示中显示该说明。要启用此工具提示,请在 Debug 选项卡上,选择 Information Overlays > Description in Tooltip 。
-
Description 属性可帮助通过搜索找到模块。
五、以编程方式创建模块注释
可以使用模块的 AttributesFormatString
参数在模块下面显示指定的模块参数值。通用模块属性和模块特定的参数中介绍了模块可以具有的参数。可以使用 Simulink set_param函数将此参数设置成需要的属性格式。
属性格式可以是具有嵌入式参数名称的任何文本。嵌入式参数名称是指以 %<
开头并以 >
结尾的参数名称,例如 %<priority>
。Simulink 在模块图标下面显示属性格式文本,并将每个参数名称替换为对应的值。可以使用换行符 (\n
) 使每个参数单独显示一行。例如,选择 Gain 模块,然后在 MATLAB 命令提示符下输入以下命令:
set_param(gcb,'AttributesFormatString','pri=%<priority>\ngain=%<Gain>')
Gain 模块将显示以下模块注释:
如果参数值既不是文本也不是整数,则显示 N/S
(表示不支持),而不是显示值。如果参数名称无效,Simulink 将显示 ???
,而不是显示值。