Существует несколько причин для преобразования модели в использование массива шин. Для примера:
Модель была разработана до Simulink® поддерживаемые массивы шин (введенные в R2010b), и модель содержит много подсистем, которые выполняют один и тот же вид обработки.
Модель выросла в сложности.
Вот общий подход к преобразованию модели, которая содержит шины, в модель, которая использует массив шин. Метод, который вы используете, зависит от вашей модели. Для получения дополнительной информации смотрите Группирование невиртуальных шин в массивах шин.
Этот рабочий процесс относится к стилизованному примеру модели. В примере показан исходный шаблон моделирования и новый шаблон моделирования, который использует массив шин.
В исходном шаблоне моделирования:
Целевая шина, которая будет преобразована, имеет имя MainBus
и имеет три элемента, каждый из которых имеет тип BusObject
.
The ScalarAlgorithm1
, ScalarAlgorithm2
, и ScalarAlgorithm3
подсистемы инкапсулируют алгоритмы, которые работают с каждым из элементов шины. Все подсистемы имеют одинаковое содержимое.
Блок Bus Selector выбирает каждый элемент MainBus
для управления подсистемами.
Конструкция в исходном шаблоне моделирования неэффективна по двум причинам:
Копия подсистемы, которая инкапсулирует алгоритм, создается для каждого элемента шины, которая должна быть обработана.
Добавление другого элемента к MainBus
включает изменение Bus
определение объекта и Bus Selector блока и добавление подсистемы. Каждое из этих изменений является потенциальным источником ошибки.
Чтобы преобразовать исходный шаблон моделирования в использование массива шин:
Идентифицируйте целевую шину и связанный алгоритм, которые вы хотите преобразовать. Обычно целевой шиной является шина автобусов, где каждый шина элемента имеет один и тот же тип.
Если все элементы целевой шины имеют одинаковый шаг расчета (или если шаг расчета унаследован), можно преобразовать виртуальную шину в невиртуальную.
Целевая шина не может иметь элементы переменного размера и на основе фрейма.
Используйте блок Concatenate для преобразования исходной шины шин в массив шин.
В примере новый шаблон моделирования использует Vector Concatenate блок, чтобы заменить Bus Creator блок, который создает MainBus
сигнал. Выходы блока Vector Concatenate представляют собой массив шин, где тип шины BusObject
. Новая модель устраняет оберточную шину (MainBus
).
Замените все идентичные копии подсистемы алгоритма на одну подсистему For Each, которая инкапсулирует скалярный алгоритм. Соедините массив шин с подсистемой For Each.
Новая модель устраняет блоки Bus Selector, которые разделяют элементы MainBus
сигнал в исходной модели.
Сконфигурируйте блок For Each Subsystem для итерации по входу массиву шин и конкатенации выхода шины.
Скалярный алгоритм в подсистеме For Each не может иметь непрерывных состояний. Дополнительные ограничения см. в документации по For Each Subsystem блокам.