Измените активные значения и время активации различных параметров

В этом примере показано, как изменить активные значения и время активации различных параметров в модели Simulink®.

В этом примере вы будете учиться как:

  • Измените активные значения различных выражений условия варианта использования параметров.

  • Измените время определения активного времени активации варианта использования значений.

Обзор различных параметров

Различные параметры могут иметь несколько значений. Каждое значение различного параметра сопоставлено с различным выражением управления. В процессе моделирования значение различного параметра сопоставлено с условием, которое оценивает к true активное значение различного параметра. Значение сопоставило с условием, которое оценивает к false неактивное значение параметра. Чтобы переключиться между активными значениями, измените значение различной контрольной переменной. Для получения дополнительной информации смотрите Параметры Варианта Использования к Параметрам блоков Повторного использования с Различными Значениями.

Необходимое условие

Прежде чем вы начнете с этого примера, мы рекомендуем, чтобы вы завершились, Создают Простую Различную Модель Параметра.

Исследуйте модель

1. Откройте модель.

open_system([matlabroot '/examples/simulink_variants/main/slexVariantParameters'])

В этой модели параметр Усиления блоков Усиления является различными параметрами, которые заданы как Simulink.VariantVariable объекты K1 и K2. Объекты заданы в slexVariantParameterData.m файл.

2. Откройте slexVariantParameterData.m файл. Файл загружается в коллбэке PostLoadFcn Моделирования> Настройки Model> Model Properties.

В файле, объекты K1 и K2 имейте несколько значений, сопоставленных с различными выражениями управления V==1 и V==2. В дополнение к значению можно задать атрибуты, такие как размерность, тип данных, и так далее для каждого объекта с помощью параметра 'Спецификации' объекта.

  • Различная контрольная переменная: значение Simulink.VariantControl объект V определяет который значения K1 и K2 активны в процессе моделирования. Если V==1 оценивает к true, значения сопоставлены с V==1 станьте активными, и все значения, сопоставленные с V==2 станьте неактивными. Активное значение K1 присвоен параметру Усиления блока Gain1, и активное значение K2 присвоено параметру Усиления блока Gain2. Точно так же, когда V==2 оценивает к true, все значения сопоставлены с V==1 станьте неактивными, и все значения, сопоставленные с V==2 станьте активными. Для получения дополнительной информации о различных средствах управления смотрите Различные Средства управления в Различных Параметрах.

  • Различное время активации: различное время активации определяет, устанавливает ли Simulink активное значение различного Усиления параметра во время схемы обновления или во время компиляции кода. Время активации также определяет, должен ли сгенерированный код содержать только активные значения или и активные и неактивные значения K1 и K2.

В этом примере, значении V задан как 1, и различное время активации задано как update diagram. Когда вы симулируете эту модель, V==1 оценивает к true. Значение K1 установлен в 3.5 и значение K2 установлен в 4.5. Simulink определяет активные значения во время схемы обновления. Когда вы генерируете код из этой модели, код содержит только активные значения K1 и K2.

Установите активный выбор различных параметров

Значение различной контрольной переменной определяет активное значение различных параметров в процессе моделирования. Чтобы переключить активные значения, измените значение различной контрольной переменной.

1. На панели инструментов Simulink нажмите Run. В процессе моделирования, V==1 оценивает к true. Как значения 3.5 и 4.5 сопоставлены с V==1, эти значения присвоены K1 и K2, соответственно. Впоследствии, значения присвоены параметрам Усиления блоков Усиления.

2. Чтобы изменить значение параметров Усиления, измените значение V к 2, затем симулируйте модель снова.

V.Value = 2;

В процессе моделирования все значения сопоставлены с V==2 присвоены K1 и K2. Впоследствии, значения присвоены параметрам Усиления блоков Усиления.

Установите время определять активное значение различных параметров

Различное время активации определяет, когда Simulink выбирает активное значение различных параметров. Время активации также определяет, должен ли сгенерированный код содержать только активные значения или и активные и неактивные параметры варианта значений. Для получения дополнительной информации см. 'ActivationTime'.

Можно задать время активации как:

  • update diagram: Задавать время активации V как update diagram, введите эту команду в Командном окне MATLAB®. Затем симулируйте модель снова.

V.ActivationTime = 'update diagram';

Simulink устанавливает активные значения K1 и K2 во время схемы обновления перед распространением атрибутов сигнала. Атрибуты сигнала, такие как размерность и тип данных не анализируются для непротиворечивости через модель. Сгенерированный код содержит только активное значение K1 и K2.

  • update diagram analyze all choices: Задавать время активации V как update diagram analyze all choices, введите эту команду в командном окне MATLAB. Затем симулируйте модель снова.

V.ActivationTime = 'update diagram analyze all choices';

Simulink устанавливает активные значения K1 и K2 во время схемы обновления после распространения атрибутов сигнала. Атрибуты сигнала распространены и к активным и к неактивным значениям. Атрибуты сигнала, такие как размерность и тип данных анализируются для непротиворечивости через модель. Сгенерированный код содержит только активное значение K1 и K2.

  • code compile: Задавать время активации V как code compile, введите эту команду в командном окне MATLAB. Затем симулируйте модель снова.

V.ActivationTime = 'code compile';

Simulink устанавливает активный выбор во время компиляции кода. Атрибуты сигнала распространены и к активным и к неактивным значениям. Атрибуты сигнала, такие как размерность и тип данных анализируются для непротиворечивости через модель. Сгенерированный код содержит и активные и неактивные значения K1 и K2. Значения заключены в условные выражения препроцессора #if и #elif.

Смотрите также