主要内容

将日志数据转换为数据集格式

将工作区数据转换为数据集

此示例显示如何转换MATLAB®时间序列数据数据集格式。myvdp_timeereries.是个VDP.模型有两个到工作空间配置为块simSIMOUT1在MATLAB时期格式的记录数据。如果您有使用的模型,请考虑使用这样的程序到工作空间将数据记录到Matlab TimeSeries格式的块。

使用万博1manbetxsimulink.simulationdata.dataset.构造函数将MATLAB次数转换为数据数据集格式,然后连接两个数据集。

  1. VDP.模型,添加两个到工作空间如图所示,块到模型。

  2. 设置保存格式两个块的参数。集Timeseries

  3. 保存模型myvdp_timeereries.

  4. 模拟模型。

    模拟使用到工作空间块。

  5. 访问信号日志格式,Logsout.

    Logsout.
    Simulink. 万博1manbetxsimulationdata . dataset Package: Simulink. logsout = Simulink. simulationdata模拟Data Characteristics: Name: 'logsout' Total Elements: 2 Elements: 1: 'x1' 2: 'x2' -Use get or getElement to access elements by index or name. -Use addElement or setElement to add or modify elements. Methods, Superclasses
  6. 从两者转换MATLAB时间序列数据到工作空间街区数据集

    ds = 万博1manbetxSimulink.SimulationData.Dataset (simout);ds1 = 万博1manbetxSimulink.SimulationData.Dataset (simout1);

    ds是第一个的变量名称到工作空间块数据。DS1.是第二个变量的名字吗到工作空间块数据。

  7. 将两个数据集连接到dsfinal.。观察到的格式dsfinal.匹配Logsout.

    dsfinal = ds.concat (ds1)
    dsfinal = 万博1manbetxsimulink.simulationdata.dataset包:simulink.simulationdata特征:名称:'simout'总元素:2个元素:1:'x1'2:'x2' - 使用索引或名称访问元素或getEment。-使用addElement或setElement添加或修改元素。方法,父类

转换结构,没有时间到数据集

此示例显示如何在没有时间数据的情况下转换结构数据集格式。myvdp_structure.是个VDP.模型有两个到工作空间为simout和simout1配置的以结构格式记录数据的块,如图所示。

如果你有模型到工作空间将数据记录为结构格式的块,考虑使用这样的过程将它们转换为数据集格式。

  1. VDP.模型,添加两个到工作空间如图所示,块到模型。

  2. 在里面保存格式两个块的参数,选择结构

  3. 启用两个信号的信号日志记录到两者的信号到工作空间登录块Ds格式。

  4. 保存模型myvdp_structure.

  5. 模拟模型。

    模拟使用到工作空间块。

  6. 从两者转换结构数据到工作空间街区数据集

    ds = 万博1manbetxSimulink.SimulationData.Dataset (simout);ds1 = 万博1manbetxSimulink.SimulationData.Dataset (simout1);

    sim是第一个的变量名称到工作空间块数据。SIMOUT1是第二个变量的名字吗到工作空间块数据。

    在无时间结构或数组的转换中,时间从t=0开始,以1为增量。

  7. 获取第一个元素的值ds

    ds.get (1) .Values.Time
    ans = 0 1 2 3。。。61 62 63.
  8. 从信号日志记录获取第一个元素的时间值。

    logsout.get(1).values.time
    Ans = 0 0.0001 0.0006 0.0031…19.2802 19.6802 20.0000
  9. 观察时间戳的差异

    • 没有转换到的时间的数据登录结构数据集格式

    • 数据登录数据集格式

以编程方式访问记录的数据集格式数据

当使用默认值时数据集信号日志格式,simulink万博1manbetx®将日志数据保存在万博1manbetxsimulink.simulationdata.dataset.对象。有关从该对象中提取信号数据的信息,请参见万博1manbetxsimulink.simulationdata.dataset.参考页面。

万博1manbetxsimulink.simulationdata.dataset.对象包含A.万博1manbetxsimulink.simulationData.Signal.每个记录信号的对象。

对于总线信号,万博1manbetxsimulink.simulationData.Signal.对象包含一个MATLAB的结构timeseries对象。

万博1manbetxsimulink.simulationdata.dataset.类提供了访问信号日志记录数据及其相关信息的两种方法。

的名字

描述

得到

也可以使用getElement方法,它与语法和行为共享得到方法。

根据索引、名称或块路径从数据集中获取元素或元素集合。

numElements

获取数据集中的元素数量。

例如,访问使用数据集格式,参见万博1manbetxsimulink.simulationdata.dataset.

总线信号记录数据存取阵列

用于一系列总线的信号日志记录数据使用数据集信号日志格式。

在一系列总线中访问特定信号数据的一般方法是:

  1. 使用一个万博1manbetxsimulink.simulationData.dataset.get.(或getElement方法来访问记录数据中的特定信号(默认情况下,Logsout.多变的)。

  2. 要获取总线数组中的值,索引。

  3. 再次索引以获取特定总线的数据。

例如,为了获得常量6块的信号记录数据ex_log_nested_aob模型,为topBus提供终结器块的信号:

logsout.getElement (topBus) .Values.a .firstConst.data (2, 2)

以下是访问总线阵列信号日志记录数据的其他示例。另一个示出了如何记录公共汽车数据数组的示例,请参阅sldemo_mdlref_bus.

简单总线阵列

公共汽车中的公共汽车数组

总线嵌套数组

访问具有重复名称的信号的数据

对于具有具有相同信号名称的多个信号的模型,信号日志数据包括万博1manbetxsimulink.simulationData.Signal.具有重复名称的每个信号的对象。

要访问具有重复名称的特定信号,请使用一个这些方法:

  • 找到特定信号的数据,目视检查显示输出万博1manbetxsimulink.simulationData.Signal.对象。

  • 使用万博1manbetxSimulink.SimulationData.Dataset.getElement方法,指定该信号的源块的块路径。

  • 要遍历具有重复信号名称的信号,请使用万博1manbetxSimulink.SimulationData.Dataset.getElement方法。

  • 使用“信号属性”对话框指定不同的名称。当具有重复名称的信号在普通模式下没有出现在引用模型的多个实例中时,请考虑使用这种方法。

    1. 在模型中,右键单击信号。

    2. 在上下文菜单中,选择属性

    3. 在“信号属性”对话框中,设置日志的名字风俗并指定与信号名称不同的名称。

    4. 模拟模型并使用万博1manbetxSimulink.SimulationData.Dataset.getElement方法,并使用name参数。

提示

或者,您可以使用信号日志记录选择器访问特定信号。有关详细信息,请参阅用信号记录选择器覆盖信号记录设置

处理信号记录数据中的换行符

在使用的信号记录数据中处理日志记录中的换行符数据集格式,使用一个sprintfA内的命令getElement称呼。例如:

topOut.getElement (sprintf (“增量\ nBUS”)))

另请参阅

相关话题