主要内容

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

使用 MATLAB Function 模块访问 Data Store Memory 模块中的数据

您可以通过在 MATLAB Function 模块代码中定义全局变量从 MATLAB Function 模块访问 Data Store Memory 模块中的数据。当您想要访问单个模型中定义的数据存储数据,并且该模型不使用引用模型时,使用并访问 Data Store Memory 模块数据。您可以访问多个 MATLAB Function 模块中的数据。

MATLAB Function 模块中定义变量

要在 MATLAB Function 模块中或在 MATLAB Function 模块调用的代码中使用 Data Store Memory 模块数据:

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

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

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

  4. 在模型中,创建或打开一个 Data Store Memory 模块。将数据存储名称参数指定为与全局变量相同的名称。

  5. Data Store Memory 模块中,设置初始值数据类型信号类型参数。数据类型无法继承,信号类型必须为实数或复数。

从 Data Store Memory 模块中检索数据

此示例显示 MATLAB Function 模块如何检索存储在 Data Store Memory 模块中的数据。

查看 Data Store Memory 模块参数

打开 Data Store Memory 模块以查看参数。在常设选项卡上,请注意数据存储名称参数是 A。打开信号属性选项卡。在此示例中,初始值参数为 25数据类型参数为 double,而信号类型参数为 real

要在 MATLAB Function 模块中使用此数据,您不能将数据类型设置为 Inherit: auto 或将信号类型设置为 auto

检查 MATLAB Function 模块

打开 MATLAB Function 模块。函数代码声明全局变量 A,该变量与 Data Store Memory 模块的数据存储名称参数的名称匹配。该模块在每次执行时使用以下代码将 1A 相加:

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

确保变量 A 使用该模块中的数据存储内存:

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

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

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

对模型进行仿真

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

检测内存访问问题

您可以通过配置模型来提供运行时和编译时诊断,从而检测数据存储的问题。“配置参数”窗口和“参数”窗口显示 Data Store Memory 模块的诊断信息。有关使用数据存储诊断的详细信息,请参阅数据存储诊断

注意

如果将数据存储内存数组传递给函数,优化(例如 A = foo(A)),这可能会导致诊断表明即使只访问了某些元素,数组的全部内容也被读取或写入。

另请参阅

模块

对象

工具

主题