建立一个使用总线阵列的模型通常涉及以下基本任务:
得到的模型包括这些组件。
可以使用块对总线数组的总线数据执行迭代处理,例如对于每个子系统块,而迭代器子系统块或一个对迭代器子系统块。您可以使用其中一个块来执行相同类型的处理:
总线阵列中的每一个总线
公共汽车数组中的选定的总线子集
要给总线数组中的信号赋值,请使用:
一种公交划分块为总线元素分配值
一个任务块将总线分配给公共汽车数组
用A.任务块将值分配给总线阵列中的指定元素。
例如,在sldemo_bus_arrays
模特,这任务块将值分配给总线数组的第一个元素。
要在总线内分配总线元素,请使用公交划分块。的输入公交划分块必须是标量总线。
你可以使用一个公交划分块来分配或完全替换作为总线数组的嵌套总线。要为总线数组中的嵌套总线分配数据,或使用总线数组对某些元素进行部分赋值,可以使用MATLAB函数块。
例如,假设你有这样的总线结构:
公共汽车上有孩子们
元素,它是一个子总线数组。这个例子展示了如何给元素赋值C
和元素一种
。这轮廓尺寸和外港块使用父母
公共汽车
目的。要定义分配,此示例使用aMATLAB函数块,因为不能赋值给元素一种
用一个公交划分或任务块。
这MATLAB函数块使用此功能代码进行分配:
函数Y = fcn(u);y.c = false;为了Idx = 1:长度(Y.Children)Y.Children(IDX).a = Int32(零(5,1));结尾
要在总线数组中选择信号,请使用:
选择器块在公共汽车阵列中找到适当的总线。
总线选择器块来选择信号。
用一个选择器块以选择总线数组的元素。总线的输入数组可以有任何维度。的输出总线选择器块是从输入的总线数组中选择或重新排序的元素集。
例如,sldemo_bus_arrays
模型使用Selector块从总线数组中选择元素任务和对于每个子系统阻止输出。在此示例中,以下是“块参数”对话框选择器选择第一个元素的块:
要在总线中选择总线元素,请使用总线选择器块。的输入总线选择器块必须是标量总线。
使用一个根轮廓尺寸块导入(加载)MATLAB的结构数组®时间序列
对象的数组。您可以将部分数据导入总线数组。
有关详细信息,请参阅导入总线数据数组。
你不能用来自工作区或从文件块以导入用于一系列总线的数据。
若要导出总线数组,请将信号标记为信号记录。有关更多信息,请参见将运行时间数据保存从模拟中。
笔记
金宝app®在快速加速器模式下不会在引用的模型内记录信号。
要访问总线数组中特定信号的信号记录数据,请在结构层次结构中导航并指定特定信号的索引。有关详细信息,请参阅访问总线阵列信号日志记录数据。
要为总线数组中的每个信号指定唯一的初始值,可以使用初始条件结构数组。数组中的每个结构初始化一个总线。
以下是一个示例,其示出了如何初始化一系列总线。假设您定义了总线类型MyData
和压力空间
。
假设您设置了信号元素的数据类型温度
到int16
,以及元素的数据类型S1
和S2
到双
。
要为总线数组指定初始条件,可以创建一个变量,其值是初始条件结构数组。
initValues(1)。温度= int16(5); initValues(1).pressure.s1 = 9.87; initValues(1).pressure.s2 = 8.71; initValues(2).temperature = int16(20); initValues(2).pressure.s1 = 10.21; initValues(2).pressure.s2 = 9.56; initValues(3).temperature = int16(35); initValues(3).pressure.s1 = 8.98; initValues(3).pressure.s2 = 9.17;
的变量initValues
为一个三个总线数组提供信号提供初始条件。您可以使用initValues
指定初始条件块的参数,例如单位延迟。
或者,您可以使用单个标量结构为数组中的所有总线指定相同的初始条件。
initStruct。温度= int16 (15);initStruct.pressure。s1 = 10.32;initStruct.pressure。s2 = 9.46;
如果您指定初学者
在初始条件参数,数组中的每个总线使用相同的初始值,15.
,表示信号元素温度
。类似地,总线使用初始值10.32
的元素压力.S1
和价值9.46
的元素压力.S2
。
为使用大型信号元素的总线结构创建一系列结构,请考虑使用该功能金宝appsimulink.bus.creatematlabstruct.
。
此示例显示如何初始化嵌套的总线数组。为复杂的信号层次结构创建一个初始条件结构,包括嵌套的总线数组。
在总线编辑器中,创建公共汽车
对象MyData
和压力空间
。
在“层次结构”窗格中,选择总线元素压力
。设定方面财产[1 3]
。
使用函数创建一个包含四个初始化结构的数组金宝appsimulink.bus.creatematlabstruct.
。将数组存储在变量中初学者
。将所有的信号初始化为接地值,0.
。
initstruct 金宝app= simulink.bus.creatematlabstruct(“MyData”[], [1 - 4]);
在基本工作区中,双击该变量初学者
在变量编辑器中查看。
数组中的四个结构都有字段温度
和压力
。
检查一个压力
,双击其中一个字段。
四个中的每一个的价值压力
Fields是一个由三个子结构组成的数组。每个子结构都有字段S1
和S2
。
要为总线阵列中的信号提供唯一的初始化值,您可以使用变量编辑器手动指定值。
或者,您可以编写一个脚本。例如,访问字段S1
第二个子结构压力
在第三种结构中初学者
,使用此代码:
初始(3)。压痕(2).s1 = 15.35;
公共汽车数组的代码生成产生具有特定格式的结构。看总线数组的代码生成。