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

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

Модель

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

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

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

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

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

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

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

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

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

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

Управление активным выбором варианта Блока Subsystem используя Параметр Маски

Рассмотрим модель с блоком VSS1 Variant Subsystem. Подсистема VSS1 задает два потенциальных варианта, x2 и x3. Управляющее выражение для x2 B == 1 а для x3 есть B == 2. Переменная B является параметром маски. Чтобы просмотреть свойства B:

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

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

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

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

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

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

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

2. Выберите «Редактировать маску». На панели Параметров & Диалоговое окно, в разделе Параметры, столбец Приглашение (Prompt) задает метку параметра в диалоговом окне маски, а столбец Имя (Name) задает имя параметра маски. В этом примере Prompt задается как 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: Используйте переменную инициализации маски в качестве переменной управления вариантом

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

Рассмотрим модель с блоком VSS2 Variant Subsystem. 1. В подсистеме VSS2 управляющее выражение для x2 A == 1 а для x3 есть A == 2. Переменная A В выражении управления используется регулярная переменная MATLAB ®, которая определяется на вкладке Initialization рабочей области маски. Чтобы просмотреть свойства A:

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

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

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

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

Подход 3: Используйте Рабочее пространство модели переменную как переменную управления вариантом в Блок Subsystem исполнения

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

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

A. На вкладке « Моделировании» нажмите Model Explorer.

б. На панели иерархия модели нажмите Рабочее пространство модели. Значение C установлено в 1.

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

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

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

См. также

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

Для просмотра документации необходимо авторизоваться на сайте