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