exponenta event banner

Подходы к управлению активным выбором исполнения блока исполнения

В этом примере показаны различные подходы к управлению активным выбором блоков встроенных исполнений и подсистем исполнений из маски или рабочего пространства модели. Дополнительные сведения о блоках исполнения см. в разделах Что такое исполнения и когда их использовать.

Модель

В этом примере четыре модели Simulink ® выделены зеленым цветом, а одна - красным. Модели зеленого цвета представляют рекомендуемые подходы к управлению активным выбором блоков варианта. Эти подходы позволяют ограничить область действия переменной управления исполнениями, избежать конфликтов имен и установить четкое владение переменной между блоками исполнения. Они также позволяют использовать одни и те же имена для переменных в различных областях.

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

Ограничения рекомендуемых подходов

  • Работать только в том случае, если для параметра Variant control mode установлено значение Expression и параметр Variant activation time имеет значение update diagram.

  • Не поддерживать использование Simulink.Variant объекты или Simulink.Parameter в качестве переменных управления вариантами.

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

  • Число символов в переменной управления исполнениями не должно превышать 40.

  • Переменная управления исполнениями, исходящая из рабочей области маски, не должна начинаться с SLMASK.

Подход 1: использование параметра маски в качестве переменной управления вариантами

В этом разделе объясняется, как управлять активным выбором исполнения блоков подсистемы исполнения и встроенных блоков исполнения с помощью параметра маски.

Управление активным выбором блока вариационной подсистемы с использованием параметра маски

Рассмотрим модель с блоком VSS1 «Исполнительная подсистема». Подсистема VSS1 определяет два потенциальных варианта: x2 и x3. Контрольное выражение для x2 B == 1 и для x3 B == 2. Переменная B является параметром маски. Просмотр свойств B:

1. Щелкните правой кнопкой мыши подсистему VSS1.

2. Выберите «Маска» > «Редактировать маску». На панели «Параметры и диалоговое окно» в разделе «Параметры» в столбце «Запрос» указывается метка параметра в диалоговом окне маски, а в столбце «Имя» указывается имя параметра маски. В этом примере параметр «Запрос» указан как Enter the choice, и имя указано как B.

3. Чтобы открыть диалоговое окно маски, дважды щелкните подсистему VSS1. Во время моделирования индекс указанного значения сопоставляется с базовой переменной. B, который затем используется для вычисления выражений условия исполнения, связанных с блоком. В этом примере значением по умолчанию для параметра «Ввод варианта» является 2. При моделировании этой модели условие исполнения B == 2 вычисляется как true. Подсистема x2 становится неактивной, а подсистема x3 - активной.

4. Чтобы изменить активный вариант, укажите значение как 1 в диалоговом окне маски, затем снова смоделировать модель. Во время моделирования значение B имеет значение 1 который в свою очередь оценивает условие Variant, B == 1 кому true. Подсистема x2 становится активной, а подсистема x3 - неактивной.

Управление активным выбором встроенных блоков вариантов с помощью параметра маски

Рассмотрим модель с маскированным блоком подсистемы SS1. Подсистема SS1 имеет параметр маски VC используется в качестве переменной управления вариантами в базовом блоке Vsrc источника вариантов. Первый входной порт связан с управляющим выражением VC == 1 и второй входной порт связан с управляющим выражением VC == 2. Просмотр свойств VC:

1. Щелкните правой кнопкой мыши подсистему SS1.

2. Выберите «Редактировать маску». На панели «Параметры и диалоговое окно» в разделе «Параметры» в столбце «Запрос» указывается метка параметра в диалоговом окне маски, а в столбце «Имя» указывается имя параметра маски. В этом примере параметр «Запрос» указан как Choose the signal, и имя указано как VC.

