主要内容

日志数据存储

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

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

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

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

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

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

支持对以下数据类型的数据存储进行日志记录:

  • 所有内置数据类型

  • 枚举数据类型

  • 定点数据类型

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

数据存储日志限制

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

  • 使用实例记录数据存储内存的数据。

    • 在Normal模式下模拟顶级模型。

    • 对于本地数据存储,“数据存储内存”块所在的模型必须为“模型参考普通”模式。

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

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

使用数据存储内存块创建日志数据存储

使用实例记录使用数据存储内存块创建的本地数据存储。

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

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

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

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

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

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

  6. 模拟模型。

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

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

创建的日志数据存储金宝app仿真软件。信号对象

可以创建本地和全局数据存储金宝app仿真软件。信号对象。看到带有信号对象的数据存储获取详细信息。

控件创建的数据存储的日志金宝app仿真软件。信号对象:

  1. 创建一个金宝app仿真软件。信号对象,该对象对需要访问数据存储的每个组件可见,如中所述带有信号对象的数据存储

  2. 的名称金宝app仿真软件。信号对象中的数据存储名称数据存储的读块和写块参数。

  3. 来自MATLAB®命令行,设置数据采集属性的属性LoggingInfo的属性金宝app仿真软件。信号)1

    例如,如果你使用一个金宝app仿真软件。信号对象被称为DataStoreSignalObject使用实例创建数据存储。

    datastoreignalobject . logginginfo . datalogging = 1
  4. 属性的属性,可以指定记录的数据量的限制LoggingInfo的属性金宝app仿真软件。信号对象:大量毁灭LimitDataPoints,MaxPoints

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

  6. 模拟模型。

访问数据存储日志数据

下面的Simulink金宝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 = 金宝appSimulink. simulationdata . datastorememorySimulationData属性:名称:'RefSignalVal'块路径:[1x1 Simulink.SimulationDa金宝appta. [1x1 Simulink.SimulationData.]DSMWriterBlockPaths: [1x2 Simulinkl.SimulationData.]金宝appBlockPath] dsmwriter: [101x1 uint32]值:[101x1 timeseries]

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

另请参阅

||

相关的话题