Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

指定模块属性

对于模型中的每个模块,您可以设置常规模块属性,例如:

  • 模块描述

  • 模块执行优先级

  • 模块注释

  • 模块回调函数

要设置模块属性,请使用属性检查器。当模块处于选中状态时,您可以在属性检查器的属性信息选项卡上设置属性。也可以使用“模块属性”对话框。

设置模块注释属性

在属性检查器中,使用模块注释部分显示选定的模块参数在注释中的值。注释显示在模块图标下方。

在文本框中输入注释文本。您可以在注释中使用模块属性标记。属性值将替换模型注释中的标记。要显示可以在注释中使用的标记列表,请在文本框中键入 %。将显示对选定模块有效的参数。请参阅通用模块属性模块特定的参数

假设您为 Product 模块指定以下注释文本和标记:

Multiplication = %<Multiplication>
Sample time = %<SampleTime>

在 Simulink® 编辑器中,模块显示以下注释:

您还可以通过编程方式创建模块注释。请参阅以编程方式创建模块注释

指定模块回调

使用回调部分指定模块回调。回调是在发生特定的模型操作(如选择或删除模块)时执行的 MATLAB® 命令。有关回调的详细信息,请参阅使用回调自定义模型行为

  1. 选择要为其设置回调的模块。

  2. 在属性检查器的属性选项卡上,在回调部分选择要为其指定回调的函数。例如,选择 OpenFcn 以指定双击模块时的行为。

  3. 在文本框中,输入触发该模块函数时您希望执行的命令。

    将回调指定给某个函数之后,在函数列表中,该函数旁边将会显示一个星号。星号可以帮助您了解已经为哪些函数指定了回调。

    注意

    OpenFcn 回调添加到模块后,双击模块不会打开模块对话框。此外,选择了模块时,模块参数不会出现在属性检查器中。要设置模块参数,请从模块上下文菜单中选择模块参数

以编程方式设置模块回调

此示例说明如何使用 OpenFcn 回调在您双击模块时执行 MATLAB 脚本。例如,在 MATLAB 脚本中,您可以定义变量或打开仿真数据图。

要以编程方式创建回调,请选择要为其添加此属性的模块。然后,在 MATLAB 命令提示符下输入以下格式的命令:

set_param(gcb,'OpenFcn','myfunction')
在此示例中,myfunction 表示一个有效的 MATLAB 命令或者 MATLAB 搜索路径中的一个 MATLAB 脚本。

指定模块执行顺序、执行优先级和标记

在模块属性中,您可以指定模块执行顺序、执行优先级,并通过为标记属性指定值来标识该模块。

  • 执行顺序 - 指定模块相对于其他模块的执行顺序。默认情况下,模块基于优先级执行。您可以使用此属性指定在模型的根级或非虚拟子系统内部的模块相对于其他模块最先或最后执行。您可以通过“模块属性”对话框设置模块的执行顺序。在“模块属性”对话框中,从执行顺序列表中选择最前最后。有关详细信息,请参阅Set Execution Order Property for Block to Execute First

    执行顺序设置为最前最后时,不支持下列模块:

    要使“模块执行顺序”属性中的最先或最后选项起作用,需要满足以下条件:

    • 在模型层次结构的一个级别只能将一个模块配置为最先执行或最后执行。例如,如果 Data Store Read 模块设置为在根级模型上最先执行,则另一个模块无法在此模型的根级上最先执行。

    • 仅将 Inport 模块连接到配置为最先执行的模块的输入端口。但是,对于您可以将哪个模块连接到此类模块的输出端口没有限制。

    • 仅将 Outport 模块连接到配置为最后执行的模块的输出端口。但是,对于您可以将哪个模块连接到此类模块的输入端口没有限制。

    • 模块不能位于具有连续采样时间的系统内。

    • 模块不能在代数环中。代数环求解器必须根据环中的代数变量来确定执行顺序,因此不支持为代数环指定执行顺序。有关详细信息,请参阅代数环求解器的工作原理

    • 模块必须位于在单个任务中执行的系统内。有关详细信息,请参阅控制和显示执行顺序

    这些限制适用于从包含设置为最先执行或最后执行的模块的模型中生成的代码。在生成的代码中:

    • 由于优化原因,设置为最先执行或最后执行的模块的执行顺序可能无法追溯。

    • 在某些情况下,Simulink 可能会认为在设置为最先执行的模块之前或设置为最后执行的模块之后需要额外的信号副本。例如,软件可能会在设置为最后执行的模块执行后,向根 Outport 模块添加一个设置为最后执行的模块的输出信号的副本。

  • 优先级 - 指定该模块相对于其他模块的执行优先级。请指定数值。数字越小,表示优先级较高。仅当执行顺序设置为基于优先级时,此选项才可用。有关详细信息,请参阅Set Priority in Execution Order of Blocks

  • 标记 - 为模块指定一个标识符。指定要为模块标记属性指定的文本。设置此属性有助于通过搜索的方式或使用 find_system 以编程的方式在模型中找到该模块。请参阅Explore Model Hierarchy

注意

在确定执行优先级时,Simulink 仅将模块的优先级与同一模块图中的其他模块的优先级进行比较,即便该模块图是虚拟子系统,并且仅与显式设置其优先级的其他模块进行比较。

使用模块描述标识模块

信息选项卡显示有关模块类型的信息。此描述信息由模块的作者提供。

您还可以在描述框中输入描述,以提供有关模块实例的信息。

  • 如果您添加了描述,则可以设置模型的显示,使其在您将鼠标指针悬停在模块上方时在工具提示中显示该描述。要启用此工具提示,请在调试选项卡上,选择叠加信息 > 工具提示中显示描述

  • 描述属性可帮助您通过搜索找到模块。请参阅 Simulink 编辑器

以编程方式创建模块注释

您可以使用模块的 AttributesFormatString 参数在模块下面显示指定的模块参数值。通用模块属性模块特定的参数中介绍了模块可以具有的参数。可以使用 Simulink set_param 函数将此参数设置为您需要的属性格式。

属性格式可以是具有嵌入式参数名称的任何文本。嵌入式参数名称是指以 %< 开头并以 > 结尾的参数名称,例如 %<priority>。Simulink 在模块图标下面显示属性格式文本,并将每个参数名称替换为对应的值。您可以使用换行符 (\n) 使每个参数单独显示一行。例如,选择 Gain 模块,然后在 MATLAB 命令提示符下输入以下命令:

set_param(gcb,'AttributesFormatString','pri=%<priority>\ngain=%<Gain>')

Gain 模块将显示以下模块注释:

如果参数值既不是文本也不是整数,则显示 N/S(表示不支持),而不是显示值。如果参数名称无效,Simulink 将显示 ???,而不是显示值。

相关主题