Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

将值传递给封装下的模块

封装模块可以将值传递给封装下的模块参数。底层模块在仿真期间使用传递的值来执行模块逻辑。

封装模块具有与封装参数关联的变量。这些变量存储在模型的封装工作区中,并可与封装下的模块参数相对应。计算这样的模块时,模块变量会在封装工作区中查找匹配值以获取值。

变量从封装工作区到基础工作区的映射必须正确。正确的映射可确保将从封装传递的值赋给正确的模块变量。

使用下列任一选项将值传递给封装下的模块:

  • 参数提升(推荐)

  • 封装初始化

  • 使用变量名称引用模块参数(仅限编辑参数)

参数提升

将模块参数提升到其封装时,便可以从封装对话框访问该模块参数,从而允许您为模块参数传递值。参数提升可确保参数值的正确映射,并且是将值从封装对话框传递到模块的推荐方法。请注意,当您提升内置模块的参数时,与这些参数相关联的内部回调也会在新参数中继承。有关提升参数的详细信息,请参阅Promote Parameter to Mask

封装初始化

您可以在 Mask Editor 的 Initialization 窗格中使用 MATLAB® 代码将值赋给或传递给封装下的模块参数。您可以为模块参数赋予一个固定值,指定一个可接受的输入值范围,或者为子模块指定一个值。有关详细信息,请参阅初始化封装

使用变量名称引用模块参数

您可以在封装对话框中添加一个 Edit 参数,并通过它将值传递给模块参数。通过使用符号解析中介绍的方法,在封装对话框中为 Edit 参数提供的值将自动与模块参数关联。

假设有模型 masking_example,该模型包含封装的 Subsystem 模块并管理方程 y = mx + b。此处,mb 是控制方程的斜率和截距的变量,并且分别与 GainConstant 模块相关联。

在 Mask Editor 中,变量 mb 作为参数名称分别赋给封装参数 SlopeIntercept

在封装对话框中为 SlopeIntercept 键入值时,这些值将在内部赋给变量 mb。在仿真模型时,Gain 模块和 Constant 模块会搜索 mb 的数值并应用它们来解方程 y = mx + b

相关主题