主要内容

将模型转换为使用总线数组

将模型转换为使用总线数组有几个原因(参见总线阵列的好处).例如:

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

  • 这个模型变得越来越复杂。

通用转换方法

下面是将包含总线的模型转换为使用总线数组的模型的通用方法。您使用的方法取决于您的模型。有关这些技术的详细信息,请参见将总线组合成总线数组在模型中使用总线数组

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

在原始建模模式中:

  • 指定要转换的目标总线MainBus,它有三个元素,每个元素都是typeBusObject

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

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

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

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

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

要将原始的建模模式转换为使用总线数组:

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

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

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

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

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

  3. 将算法子系统的所有相同副本替换为封装标量算法的单个For Each子系统。将总线阵列连接到For Each子系统。

    新型号消除了总线选择器块将元素分离出来MainBus信号在原始模型中。

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

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

相关的话题