主要内容

加载总线数据到根级输入端口

属性中手动指定数据,可以将总线数据导入顶级输入端口输入配置参数或使用根导入映射器工具。有关使用根导入映射器工具导入总线数据的信息,请参见总线数据导入

导入总线数据要求

您可以将总线(虚拟、非虚拟或总线数组)数据导入到总线对象定义的顶级输入端口(参见金宝app仿真软件。公共汽车).在顶层轮廓尺寸块,设置数据类型公共汽车并指定总线对象的名称。要指定总线信号的数据值,使用以下结构:

  • MATLAB®timeseries对象

  • MATLAB时间表对象

  • 的组合timeseries时间表对象

在结构中不包含字段的总线元素使用接地值。您可以使用一个空矩阵来指定使用接地值。

请注意

当你指定时间表要加载的数据时间表必须只包含一个信号的数据。

的结构timeseries时间表(或两者)对象必须在以下方面匹配总线元素:

  • 层次结构

  • 结构字段的名称,它必须与总线元素名称匹配。(的名字财产的timeseries对象不需要匹配总线元素名。)

  • 数据类型

  • 复杂性

结构字段的顺序不必与总线元素的顺序相匹配。

可以将该结构作为元素包含在数据集对象。可以在逗号分隔的列表中使用结构。您可以在逗号分隔的列表中指定一个空矩阵。空矩阵使用总线信号的接地值。

例如,为输入端口加载数据三机一体in3,并使用接地值作为端口in2,在输入参数:

in3 in1, []

初始化总线信号

您可以初始化总线信号,包括使用初始化数据的部分说明。有关详细信息,请参见指定总线元素的初始条件

有关将总线数据数组导入根的详细信息轮廓尺寸块,看导入总线数据数组

将总线数据导入到顶级输入的限制

可以使用根导入映射器工具将其导入并映射到顶层的信号数据轮廓尺寸块可以包括总线数据。不能使用该工具将总线信号映射到顶级的Enable或Trigger块。

您不能使用输入端口在外部模式下导入总线。要以快速加速模式导入总线数据,请使用数据集格式。

将总线数据导入到顶级导入

这个模型有两个轮廓尺寸块连接到范围块。的数据类型三机一体块的数据类型被继承(非总线数据)In2块由总线对象定义BusObject.模型有一个加载的回调BusObject及其sub-busBusObject1

BusObject总线对象有两个元素:

  • c

  • s1,它是一个嵌套的总线,有两个元素:

    • 一个

    • b

  1. 打开模型

  2. 创建一个MATLABtimeseries对象三机一体,您需要为其导入非总线数据。

    例如:

    t1 = (1:10) ';d1 =罪(t1);三机一体= timeseries (d1, t1);
  3. 创建一个输入结构,它可以由MATLAB组成timeseries对象或MATLAB时间表对象,或这些对象类型的组合。创建一个timeseries时间表对象的每个叶总线元素,您不希望对其使用接地值。下面的例子使用了背景值b总线元素,所以它不需要timeseries时间表对象。

    t2 = (1:5) ';d2 = cos (t2);in2.c = timeseries (d1, t1);in2.s1。一个= timetable(seconds(t2),d2);

    MATLABtimeseries您创建的对象必须匹配相应的总线元素,如导入总线数据要求

  4. 创建一个数据集对象和添加三机一体in2到数据集。

    ds = 金宝appSimulink.SimulationData.Dataset;ds = ds.addElement(三机一体,“in1_signal”);ds = ds.addElement (in2,“in2_signal”);
  5. 配置参数>数据导入/导出>输入参数编辑框,输入数据集对象ds

  6. 模拟模型。连接到In2的Scope块显示了导入的总线数据。

获取关于总线对象的信息

用MATLAB来确定数字timeseries的结构所需的对象和数据类型、复杂性和维数timeseries对象,使用这些方法:

  • 金宝appSimulink.Bus.getNumLeafBusElements

  • 金宝appSimulink.Bus.getLeafBusElements

例如,对于总线对象BusObject

num_el = BusObject.getNumLeafBusElements
num_el = 3
el_list = BusObject.getLeafBusElements
el_list = 3x1 BusElement数组的属性:Min Max DimensionsMode SampleTime Description Units Name DataType Complexity Dimensions
el_list(1)。维
ans = 1

从总线创建Timeseries对象的结构

如果你有timeseries对象定义时,可以使用它们来创建的结构timeseries基于总线对象的对象。使用金宝appSimulink.SimulationData.createStructOfTimeseries函数。例如,如果你已经定义timeseries对象壹空间ts2,ts3,你有一个总线对象MyBusObject,可以使用此命令创建的结构timeseries对象:

输入= Simu金宝applink.SimulationData.createStructOfTimeseries (...“MyBusObject”, {ts1, ts2, ts3});

的数量timeseries单元格数组中的对象必须与总线对象中的叶元素数量匹配。它们的数据类型、维度和复杂性timeseries对象必须匹配相应总线对象叶节点的那些属性。

导入总线数据数组

使用根导入(加载)总线数据数组轮廓尺寸块,使用MATLAB的数组结构timeseries对象。

请注意

你不能使用启用触发从工作空间,或从文件块来导入总线数组的数据。

数据的详细说明

您可以将来自先前模拟的总线信号数组的日志数据用作到后续模拟运行中的根级导入的往返输入。记录的数据是数据的完整规范轮廓尺寸块。

如果你构造一个MATLAB的数组结构timeseries对象来完全指定要导入的数据:

  • 按照总线信号中信号的顺序指定结构字段。

  • 不要在结构中包含比总线中信号更多的字段。

    对于叶字段,要精确匹配总线中相应信号的数据类型、维度和复杂性。

部分数据说明

要指定总线数组的部分数据,使用MATLAB创建一个结构的MATLAB数组timeseries对象在叶节点上。

用于指定部分数据的结构必须符合以下规则:

  • 可以省略字段,包括叶节点和子分支。您还可以省略维度。如果你不指定一个字段,Simulink金宝app®使用该字段的接地值。

  • 对于嵌套的总线节点,使每个字段的维度等于或小于总线数组中相应节点的维度。

这个示例展示了如何使用根目录指定要导入的部分数据轮廓尺寸数据类型定义为总线对象的块MyBus.您可以打开模型(ex_partial_loading_aob_model)和定义要导入的数据的MATLAB代码(ex_partial_loading_aob_data.m).

当你模拟ex_partial_loading_aob_model,你看:

输入轮廓尺寸块使用MyBus作为其数据类型的总线对象。

MyBus总线阵列包括MyBus (1)MyBus (2).端口维度设置为2,以反映总线数组中的两个总线输出为非虚拟总线启用。

以下是总线数组的元素,包括MyBus (1)MyBus (2).颜色高亮显示的是正在为其导入数据的总线阵列的节点。

下面是定义要导入的数据的MATLAB代码。突出显示代码的颜色与总线数组中相应节点的颜色匹配。要查看该模型中使用的代码,请打开MATLAB代码文件ex_partial_loading_aob_data.m

在定义导入数据的代码中:

  • timeseries对象MyBusValue指定突出显示节点的数据。

  • timeseries对象英国电信MyBus (2),因为英国电信如果是叶节点,则它必须完全匹配相应总线元素的维数、数据类型和复杂性。

  • 结构为指定数据Y (2).的第一个和最后一个嵌套总线Y(即,Y (1)Y (3)).

这个例子指定的数据Y (2);的第一个和最后一个嵌套总线Y(即,Y (1)Y (3)).

在定义MyBusValue为导入数据设置配置参数>数据导入/导出>输入参数MyBusValue

另请参阅

相关的话题