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