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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие темы