Каждый вариант в вашей модели сопоставлен с названным различным управлением условного выражения. Путем вы указываете, что ваши различные средства управления определяют активный вариант. параметр Variant control mode, доступный в диалоговом окне параметров блоков, позволяет вам выбирать Expression
или Label
режим для моделирования Различных блоков.
Это изображение показывает диалоговое окно параметров блоков блока 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')
Примечание
CompiledActiveChoiceBlock
параметр поддерживается только для блока Variant Subsystem.
Активный вариант не может быть изменен, если модель скомпилирована.