主要内容

日志数据存储

记录本地和全局数据存储值

可以记录模拟中所有步骤的本地或全局数据存储数据变量的值。数据存储记录的两种常见用途是:

  • 模型调试–查看所有数据存储写入的顺序

  • 确认模型修改-使用记录的数据来建立一个基线,用于比较结果,以确定模型修改的影响

有关记录全局数据存储的示例,请参见跨多个模型使用数据存储

金宝app日志数据存储支持的数据类型、维度和复杂性

您可以记录使用以下数据类型的数据存储:

  • 所有内置数据类型

  • 枚举数据类型

  • 定点数据类型

您可以记录使用任何维级别或复杂性的数据存储。

数据存储记录限制

在模型中使用数据存储日志记录的限制有:

  • 记录数据存储内存的数据。

    • 在普通模式中模拟顶级模型。

    • 对于本地数据存储,包含数据存储内存块的模型必须处于模型引用正常模式。

    • 引用模型中写入数据存储内存的任何块都必须在模型引用正常模式下执行。

  • 不能记录使用自定义数据类型(包括总线)的数据存储。

记录使用数据存储内存块创建的数据存储

使用数据存储内存块创建本地数据存储:

  1. 在模型中,打开模型数据编辑器。在建模选项卡上,单击模型数据编辑器

  2. 数据存储选项卡,设置改变看法下拉列表,仪表

  3. 在数据表中,对于目标数据存储,选择日志数据列。

    如果目标数据存储不在表中,单击变化范围按钮以显示在当前系统下的子系统中定义的数据存储。

  4. 可选地,要配置其他日志记录特征,如要记录的最大数据点数量,请打开属性检查器(在建模选项卡,在设计,点击属性检查器).使用属性检查器打开块对话框并检查日志记录选项卡。

  5. 使用启用数据存储日志记录模型配置参数>数据导入/导出>数据存储参数。

  6. 模拟模型。

数据存储内存块的日志图标

当您为模型启用日志记录,并为日志记录配置本地数据存储时,数据存储内存块将显示一个蓝色图标。如果未启用模型的日志记录,则图标为灰色。

日志数据存储使用金宝app模拟信号对象

您可以使用金宝app模拟信号对象。看到带有信号对象的数据存储获取详细信息。

要记录使用金宝app模拟信号对象:

  1. 创建一个金宝app模拟信号对象,该对象对需要访问数据存储的每个组件可见,如带有信号对象的数据存储

  2. 使用的名称金宝app模拟信号中的对象数据存储名称数据存储的block参数读和数据存储需要对数据存储进行读写的写块。

  3. 从MATLAB®命令行,数据记录(这是公司的财产)LoggingInfo的属性金宝app模拟信号)到1

    例如,如果你使用a金宝app模拟信号对象被称为DataStoreSignalObject使用实例创建数据存储。

    DataStoreSignalObject.LoggingInfo.DataLogging = 1
  4. 控件的属性可以指定记录的数据量的限制LoggingInfo财产金宝app模拟信号对象:大量毁灭LimitDataPoints,及MaxPoints

  5. 使用启用数据存储日志记录模型配置参数>数据导入/导出>数据存储参数。

  6. 模拟模型。

访问数据存储记录数据

以下仿真软件金宝app®类表示来自数据存储日志记录的数据,并提供访问该数据的方法:

描述
金宝appSimulink.SimulationData.BlockPath 表示完全指定的Simulink块路径;用于捕获完整的模型参金宝app考层次结构
金宝appSimulink.SimulationData.Dataset 存储记录的数据元素并提供搜索功能;使用组金宝appSimulink.SimulationData.Element单个对象中的对象
金宝appSimulink.SimulationData.DataStoreMemory 在模拟期间从数据存储存储日志信息

您还可以转换以数据集以外的格式记录的数据。有关更多信息,请参见记录数据的数据集转换

查看数据存储数据

要从命令行查看数据存储日志记录数据,请在基本工作区中查看输出数据集。数据存储记录数据集的默认变量为dsmout

sldemo_mdlref_dsm模型说明了查看数据存储日志数据的方法。

访问数据存储记录数据中的元素

要在数据存储日志数据中查找元素,请基于的名字BlockType属性,使用getElement的方法金宝appSimulink.SimulationData.Dataset.例如:

dsmout.getElement('RefSignalVal')ans=Sim金宝appulink.SimulationData.DataStoreMemory包:Simulink.SimulationData属性:名称:'RefSignalVal'块路径:[1x1 Simulink.SimulationData.Blockpath]作用域:'local'DSMwriterBlockPath:[1x2 Simulinkl.SimulationData.Blockpath]DSMWriters:[101x1 uint32]值:[时间序列]

要按索引访问元素,请使用金宝appSimulink.SimulationData.Dataset.getElement方法。

另请参阅

||

相关话题