将模型转换为使用总线数组有几个原因(参见总线阵列的好处).例如:
该模型是在Simulink之前开发的金宝app®金宝app支持的总线阵列(在R2010b中引入),该模型包含许多执行相同类型处理的子系统。
这个模型变得越来越复杂。
下面是将包含总线的模型转换为使用总线数组的模型的通用方法。您使用的方法取决于您的模型。有关这些技术的详细信息,请参见将总线组合成总线数组和在模型中使用总线数组.
这个工作流指的是一个程式化的示例模型。该示例显示了原始建模模式和使用总线数组的新建模模式。
在原始建模模式中:
指定要转换的目标总线MainBus
,它有三个元素,每个元素都是typeBusObject
.
的ScalarAlgorithm1
,ScalarAlgorithm2
,ScalarAlgorithm3
子系统封装了在每个总线元素上操作的算法。子系统都具有相同的内容。
一个总线选择器块挑选出的每个元素MainBus
驱动子系统。
原始建模模式中的构建效率低下有两个原因:
为要处理的总线的每个元素制作了封装算法的子系统的副本。
添加另一个元素MainBus
需要改变公共汽车
对象定义和总线选择器块,并添加一个子系统。这些更改中的每一个都是潜在的错误来源。
要将原始的建模模式转换为使用总线数组:
确定要转换的目标总线和关联算法。通常,目标总线是总线的总线,其中每个元素总线都是相同类型的。
您转换的总线必须是非虚拟总线。如果目标总线的所有元素都具有相同的示例时间(或者继承了示例时间),则可以将虚拟总线转换为非虚拟总线。
目标总线不能具有可变维度和基于框架的元素。
使用一个连接块将总线的原始总线转换为总线的数组。
在这个例子中,新的建模模式使用向量连接块替换总线的创造者块创建MainBus
信号。输出向量连接块是总线的数组,其中总线的类型是BusObject
.新模型消除了包装器总线(MainBus
).
将算法子系统的所有相同副本替换为封装标量算法的单个For Each子系统。将总线阵列连接到For Each子系统。
新型号消除了总线选择器块将元素分离出来MainBus
信号在原始模型中。
配置为每个子系统块迭代总线的输入数组并连接输出总线。
For Each子系统中的标量算法不能具有连续状态。有关其他限制,请参见为每个子系统块文档。