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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие темы