Варианты являются двумя или больше настройками компонента в вашей модели. В этом примере показано, как представлять варианты в блоке Variant Subsystem. Блок Variant Subsystem позволяет вам использовать комбинацию Subsystem, Model или блоков Subsystem Reference как варианты. Для других способов представлять варианты проекта, смотрите Типы Вариантов в Simulink.
Добавьте блок Variant Subsystem в свою модель и назовите ее.
Этот блок служит контейнером для вариантов.
Дважды кликните блок Variant Subsystem. Добавьте Inport и блоки Outport так, чтобы они совпадали с входными параметрами в и выходными параметрами от этого блока.
Примечание
Можно добавить только Inport, Outport, Subsystem и блоки Model в блоке Variant Subsystem. Можно передать управляющие сигналы через порты данных.
Щелкните правой кнопкой по значку по блоку Variant Subsystem и выберите Block Parameters (Subsystem).
В диалоговом окне параметров блоков нажмите кнопку для каждого различного выбора подсистемы, который вы хотите добавить.
Simulink® создает пустые блоки Subsystem в блоке Variant Subsystem. Новые блоки имеют то же количество портов ввода и вывода как содержание блока Variant Subsystem.
Совет
Если ваши варианты имеют различные количества портов ввода и вывода, смотрите Отображение Inports и Выходные порты Вариантов в Различной Подсистеме.
Откройте каждый блок Subsystem и создайте модель, которая представляет вариант.
Когда вы моделируете варианты, можно создать пустые блоки Subsystem без вводов или выводов в блоке Variant Subsystem. Пустая подсистема воссоздает ситуацию, в которой подсистема неактивна без потребности в том, чтобы полностью смоделировать вариант. Для пустого варианта, или задать различное условие активации или комментируют различное условие путем размещения %
символ перед условием.
Если пустой вариант активен во время компиляции, Simulink игнорирует его.
Можно включать модель Simulink как вариант в блоке Variant Subsystem.
Создайте модель, которую вы хотите включать как вариант. Убедитесь, что это имеет то же количество портов ввода и вывода как содержание блока Variant Subsystem.
Примечание
Если ваша модель имеет различные количества портов ввода и вывода, смотрите Отображение Inports и Выходные порты Вариантов в Различной Подсистеме.
В вашей модели щелкните правой кнопкой по блоку Variant Subsystem, который содержит варианты, и выберите Block Parameters (Subsystem).
В диалоговом окне параметров блоков нажмите кнопку, чтобы добавить блок Model как вариант.
Simulink создает неразрешенный блок Model в блоке Variant Subsystem.
Дважды кликните неразрешенный блок Model. В поле Model name введите имя модели, которую вы хотите использовать в качестве варианта модели и нажать OK.
Можно указать, что условия для активации варианта использования варианта управляют. Можно также задать самое большее один вариант как значение по умолчанию.
В MATLAB® командная строка, задайте контрольные переменные, которые создают условие активации, когда объединено.
mode = 3; version = 2;
Щелкните правой кнопкой по блоку Variant Subsystem, который является контейнером для вариантов в вашей модели, и выберите Block Parameters (Subsystem).
В диалоговом окне параметров блоков, в столбце Variant control, выбирают (default)
рядом с одним из выбора.
Simulink проверяет, что только один вариант активен для симуляции. Если Allow zero active variant controls выбран, у вас может быть нулевой вариант. Когда условие управления не активирует вариант, Simulink использует вариант по умолчанию для симуляции и генерации кода.
Задайте различное условие каждый другой выбор. Если вы используете пустой вариант, задаете различное условие для выбора. Можно также закомментировать существующее условие активации путем добавления префикса его %
символ.
Нажмите Apply; в противном случае ваши изменения не сохранены.
Блок Variant Subsystem позволяет вам использовать комбинацию Subsystem, Model или блоков Subsystem Reference как варианты. Входные параметры, которые блок Variant Subsystem получает от восходящих компонентов модели, сопоставляют с портами ввода и вывода вариантов.
Блоки, представляющие варианты, могут иметь порты ввода и вывода, которые отличаются по номеру от портов ввода и вывода в родительском блоке Variant Subsystem. Однако следующим условиям нужно удовлетворить:
Варианты должны иметь тот же набор импорта как блок контейнера Variant Subsystem, или это должно быть подмножество портов на контейнерном блоке.
Варианты должны иметь тот же набор выходных портов как блок контейнера Variant Subsystem, или это должно быть подмножество портов на контейнерном блоке.
Варианты должны иметь тот же набор порта управления как блок контейнера Variant Subsystem.
В процессе моделирования Simulink отключает неактивные порты в блоке Variant Subsystem.
В Редакторе Simulink можно преобразовать эти блоки в блок Variant Subsystem:
Блок Subsystem
Блок Model
Блок Variant Model (для моделей, созданных в версиях ранее, чем R2017b)
Условно выполняемые подсистемы
Для этого щелкните правой кнопкой по блоку, затем в контекстном меню, нажмите Subsystem & Model Reference> Convert to > Variant Subsystem.
Можно также преобразовать, они блокируются с блоком Variant Subsystem программно. Для этого используйте любой из этих синтаксисов:
Например,
open_system('sldemo_variant_subsystems'); Simulink.VariantManager.convertToVariant('sldemo_variant_subsystems/Controller');
Если вы преобразуете различные модели в различную подсистему, обратите внимание, что поведение параметров блоков Model Generate preprocessor conditionals отличается, чем параметры блоков Variant Subsystem Variant activation time. Для различных моделей, включая параметр заставляет схему симуляции и обновления компилировать активный вариант только. Для различной подсистемы, включая параметр компилирует все варианты, которые могут сделать симуляцию и обновляются медленнее.
Преобразование различных моделей к различным подсистемам может потребовать, чтобы вы обновили скрипты, которые используют Variants
параметр командной строки.