用于模型的信号数据日志的容器
的ModelDataLogs
类是向后兼容的。万博1manbetx从R2016a开始,不能记录ModelDataLogs
格式。信号测井使用数据集
格式。在R2016a或更高版本中,当你打开一个早期版本的模型时ModelDataLogs
格式,模型在使用中模拟数据集
格式。
您可以转换信号记录数据从ModelDataLogs
来数据集
格式。转换成数据集
格式使使用其他记录的数据(例如,记录的状态)进行后期处理变得更容易,这些数据也可以使用数据集
格式。有关更多信息,请参见将记录数据转换为数据集格式.
如果你有遗留代码使用ModelDataLogs
API,您可能会遇到需要更新代码或模型的情况。请参阅迁移使用遗留ModelDataLogs API的脚本.
在R2016a之前的版本中,如果配置参数>数据导入/导出>信号记录格式来ModelDataLogs
,S万博1manbetximulink®软件创建的万博1manbetx仿真软件。ModelDataLogs
类在模拟模型时包含信号日志。日志记录为顶级模型和顶级模型引用的每个包含要记录的信号的模型创建了该类的实例。日志分配ModelDataLogs
将顶部模型的对象转换为基本工作区中的变量。属性中指定的变量名配置参数>数据导入/导出>信号记录名称参数。默认值为罗格苏特
.
一个ModelDataLogs
对象具有数量可变的属性。第一个属性名为的名字
,指定对象包含其信号数据的模型的名称,或者,如果模型是引用模型,则指定引用该模型的模型块的名称。其余特性引用包含在模型模拟期间记录的信号数据的对象。这些对象可能是以下任何类型对象的实例:
用于模型数据日志的容器
万博1manbetxSimulink.SubsysDatalog
子系统数据日志的容器
除多路复用器或总线信号外的任何信号的数据日志
多路复用器或总线信号的数据日志
属性的名称标识记录的数据如下:
对于信号数据日志,表示信号的名称
对于子系统或模型日志容器,分别为子系统或模型的名称
例如,考虑下面的模型。
如测试点图标所示,此模型指定Simulink软件应记录名为万博1manbetx一步
和范围
在根系和信号命名clk
在名为Delayed Out的子系统中。在R2016a之前的版本中模拟这个模型后,MATLAB®工作区包含以下变量:
万博1manbetx仿真软件。ModelDataLogs (siglgex):命名元素Simulink类作用万博1manbetx域2 TsArray步骤1 Timeseries ('Delayed Out') 2 SubsysDataLogs
您可以使用完全限定对象名称或Simulink万博1manbetx打开
命令访问信号数据。例如,获取振幅clk
a中延迟输出子系统中的信号罗格苏特
对象,输入
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
对象
总线信号的层次结构保存在记录的信号数据中。虚拟总线中记录的信号名称源自源信号的名称。非虚拟总线中信号的记录名称源自适用的总线对象,并且可能与源信号的名称不同。看见复合信号查询有关这些功能的信息。
将记录数据转换为数据集格式,迁移使用遗留ModelDataLogs API的脚本,万博1manbetxSimulink.SubsysDatalog
,万博1manbetx仿真软件。Timeseries
,万博1manbetx仿真软件。TsArray
,谁
,谁
,打开