Работа с вариантами выбора

Каждый выбор варианта в модели связан с условным выражением, называемым управлением вариантом. Способ определения элементов управления вариантом определяет выбор активного варианта. Variant control mode параметр, доступный в диалоговом окне параметров блоков, позволяет вам выбрать Expression или Label режим для моделирования блоков Variant.

На этом изображении показано диалоговое окно параметров блоков блока Variant Subsystem, которое содержит четыре варианта выбора:

  • Первый выбор комментируется добавлением % символ перед управлением вариантом.

  • Второй выбор - это (default) и активируется, когда ни один из вариантов управления не вычисляет true.

  • Третий выбор активируется, когда выражение mode==3 && version==2 вычисляет, чтобы true.

  • Четвертый выбор активируется, когда выражение mode==2 && version==1 вычисляет, чтобы true.

Выбор варианта по умолчанию

В качестве варианта по умолчанию для модели можно задать не более одного варианта. Как показано на изображении выше, Linear Controller подсистема определяется как вариант по умолчанию. Во время компиляции модели, если Simulink® находит, что ни один из вариантов управления не вычисляет true, он использует выбор по умолчанию.

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

Выбор активного варианта

В то время как каждый выбор варианта связан с управлением вариантом, только один элемент управления вариантом может вычислить true за раз. Когда исполнительное управление вычисляет, чтобы trueSimulink активирует вариант выбора, который соответствует этому варианту управления. Самое большее один вариант может быть активным. Активный вариант не может быть изменен после компиляции модели.

В этом примере можно активировать любой из Model вариант выбора или Nonlinear Controller выбор варианта путем определения соответствующих значений для mode и version.

Значение modeЗначение versionВыбор активного варианта
21Nonlinear Controller
32Model

Можно задать значения mode и version в MATLAB® Командное окно.

Неактивный выбор варианта

Когда управление вариантом активирует один выбор варианта, Simulink считает другие варианты неактивными. Simulink игнорирует неактивные варианты выбора во время симуляции. Однако Simulink продолжает выполнять коллбэки блоков внутри неактивных вариантов выбора.

Цвет неактивных вариантов по умолчанию исчезает. Можно принять решение отключить эффект затухания при помощи опции Variant Fading. Опция Variant Fading доступна в меню Information Overlays на вкладке Debug редактора Simulink. Можно использовать get_param и set_param команды для программного просмотра или изменения затухающего состояния неактивных вариантов. Для примера,

  • get_param('bdroot,'VariantFading') % To view the fading state of inactive choices

  • set_param('bdroot,'VariantFading','on') % To turn on the fading effect of inactive choices

Выбор пустого варианта

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

Для пустого варианта можно либо задать условие активации варианта, либо прокомментировать условие варианта путем размещения % символ перед условием.

Если этот выбор варианта активен во время симуляции, Simulink игнорирует выбор пустого варианта. Однако Simulink продолжает выполнять коллбэки блоков внутри пустых вариантов выбора.

Список вариантов выбора

Вы можете получить список вариантов выбора в блоке Variant Subsystem, используя параметр только для чтения VariantChoices.

varchoices = get_param(gcb, 'VariantChoices');

В этом примере VariantChoices возвращает следующее:

List of variant choices in the variant subsystem

Откройте активный вариант

Когда вы открываете модель, блоки вариантов отображают имя варианта, который был активен в последний раз, когда вы сохраняли модель. Используйте меню Variant, чтобы открыть активный вариант. Щелкните правой кнопкой мыши блок и выберите Variant > Open. Затем выберите активный вариант.

Используйте эту команду для поиска текущего активного выбора:

get_param(gcb,'CompiledActiveChoiceControl')

Используйте эту команду для поиска пути к текущему активному выбору:

get_param(gcb,'CompiledActiveChoiceBlock')

Примечание

  • The CompiledActiveChoiceBlock параметр поддерживается только для блока Variant Subsystem.

  • Активный вариант не может быть изменен после компиляции модели.

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

Подробнее о