В Simulink ® блоки вариантов можно использовать для создания одной модели, удовлетворяющей нескольким требованиям вариантов. Такие модели имеют фиксированную общую структуру и конечный набор переменных компонентов. Переменные компоненты активируются в зависимости от выбранного варианта. Таким образом, результирующая активная модель представляет собой комбинацию фиксированной структуры и переменных компонентов на основе выбора варианта.
Использование блоков исполнения в модели помогает многократно использовать модель для различных условных выражений, называемых вариантами исполнения. Этот подход помогает удовлетворить различные требования клиентов в зависимости от приложений, затрат или эксплуатационных соображений.
В зависимости от конструкции модели можно использовать следующие блоки вариантов:
Для иерархической структуры модели. Блок представляет собой шаблон с двумя блоками подсистемы для использования в качестве исполнительных систем. Для вариантов можно добавить блоки подсистем, а также блоки модели.
Для иерархической структуры модели. Блок представляет собой шаблон с двумя блоками модели для использования в качестве исполнительных систем. Для вариантов можно добавить блоки модели, а также блоки подсистемы.
Встроенные исполнения: для плоской структуры модели.
Примечание
Время выборки для отдельных входных блоков источника варианта/приемника варианта может отличаться для нескольких входных блоков источника варианта/приемника варианта. Дополнительные сведения о времени выборки см. в разделе Что такое время выборки?
Использование блока Variant Subsystem обеспечивает следующие преимущества:
Позволяет смешивать блоки модели и подсистемы в качестве исполнительных систем
Поддерживает гибкие операции ввода-вывода, так что для всех вариантов не требуется одинаковое количество портов ввода-вывода
Чтобы преобразовать блок «Модель», содержащий исполнительные модели, в блок «Исполнительная подсистема», содержащий блоки «Модель», которые ссылаются на исполнительные модели, щелкните правой кнопкой мыши блок «Модель» и выберите «Подсистемы и ссылка на модель» > «Преобразовать в» > «Исполнительная подсистема». Кроме того, можно использовать Simulink.VariantManager.convertToVariant функция. Укажите имя блока модели или маркер перемещения блока. Преобразованная модель дает те же результаты, что и исходная модель.
Если требуется смоделировать модель, представляющую автомобиль с несколькими конфигурациями. Эти конфигурации, хотя и схожи в нескольких аспектах, могут отличаться по свойствам, таким как расход топлива, размер двигателя или стандарт выбросов. Вместо конструирования нескольких моделей, которые вместе представляют все возможные конфигурации, можно использовать варианты для моделирования только изменяющихся конфигураций. Этот подход позволяет зафиксировать общие компоненты.

Эта модель содержит два варианта выбора в одном блоке подсистемы вариантов. Варианты - это две или более конфигурации компонента в модели.

Использование вариантов в конструировании на основе модели обеспечивает несколько преимуществ.
Варианты обеспечивают способ конструирования одной модели для многих систем.
Можно быстро создать прототипы вариантов конструкции без необходимости комментировать разделы модели.
Варианты помогают разработать модульные платформы проектирования, облегчающие повторное использование и настройку. Этот подход повышает скорость рабочего процесса за счет уменьшения сложности.
Если компонент модели имеет несколько альтернативных конфигураций, можно эффективно исследовать эти различные альтернативы без изменения фиксированных неизменяемых компонентов.
Для моделирования или создания кода из одной модели можно использовать различные конфигурации вариантов.
Вы можете смоделировать любую возможность проектирования комбинаторно для данного набора тестов.
При работе с крупномасштабными конструкциями можно распределить процесс тестирования этих конструкций на кластере многоядерных компьютеров. Кроме того, можно сопоставить различные наборы тестов с альтернативными вариантами конструкции для эффективного управления специфическими для конструкции тестами.
Можно создать сокращенную модель с подмножеством конфигурации из главной модели с множеством вариантов.
Варианты помогают указать несколько реализаций модели в одной унифицированной блок-схеме. Ниже приведены три сценария, в которых можно использовать варианты:
Модели, представляющие несколько процессов моделирования, создания кода или тестирования.

Модели, содержащие несколько вариантов конструкции на уровне компонентов.

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

