文档

万博1manbetx仿真软件。ModelDataLogs

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

描述

请注意

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

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

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

在R2016a之前的版本中,如果配置参数>数据导入/导出>信号记录格式ModelDataLogs,S万博1manbetximulink®软件创建的万博1manbetx仿真软件。ModelDataLogs类在模拟模型时包含信号日志。日志记录为顶级模型和顶级模型引用的每个包含要记录的信号的模型创建了该类的实例。日志分配ModelDataLogs将顶部模型的对象转换为基本工作区中的变量。属性中指定的变量名配置参数>数据导入/导出>信号记录名称参数。默认值为罗格苏特

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

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

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

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

例如,考虑下面的模型。

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

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

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

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

>>开箱(“所有”); >> 数据=时钟数据;

访问记录的信号数据保存在ModelDataLogs总体安排

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

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

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

当信号:

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

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

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

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

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

罗格苏特
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 name completion或通过向MATLAB键入名称来完成此日志中的对象。由于每个名称中的空格或换行符在MATLAB解析器中显示为标识符之间的分隔符,因此无法识别此语法。例如:

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

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

洛格苏特(“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”)洛格苏特([“一个”cr“b”])

当数据日志中的空格或换行符源自以下名称时,同样的技术也适用:

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

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

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

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

洛格苏特([“SL_Sine”cr“Wave1”])

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

公共汽车信号

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

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

在R2006a之前引入

这个话题有用吗?