Определение, конфигурирование и активация вариантов

Представление вариантов выбора

Варианты выбора - эти два или более строений компонента в вашей модели. В этом примере показано, как представлять варианты выбора внутри блока Variant Subsystem в вашей модели. Для других способов представления вариантов проекта смотрите Опции для представления вариантов в Simulink.

  1. Добавьте блок Variant Subsystem к модели и назовите его.

    Этот блок служит контейнером для вариантов выбора.

  2. Дважды кликните Variant Subsystem блок. Добавьте Inport и Outport блоки так, чтобы они совпадали с входами в и выходами из этого блока.

    Примечание

    Внутри блока Inport можно добавлять только Outport, Subsystem, Model и Variant Subsystem блоки. Можно передавать сигналы управления через порты данных.

  3. Щелкните правой кнопкой мыши значок на блоке Variant Subsystem и выберите Block Parameters (Subsystem).

  4. В диалоговом окне параметров блоков нажмите кнопку для каждого варианта подсистемы, который вы хотите добавить.

    Simulink® создает пустые блоки Subsystem внутри блока Variant Subsystem. Новые блоки имеют то же количество входа и выходных портов, что и блок Variant Subsystem.

    Совет

    (Если варианты выбора имеют разное количество входных и выходных портов, см. «Отображение входных и выходных портов вариантов».)

  5. Откройте каждый Subsystem блок и создайте модель, которая представляет вариант выбора.

  6. Когда вы являетесь вариантами прототипирования, можно создать пустые блоки Subsystem без входов или выходов внутри блока Variant Subsystem. Пустая подсистема воссоздает ситуацию, в которой подсистема неактивна без необходимости полного моделирования варианта. Для выбора пустого варианта либо укажите условие активации варианта, либо закомментируйте условие варианта путем размещения % символ перед условием.

    Если во время компиляции активен пустой вариант, Simulink игнорирует его.

Включите модель Simulink в качестве варианта выбора

Можно включать модель Simulink в качестве варианта выбора внутри блока Variant Subsystem.

  1. Создайте модель, которую вы хотите включить в качестве варианта выбора. Убедитесь, что оно имеет то же количество входа и выхода портов, что и блок Variant Subsystem.

    Примечание

    Если ваша модель имеет разное количество входа и выхода портов, см. Отображение входных и выходных портов Вариантов.

  2. В модели щелкните правой кнопкой мыши блок Variant Subsystem, который содержит варианты выбора и выберите Block Parameters (Subsystem).

  3. В диалоговом окне параметров блоков нажмите кнопку, чтобы добавить блок Model в качестве варианта выбора.

    Simulink создает неразрешенный Model блок в блоке Variant Subsystem.

  4. Дважды кликните неразрешенный Model блок. В Model name окне введите имя модели, которую вы хотите использовать в качестве варианта модели, и нажмите OK.

Сконфигурируйте элементы управления варианта

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

  1. В MATLAB® в командной строке задайте управляющие переменные, которые создают условие активации при объединении.

    mode = 3;
    version = 2;

  2. Щелкните правой кнопкой мыши блок Variant Subsystem, который является контейнером для вариантов выбора в вашей модели, и выберите Block Parameters (Subsystem).

  3. В диалоговом окне параметров блоков, в столбце Variant control, выберите (default) рядом с одним из вариантов.

    Simulink проверяет, что для симуляции активен только один вариант. Если Allow zero active variant controls выбран, у вас может быть нулевой вариант выбора. Когда условие управления не активирует вариант, Simulink использует вариант по умолчанию для симуляции и генерации кода.

  4. Задайте условие варианта каждый из других вариантов. Если используется пустой вариант, задайте условие варианта для выбора. Вы также можете прокомментировать существующее условие активации, префиксировав его с помощью % символ.

  5. Нажмите Apply; в противном случае изменения не сохраняются.

Преобразование в варианты

В Редактор можно преобразовать эти блоки в Variant Subsystem блок:

  • Subsystem блок

  • Model блок

  • Variant Model блок (для моделей, созданных в версиях ранее R2017b)

  • Условно выполняемые подсистемы

Для этого щелкните правой кнопкой мыши блок, затем в контекстном меню щелкните Subsystem & Model Reference > Convert to > Variant Subsystem.

Можно также преобразовать эти блоки в Variant Subsystem программно. Для этого используйте любой из следующих синтаксисов:

  • Simulink. VariantManager.convertToVariant (gcb)

  • Simulink. VariantManager.convertToVariant (gcbh)

Для примера,

open_system('sldemo_variant_subsystems');
Simulink.VariantManager.convertToVariant('sldemo_variant_subsystems/Controller');

Если вы преобразовываете модели вариантов в подсистему вариантов, обратите внимание, что поведение Model параметра блока Generate preprocessor conditionals отличается от Variant Subsystem параметра блока Variant activation time. Для исполнительных моделей включение параметра приводит к симуляции и обновлению схемы, чтобы скомпилировать только активный вариант. Для подсистемы вариантов, включение параметра компилирует все варианты, что может сделать симуляцию и обновления медленнее.

Преобразование моделей вариантов в подсистемы вариантов может потребовать, чтобы вы обновляли скрипты, которые используют Variants параметр командной строки.

Похожие примеры

Подробнее о