Подсистема может быть виртуальной или атомарной. Simulink распространяет варианты условий по-другому на такие Подсистемы. Этот пример показывает распространение условий исполнения от Inline вариантов до блоков Subsystem. Рассмотрим модель как показано:
Щелкните симуляция > запуск, чтобы симулировать эту модель и увидеть варианты условий, распространяемые из исходных блоков Variant Source в блоки, соединенные с ней.
Аннотация условия варианта помогает вам визуализировать распространенные условия. Чтобы просмотреть аннотацию условия исполнения, щелкните Отображение > Блоки > Легенда условий исполнения.
Модель содержит три блока Variant Source: Variant Source1
, Variant Source2
, и Variant Source3
, соответственно.
Variant Source1
содержит условия V = 1
и V = 2
на входе. Условие варианта V = 1
распространяется на GainA1
в то время как V = 2
распространяется на Sine2
. The Sine1
блок не получает каких-либо распространенных условий варианта, потому что он соединяется с блоком, который всегда используется независимо от условия варианта. Если на To Workspace block1
не существовало или было закомментировано до симуляции модели, вариант условия V = 1
распространяется на Sine1
.
Variant Source2
соединяется с виртуальными подсистемами Subsystem1
и Subsystem2
которые имеют идентичное содержимое, Sine Wave
блок, соединенный с To Workspace
и Output
блоки. Subsystem1
- сгруппированная виртуальная подсистема (Обработка сгруппированная при распространении условий варианта), в то время как Subsystem2 (Обработка сгруппированная при распространении варианта условий clear) является сгруппированной виртуальной подсистемой.
Блок Subsystem становится сгруппированной виртуальной подсистемой, когда вы выбираете Обработку как сгруппированное при распространении варианта условия флажок в диалоговом окне параметров блока. Когда флажок Обработать как сгруппированный при распространении исполнительных условий снят, Подсистема является негруппированной виртуальной подсистемой.
Сгруппированная подсистема представляет систему уравнений, и, следовательно, распространенные условия также применяются к блокам в этой системе. Сгруппированная подсистема имеет непрерывную граничную линию. Негруппированная подсистема не представляет систему уравнений, и блоки в ней имеют разгруппированную семантику. Негруппированная подсистема имеет пунктирную граничную линию, и условия распространяются в подсистему.
Условие варианта V = 1
распространяется на Subsystem1
и далее к блокам внутри него как Subsystem1
является сгруппированной виртуальной подсистемой (представляет систему уравнений). Поскольку Subsystem1 является системой, условие также применяет блоки в системе.
Subsystem2
что негруппированная виртуальная подсистема (не представляет систему уравнений) также получает V = 1
как распространенное условие и распространенное условие варианта V = 1
распространяется на Subsystem 2
как если бы подсистема была расширена. Пунктирные линии на значке Подсистема 2 указывают, что он уплощен во время компиляции Simulink и, следовательно, вы можете увидеть условие варианта для этих блоков внутри него.
Variant Source3
соединяется с невиртуальной (атомарной) подсистемой с V = 1
как распространенное условие варианта. Невиртуальная (атомарная) подсистема всегда представляет систему уравнений. Атомарная подсистема имеет непрерывную сплошную граничную линию. Условие варианта не распространяется внутри невиртуальной подсистемы. Вместо этого он остается на контуре. Однако все блоки внутри этой подсистемы получают то же условие варианта, что и Подсистема. Невиртуальная подсистема ведет себя как сущность.
Виртуальные подсистемы по умолчанию работают как сгруппированный набор блоков, где все блоки, содержащиеся внутри подсистемы, имеют одно и то же условие варианта. Это верно, когда выбран параметр Обработать как сгруппированный при распространении вариантов условий. Виртуальные подсистемы ведут себя как негруппированный набор блоков, когда очищается параметр Treat as group при распространении вариантов условий. В этом примере поведение Subsystem2 (Ungrouped) может быть не таким, как ожидалось, так как блок никогда не становится условным. Невиртуальные подсистемы всегда ведут себя как сущность, и содержимое выполняется только тогда, когда выполняется условие, назначенное подсистеме. Невиртуальные подсистемы, блоки Model и сгруппированные виртуальные подсистемы ведут себя одинаково.
Обработайте как сгруппированное при распространении варианта условия опция On: Рассмотрите пример с Вариантом Исходный блок: Variant Source5
и виртуальную подсистему Subsystem4
. The Variant Source5
имеет условие V = 1
. Subsystem4
имеет Sine wave, соединенную с To Workspace1
и Outport
блоки.
Subsystem4 получает условие V = 1
как V = 1
распространяется из Variant Source5
. Блоки внутри Subsystem4
косвенно наследует условие от Subsystem4
. Subsystem4
является условным, так как его входные/выходные порты являются условными. Чтобы сделать Subsystem4
как безусловный, добавьте новый выход или очистите Обработку как сгруппировано при распространении варианта условий опции.
Обработка как сгруппирована при распространении варианта условий опция Off: Рассмотрите пример с исходным блоком Variant Source: Variant Source4
и виртуальную подсистему Subsystem3
. The Variant Source4
имеет условие V = 1
. Subsystem3
имеет Sine wave, соединенную с To Workspace
и Outport
блоки.
Subsystem3
получает условие V = 1
как V = 1
распространяется от Variant Source4
. Однако из-за безусловных блочных To Workspace1
, распространение останавливается, и условие V = 1
устанавливается только на Out1
порт. Теперь Subsystem3
также безоговорочно из-за наличия безусловных блоков внутри.