Условная подсистема (также известный как условно выполняемую подсистему) является типом подсистемы, где можно управлять выполнением с помощью внешнего сигнала.
Enabled, Инициированный, и Подсистемы вызова функций примеры условных подсистем. Сигнал, который управляет условной подсистемой, называется управляющим сигналом и портом, от которого входит сигнал, блок называется портом управления. Для получения дополнительной информации об условных подсистемах см. Условно Выполняемый Обзор Подсистем.
Можно использовать блок Variant, чтобы управлять выполнением условных блоков подсистемы.
Рассмотрите эту модель.
Variant Source1
является single-input/single-output Различным Исходным блоком с различным условием как V==1
. Когда вы моделируете эту модель, различное условие от блока Variant Source1
распространяет к порту управления блока Subsystem
и затем к блокам, соединенным с его импортом и выходными портами.
Например, когда V=1
, Variant Source1
активен, и Различное условие распространяет к порту управления блока Subsystem
. Поэтому блок Subsystem
также активен, и различное условие распространяет к блокам, соединенным с портами ввода и вывода блока Subsystem
.
Блок Function-Call Subsystem
является подсистемой, которую другой блок может вызвать непосредственно во время моделирования. Блок Function-Call Subsystem
походит на функцию на языке процедурного программирования. Для получения дополнительной информации смотрите Используя Подсистемы вызова функций.
Можно использовать single-input/single-output различный блок, чтобы сделать условное выражение блока Function-Call Subsystem
.
Блок Variant Source
имеет условие V==1
, где V
является Simulink.Parameter
.
Когда вы моделируете эту модель, различное условие от Различного Исходного блока распространяет к порту управления блока подсистемы SubA
и далее распространяет к блокам, соединенным с его импортом и выходными портами.
Например, когда V=1
, блок SubA
активен, и различное условие распространяет назад и вперед к блокам, соединенным с входным параметром (In1
) и выходные порты (Out1
).
Когда V~=1
(например, V=0
), SubA
становится неактивным, делая Out1
, чтобы быть неактивным. In2
остается активным, когда он соединяется с SubB
, который активен.
Если In2
не соединяется с SubB
, In2
становится неактивным когда V~=1
.
Примечание: Если Подсистема вызова функций
помещается в виртуальной сгруппированной подсистеме, различное условие, инициировавшее Подсистему вызова функций
, должно совпадать с соответствующим условием на входном параметре высокоуровневого блока подсистемы.