Распространение вариантов условий на подсистемы

Подсистема может быть виртуальной или атомарной. 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 также безоговорочно из-за наличия безусловных блоков внутри.

Подробнее о