Задайте, сконфигурируйте и активируйте варианты

Представляйте варианты

Варианты являются двумя или больше настройками компонента в вашей модели. В этом примере показано, как представлять варианты в блоке 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.

    Совет

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

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

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

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

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

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

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

    Примечание

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

  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; в противном случае ваши изменения не сохранены.

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

В Редакторе Simulink можно преобразовать эти блоки в блок 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 Analyze all choices during update diagram and generate preprocessor conditionals. Для различных моделей, включая параметр заставляет схему симуляции и обновления компилировать активный вариант только. Для различной подсистемы, включая параметр компилирует все варианты, которые могут сделать симуляцию и обновляются медленнее.

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

Связанные примеры

Больше о