主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

使用 MATLAB Function 模块访问 Simulink.Signal 对象中的数据

您可以通过在 MATLAB Function 模块代码中定义全局变量来从 MATLAB Function 模块访问 Simulink.Signal 对象中的数据。当您定义要在包含 MATLAB Function 模块的多个模型中访问的数据存储时,或者如果您需要访问 MATLAB Function 模块中的许多数据存储时,使用和访问 Simulink.Signal 对象数据。您可以访问多个 MATLAB Function 模块中的数据。

MATLAB Function 模块中定义变量

要使用 Simulink.Signal 对象定义全局数据并在 MATLAB Function 模块或该模块调用的代码中使用该数据:

  1. MATLAB Function 模块或 MATLAB Function 模块调用的代码中声明全局变量。例如,要将变量 myVar 定义为全局变量,请在函数声明语句下输入此代码。

    global myVar
  2. MATLAB Function 模块中,在符号窗格中添加一个与全局变量同名的变量 (自 R2022a 起)。有关如何使用符号窗格在 MATLAB Function 模块中定义变量的详细信息,请参阅Use the Symbols pane

  3. 将变量的作用域属性设置为 Data Store Memory

  4. 在模型工作区或基础工作区中,创建一个 Simulink.Signal 对象。将 Simulink.Signal 对象指定给与全局变量同名的变量。

  5. 设置 Simulink.Signal 对象的 DataTypeInitialValueDimensions 属性。数据类型无法继承,信号类型必须为实数或复数。

您可以将 Simulink.Signal 对象的作用域限定为模型或基础工作区。您可以在模型资源管理器中定义 Simulink.Signal 对象或从 MAT 文件中加载它们。

Simulink.Signal 对象检索数据

此示例展示了 MATLAB Function 模块如何使用存储在 Simulink.Signal 对象中的数据。

查看 Simulink.Signal 对象属性

查看 Simulink.Signal 对象的属性:

  1. 打开模型资源管理器。在建模选项卡的设计部分中,点击模型资源管理器

  2. 在左侧窗格中,展开 MLFB_slsignal_model 并点击模型工作区。中间窗格显示模型工作区中的数据。

  3. 点击 Simulink.Signal 对象 A。模型资源管理器的右窗格显示 A 的属性。在此示例中,数据类型double维度1初始值25,而复/实性real

要在 MATLAB Function 模块中使用此数据,您不能将数据类型复杂性设置为 auto

检查 MATLAB Function 模块

打开 MATLAB Function 模块。函数代码声明了一个全局变量 A,与 Simulink.Signal 对象的名称相匹配。该模块在每次执行时使用以下代码将 1A 相加:

function y = fcn
    global A;
    A = A+1;
    y = A;

确保变量 A 使用来自对象的数据:

  1. 函数选项卡的准备部分中,点击编辑数据

  2. 符号窗格中,选择变量 A。这些属性显示在属性检查器中。

  3. 请确保作用域属性为 Data Store Memory

对模型进行仿真

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

另请参阅

模块

对象

工具

主题