将值传递给封装下的模块
封装模块可以将值传递给封装下的模块参数。底层模块在仿真期间使用传递的值来执行模块逻辑。
封装模块具有与封装参数关联的变量。这些变量存储在模型的封装工作区中,并可与封装下的模块参数相对应。计算这样的模块时,模块变量会在封装工作区中查找匹配值以获取值。
变量从封装工作区到基础工作区的映射必须正确。正确的映射可确保将从封装传递的值赋给正确的模块变量。
使用下列任一选项将值传递给封装下的模块:
参数提升(推荐)
封装初始化
使用变量名称引用模块参数(仅限编辑参数)
参数提升
将模块参数提升到其封装时,便可以从封装对话框访问该模块参数,从而允许您为模块参数传递值。参数提升可确保参数值的正确映射,并且是将值从封装对话框传递到模块的推荐方法。请注意,当您提升内置模块的参数时,与这些参数相关联的内部回调也会在新参数中继承。有关提升参数的详细信息,请参阅Promote Block Parameters on a Mask。
封装初始化
您可以在封装编辑器的“初始化”窗格中使用 MATLAB® 代码将值赋给或传递给封装下的模块参数。您可以为模块参数赋予一个固定值,指定一个可接受的输入值范围,或者为子模块指定一个值。有关详细信息,请参阅初始化封装。
使用变量名称引用模块参数
您可以在封装对话框中添加一个“编辑”参数,并通过它将值传递给模块参数。通过使用符号解析中介绍的方法,在封装对话框中为“编辑”参数提供的值将自动与模块参数关联。
假设模型包含封装的 Subsystem 模块并管理方程 y = mx + b
。此处,m
和 b
是控制方程的斜率和截距的变量,并且分别与 Gain 和 Constant 模块相关联。
在封装编辑器中,变量 m
和 b
作为参数名称分别赋给封装参数斜率和截距。
在封装对话框中为斜率和截距键入值时,这些值将在内部赋给变量 m
和 b
。在仿真模型时,Gain 模块和 Constant 模块会搜索 m
和 b
的数值并应用它们来解方程 y = mx + b
。