Каждый выбор варианта в модели Simulink ® связан с условным выражением, называемым управлением вариантом. Управление вариантом, которое оценивается как true, определяет активный выбор варианта в модели. В этом примере показано, как создать элементы управления вариантом в вашей модели с помощью класса перечисления в памяти. Перечисление создается с помощью
функция. Вам не нужно сохранять перечисление в файле MATLAB ®. В генерации кода перечисленные типы улучшают читаемость, потому что значения условий представлены в виде значимых имен вместо буквальных значений.Simulink.VariantConfigurationData
Откройте модель slexVariantSetupUsingInMemoryEnums
. Он содержит два варианта выбора, Linear controller
и Nonlinear controller
. Для реализации областей исполнения используются блоки Variant Sink и Variant Source.
open_system('slexVariantSetupUsingInMemoryEnums');
PreLoad
Коллбэк моделиВ этом примере класс перечисления Controller
определяется в модели PreLoad
функцию обратного вызова. Класс перечисления задают два представителей перечисления, Linear
и Nonlinear
, с базовыми целочисленными значениями 0
и 1
. Определение перечисления экспортируется в файл с именем заголовка Controller.h
во время генерации кода. Область Переменного MATLAB V
используется как переменная управления вариантом для хранения текущего активного варианта.
Simulink.defineIntEnumType('Controller',... {'Linear', 'Nonlinear'}, [0;1], 'Description', 'Controller',... 'DefaultValue', 'Linear', 'HeaderFile', 'Controller.h', 'DataScope',... 'Exported'); V = Controller.Linear;
Можно установить элементы управления вариантом из Диспетчера вариантов. Чтобы открыть Диспетчер вариантов, щелкните правой кнопкой значок варианта на блоке Variant Sink или Variant Source и выберите Open в Диспетчере вариантов.
Можно увидеть, как представители перечисления и управляющая переменная используются для создания выражений условия V == ControllerChoice.Linear
и V == ControllerChoice.Nonlinear
. Все поддерживаемые перечисления Simulink могут использоваться для построения выражения условия. Для получения информации о перечислениях в Simulink, смотрите Перечисления Simulink.