Во время распространения исполнительных условий Simulink автоматически присваивает условия блокам. Можно управлять тем, как условие варианта распространяется в модели в восходящем и нисходящем направлениях.
Рассмотрим эту модель.
В Simulink щелкните симуляция > запуск, чтобы просмотреть распространение исполнительных условий на блоки.
The Variant Source1
блок имеет A==1
условие, которое распространяется назад и вперед к блокам, соединенным с Variant Source1
блок. Условие варианта распространяется на Gain4
блок, но не распространяется на Sine Wave1
блок.
The Scope
блок безусловен и получает свои входы от Sine Wave1
блок. Поэтому Sine Wave1
блок безусловен. Если вы удаляете Scope
блок, условие варианта переходит к Sine Wave1
блок.
Если вы заменяете Scope
блок с любым другим блоком (включая Terminator
блок), Sine Wave1
блок остается безусловным.
Блок безусловен, если хотя бы один из его входов безусловен. Входная сторона Sum
блок соединяется с Gain5
(условный) блок и к Sine Wave2
(безусловный) блок. Поэтому Sum
блок безусловен.
Можно использовать эти концепции для создания блока Subsystem, который управляет распространением условий исполнения на обе стороны или на одну сторону.
Рассмотрим раздел модели, который соединяется с Variant Source2
и Variant Source3
блоки. Когда вы моделируете модель, условие варианта из Variant Source2
блок и Variant Source3
блоки распространяются в восходящем и нисходящем направлениях.
The Stop on both sides
блок между Gain6
и Gain7
блок препятствует распространению условия Variant в восходящем или нисходящем направлении. Дважды кликните Stop on both sides
блок для просмотра его компонентов.
The Stop on both sides
блок использует Terminator
чтобы остановить распространение варианта условия в восходящем направлении Subsystem
блок. Чтобы остановить распространение условия на нисходящей стороне Subsystem
блок, один из входных портов соединяется с Ground
(безоговорочно). Поэтому эта схема останавливает распространение варианта условия в восходящем и нисходящем направлениях. Точно так же можно выборочно остановить распространение условия варианта в восходящем или нисходящем направлении для модели. Для примера, если вы удаляете Terminator
блок, условие варианта распространяется в восходящем направлении, но останавливается в нисходящем направлении.
Здесь один входной порт блока Subsystem является безусловным, делая блок Subsystem безусловным на входной стороне и таким образом останавливая распространение варианта условия ниже по потоку.