Simulink выбирает активный вариант во время обновления диаграммы и во время компиляции кода.
В этих блоках можно представить один или несколько вариантов в качестве вариантов.
Блоки источника исполнения и получателя исполнения | Блоки исполнительной подсистемы и исполнительной модели | |
|---|---|---|
Представление выбора варианта | Количество портов | Подсистема или блок модели |
Допускает иерархию выбора | Нет | Да |
Несоответствующее количество входных и выходных портов среди вариантов выбора | Simulink отключает неактивные порты | Simulink отключает неактивные порты |
Опция для указания варианта по умолчанию | Да | Да |
Поддержка портов управления | Нет | Да |
Может быть сохранен как автономный файл | Нет | Нет |
Поддержка портов подключения физического моделирования | Нет | Частично |
Выбор комментария ( | Нет | Нет |
Кроме того, варианты исполнения можно представить с помощью блоков Источник исполнения (Variant Source) и Получатель исполнения (Variant Sink). Эти блоки обеспечивают распространение исполнительных условий по всей модели и могут распространять условия по ссылочной иерархии модели.
В иерархии модели можно создавать варианты на нескольких уровнях.
Блок подсистемы исполнения является контейнером вариантов, представленных как блоки подсистемы или модели. Входные данные, которые блок Variant Subsystem получает от компонентов восходящих моделей, сопоставляются с входными и выходными портами вариантов выбора.
Блоки «Подсистема» и «Модель», представляющие варианты выбора, могут иметь входные и выходные порты, которые отличаются по количеству от входных и выходных портов в родительском блоке «Подсистема вариантов». Однако должны быть выполнены следующие условия:
Имена входов варианта выбора представляют собой подмножество имен входов, используемых родительской подсистемой вариантов.
Имена выходных портов варианта выбора являются подмножеством имен выходных портов, используемых родительской вариационной подсистемой.
Если варианты имеют управляющий порт, имя порта ввода данных должно совпадать с именем управляющего порта.
Во время моделирования Simulink отключает неактивные порты в блоке Variant Subsystem.
Каждый блок варианта имеет связанный с ним значок. Цвет и значок значка «Вариант» указывают на статус блока «Вариант». Он также обеспечивает быстрый доступ к нескольким командам исполнения. Для доступа к этим командам можно щелкнуть правой кнопкой мыши значок исполнения.

Значок варианта | Источник варианта | Приемник варианта | Вариационная подсистема |
|---|---|---|---|
Значок исполнения по умолчанию, если опция не выбрана. |
|
|
|
Блок вариантов с |
|
|
|
Блок исполнения с опцией Разрешить нулевой активный элемент управления исполнения. |
|
|
|
Блок вариантов с |
|
|
|
Блок вариантов с |
|
|
|
Блок вариантов с |
|
|
|
Блок вариантов с |
|
|
|
Блок вариантов с |
|
|
|
Блок исполнения с выбранным параметром Распространить условия вне подсистемы исполнения. | Неприменимо | Неприменимо |
|
Блок вариантов с update diagram выбрано как время активации варианта, и выбран параметр Разрешить нулевое активное управление вариантом. |
|
|
|
Блок вариантов с update diagram analyze all choices выбрано как время активации варианта, и выбран параметр Разрешить нулевое активное управление вариантом. |
|
|
|
Блок вариантов с code compile выбрано как время активации варианта, и выбран параметр Разрешить нулевое активное управление вариантом. |
|
|
|
Блок вариантов с update diagram выбрано как Время активации варианта и Условия распространения вне выбранной опции подсистемы варианта. | Неприменимо | Неприменимо |
|
Блок вариантов с update diagram analyze all choices выбрано как Время активации варианта и Условия распространения вне выбранной опции подсистемы варианта. | Неприменимо | Неприменимо |
|
Блок вариантов с code compile выбрано как Время активации варианта и Условия распространения вне выбранной опции подсистемы варианта. | Неприменимо | Неприменимо |
|
Блок исполнения с выбранным параметром Разрешить нулевые активные элементы управления исполнения и Распространить условия вне подсистемы исполнения. | Неприменимо | Неприменимо |
|
Блок вариантов с | Неприменимо | Неприменимо |
|
Учитывайте, когда необходимо смоделировать модель Simulink, исключив некоторые ее блоки из моделирования и физически не удалив блоки из модели. Команды «Комментировать исходящие» и «Комментировать сквозные» в Simulink позволяют исключить блоки из моделирования. В зависимости от требований моделирования можно использовать следующие опции:
Комментарий: исключение выбранного блока из моделирования. Сигналы завершаются и заземляются.
Комментарий: исключение выбранного блока из моделирования. Сигналы пропускаются. Чтобы комментировать через блок, количество входных портов и выходных портов для блока должно быть одинаковым.
Чтобы получить доступ к параметрам «Комментарий через» или «Комментарий через», щелкните блок правой кнопкой мыши и в контекстном меню выберите «Комментарий через» или «Комментарий через» в соответствии с требованиями моделирования.
Можно также выбрать блок и нажать клавиши CTRL + SHIFT + X для вывода комментариев или CTRL + SHIFT + Y для получения комментариев.
Вы можете использовать get_param и set_param команды для просмотра или изменения комментированного состояния блока программным путем. Например,
get_param(gcb,'commented'); % To view the commented state of the block
set_param(gcb,'commented','on'); % To comment out a block
set_param(gcb,'commented','through'); % To comment through a block
set_param(gcb,'commented','off'); % To uncomment a block
При комментировании блока имена сигналов на выходном порту блока игнорируются. Для включения таких сигналов во время моделирования необходимо добавить имя сигнала во входном порту блока.
Comment Out и Comment Through не поддерживаются с этими блоками: Inport, Outport, Duplicate Port, Connection Ports, Argument Inport, Argument Outport, Data Store Memory, Signal Generator, Goto Tag Visibility, For и While blocks.