Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

导出仿真数据

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

仿真数据

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

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

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

  • Simulink.SimulationData.Dataset

  • 数组

  • 结构体

  • 带有时间的结构体

  • MATLAB 时序

  • ModelDataLogs

    注意

    支持 “ModelDataLogs” 格式以实现向后兼容。从 R2016a 开始,您不能再以 “ModelDataLogs” 格式记录数据。在 R2016a 或更高版本中,当打开使用了 ModelDataLogs 格式的早期版本模型时,模型使用 Dataset 格式记录数据。

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

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

导出信号数据的方法

导出仿真数据通常包含导出信号数据。您可以使用多种方法导出信号数据。

导出方法用法 文档

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

如果在仿真过程中使用 Scope 模块查看结果,请考虑也使用 Scope 模块导出数据。

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

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

Scope

将信号连接到 To File 模块。

考虑使用 To File 模块导出大量数据。

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

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

To File

将信号连接到 To Workspace 模块。

在图中记录用于存储信号数据的工作区变量。

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

To Workspace

将信号连接到根级 Outport 模块。

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

Outport

设置信号的信号记录属性。

使用信号记录可避免向模型添加模块,例如 ScopeTo FileTo Workspace 模块。

基于各信号速率记录信号。

数据仅在仿真暂停或完成时可用。

使用信号记录来记录总线信号数组。

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

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

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

在仿真过程中使用 Output 参数保存根 Outport 模块数据。

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

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

Limit Amount of Exported Data

Samples to Export for Variable-Step Solvers

记录数据存储。

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

Log Data Stores

使用 sim 命令以编程方式记录仿真数据。

使用 sim 将时间、状态和信号仿真数据导出到一个数据对象。

当在函数或 parfor 循环内使用 sim 命令仿真模型时,请选择 Return as single object 参数。

sim

启用仿真数据导出

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

在这两种方法中,均需要指定:

使用 Simulation Data Inspector 查看记录的数据

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

Simulation Data Inspector 对显示的记录数据的种类有一些限制。请参阅使用 Simulation Data Inspector 查看数据

内存性能

优化记录数据

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

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

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

记录到持久存储

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

要记录到持久存储,请在 Configuration Parameters > Data Import/Export 窗格中选择 Log Dataset data to file 选项。指定记录的种类(例如,信号记录和状态记录)。

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

  • 如果选择 Final states 参数,请清除 Save final operating point 参数。

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

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

另请参阅

模块

函数

相关示例

详细信息