主要内容

模型的工作区

模型工作区与MATLAB工作空间

每个模型都有自己的工作空间,用于存储变量值。

模型工作空间与基础MATLAB相似®工作空间,除了:

  • 模型工作区中的变量仅在模型的范围内可见。

    如果MATLAB工作空间和模型工作空间都定义了同名的变量,并且该变量没有出现在任何中间的掩码子系统或模型工作空间中,则Simulink金宝app®软件在模型工作区中使用变量的值。模型的工作空间有效地为它提供了自己的名称空间,允许您为模型创建变量,而不会有与其他模型发生冲突的风险。

  • 加载模型时,工作区从数据源初始化。

    数据源可以是模型文件、mat文件、MATLAB文件或存储在模型文件中的MATLAB代码。有关更多信息,请参见数据源

  • 可以交互式地重新加载和保存mat文件、MATLAB文件和MATLAB代码数据源。

  • 要在模型工作区中存储信号对象,请将对象的存储类设置为汽车.信号对象包括金宝app模拟信号以及您创建的子类。

    如果指定的存储类不是汽车,您必须将信号对象存储在基本工作空间或数据字典中,以确保这些对象在全局Simulink上下文中是惟一的,并且可以被所有模型访问。金宝app

  • 当您存储MATLAB变量和参数对象(例如金宝app仿真软件。参数)在模型工作区中,存在一些可调性限制。看见其他建模目标的可调性注意事项和限制.此外,如果你存储一个AUTOSAR。参数对象,则代码生成器将忽略为该对象指定的存储类。

请注意

当解析对引用模型中使用的变量的引用时,引用模型的变量将被解析,就像父模型不存在一样。例如,假设一个被引用的模型引用了一个变量,该变量定义在父模型的工作空间和MATLAB工作空间中,但不在被引用的模型的工作空间中。在本例中,使用MATLAB工作空间。

内存问题的疑难解答

当您使用工作区变量作为块参数时,Simulink会在模拟的编译阶段创建该变量的副本,并将该变量存储在内存中。金宝app这可能会导致系统在模拟期间或在生成代码的过程中耗尽内存。你的系统可能会耗尽内存,如果你有:

  • 具有多个参数的大型模型

  • 带有参数的模型具有大量的元素

此问题不会影响用于表示生成代码中的参数的内存量。

以编程方式操作模型工作区

目标金宝app仿真软件。ModelWorkspace类描述模型工作区。金宝appSimulink为您在Simulink会话期间打开的每个模型创建一个该类的实例。与该类关联的方法可用于完成与模型工作区相关的各种任务,包括:

  • 列出模型工作区中的变量

  • 给变量赋值

  • 评估表达式

  • 清除模型工作区

  • 从数据源重新加载模型工作区

  • 将模型工作空间保存到指定的MAT文件或MATLAB文件

  • 将工作区保存到工作区指定为其数据源的mat文件或MATLAB文件中

另请参阅

相关话题