Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

导出仿真数据

导出或记录仿真数据为分析和调试模型提供了基准。使用标准或自定义 MATLAB® 函数来生成仿真系统输入信号,以及对系统输出进行绘图、分析或执行其他后处理。

仿真数据

仿真数据可以包括信号、时间、输出、状态和数据存储日志数据的任意组合。

导出仿真数据包括在仿真过程中将信号值保存到 MATLAB 工作区或 MAT 文件中,以便于在以后进行分析和后处理。导出数据也称为“数据记录”或“保存仿真数据”。

您可以用几种格式记录数据:

请考虑将以其他格式记录的数据转换为 Dataset 格式,以简化后处理。有关详细信息,请参阅Convert Data to Dataset Format

您还可以使用记录的数据作为仿真模型的输入。

记录仿真数据

您可以使用以下方法中的一种或多种来记录仿真数据。

记录方法用法文档

启用输出记录并将信号连接到根级 Outport 模块

如果模型已包含 Outport 模块,请考虑使用此方法记录顶层模型中的数据。

输出

Outport

启用信号记录,并在整个模型中标记要记录的信号

使用信号记录可避免向模型添加模块。

使用通过信号属性检测属性指定的单个信号记录速率来记录信号。

当仿真暂停或停止时,或当仿真完成时,数据可用。

信号记录

使用信号记录导出信号数据

将信号连接到 Record 模块

您可以使用 Record 模块将数据记录到工作区、文件或同时记录到工作区和文件。

Record 模块支持将数据记录到 MAT 文件、Microsoft® Excel® 文件或 MLDATX 文件。

您可以使用包括迷你图、时间图和 XY 绘图在内的多种可视化方式来可视化在 Record 模块中记录的数据。

Record, XY Graph

将信号连接到 To Workspace 模块。

指定用来存储所记录信号数据的变量的名称。

以不同于基本采样率的采样率保存输出。

To Workspace

将信号连接到 To File 模块。

To File 模块将数据保存到 MAT 文件中,而不是保存到工作区中的变量中。

以不同于基本采样率的采样率保存输出。

仅在仿真完成后使用 MAT 文件。

To File

配置 Simulink® 以导出时间和状态数据。

要捕获整个仿真的完整信息,请考虑导出这些数据。

状态以模型的基本采样率进行记录。

时间

状态

Save Block States and Simulation Operating Points

记录的仿真数据的数据格式

记录数据存储

记录在整个模型层次结构中共享数据的数据存储,以捕获所有数据存储写入的顺序。

Log Data Stores

将一个 Scope 模块连接到一个信号。

以不同于基本采样率的采样率保存输出。

示波器会存储数据,并且可能会占用大量内存。

Scope

启用仿真数据导出

要在仿真过程中将模型的状态和根级输出端口导出到基础工作区,请使用以下接口之一:

  • 使用“配置参数”对话框配置要记录的数据。在建模选项卡的设置下,点击模型设置。然后,选择数据导入/导出窗格。有关详细信息,请参阅模型配置参数:数据导入/导出

  • 使用 set_param 函数以编程方式配置要记录的数据。

  • sim 函数提供输入,以配置要为特定仿真记录的数据。配置参数值在仿真期间应用,并在仿真结束时还原。

在每种方法中,指定:

使用仿真数据检查器查看记录的数据

要以交互方式检查导出的仿真数据,请考虑使用仿真数据检查器

仿真数据检查器对显示的记录数据的种类有一些限制。请参阅在仿真数据检查器中查看数据

内存性能

优化记录数据

在非快速加速仿真模式下导出仿真数据时,Simulink 会在以下情况下优化内存使用。

  • 当时间步以固定间隔发生时,Simulink 使用压缩时间表示。Simulink 存储第一个时间戳的值、间隔的长度(时间步)以及时间戳的总数。

  • 当多个信号使用相同的时间戳序列时,这些信号共享一个存储的时间戳序列。共享一个存储的时间戳可以将记录数据所需的内存量减少达一半。内存差异可能是关键的性能因素,尤其是在记录包含成千上万个元素的总线时。

记录到持久存储

在具有许多时间步的长时间仿真中记录多个信号时,您可能会遇到内存问题。记录到持久存储可以解决这种内存问题。

要记录到持久存储,请在配置参数 > 数据导入/导出窗格中选择将数据集数据记录到文件选项。指定记录的种类(例如,信号记录和状态记录)。

  • 要记录输出和状态数据,请将格式参数设置为“数据集”。

  • 如果选择最终状态参数,请清除保存最终工作点参数。

如果使用 Simulink.SimulationData.DatasetRef 对象访问信号记录和状态记录数据,则会以增量方式将数据加载到模型工作区中。如果访问其他种类的记录数据,则会一次性加载所有数据。

有关详细信息,请参阅Log Data to Persistent Storage

另请参阅

模块

函数

相关主题