Задайте, сконфигурируйте и активируйте варианты в различном блоке Subsystem

Представляйте варианты в различной подсистеме

Варианты являются двумя или больше настройками компонента в вашей модели. В этом примере показано, как представлять варианты в блоке Variant Subsystem. Блок Variant Subsystem позволяет вам использовать комбинацию Subsystem, Model или блоков Subsystem Reference как варианты. Для других способов представлять варианты проекта, смотрите Типы Вариантов в 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; в противном случае ваши изменения не сохранены.

Отображение Inports и выходных портов вариантов в различной подсистеме

Блок Variant Subsystem позволяет вам использовать комбинацию Subsystem, Model или блоков Subsystem Reference как варианты. Входные параметры, которые блок Variant Subsystem получает от восходящих компонентов модели, сопоставляют с портами ввода и вывода вариантов.

Блоки, представляющие варианты, могут иметь порты ввода и вывода, которые отличаются по номеру от портов ввода и вывода в родительском блоке Variant Subsystem. Однако следующим условиям нужно удовлетворить:

  • Варианты должны иметь тот же набор импорта как блок контейнера Variant Subsystem, или это должно быть подмножество портов на контейнерном блоке.

  • Варианты должны иметь тот же набор выходных портов как блок контейнера Variant Subsystem, или это должно быть подмножество портов на контейнерном блоке.

  • Варианты должны иметь тот же набор порта управления как блок контейнера Variant Subsystem.

В процессе моделирования Simulink отключает неактивные порты в блоке Variant Subsystem.

Преобразуйте в различный блок Subsystem

В Редакторе 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 Variant activation time. Для различных моделей, включая параметр заставляет схему симуляции и обновления компилировать активный вариант только. Для различной подсистемы, включая параметр компилирует все варианты, которые могут сделать симуляцию и обновляются медленнее.

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

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

Больше о