将总线数据加载到根级输入端口
控件中的数据,可以将总线数据导入顶级输入端口输入配置参数或使用根导入映射器工具。有关使用根导入映射器工具导入总线数据的信息,请参见导入总线数据.
导入总线数据要求
可以将总线(虚拟、非虚拟或总线数组)数据导入到总线对象定义的顶级输入端口(请参阅万博1manbetx仿真软件。公共汽车
).在顶层轮廓尺寸块,设置数据类型来公共汽车
并指定总线对象的名称。要指定总线信号的数据值,可以使用以下结构:
MATLAB®
timeseries
对象MATLAB
时间表
对象结合
timeseries
而且时间表
对象
在结构中未包含字段的总线元素使用接地值。可以使用空矩阵指定使用基础值。
请注意
当你指定时间表
数据加载时,时间表
必须只包含一个信号的数据。
的结构timeseries
或时间表
(或两者都有)对象必须匹配总线元素:
层次结构
结构字段的名称,该字段必须与总线元素名称匹配。(
的名字
的属性timeseries
对象不需要匹配总线元素名称。)数据类型
维
复杂性
结构字段的顺序不必与总线元素的顺序匹配。
的元素中包含该结构数据集
对象。可以在逗号分隔的列表中使用结构。您可以在逗号分隔的列表中指定一个空矩阵。空矩阵使用总线信号的接地值。
例如,为输入端口加载数据三机一体
而且in3
,并为端口使用接地值in2
,在“。”中输入以下内容输入参数:
In1, [], in3
请注意
如果你使用MATLAB的结构timeseries
对象用于具有多个根导入块的模型中的根导入块,所有根导入块必须使用MATLABtimeseries
或时间表
对象。转换使用的任何根导入块数据万博1manbetx仿真软件。TsArray
或万博1manbetx仿真软件。Timeseries
MATLAB对象timeseries
对象。
初始化总线信号
可以初始化总线信号,包括使用初始化数据的部分规范。详细信息请参见指定总线信号的初始条件.
有关将总线数据数组导入根导入块的详细信息,请参见导入总线数据数组.
将总线数据导入顶级输入的限制
可以使用根导入映射器工具导入并映射到顶级导入块的信号数据可以包括总线数据。不能使用该工具将总线信号映射到顶级的Enable或Trigger块。
不能在外部模式下使用输入端口导入总线。要以快速加速模式导入总线数据,请使用数据集
格式。
将总线数据导入到顶级导入
这个模型有两个轮廓尺寸连接到的块范围块。的数据类型三机一体
的数据类型In2
块由总线对象定义BusObject
.该模型有一个加载的回调BusObject
及其子总线BusObject1
.
的BusObject
总线对象有两个元素:
c
s1
,它是一个子总线,有两个元素:一个
b
打开
模型
.创建MATLAB
timeseries
对象三机一体
,您希望为此导入非总线数据。例如:
T1 = (1:10)';D1 = sin(t1);In1 =时间序列(d1,t1);
创建一个输入结构,可以由MATLAB组成
timeseries
对象或MATLAB时间表
对象,或者这些类型的对象的组合。创建一个timeseries
或时间表
为不希望对其使用接地值的每个叶总线元素添加。的基础值b
总线元素,所以它不需要timeseries
或时间表
对象。T2 = (1:5)';D2 = cos(t2);In2.c =时间序列(d1,t1);in2.s1。一个= timetable(seconds(t2),d2);
MATLAB
timeseries
所创建的对象必须匹配相应的总线元素,如中所述导入总线数据要求.创建一个
数据集
对象并添加三机一体
而且in2
到数据集。ds = 万博1manbetxSimulink.SimulationData.Dataset;ds = ds. addelement (in1,“in1_signal”);ds = ds. addelement (in2,“in2_signal”);
在配置参数>导入/导出>输入参数编辑框后,输入
数据集
对象ds
.模拟模型。连接到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
.