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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Похожие темы

Была ли эта тема полезной?