Задайте области выбора вариантов в блоках Источник исполнения и Приемник на основе связности блоков. Области выбора вариантов вычисляются Simulink при обновлении схемы (Simulation > Prepare > Update Model).
Процесс вычисления областей выбора вариантов называется variant condition propagation
. Блок Variant Source обеспечивает изменение источника сигнала, а блоки Variant Sink обеспечивают изменение назначения (приемника) сигнала.
Рассмотрим модель, содержащую два исходных блока Variant Source (Variant Source1
, Variant Source2
) и блок Sink (Variant Sink
).
Условия варианта во входных и выходных портах блоков Variant Source и Sink, соответственно, определяют активацию и деактивацию связанных с ними блоков. Чтобы просмотреть аннотации и условия исполнения, на вкладке Debug панели инструментов щелкните Информационные наложения > Исполнительные условия.
Давайте проанализируем условия варианта и состояние активации блока.
В Variant Source1
, когда W==1
, а Sine3
блок активен, и когда V==4
, а Sine4
блок активен.
В Variant Source2
, когда V==1
, блок Sine1 активен, и когда V==2
, а Add1
блок активен.
В Add1
блокируйте, что распространение условия продолжает создавать Variant Source1
блок, который будет активен только, когда V==2
. Это далее распространяется на Sine3
блок и Sine4
блокируйте, делая Sine3
блок активен в V==2 && W==1
и Sine4
блок активен в V==2 && W==2
, соответственно.
The Gain3
блок активен, когда любой из них V==1
или V==2
, и, следовательно, условие V==2
| | V==1
. Условие варианта далее распространяется на Scope1
и Out1
.
Блоки, соединенные с выходом Variant Sink
активны, когда W==1
(Gain5
), или W==2
(Sine
, Subtract
, Terminator
).
The Sum
блок иллюстрирует две ключевые концепции в варианте распространения условия: Сигналы являются только вариантом, если явно помечены или когда все пути могут быть доказаны как варианты. Чтобы сделать Sine6
, Sum
, Out2
вариант, поместите источник варианта с одним входом с одним выходом перед Out2 (или после Sine6
). Чтение неактивного сигнала эквивалентно чтению на земле. Когда W ~= 1
, затем нижний вход в Sum
блок неактивен и Out2 = Sine6 + ground
.
Если вы устанавливаете параметр Variant activation time равным code compile
для блока Variant Source и Variant Sink сгенерированный код содержит код для активного и неактивного (#if COND
). Если этот параметр не выбран, код генерируется только для активных вариантов.
Если вы выбираете параметр Разрешить нулевой активный вариант управления для блока Источник варианта и Вариант Приемник, можно симулировать модель варианта без активного варианта. В таких случаях Simulink отключает блоки, соединенные с входом и выходом потоком Variant Source и Варианта Sink. Эти отключенные блоки игнорируются из схемы обновления или симуляции.