确定在哪里存储变量和对象动态仿真模块模型
模型数据是在基本工作区或数据字典等工作空间中创建的对象和变量。模型数据包括:
块参数的数值,例如
仿真软件。参数
对象和MATLAB®变量信号,如
仿真软件。信号
对象定义的值类型
仿真软件。ValueType
对象数据类型
模型配置设置
模拟输入和输出数据
您可以在适合您的设计的位置存储、分区和共享模型数据。您选择的存储位置可能取决于:
您的建模的目标。
模型体系结构(引用模型、子系统和其他分区策略)和组件结构。
您使用的数据类型。
类型的数据
仿真数据是用于驱动模拟的一组输入数据和模拟生成的一组输出数据。例如,您可以使用变量来存储模拟获得的输入数据轮廓尺寸块。模拟可以通过以下方式导出输出数据:外港块,到工作空间块和记录信号。
您可以将当前MATLAB会话的模拟数据存储在基本工作区中。若要永久存储此模拟数据,请将其保存在mat文件或脚本文件中。有关加载、生成和存储模拟数据的更多信息,请参见信号加载技术的比较而且出口仿真数据.
设计数据是用于指定模型中的块参数和信号特征的一组变量。例如,设计数据包括数值MATLAB变量、值类型对象、参数和信号数据对象、数据类型对象和总线对象。
您可以将设计数据存储在基本工作区、模型工作区或数据字典的design data部分中。要使用模型永久存储本地设计数据,请使用模型工作区。要在模型之间共享设计数据,请使用数据字典或基本工作区。数据字典永久地存储数据,您可以控制数据范围以建立所有权,划分数据以简化可读性和维护,并跟踪更改。如果使用基本工作区,要永久存储数据,必须将其保存在mat文件或脚本文件中。
配置设置是一组模型配置参数。默认情况下,配置集驻留在模型文件中,因此您不需要将配置集与模型分开存储。但是,您不能将这些集合与其他模型共享。
要在模型之间共享配置集,您必须创建
仿真软件。ConfigSet
对象。每个对象表示一个独立的配置集。您可以将这些对象存储在基本工作区或数据字典的Configurations部分中。如果使用数据字典,则可以定义每个配置集的范围,比较不同的配置集,并跟踪更改。数据字典固有地将配置集从其他类型的数据中划分出来。
为您的设计存储数据
该表显示了可用于存储、分区和管理设计数据和配置集的技术。
建模场景 | 场景描述 | 储存地点和技术 |
---|---|---|
快速原型和模型实验 |
在学习使用Simulink时,您希望创建临时数据,例如指定数值块参数的变量®. 您想尝试建模技术。您不需要永久存储所创建的数据。 |
将数据存储在基本工作区中,以便快速创建和更改数据。 |
独立的模型 |
您拥有一个不依赖于其他系统的数据的单一模型。该模型是独立的,因为它不是更大系统的一部分。 |
将数据存储在模型工作区中,以提高模型的可移植性。使用数据字典来存储无法存储在模型工作区中的数据。 或者,将所有模型数据存储在数据字典中。如果使用字典,则可以使用引用字典对数据进行分区。 |
引用模型的独立层次结构 |
您有一个引用模型的层次结构,它不依赖于其他系统的数据。等级制度是独立的,因为它不是一个更大的系统的一部分。 |
在每个模型工作区中存储本地模型数据。 在数据字典中存储模型共享的数据,例如总线对象和配置集。将层次结构中的所有模型链接到字典。 有关示例,请参见迁移模型引用层次结构以使用字典而且用数据字典管理燃油控制系统的数据. |
系统的组件 |
一个或多个团队维护模型系统的组件。一个组件是表示较大系统的一部分的单个模型或引用模型的层次结构。 |
在模型工作区中存储本地模型数据。 将组件中的模型共享的数据(例如总线对象和配置集)存储在数据字典中。将组件中的所有模型链接到字典中。 使用额外的引用字典来存储组件共享的数据。 示例请参见使用数据字典为模型参考层次结构划分数据. |
存储位置
选择以下任何一个位置来存储数据:
MATLAB基础工作区。在试验临时模型时,使用基本工作区来存储变量。
一个模型的工作区。使用模型工作区来永久存储模型本地的数据。
一个数据字典。使用数据字典永久存储全局数据,在模型之间共享数据,并跟踪对数据的更改。
图表显示了每个存储位置的功能和优势。
能力 | 基本工作空间 | 模型的工作空间 | 数据字典 |
---|---|---|---|
数据模型的链接 | 隐式的 | 隐式的 | ✓ |
统一的数据定义接口 | ✓ | ✓ | ✓ |
模型数据的依赖 | ✓ | ✓ | ✓ |
数据输入的比较 | ✓ | ✓ | ✓ |
数据输入的持久性 | ✓ | ✓ | |
弥补缺失变量的选项 | ✓ | ✓ | 附加选项 |
共享数据 | ✓ | ✓ | |
数据分组 | ✓ | ||
更改数据条目的跟踪 | ✓ | ||
对配置集的更改跟踪 | ✓ | ||
数据输入合并和协调 | ✓ | ||
辅助数据的存储和分区 | ✓ | ||
要求链接 | ✓ |
有关模型与工作区和工作区变量交互的方式的信息,请参见符号解析.
临时数据:基础工作区
使用基本工作区临时存储数据:
在你学习使用Simulink的时候
当您需要在试验建模技术时快速创建变量
当您不需要永久存储数据时
要在基本工作区中创建变量,您可以使用MATLAB命令提示符或Model Explorer。所有开放模型都可以使用您在基本工作区中创建的数据。
如果使用变量在模型中指定数值块参数,则可以在模拟过程中通过在命令提示符中使用命令以编程方式更改参数值。要以编程的方式更改您存储在模型工作区或数据字典中的参数值,您必须使用那些存储位置的函数接口。
为了在结束MATLAB会话之前永久存储基本工作区数据,可以将数据保存在mat文件或脚本文件中。在以后的会话中,您可以从文件加载数据。但是,如果对基本工作区中的数据进行更改,则必须再次将数据保存到文件中。考虑使用模型工作区或数据字典来永久存储数据。
本地数据:模型工作区
使用模型工作区来存储仅在关联模型中使用的数据。这些数据可以包括:
常量参数,例如用于指定块参数值的数值变量。
数据对象,例如
仿真软件。信号
而且仿真软件。参数
对象,用于控制信号和参数特征。然而,模型工作区中的信号对象只能使用汽车
存储类。如果你存储一个AUTOSAR。参数
对象,代码生成器将忽略您为对象指定的存储类。仿真软件。NumericType
对象,用于指定数据类型。但是,不能将对象用作数据类型别名。你必须设置IsAlias
财产假
.模型参数。
您可以通过将数据存储在模型工作区中来提高模型的可移植性并建立数据所有权。在这种情况下,模型文件永久地存储数据。
在模型引用层次结构中,每个模型工作区充当一个惟一的名称空间。因此,您可以在多个模型工作区中使用相同的变量名。然后,您可以为每个模型分配一个惟一的变量值。
您可以使用Model Explorer来操作模型工作区数据。或者,您可以将命令提示符或脚本与模型工作区编程接口结合使用。
有关使用模型工作区存储本地数据的更多信息,请参见模型的工作区.
全局和共享数据:数据字典
数据字典是永久存储数据的独立文件。使用数据字典而不是基本工作区来划分数据、跟踪更改、控制访问和共享数据。如果您将一个模型链接到一个数据字典,您仍然可以通过配置来自模型或字典的访问来使用基本工作区中的变量。
就像使用模型工作区一样,您可以使用数据字典直接将数据与模型关联起来。您可以使用这种关联来确定数据的范围并建立所有权。
使用字典时,可以将数据存储在附加的引用字典中,从而对数据进行分区。但是,字典中的每个条目必须使用唯一的名称。必须将每个字典作为单独的文件进行管理。
使用数据字典来存储多个模型或系统组件共享的数据。这些数据可以包括:
多个模型用来指定块参数值的数值变量。
仿真软件。AliasType
而且仿真软件。NumericType
对象,用于一次性在多个模型中指定数据类型。数据对象,包括信号对象(如
仿真软件。信号
),使用的存储类不是汽车
.如果你有仿真软件编码器™许可证,这些对象可以表示信号和可调参数,它们在生成的代码中作为全局变量出现。仿真软件。ValueType
而且仿真软件。公共汽车
您用来定义模型组件的接口的对象,例如引用模型。仿真软件。ConfigSet
对象,用于在多个模型之间维护配置参数的一致性。枚举类型定义,您可以使用它们进行存储
Simulink.data.dictionary.EnumTypeDefinition
对象。
您可以使用Model Explorer来操作字典数据。另外,还可以将命令提示符或脚本与数据字典编程接口结合使用。
有关数据字典的基本信息,请参见什么是数据字典?.
代码生成的注意事项
如果您打算从模型生成C代码(仿真软件编码器),考虑这些因素。
如果应用的存储类不是
汽车
到一个信号对象(如仿真软件。信号
)来控制生成代码中信号或块状态的外观,则不能将对象存储在模型工作区中。将对象存储在基本工作区或数据字典中。有关信号和状态的存储类的更多信息,请参见模型接口元素的C代码生成配置(仿真软件编码器).如果应用的存储类不是
汽车
参数对象(如仿真软件。参数
),您可以将对象存储在基本工作区、模型工作区或数据字典中。然而,如果您将对象存储在模型工作区中,代码生成器假定包含该参数的模型拥有该参数。有关更多信息,请参见参数对象存储位置对代码生成的影响(仿真软件编码器).