配置 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 数据字典来定义变量。有关详细信息,请参阅什么是数据字典?。