exponenta event banner

Распространить условие исполнения на условную подсистему

Условная подсистема (также известная как условно исполняемая подсистема) - тип подсистем, где можно управлять выполнением с помощью внешнего сигнала.

Подсистемы Enabled, Triggered и Function-Call являются примерами условных подсистем. Сигнал, управляющий условной подсистемой, называется управляющим сигналом, а порт, из которого сигнал поступает в блок, называется управляющим портом. Дополнительные сведения об условных подсистемах см. в разделе Обзор условно выполняемых подсистем.

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

Рассмотрим эту модель.

Variant Source1 является блоком источника варианта с одним входом/одним выходом с условием исполнения V==1. При моделировании этой модели условие исполнения из Variant Source1 блок распространяется на управляющий порт Subsystem и затем к блокам, соединенным с его входами и выходами.

Например, когда V=1, Variant Source1 активен, и условие Variant распространяется на управляющий порт Subsystem блок. Следовательно, Subsystem блок также активен, и условие варианта распространяется на блоки, подключенные к входному и выходному портам Subsystem блок.

Распространение условия варианта на подсистему вызова функции

A Function-Call Subsystem блок - это подсистема, которую другой блок может вызвать непосредственно во время моделирования. Function-Call Subsystem блок аналогичен функции в процедурном языке программирования. Дополнительные сведения см. в разделе Использование подсистем вызова функций.

Можно использовать блок вариантов с одним входом/одним выходом для создания 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 должно соответствовать соответствующему условию на входе блока подсистемы более высокого уровня.

Подробнее