exponenta event banner

Преобразовать модели для использования массивов шин

Есть несколько причин конвертировать модель для использования массива шин. Например:

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы преобразовать исходный шаблон моделирования в массив шин, выполните следующие действия.

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

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

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

  2. Блок Concatenate используется для преобразования исходной шины в массив шин.

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

  3. Замените все идентичные копии подсистемы алгоритма на одну подсистему For Each, которая инкапсулирует скалярный алгоритм. Подключите массив шин к подсистеме For Each.

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

  4. Сконфигурируйте блок «Для каждой подсистемы» для итерации по входному массиву шин и объединения выходной шины.

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

Связанные темы