Создайте модель, которая содержит варианты блоков. Для получения примера смотрите Подсистемы вариантов, которые содержат Блок Subsystem вариантов (Controller
).
Задайте переменные управления вариантом, которые определяют условие, при котором активен выбор варианта.
Щелкните правой кнопкой мыши блок варианта и нажатия кнопки Block Parameters. Откроется диалоговое окно Параметров блоков для блока варианта.
Для выбора активного варианта на основе оценки условий варианта используйте Expression
mode else select Label
режим. Когда вы выбираете Variant control mode как Label
, доступна опция Label mode active choice. В Label
mode, Variant control не должен создаваться в глобальной рабочей области. Можно выбрать активный вариант из Label mode active choice опций.
Используйте опции, доступные в диалоговом окне Параметров блоков, чтобы добавить элементы управления вариантом и соответствующее ему условие варианта.
Образец скриншота для Expression
режим:
Образец скриншота для Label
режим:
Примечание
Переменные, используемые для задания управления вариантом и условия варианта, должны быть определены в глобальной рабочей области, рабочем пространстве модели, рабочем пространстве маски или словаре данных для модели.
Задайте условие варианта по умолчанию, которое будет использоваться, когда нет активного варианта выбора. Используйте раскрывающееся меню Variant control, чтобы задать значение по умолчанию.
Для активации варианта введите вариант в MATLAB® командное окно. Для примера введите VSS_MODE = 2
.
Чтобы симулировать модель, на панели инструментов нажмите Run. Модель моделирует заданный активный выбор.
Измените активный выбор и при необходимости снова симулируйте модель.
Сгенерируйте код для модели вариантов с препроцессорными обусловлениями.
Примечание
У вас должен быть Embedded Coder® лицензия на генерацию кода.
В Параметры блоков окне из списка Variant activation time выберите code compile
.
Откройте диалоговые окна Блока Subsystem Parameters. Выберите параметр Treat as atomic unit.
В Code Generation разделе Параметров конфигурации окна задайте System target file следующим образом ert.tlc
.
В Model Explorer задайте переменные, используемые для задания выбора варианта как переменным MATLAB или как Simulink.Parameter
. Тип данных Simulink.Parameter
может быть типа Integer
, Boolean
, или Enumerated
и класс памяти может быть либо importedDefine(Custom)
, Define(Custom)
, или CompilerFlag
.
Для вариантов, определенных в глобальной рабочей области, экспортируйте переменные управления в MAT-файл. Для примера введите в командном окне MATLAB следующее:
save <MAT-File Name> <Variable Name>
PostLoadCallback > load <MAT-File Name>
Примечание
Чтобы обновить или обновить активные модели, которые содержат блоки Variant Subsystem, на вкладке Modeling, нажмите Update Model (Ctrl + D) в Simulink®.