文档

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

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

导入总线数据要求

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

  • MATLAB®timeseries对象

  • MATLAB时间表对象

  • 结合timeseries而且时间表对象

在结构中未包含字段的总线元素使用接地值。可以使用空矩阵指定使用基础值。

请注意

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

的结构timeseries时间表(或两者都有)对象必须匹配总线元素:

  • 层次结构

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

  • 数据类型

  • 复杂性

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

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

例如,为输入端口加载数据三机一体而且in3,并为端口使用接地值in2,在“。”中输入以下内容输入参数:

In1, [], in3

请注意

如果你使用MATLAB的结构timeseries对象用于具有多个根导入块的模型中的根导入块,所有根导入块必须使用MATLABtimeseries时间表对象。转换使用的任何根导入块数据万博1manbetx仿真软件。TsArray万博1manbetx仿真软件。TimeseriesMATLAB对象timeseries对象。

初始化总线信号

可以初始化总线信号,包括使用初始化数据的部分规范。详细信息请参见指定总线信号的初始条件

有关将总线数据数组导入根导入块的详细信息,请参见导入总线数据数组

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

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

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

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

这个模型有两个轮廓尺寸连接到的块范围块。的数据类型三机一体的数据类型In2块由总线对象定义BusObject.该模型有一个加载的回调BusObject及其子总线BusObject1

BusObject总线对象有两个元素:

  • c

  • s1,它是一个子总线,有两个元素:

    • 一个

    • b

  1. 打开模型

  2. 创建MATLABtimeseries对象三机一体,您希望为此导入非总线数据。

    例如:

    T1 = (1:10)';D1 = sin(t1);In1 =时间序列(d1,t1);
  3. 创建一个输入结构,可以由MATLAB组成timeseries对象或MATLAB时间表对象,或者这些类型的对象的组合。创建一个timeseries时间表为不希望对其使用接地值的每个叶总线元素添加。的基础值b总线元素,所以它不需要timeseries时间表对象。

    T2 = (1:5)';D2 = cos(t2);In2.c =时间序列(d1,t1);in2.s1。一个= timetable(seconds(t2),d2);

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

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

    ds = 万博1manbetxSimulink.SimulationData.Dataset;ds = ds. addelement (in1,“in1_signal”);ds = ds. addelement (in2,“in2_signal”);
  5. 配置参数>导入/导出>输入参数编辑框后,输入数据集对象ds

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

获取有关总线对象的信息

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

  • 万博1manbetxSimulink.Bus.getNumLeafBusElements

  • 万博1manbetxSimulink.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基于总线对象的对象。使用万博1manbetxSimulink.SimulationData.createStructOfTimeseries函数。例如,如果你定义了timeseries对象壹空间ts2,ts3,您就有了一个总线对象MyBusObject,可以使用此命令创建的结构timeseries对象:

input = 万博1manbetxSimulink.SimulationData.createStructOfTimeseries(...“MyBusObject”, {ts1, ts2, ts3});

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

导入总线数据数组

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

请注意

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

资料详尽说明

您可以使用先前模拟中的总线信号数组的日志数据作为后续模拟运行中的根级导入的往返输入。记录的数据是import块的完整数据规范。

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

  • 以与总线信号中的信号相同的顺序指定结构字段。

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

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

部分数据说明

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

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

  • 您可以省略字段,包括叶节点和子分支。您也可以省略维度。如果未指定字段,则Simulink万博1manbetx®使用该字段的接地值。

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

这个例子展示了如何使用根导入块指定要导入的部分数据,根导入块的数据类型定义为总线对象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

另请参阅

相关的例子

更多关于

这个话题有用吗?