Каждый выбор варианта в модели связан с условным выражением, называемым управлением вариантом. Способ определения элементов управления вариантом определяет выбор активного варианта. 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
за раз. Когда исполнительное управление вычисляет, чтобы true
Simulink активирует вариант выбора, который соответствует этому варианту управления. Самое большее один вариант может быть активным. Активный вариант не может быть изменен после компиляции модели.
В этом примере можно активировать любой из Model
вариант выбора или Nonlinear Controller
выбор варианта путем определения соответствующих значений для mode
и version
.
Значение mode | Значение version | Выбор активного варианта |
---|---|---|
2 | 1 | Nonlinear Controller |
3 | 2 | Model |
Можно задать значения 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
возвращает следующее:
Когда вы открываете модель, блоки вариантов отображают имя варианта, который был активен в последний раз, когда вы сохраняли модель. Используйте меню Variant, чтобы открыть активный вариант. Щелкните правой кнопкой мыши блок и выберите Variant > Open. Затем выберите активный вариант.
Используйте эту команду для поиска текущего активного выбора:
get_param(gcb,'CompiledActiveChoiceControl')
Используйте эту команду для поиска пути к текущему активному выбору:
get_param(gcb,'CompiledActiveChoiceBlock')
Примечание
The CompiledActiveChoiceBlock
параметр поддерживается только для блока Variant Subsystem.
Активный вариант не может быть изменен после компиляции модели.