Каждый выбор варианта в модели Simulink ® связан с условным выражением, называемым управлением вариантом. Управление вариантом, которое оценивается как true, определяет активный выбор варианта в модели. В этом примере показано, как создать элементы управления вариантом в модели с помощью перечисления MATLAB ® в выражениях условий варианта. В генерации кода перечисленные типы улучшают читаемость, потому что значения условий представлены в виде значимых имен вместо буквальных значений.
Откройте модель slexVariantSetupUsingIntEnums
. Он содержит два варианта выбора, Linear controller
и Nonlinear controller
. Для реализации областей исполнения используются блоки Variant Sink и Variant Source.
Можно создать класс перечисления, добавив блок перечисления в определение класса и сохранив его в файле MATLAB. В этом примере перечисление ControllerChoice
(сохранено в ControllerChoice.m
) происходит от встроенного числового типа int32
. Он задает два представителей перечисления, Linear
и Nonlinear
.
classdef ControllerChoice < int32 enumeration Linear (0), Nonlinear (1), end %All the methods below can be optionally used to configure %the enumeration in the generated code methods (Static = true) %% Description of the enumeration function retVal = getDescription() retVal = 'Controller...'; end %% Default value of the enumeration function retVal = getDefaultValue() retVal = ControllerChoice.Linear; end %% Specify whether the generated code imports/exports the definition %% of the enum used in the variant control expression function retVal = getDataScope() retVal = 'Exported'; end %% Get the header file to import from/export to the definition of the %% enumeration in the generated code function retVal = getHeaderFile() retVal = 'Controller.h'; end end end
В этом примере используется переменный MATLAB V
как переменная управления вариантом для хранения варианта, который в данный момент является активным.
В Командном Окне MATLAB введите:
V = ControllerChoice.Linear;
Можно установить элементы управления вариантом из Диспетчера вариантов. Чтобы открыть Диспетчер вариантов, щелкните правой кнопкой значок варианта на блоке Variant Sink или Variant Source и выберите Open в Диспетчере вариантов.
Можно увидеть, как представители перечисления и управляющая переменная используются для создания выражений условия V == ControllerChoice.Linear
и V == ControllerChoice.Nonlinear
. Все поддерживаемые перечисления Simulink могут использоваться для построения выражения условия. Для получения информации о перечислениях в Simulink, смотрите Перечисления Simulink.