In Simulink®, you can create models that are based on a modular design platform that comprises a fixed common structure with a finite set of variable components. The variability helps you develop a single, fixed master design with variable components.
The approach helps you meet diverse customer requirements that are governed by application, cost, or operational considerations.
Variants are the variable components of modular design platforms. They help you specify multiple implementations of a model in a single, unified block diagram. For more information, see What Are Variants and When to Use Them.
There are two types of variants, hierarchical and inline. Hierarchical variants are through Variant Subsystem blocks, whereas Inline Variants are through Variant Source and Variant Sink blocks. Use of a Variant Subsystem block provides these advantages:
Allows you to mix Model and Subsystem blocks as variant systems
Supports flexible I/O, so that all variants do not need to have the same number of input and output ports
Variant Subsystem, Variant Model | Template subsystem containing Subsystem blocks or Model blocks as Variant choices |
Variant Source | Route among multiple inputs using Variants |
Variant Sink | Route amongst multiple outputs using Variants |
Manual Variant Source | Switch between multiple variant choices at input |
Manual Variant Sink | Switch between multiple variant choices at output |
Simulink.Variant | Specify conditions that control variant selection |
Simulink.VariantConfigurationData | Class representing a variant configurations data object |
Simulink.VariantManager | Class representing a set of Variant Manager functionality |
Simulink.VariantConfigurationAnalysis | Class representing a set of Variant Configuration Analysis functionality |
What Are Variants and When to Use Them
Single system that caters to multiple variant requirements.
Learn terminology and parameters related to Simulink variants.
Learn how to create a model using Variant blocks.
Introduction to Variant Controls
Learn how to control variant blocks.
Activate, inactivate, or create default variant choices.
Create Variant Controls Programmatically
Use MATLAB® code to define variant controls.
Learn basic functionality of variant subsystems.
Define, Configure, and Activate Variants
Represent variant choices in Variant Subsystems.
Condition Propagation with Variant Subsystem
Propagate variant conditions outside of Variant Subsystem block.
Variant Systems with Conditional Systems
Understand variant condition propagation to conditionally executed systems.
Convert Configurable Subsystem to Variant Subsystem
Learn how to convert configurable subsystems to variant subsystems and their behavior on loading.
Approaches to Control Active Variant Choice of a Variant Subsystem
Recommended approaches to control active variant choice of Variant Subsystems.
Control Active Choice of Locked Custom Library Variant Subsystem Using Mask Parameter
Control active choice of Variant Subsystem that belongs to a locked custom library.
Define and Configure Variant Sources and Sinks
Represent variant choices using Inline Variants.
Visualize Variant Implementations in a Single Layer
View the variant choices in a model containing Inline Variants.
Variant Source and Variant Sink Blocks
Define variant choice in Variant Source and Sink blocks.
Variant Condition Propagation with Variant Sources and Sinks
Propagate variant conditions from the Inline Variants block.
Propagating Variant Conditions to Subsystems
Understand variant condition propagation to virtual and non-virtual subsystems.
Propagate Variant Condition to Conditional Subsystem
Learn about variant condition propagation with conditional subsystem.
Control Variant Condition Propagation
Control propagation of variant conditions upstream and downstream.
Understand how to create variant bus, generate code, and variant condition propagation with bus.
Prepare Variant-Containing Model for Code Generation
Configure and generate code for a variant model.
Use a central tool to manage variation points of a variants model.
Create and Validate Variant Configurations
Create variant configuration for a model and validate their accuracy.
Import Control Variables to Variant Configuration
Import control variables associated with a model.
Define constraints across models.
Reduce Models Containing Variant Blocks
Generate models with a subset of variant configurations.
Analyze Variant Configurations in Models Containing Variant Blocks
Analyze model references and libraries for each variant configuration in a model containing variant blocks.
A set of concept examples that illustrate some of the Simulink variants capabilities.