Main Content

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

配置 MATLAB Function 模块参数变量

您可以在 MATLAB Function 模块中使用参数变量,以使用在 MATLAB® 工作区、模型工作区、封装子系统工作区或 Simulink® 数据字典中定义的变量作为输入参量。Simulink 通过使用相同的符号解析规则来搜索和选择参数变量所使用的变量。请参阅符号解析。如果对模块可见的多个工作区中存在同名的变量,该模块将使用工作区层次结构中最靠近该模块的变量。如果 MATLAB Function 模块位于一个封装子系统中,该模块将使用该子系统工作区中的变量。否则,该模块将使用模型工作区中的变量,然后依次使用 MATLAB 基础工作区和关联的 Simulink 数据字典中的变量。

要定义参数变量,请使用符号窗格、属性检查器或模型资源管理器。将所选变量的作用域属性设置为参数。参数变量不会创建模块端口。有关在 MATLAB Function 模块中定义变量的详细信息,请参阅Create and Define MATLAB Function Block Variables

使用封装控制参数变量

您可以直接为 MATLAB Function 模块中的参数变量赋值,方法是向模块添加封装,在封装中创建一个参数,并为该参数赋予一个与参数变量相同的名称。有关为模块创建封装的详细信息,请参阅封装基础知识。在封装模块后,可以使用属性检查器调整参数变量属性。

调整参数变量示例

此示例使用一个封装的 MATLAB Function 模块,其中包含一个参数变量。

MATLAB 函数将参数变量 const 乘以 Sine Wave 模块信号的值。点击 MATLAB Function 模块上的箭头图标以查看代码。

function y = fcn(u, const)
y = const*u;

您可以通过双击 MATLAB Function 模块来调整 const 的值。模块封装中定义了设置正弦波乘数参数,您可以在封装编辑器中编辑该参数。MATLAB Function 模块将 const 定义为在属性检查器中的作用域设置为 Parameter 的数据。当您在符号窗格中选择 const 时,可以在属性检查器中看到此属性。

参数变量和封装参数必须具有相同的名称。在此示例中,更改参数变量名称而不更改封装参数名称会导致错误。如果您使用的是不可调参数,请确保在属性检查器中清除了可调属性。

控制工作区中的参数变量

如果希望多个 MATLAB Function 模块访问模型中的同一个变量,您可以在模型工作区中定义该变量,并为每个 MATLAB 函数添加指向该变量的参数变量。您可以直接在模型工作区中定义该变量,将该变量加载到 MAT 文件或 MATLAB 文件中,或使用自定义 MATLAB 代码创建该变量。有关详细信息,请参阅在模型工作区中指定数据源

如果要在多个模型的 MATLAB Function 模块中使用该变量,您可以在 MATLAB 基础工作区中定义该变量,方法是在命令行窗口中定义该变量或加载 MAT 文件。MATLAB Function 模块会访问在 MATLAB 工作区中定义的变量,直到您关闭 MATLAB 为止。

您也可以使用 Simulink 数据字典来定义变量。有关详细信息,请参阅什么是数据字典?

另请参阅

相关主题