通过使用 MATLAB Function 模块访问 Simulink.Signal 对象中的数据
R2026b您可以通过在 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 模块中定义变量的详细信息,请参阅Create Variables by Using 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。