Условная подсистема (также известный как условно выполняемую подсистему) является типом подсистемы, где можно управлять выполнением с помощью внешнего сигнала.
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
.
Примечание: Если Function-Call Subsystem
помещается в виртуальной сгруппированной подсистеме, различное условие, инициировавшее Function-Call Subsystem
, должно совпадать с соответствующим условием на входе высокоуровневого блока подсистемы.