主要内容

将模型转换为使用总线阵列

将模型转换为使用总线数组有几个原因。例如:

  • 该模型是在Simulink之前开发的金宝app®金宝app支持的总线阵列(在R2010b中引入),并且模型包含许多执行相同类型处理的子系统。

  • 模型变得越来越复杂。

一般转换方法

下面是将包含总线的模型转换为使用总线数组的模型的通用方法。您使用的方法取决于您的模型。有关更多信息,请参见将非虚拟总线分组到总线阵列中

这个工作流引用了一个程式化的示例模型。该示例显示了原始建模模式和使用总线数组的新建模模式。

原始的建模模式使用了三个子系统。新的建模模式为每个子系统使用一个。

在原来的建模模式中:

  • 要转换的目标总线被命名MainBus,它有三个元素,每个元素都有类型BusObject

  • ScalarAlgorithm1ScalarAlgorithm2,ScalarAlgorithm3子系统封装在每个总线元素上操作的算法。子系统都有相同的内容。

  • 一个总线选择器的每个元素MainBus来驱动子系统。

原始建模模式中的构造效率很低,原因有两个:

  • 为要处理的总线的每个元素制作一个封装算法的子系统副本。

  • 添加另一个元素MainBus涉及更改公共汽车对象定义和总线选择器块,并添加子系统。这些变化中的每一个都是潜在的错误来源。

转换原始的建模模式以使用总线数组:

  1. 确定要转换的目标总线和相关算法。通常,目标总线是总线的总线,其中每个元素总线都是相同类型的。

    • 转换的总线必须是非虚拟总线。如果目标总线的所有元素具有相同的采样时间(或者如果继承了采样时间),则可以将虚拟总线转换为非虚拟总线。

    • 目标总线不能具有可变维度和基于框架的元素。

  2. 使用一个连接块将原始总线的总线转换为总线数组。

    在本例中,新的建模模式使用向量连接块来替换总线的创造者块,该块创建MainBus信号。的输出。向量连接Block是总线的数组,其中总线的类型为BusObject.新模型消除了包装器总线(MainBus).

  3. 将算法子系统的所有相同副本替换为封装标量算法的单个for-each子系统。将总线数组连接到for-each子系统。

    新模型消除了总线选择器元素的元素MainBus原始模型中的信号。

  4. 配置每个子系统块迭代输入总线数组并连接输出总线。

    for-each子系统中的标量算法不能具有连续状态。有关其他限制,请参见每个子系统块文档。

相关的话题