Этот пример показывает разные подходы, чтобы управлять активным выбором встроенных различных и Различных блоков Subsystem от маски или рабочего пространства модели. Для получения дополнительной информации о Различных блоках смотрите то, Что Является Вариантами и Когда Использовать Их.
В этом примере четыре модели Simulink® подсвечены в зеленом, и одна модель подсвечена в красном. Модели зеленого цвета представляют рекомендуемые подходы, чтобы управлять активным выбором Различных блоков. Эти подходы позволяют вам ограничить осциллограф различной контрольной переменной, избежать конфликтов по совпадению имен и установить ясное владение переменной между Различными блоками. Они также позволяют вам использовать те же имена для переменных в различных осциллографах.
open_system([matlabroot '/examples/simulink_variants/main/slexVariantSubsystemCtrlFromMaskandModelWks'])
Работа, только если Различный параметр режима управления устанавливается на Expression
и Различный параметр времени активации устанавливается на update diagram
. Так, когда вы симулируете или генерируете код для моделей с рекомендуемыми подходами, Simulink не анализируют атрибуты сигнала для непротиворечивости, и также генерирует код только для активного выбора.
Не поддерживайте использование Simulink.Variant
объекты или Simulink.Parameter
как различные контрольные переменные.
Не поддерживайте переменные аргументов модели использования как различные контрольные переменные.
Количество символов в различной контрольной переменной не должно превышать 40.
Различная контрольная переменная, происходящая из рабочей области маски, не должна запускаться с SLMASK
.
Этот раздел объясняет, как управлять активным вариантом Различных блоков Subsystem и встроить различные блоки при помощи параметра маски.
Управляйте Активным Выбором Различного блока Subsystem с помощью Параметра Маски
Считайте модель с Различным блоком Subsystem VSS1. Подсистема VSS1 задает два потенциальных варианта, x2 и x3. Выражением управления для x2 является B == 1
и поскольку x3 является B == 2
. Переменная B
параметр маски. Просмотреть свойства B
:
1. Щелкните правой кнопкой по подсистеме VSS1.
2. Выберите Mask> Edit Mask. В панели Parameters & Dialog, под Параметрами, Быстрый столбец задает метку параметра на диалоговом окне маски, и столбец Имени задает имя параметра маски. В этом примере Подсказка задана как Enter the choice
, и Имя задано как B
.
3. Чтобы открыть диалоговое окно маски, дважды кликните подсистему VSS1. В процессе моделирования индекс значения, которое вы задаете здесь, сопоставлен с основной переменной B
, который затем используется, чтобы оценить различные выражения условия, сопоставленные с блоком. В этом примере Входит значение по умолчанию, выбором является 2
. Когда вы симулируете эту модель, различное условие B == 2
оценивает к true
. x2 подсистема становится неактивной, и x3 подсистема становится активной.
4. Чтобы изменить активный выбор, задайте значение как 1
в диалоговом окне маски затем симулируйте модель снова. В процессе моделирования, значение B
установлен в 1
который в свою очередь оценивает Различное условие, B == 1
к true
. x2 подсистема становится активной, и x3 подсистема становится неактивной.
Управляйте Активным Выбором Встроенных Различных Блоков с помощью Параметра Маски
Считайте модель с блоком Subsystem маскированным SS1. Подсистема SS1 имеет параметр маски VC
это используется в качестве различной контрольной переменной в базовом Различном Исходном блоке Vsrc. Первый входной порт сопоставлен с выражением управления VC == 1
и второй входной порт сопоставлен с выражением управления VC == 2
. Просмотреть свойства VC
:
1. Щелкните правой кнопкой по подсистеме SS1.
2. Выберите Edit Mask. В панели Parameters & Dialog, под Параметрами, Быстрый столбец задает метку параметра на диалоговом окне маски, и столбец Имени задает имя параметра маски. В этом примере Подсказка задана как Choose the signal
, и Имя задано как VC
.
3. Чтобы открыть диалоговое окно маски, дважды кликните подсистему SS1. В процессе моделирования индекс значения, которое вы выбираете здесь, сопоставлен с основной переменной VC
, который затем используется, чтобы оценить различные выражения условия, сопоставленные с блоком Vsrc. В этом примере Выбирает значение по умолчанию, сигналом является Sine Wave
. Когда вы симулируете эту модель, индекс Sine Wave
, 2, сопоставлен с
VC
. Различное условие VC == 2
оценивает к true
. В результате первый входной порт блока Vsrc, который сопоставлен с VC == 1
становится неактивным и второй входной порт, который сопоставлен с VC == 2
становится активным.
4. Чтобы изменить активный выбор, выберите значение как Constant
в диалоговом окне маски затем симулируйте модель снова. В процессе моделирования, значение VC
установлен в 1
который в свою очередь оценивает различное условие, VC == 1
к true
. Первый входной порт блока Vsrc становится активным, и второй входной порт становится неактивным.
Этот раздел объясняет, как управлять активным вариантом Различных блоков Subsystem с помощью переменной инициализации маски. Можно следовать за этим подходом, чтобы управлять активным вариантом встроенных различных блоков также.
Считайте модель с Различным блоком Subsystem VSS2. 1. В подсистеме VSS2 выражением управления для x2 является A == 1
и поскольку x3 является A == 2
. Переменная A
используемый в выражении управления регулярная переменная MATLAB®, которая задана во вкладке Initialization рабочей области маски. Просмотреть свойства A
:
a. Щелкните правой кнопкой по подсистеме VSS2.
b. Выберите Mask> Edit Mask. Во вкладке Initialization, при командах Инициализации, значении A
установлен в 1
.
В процессе моделирования это значение используется, чтобы оценить различные выражения условия, сопоставленные с блоком. Когда вы симулируете эту модель, различное условие A == 1
оценивает к true
. x2 подсистема становится активной, и x3 подсистема становится неактивной.
3. Чтобы изменить активный выбор, задайте значение A
как 2
во вкладке Initialization затем симулируйте модель снова. В процессе моделирования, A == 2
оценивает к true
. x2 подсистема становится активной, и x3 подсистема становится неактивной.
Этот раздел объясняет, как управлять активным вариантом Различных блоков Subsystem с помощью переменной рабочего пространства модели. Можно следовать за этим подходом, чтобы управлять активным вариантом встроенных различных блоков также.
Считайте модель с Различным блоком Subsystem VSS3. 1. В подсистеме VSS3 выражением управления для x2 является C == 1
и для x3
C == 2
. Переменная C
используемый в выражении условия регулярная переменная MATLAB®, которая задана в рабочем пространстве модели. Просмотреть свойства C
:
a. На вкладке Modeling нажмите Model Explorer.
b. В панели Иерархии модели нажмите Model Workspace. Значение C
установлен в 1
.
В процессе моделирования это значение используется, чтобы оценить различные выражения условия, сопоставленные с блоком. Когда вы симулируете эту модель, различное условие C == 1
оценивает к true
. x2 подсистема становится активной, и x3 подсистема становится неактивной. Чтобы изменить активный выбор, задайте значение C
как 2
, затем симулируйте модель снова. В процессе моделирования, Различное условие C == 2
оценивает к true
. x2 подсистема становится активной, и x3 подсистема становится неактивной.
Этот подход не рекомендуется для управления активным вариантом Различных Подсистем. Однако, если Различный режим управления подсистемы установлен в Label
режим, можно следовать за этим подходом. Для получения дополнительной информации смотрите Маску Различная Подсистема.