Преобразуйте модели в использование массивов шин

Существует несколько причин для преобразования модели в использование массива шин. Для примера:

  • Модель была разработана до Simulink® поддерживаемые массивы шин (введенные в R2010b), и модель содержит много подсистем, которые выполняют один и тот же вид обработки.

  • Модель выросла в сложности.

Общий подход к преобразованию

Вот общий подход к преобразованию модели, которая содержит шины, в модель, которая использует массив шин. Метод, который вы используете, зависит от вашей модели. Для получения дополнительной информации смотрите Группирование невиртуальных шин в массивах шин.

Этот рабочий процесс относится к стилизованному примеру модели. В примере показан исходный шаблон моделирования и новый шаблон моделирования, который использует массив шин.

В исходном шаблоне моделирования:

  • Целевая шина, которая будет преобразована, имеет имя MainBusи имеет три элемента, каждый из которых имеет тип BusObject.

  • The ScalarAlgorithm1, ScalarAlgorithm2, и ScalarAlgorithm3 подсистемы инкапсулируют алгоритмы, которые работают с каждым из элементов шины. Все подсистемы имеют одинаковое содержимое.

  • Блок Bus Selector выбирает каждый элемент MainBus для управления подсистемами.

Конструкция в исходном шаблоне моделирования неэффективна по двум причинам:

  • Копия подсистемы, которая инкапсулирует алгоритм, создается для каждого элемента шины, которая должна быть обработана.

  • Добавление другого элемента к MainBus включает изменение Bus определение объекта и Bus Selector блока и добавление подсистемы. Каждое из этих изменений является потенциальным источником ошибки.

Чтобы преобразовать исходный шаблон моделирования в использование массива шин:

  1. Идентифицируйте целевую шину и связанный алгоритм, которые вы хотите преобразовать. Обычно целевой шиной является шина автобусов, где каждый шина элемента имеет один и тот же тип.

    • Если все элементы целевой шины имеют одинаковый шаг расчета (или если шаг расчета унаследован), можно преобразовать виртуальную шину в невиртуальную.

    • Целевая шина не может иметь элементы переменного размера и на основе фрейма.

  2. Используйте блок Concatenate для преобразования исходной шины шин в массив шин.

    В примере новый шаблон моделирования использует Vector Concatenate блок, чтобы заменить Bus Creator блок, который создает MainBus сигнал. Выходы блока Vector Concatenate представляют собой массив шин, где тип шины BusObject. Новая модель устраняет оберточную шину (MainBus).

  3. Замените все идентичные копии подсистемы алгоритма на одну подсистему For Each, которая инкапсулирует скалярный алгоритм. Соедините массив шин с подсистемой For Each.

    Новая модель устраняет блоки Bus Selector, которые разделяют элементы MainBus сигнал в исходной модели.

  4. Сконфигурируйте блок For Each Subsystem для итерации по входу массиву шин и конкатенации выхода шины.

    Скалярный алгоритм в подсистеме For Each не может иметь непрерывных состояний. Дополнительные ограничения см. в документации по For Each Subsystem блокам.

Похожие темы