属性中手动指定数据,可以将总线数据导入顶级输入端口输入配置参数或使用根导入映射器工具。有关使用根导入映射器工具导入总线数据的信息,请参见总线数据导入.
您可以将总线(虚拟、非虚拟或总线数组)数据导入到总线对象定义的顶级输入端口(参见金宝app仿真软件。公共汽车
).在顶层轮廓尺寸块,设置数据类型来公共汽车
并指定总线对象的名称。要指定总线信号的数据值,使用以下结构:
MATLAB®timeseries
对象
MATLAB时间表
对象
的组合timeseries
和时间表
对象
在结构中不包含字段的总线元素使用接地值。您可以使用一个空矩阵来指定使用接地值。
请注意
当你指定时间表
要加载的数据时间表
必须只包含一个信号的数据。
的结构timeseries
或时间表
(或两者)对象必须在以下方面匹配总线元素:
层次结构
结构字段的名称,它必须与总线元素名称匹配。(的名字
财产的timeseries
对象不需要匹配总线元素名。)
数据类型
维
复杂性
结构字段的顺序不必与总线元素的顺序相匹配。
可以将该结构作为元素包含在数据集
对象。可以在逗号分隔的列表中使用结构。您可以在逗号分隔的列表中指定一个空矩阵。空矩阵使用总线信号的接地值。
例如,为输入端口加载数据三机一体
和in3
,并使用接地值作为端口in2
,在输入参数:
in3 in1, []
您可以初始化总线信号,包括使用初始化数据的部分说明。有关详细信息,请参见指定总线元素的初始条件.
有关将总线数据数组导入根的详细信息轮廓尺寸块,看导入总线数据数组.
可以使用根导入映射器工具将其导入并映射到顶层的信号数据轮廓尺寸块可以包括总线数据。不能使用该工具将总线信号映射到顶级的Enable或Trigger块。
您不能使用输入端口在外部模式下导入总线。要以快速加速模式导入总线数据,请使用数据集
格式。
这个模型有两个轮廓尺寸块连接到范围块。的数据类型三机一体
块的数据类型被继承(非总线数据)In2
块由总线对象定义BusObject
.模型有一个加载的回调BusObject
及其sub-busBusObject1
.
的BusObject
总线对象有两个元素:
c
s1
,它是一个嵌套的总线,有两个元素:
一个
b
打开模型
.
创建一个MATLABtimeseries
对象三机一体
,您需要为其导入非总线数据。
例如:
t1 = (1:10) ';d1 =罪(t1);三机一体= timeseries (d1, t1);
创建一个输入结构,它可以由MATLAB组成timeseries
对象或MATLAB时间表
对象,或这些对象类型的组合。创建一个timeseries
或时间表
对象的每个叶总线元素,您不希望对其使用接地值。下面的例子使用了背景值b
总线元素,所以它不需要timeseries
或时间表
对象。
t2 = (1:5) ';d2 = cos (t2);in2.c = timeseries (d1, t1);in2.s1。一个= timetable(seconds(t2),d2);
MATLABtimeseries
您创建的对象必须匹配相应的总线元素,如导入总线数据要求.
创建一个数据集
对象和添加三机一体
和in2
到数据集。
ds = 金宝appSimulink.SimulationData.Dataset;ds = ds.addElement(三机一体,“in1_signal”);ds = ds.addElement (in2,“in2_signal”);
在配置参数>数据导入/导出>输入参数编辑框,输入数据集
对象ds
.
模拟模型。连接到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
基于总线对象的对象。使用
函数。例如,如果你已经定义金宝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
.