主要内容

导出仿真数据

导出(日志记录)模拟数据为分析和调试模型提供了基线。使用标准或自定义MATLAB®生成模拟系统输入信号并对系统输出进行图形化、分析或后处理的功能。

仿真数据

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

导出仿真数据涉及在仿真过程中将信号值保存到MATLAB工作区或mat文件中,以供以后检索和后处理。导出数据也称为“数据记录”或“保存模拟数据”。

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

  • 金宝appSimulink.SimulationData.Dataset

  • 数组

  • 结构

  • 结构随时间变化

  • MATLAB timeseries

  • ModelDataLogs

    请注意

    ModelDataLogs格式支持向后兼容。金宝app从R2016a开始,不能在ModelDataLogs格式。在R2016a或更高版本中,当您打开使用过的早期版本中的模型时ModelDataLogs格式,模型记录数据数据集格式。

考虑将以其他格式记录的数据转换为数据集格式简化后期处理。有关更多信息,请参见记录数据的数据集转换

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

导出信号数据的方法

导出仿真数据通常涉及导出信号数据。您可以使用各种方法导出信号数据。

出口方式 使用 文档

连接一个范围阻塞到一个信号。

如果你使用范围块用于在模拟期间查看结果,也可以考虑使用范围块导出数据。

以基本抽样率以外的抽样率保存输出。

作用域存储数据,可能占用大量内存。

范围

把一个信号连接到到文件块。

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

以基本抽样率以外的抽样率保存输出。

只有在模拟完成后才使用mat文件。

到文件

把一个信号连接到到工作空间块。

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

以基本抽样率以外的抽样率保存输出。

到工作空间

将一个信号连接到根级外港块。

考虑使用此方法在顶级模型中记录数据,如果模型已经包含外港块。

外港

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

使用信号记录来避免添加块,例如范围到文件,到工作空间积木,到你的模型。

根据单个信号速率记录信号。

当模拟暂停或完成时,数据可用。

使用信号日志记录总线信号阵列。

使用信号日志导出信号数据

配置模型金宝app®导出时间、状态和输出数据。

要从整体上捕获关于模拟的完整信息,可以考虑导出此数据。

使用输出参数保存根目录外港模拟时阻塞数据。

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

记录模拟数据的数据格式

为日志指定信号值

为可变步长求解器导出样本

记录数据存储的日志。

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

日志数据存储

使用sim卡命令以编程方式记录模拟数据。

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

选择作为单个对象返回参数模拟模型时使用sim卡函数或parfor循环。

sim卡

启用仿真数据导出

在模拟模型期间,要将模型的状态和根级输出端口导出到MATLAB基础工作空间,请使用以下接口之一:

在这两种方法中,指定:

使用模拟数据检查器查看日志数据

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

模拟数据检查器对所显示的日志数据类型有一些限制。看到在模拟数据检查器中查看数据

内存的性能

日志数据优化

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

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

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

登录到持久存储

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

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

  • 对于日志输出和状态数据,设置格式参数数据集

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

使用一个金宝appSimulink.SimulationData.DatasetRef对象以访问信号日志记录和状态日志记录数据,将数据增量地加载到模型工作空间中。访问其他类型日志记录的数据将一次性加载所有数据。

详细信息请参见将数据记录到持久存储

另请参阅

功能

相关的例子

更多关于