3. Чтобы открыть диалоговое окно маски, дважды щелкните подсистему SS1. Во время моделирования индекс выбранного значения сопоставляется с базовой переменной. VC, который затем используется для вычисления выражений условия исполнения, связанных с блоком Vsrc. В этом примере значение по умолчанию Choose the signal равно Sine Wave. При моделировании этой модели индекс Sine Wave, 2, сопоставляется с VC. Условие варианта VC == 2 вычисляется как true. В результате первый входной порт блока Vsrc, который связан с VC == 1 становится неактивным, и второй входной порт, связанный с VC == 2 становится активным.

4. Чтобы изменить активный вариант, выберите значение как Constant в диалоговом окне маски, затем снова смоделировать модель. Во время моделирования значение VC имеет значение 1 который, в свою очередь, оценивает условие варианта, VC == 1 кому true. Первый входной порт блока Vsrc становится активным, а второй входной порт - неактивным.

Подход 2: использование переменной инициализации маски в качестве переменной управления вариантами

В этом разделе объясняется, как управлять активным выбором вариантов блоков подсистемы вариантов с помощью переменной инициализации маски. Этот подход также используется для управления активным выбором вариантов встроенных блоков вариантов.

Рассмотрим модель с блоком VSS2 «Исполнительная подсистема». 1. В подсистеме VSS2 управляющим выражением для x2 является A == 1 и для x3 A == 2. Переменная A используется в выражении элемента управления как обычная переменная MATLAB ®, определенная на вкладке Инициализация (Initialization) рабочей области маски. Просмотр свойств A:

a. Щелкните правой кнопкой мыши подсистему VSS2.

b. Выберите «Маска» > «Редактировать маску». На вкладке Инициализация в разделе Команды инициализации значение A имеет значение 1.

Во время моделирования это значение используется для вычисления выражений условия исполнения, связанных с блоком. При моделировании этой модели условие исполнения A == 1 вычисляется как true. Подсистема x2 становится активной, а подсистема x3 - неактивной.

3. Чтобы изменить активный вариант, укажите значение A как 2 на вкладке Инициализация (Initialization), затем снова смоделировать модель. Во время моделирования, A == 2 вычисляется как true. Подсистема x2 становится активной, а подсистема x3 - неактивной.

Подход 3: использование переменной рабочего пространства модели в качестве переменной управления исполнениями в блоке подсистемы исполнений

В этом разделе объясняется, как управлять активным выбором исполнения блоков подсистемы исполнения с помощью переменной рабочей области модели. Этот подход также используется для управления активным выбором вариантов встроенных блоков вариантов.

Рассмотрим модель с блоком VSS3 «Исполнительная подсистема». 1. В подсистеме VSS3 управляющим выражением для x2 является C == 1 и для x3 является C == 2. Переменная C используется в выражении условия как обычная переменная MATLAB ®, определенная в рабочей области модели. Просмотр свойств C:

О. На вкладке Моделирование (Modeling) щелкните Обозреватель моделей (Model Explorer).

b. На панели Иерархия модели (Model Hierarchy) щелкните Модель (Model) Рабочее пространство (Worksp Значение C имеет значение 1.

Во время моделирования это значение используется для вычисления выражений условия исполнения, связанных с блоком. При моделировании этой модели условие исполнения C == 1 вычисляется как true. Подсистема x2 становится активной, а подсистема x3 - неактивной. Чтобы изменить активный вариант, укажите значение C как 2затем снова смоделировать модель. Во время моделирования условие Вариант (Variant) C == 2 вычисляется как true. Подсистема x2 становится активной, а подсистема x3 - неактивной.

Подход 4: Использовать сценарий инициализации маски для управления активными вариантами выбора блока подсистемы вариантов

Этот подход не рекомендуется для управления активным выбором вариантов для подсистем вариантов. Однако, если для режима управления Variant подсистемы установлено значение Label режим, вы можете следовать этому подходу. Дополнительные сведения см. в разделе Маскирование исполнительной подсистемы.

См. также

Управление активным выбором заблокированной вариационной подсистемы пользовательской библиотеки с помощью параметра маски