使用 MATLAB Function 模块访问 Simulink.Signal 对象中的数据
您可以通过在 MATLAB Function 模块代码中定义全局变量来从 MATLAB Function 模块访问 Simulink.Signal 对象中的数据。当您定义要在包含 MATLAB Function 模块的多个模型中访问的数据存储时,或者如果您需要访问 MATLAB Function 模块中的许多数据存储时,使用和访问 Simulink.Signal 对象数据。您可以访问多个 MATLAB Function 模块中的数据。
在 MATLAB Function 模块中定义变量
要使用 Simulink.Signal 对象定义全局数据并在 MATLAB Function 模块或该模块调用的代码中使用该数据:
在 MATLAB Function 模块或 MATLAB Function 模块调用的代码中声明全局变量。例如,要将变量
myVar定义为全局变量,请在函数声明语句下输入此代码。global myVar在 MATLAB Function 模块中,在符号窗格中添加一个与全局变量同名的变量 (自 R2022a 起)。有关如何使用符号窗格在 MATLAB Function 模块中定义变量的详细信息,请参阅Use the Symbols pane。
将变量的作用域属性设置为
Data Store Memory。在模型工作区或基础工作区中,创建一个
Simulink.Signal对象。将Simulink.Signal对象指定给与全局变量同名的变量。设置
Simulink.Signal对象的DataType、InitialValue和Dimensions属性。数据类型无法继承,信号类型必须为实数或复数。
您可以将 Simulink.Signal 对象的作用域限定为模型或基础工作区。您可以在模型资源管理器中定义 Simulink.Signal 对象或从 MAT 文件中加载它们。
从 Simulink.Signal 对象检索数据
此示例展示了 MATLAB Function 模块如何使用存储在 Simulink.Signal 对象中的数据。

查看 Simulink.Signal 对象属性
查看 Simulink.Signal 对象的属性:
打开模型资源管理器。在建模选项卡的设计部分中,点击模型资源管理器。
在左侧窗格中,展开
MLFB_slsignal_model并点击模型工作区。中间窗格显示模型工作区中的数据。点击
Simulink.Signal对象A。模型资源管理器的右窗格显示A的属性。在此示例中,数据类型为double,维度为1,初始值为25,而复/实性为real。

要在 MATLAB Function 模块中使用此数据,您不能将数据类型或复杂性设置为 auto。
检查 MATLAB Function 模块
打开 MATLAB Function 模块。函数代码声明了一个全局变量 A,与 Simulink.Signal 对象的名称相匹配。该模块在每次执行时使用以下代码将 1 与 A 相加:
function y = fcn global A; A = A+1; y = A;
确保变量 A 使用来自对象的数据:
在函数选项卡的准备部分中,点击编辑数据。
在符号窗格中,选择变量
A。这些属性显示在属性检查器中。请确保作用域属性为
Data Store Memory。

对模型进行仿真
运行模型。模块执行发生在每个主时间步。MATLAB Function 模块的最终输出是 76。