Control Variant Condition Propagation
During variant condition propagation, Simulink® automatically assigns conditions to blocks. The conditionality of a block depends on the presence of variant conditions and the behavior of its inputs. If a block is connected to at least one unconditional input, it is considered unconditional. However, the presence of certain blocks, such as the Scope block or Terminator block, can influence the propagation of variant conditions and the conditionality of connected blocks.
In Simulink, click Simulation > Run to view the variant condition propagation and observe the propagated variant conditions.
Variant Source1block has the variant condition
A == 1, which propagates both backward and forward to the connected blocks. The variant condition affects the behavior of connected blocks.
Sine Wave1block is connected to a Scope block that is not influenced by variant conditions. The Scope block always displays the signal it receives from
Sine Wave1, regardless of the active variant choice. This makes the
Sine Wave1block unconditional. Only if you remove the Scope block, the variant condition propagates to the
Sine Wave1block, making it conditional.
If you replace the Scope block with a Terminator block, the
Sine Wave1block remains unconditional. The Terminator block ends the signal flow without any conditional logic, so it does not affect the conditionality of the
The input of the Sum block is connected to the
Gain5(conditional) block and the
Sine Wave2(unconditional) block. Since the
Sine Wave2block is unconditional, its output is always available to the Sum block. Therefore, the Sum block is considered unconditional because it can perform the summation using the unconditional input from the
Stop Propagation of Variant Conditions Upstream and Downstream
Consider the section of the model that is connected to the
Variant Source2 and
Variant Source3 blocks. When you simulate the model, the variant conditions from the
Variant Source2 block and the
Variant Source3 blocks propagate upstream and downstream.
Stop on both sides block between the
Gain7 blocks prevent the variant conditions from propagating upstream or downstream. Double-click the
Stop on both sides block to view its components.
Stop on both sides block uses a Terminator block to stop variant condition propagation upstream to the Subsystem block. To stop variant condition propagation downstream to the Subsystem block, one of the inports is connected to a Ground block, which is unconditional. Therefore, this arrangement stops the variant condition propagation both upstream and downstream. Similarly, you can selectively stop the propagation of variant conditions upstream or downstream for a model. For example, if you remove the Terminator block, the variant condition propagates upstream but is stopped downstream.
Stop Propagation of Variant Condition Downstream
Here, one input port of the Subsystem block is unconditional since it received input from the unconditional Ground block. This makes the Subsystem block unconditional, stopping the propagation of the variant condition downstream.