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