文档

导出仿真数据

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

仿真数据

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

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

你可以用不同的格式记录数据:

  • 数组

  • 结构

  • 结构随时间变化

  • MATLAB timeseries

  • ModelDataLogs

    请注意

    ModelDataLogs类以实现向后兼容。万博1manbetx从R2016a开始,不能在ModelDataLogs格式。信号记录使用数据集格式。在R2016a或更高版本中,当您打开使用过的早期版本中的模型时ModelDataLogs格式,模型模拟在使用中数据集格式。

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

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

导出信号数据的方法

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

出口方式 使用 文档

连接一个范围信号块或查看器。

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

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

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

范围

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

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

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

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

到文件

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

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

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

到工作空间

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

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

外港

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

使用信号记录来避免添加块。

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

只有在模拟暂停或完成时,数据才可用。

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

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

配置模型万博1manbetx®导出时间、状态和输出数据。

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

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

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

记录模拟数据的数据格式

限制导出数据量

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

记录数据存储的日志。

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

日志数据存储

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

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

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

sim卡

启用仿真数据导出

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

在这两种方法中,指定:

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

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

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

内存的性能

日志数据优化

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

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

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

登录到持久存储

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

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

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

  • 如果您选择最终状态参数,清除在最终状态保存完整的SimState参数。

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

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

另请参阅

功能

相关的例子

更多关于

这个话题有用吗?