В этом примере показано, как изменить активные значения и время активации параметров вариантов в модели Simulink ®.
В этом примере вы узнаете, как:
Изменение активных значений параметров исполнения с помощью выражений условия исполнения.
Изменение времени определения активных значений с использованием времени активации варианта.
Параметры варианта могут иметь несколько значений. Каждое значение параметра variant связано с выражением элемента управления variant. Во время моделирования значение параметра исполнения связывается с условием, которое вычисляется как true - активное значение параметра variant. Значение, связанное с условием, которое вычисляется как false - неактивное значение параметра. Для переключения между активными значениями измените значение переменной управления исполнениями. Дополнительные сведения см. в разделе Использование параметров исполнения для повторного использования параметров блока с различными значениями.
Перед началом работы с этим примером рекомендуется завершить создание модели простых параметров исполнения.
1. Откройте модель.
open_system([matlabroot '/examples/simulink_variants/main/slexVariantParameters'])

В этой модели параметр Усиление (Gain) блоков Усиление (Gain) являются параметрами вариантов, которые указаны как Simulink.VariantVariable объекты K1 и K2. Объекты определены в slexVariantParameterData.m файл.
2. Откройте окно slexVariantParameterData.m файл. Файл загружается в обратный вызов PostLoadFcn в меню «Моделирование» > «Параметры модели» > «Свойства модели».
В файле объекты 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 активное значение параметра варианта Gain во время диаграммы обновления или во время компиляции кода. Время активации также определяет, должен ли сгенерированный код содержать только активные значения или как активные, так и неактивные значения K1 и K2.
В этом примере значение V указывается как 1, и время активации варианта указано как update diagram. При моделировании этой модели V==1 вычисляется как true. Значение K1 имеет значение 3.5 и значение K2 имеет значение 4.5. Simulink определяет активные значения во время схемы обновления. При создании кода из этой модели код содержит только активные значения K1 и K2.
Значение переменной управления вариантом определяет активное значение параметров варианта во время моделирования. Чтобы переключить активные значения, измените значение переменной управления исполнениями.
1. На панели инструментов Simulink нажмите «Выполнить». Во время моделирования, V==1 вычисляется как true. В качестве значений 3.5 и 4.5 связаны с V==1, эти значения присвоены K1 и K2соответственно. Затем значения присваиваются параметрам усиления блоков усиления.
2. Чтобы изменить значение параметров Gain, измените значение 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.