Main Content

Introduction to Variant Controls

The components of a Simulink® model that contain variants are activated or deactivated based on the variant choice that you select.

Each variant choice in your model is associated with a variant control. Variant controls determine which variant choice is active. By changing the value of a variant control, you can switch the active variant choice. While each variant choice is associated with a variant control, only one variant control can evaluate to true. When a variant control evaluates to true, Simulink activates the variant choice that corresponds to that variant control.

Suppose you want to simulate a model that represents a vehicle with three possible engine configurations: 1-cylinder gas, 4-cylinder gas, and 8-cylinder gas. In this scenario, the value of throttle is an input to the engine that differs for different configurations. You could implement each engine configuration as a separate subsystem inside the Variant Subsystem block named Engine and then switch between the subsystems based on the value of EngineType. Similarly, you could use a variant parameter kv to store multiple values of throttle and then switch between the values based on the value of nc. For example, if the value of EngineType is 1 and the value of nc is 2, a throttle value of 20 is provided as an input to the Engine_2_cyl_petrol subsystem during simulation.

In this example:

  • Structural variations are controlled by using the variant controls EngineType == 1, EngineType == 2, and EngineType == 3 in the Variant Subsystem block named Engine. For more information on how to control structural variations, see Variant Control Modes in Variant Blocks.

  • Value variations are controlled by using the variant controls nc == 1 and nc == 2 in the variant parameter kv. For more information on how to control value variations, see Variant Control Mode in Variant Parameters.

Model with variant controls in variant block and in variant parameter

Related Examples

More About