一个数组的公交车数组的元素是非虚拟总线。
使用一个总线数组:
通过集中处理多总线的算法减少维护。
简化相同类型的多个总线的迭代处理,例如,通过使用带有总线阵列的for Each子系统。
更改正在处理的总线数量,而不必重组使用总线数组的模型部分。
使用内置块,例如赋值或选择器块来操作总线数组,就像操作任何其他类型的数组一样。使用一组总线避免了创建定制s函数来管理打包和解打包结构信号的需要。
生成具有C结构数组的代码,可以将其与使用结构数组的遗留C代码集成。这种方法简化了Simulink的数组索引金宝app®计算,使用为
在索引结构上循环。
例如,您可以将多通道系统(如通信系统)建模为总线阵列。所有通道都具有相同的数据类型,并且每个通道可以具有不同的值。
有关演示使用总线数组的多种方法的模型,请参见总线模型阵列.
所有组合成一组总线的总线必须:
是nonvirtual
指定相同的金宝app仿真软件。公共汽车
对象数据类型(即相同的名称、层次结构和总线元素属性)
没有可变大小的信号或基于帧的信号
有关创建非虚拟总线的信息,请参见创建Nonvirtual公交车.
有关哪些块支持总线数组的信息,请参见金宝appBus-Capable块.
可以使用Vector Concatenate或Matrix Concatenate块将非虚拟总线分组到总线数组中。金宝appSimulink将非虚拟总线视为标量。因此,无论总线元素数据类型如何,您都可以使用这两个块中的任何一个。
使用下面的代码块创建一个总线数组:
定义一个金宝app仿真软件。公共汽车
要在总线数组中分组的所有非虚拟总线的对象数据类型。
在“矢量连接块”或“矩阵连接块”的“块参数”对话框中设置输入数量到总线数组中所需的总线数。块图标显示您指定的输入端口的数量。
将非虚拟总线连接到块输入。
块输出是总线数组。
打开并编译示例模型。要编译模型,在建模选项卡,单击金宝app更新模型或运行.编译模型会更新线条样式,您可以使用这些样式直观地识别总线阵列。
为了演示如何从非虚拟总线创建总线数组,该模型使用:
为了演示如何从总线数组中选择元素,模型使用:
的信号的维度信息叠加显示总线阵列包含两个总线。要启用信号的维度覆盖,在Simulink工具条中金宝app,在调试选项卡上,选择信息覆盖>信号尺寸.
可以使用Constant块紧凑地表示带有常量值总线元素的总线数组。这种技术可以减少模型中的行数和模型使用的变量数,特别是当模型重复使用不同参数值的算法时。
在Constant块上指定:
恒定值作为MATLAB结构的数组或金宝app仿真软件。参数
对象,该对象指定MATLAB结构的数组
输出数据类型作为一个金宝app仿真软件。公共汽车
对象
当输出数据类型为a时,常量块仅支持MATL金宝appAB®结构公共汽车
对象。
定义一个名为const_struct_array
.组成相同元素的每个结构:抵消
,获得
,阈值
.
const_struct_array(1)。抵消= 197;const_struct_array(1)。获得= 4.32;const_struct_array(1)。阈值= 795.68;const_struct_array(2)。抵消= 158;const_struct_array(2)。获得= 3.83;const_struct_array(2)。阈值= 1039.77;
要为包含许多元素的总线层次结构创建结构数组,请考虑使用金宝appSimulink.Bus.createMATLABStruct
函数。
定义相应的公共汽车
对象的数据类型。
金宝appSimulink.Bus.createObject (const_struct_array)
新公共汽车
对象使用默认名称slBus1
.
打开并模拟示例模型,其中包含一个常量块恒定值设置为const_struct_array
和输出数据类型设置为总线:slBus1
.
open_system (“ArrayOfBusesFromStructModel”) sim卡(“ArrayOfBusesFromStructModel”);
Constant块的输出是一个总线数组。
For Each子系统块迭代地处理数组中每个非虚拟总线的常量值。子系统内容显示非虚拟总线,而不是连接到端口的总线数组。