主要内容

万博1manbetx仿真软件。ModelDataLogs

用于模型的信号数据日志的容器

描述

请注意

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

您可以转换信号记录数据从ModelDataLogs数据集格式。转换成数据集格式可以方便其他记录数据(例如,记录状态)的后处理,这些数据也可以使用数据集格式。有关更多信息,请参见将记录数据转换为数据集格式

如果你有遗留代码使用ModelDataLogs,您可能会遇到需要更新代码或模型的情况。有关更新脚本的更多信息,请参见迁移使用遗留ModelDataLogs API的脚本

在R2016a之前的版本中,当你设置配置参数>数据导入/导出>信号记录格式ModelDataLogs,日志记录数据产生一个或多个万博1manbetx仿真软件。ModelDataLogs对象,该对象包含记录的数据。日志记录为顶级模型以及包含日志信号的顶级模型引用的每个模型创建该类的实例。的ModelDataLogs对象将被分配给基本工作区中的一个变量。变量的名称由配置参数>数据导入/导出>信号记录名字参数。默认值为logsout

一个ModelDataLogs对象具有数量可变的属性。第一个属性,的名字,指定对象包含其信号数据的模型的名称,如果模型是引用的模型,则指定引用该模型的model块的名称。其余属性引用包含模型模拟期间记录的信号数据的对象。对象可以是这些类型的对象的实例:

属性的名称标识记录的数据如下:

  • 对于信号数据日志,表示信号的名称

  • 对于子系统或模型日志容器,分别表示子系统或模型的名称

例如,考虑以下模型。

正如测试点图标所指出的,这个模型指定了那个Simulink万博1manbetx®软件应该记录命名的信号一步范围在根系和信号命名clk在名为Delayed Out的子系统中。在R2016a之前的版本中模拟这个模型后,MATLAB®工作区包含以下变量:

万博1manbetx仿真软件。ModelDataLogs (siglgex):命名元素Simulink类作用万博1manbetx域2 TsArray步骤1 Timeseries ('Delayed Out') 2 SubsysDataLogs

您可以使用完全限定对象名称或Simulink万博1manbetx解压缩命令访问信号数据。例如,获取振幅clka的延迟输出子系统中的信号logsout对象,输入

data = logsout。(“延迟”) .clk.Data;

> > logsout.unpack (“所有”);>> data = clk.Data;

访问记录的信号数据保存在ModelDataLogs格式

万博1manbetx仿真软件。ModelDataLogs对象包含信号数据对象,用于捕获特定模型元素的信号日志信息。

模型元素 信号数据对象
顶级或引用模型 万博1manbetx仿真软件。ModelDataLogs
模型中的子系统 万博1manbetx仿真软件。SubsysDataLogs
非总线或多路复用器信号的信号 万博1manbetx仿真软件。Timeseries
总线信号或多路复用信号 万博1manbetx仿真软件。TsArray

处理日志名称中的空格和换行符

数据日志中的信号名称可以有空格或换行符:

  • ,且名称包含空格或换行符。

  • 是未命名的,起源于名称包含空格或换行符的块。

  • 存在于子系统或引用模型中,且子系统的名称、模型块或任何高级块的名称包含空格或换行符。

下面的模型显示了一个名称中包含空格的信号,一个名称中包含换行符的信号,以及一个来自名称中包含换行符的块的未命名信号:

如果模型使用,下面的示例显示如何处理日志名称中的空格或新行ModelDataLogs为信号测井格式。

logsout
logsout =仿万博1manbetx真软件。ModelDataLogs(model_name): Name Elements Simulink Class ('x y') 1 Timeseries ('a b') 1 Timeseries ('SL_Sine Wave1') 1 Timeseries

你不能访问任何万博1manbetx仿真软件。Timeseries使用TAB名称补全或在MATLAB中输入名称。这种语法不能被识别,因为每个名称中的空格或换行符在MATLAB解析器中作为标识符之间的分隔符出现。例如:

logsout。x y
???logsout。x y| Error: Unexpected MATLAB expression.

引用一个万博1manbetx仿真软件。Timeseries对象的名称中包含空格,将包含空格的元素括在单引号中:

logsout。(“x y '
名称:'x y' BlockPath: 'model_name/ sin ' PortIndex: 1 SignalName: 'x y' ParentName: 'x y' TimeInfo: [1x1 Si万博1manbetxmulink. txt]时间:[51x1 double]数据:[51x1 double]

引用一个万博1manbetx仿真软件。Timeseries对象,其名称包含换行符,连接以构造包含换行符的元素:

cr = sprintf (' \ n ') logsout。([“一个”cr“b”])

当数据日志中的空格或换行符来源于以下名称时,同样的技术也会起作用:

  • 一个未命名的记录信号的起始块

  • 包含任何已记录信号的子系统或模型块

  • 在模型层次结构中任何优于此类块的块

此代码可以参考信号的记录数据:

logsout。([“SL_Sine”cr“Wave1”])

对于具有多个空格、换行符或两者都有的名称,根据需要重复并结合使用这两种技术,以便将预期的名称指定给MATLAB。

总线信号

ModelDataLogs格式存储在一个单独的记录总线信号数据万博1manbetx仿真软件。TsArray对象。

总线信号的层次结构保存在记录的信号数据中。虚拟总线中信号的日志名称来源于源信号的名称。非虚拟总线中的信号的日志名称来源于适用的总线对象,并且可以与源信号的名称不同。看到复合信号查询有关这些功能的信息。

之前介绍过的R2006a