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