With MATLAB and Simulink, you can design, deploy and manage variability with reuse for Model-Based Design and Model-Based Systems Engineering.
With MATLAB and Simulink, you can:
- Model variants throughout the development lifecycle, from design to deployment
- Introduce structural, parameter, and dimension variation in models
- Select model variants interactively and programmatically
- Control variant activation at different stages of simulation and code generation workflows
- Visualize, define, analyze, and reduce variant configurations and constraints
- Evaluate multiple product variants using a single model hierarchy
Using MATLAB and Simulink for Modeling, Deploying, and Managing System Variants
Variant Topologies
Add variants to any aspect of your system. Implement variant designs in all domains, including control logic, state machines, physical systems, and AUTOSAR architectures.
Include multiple implementations of a model or subsystem hierarchically using Variant Subsystem. Use inline variants to visualize all possible implementations of variant choices at the same level. Automatically propagate variant conditions throughout the model to ensure correctness and reduce computational load.
Model varying values of parameters using variant parameters to address different requirements of systems that share the same structure.
Variants for Physical Modeling
Use variants to switch between different designs, like a hybrid or fully electric powertrain. Tailor the fidelity of your model to suit your engineering task by selecting higher or lower fidelity variants. Additionally, use the Variant Connector block to activate or deactivate components within a physical system.
Variants for System Architecture
Create multiple structural or behavioral design alternatives in a system architecture model using variant components. Evaluate different implementations in the context of your overall system design.
Configure Design Variants
Define, control, and visualize variant configurations using Variant Manager. Create custom predefined variant configurations or automatically generate them based on design variants. Activate and switch between configurations to manage multiple design alternatives. Define variant constraints to prevent invalid variant combinations. Store, distribute, and reuse variant configurations and variant constraints using variant configuration data objects.
Analyze Variant Configurations
Compare multiple variant configurations in a tabular format to visualize differences and coverage across variant configurations. Trace variant conditions directly in the Simulink canvas to visualize the logic used for variant selection.
Validate variant configurations to identify issues early in the design, without the need to simulate or update.
Analyze variant configurations to find variants that are always active or never active. This helps you locate and diagnose potential faults or inconsistencies in your configurations.
Simulation and Testing Workflows with Variants
Run simulations with different variant configurations for comprehensive testing and coverage.
Author test cases for your variant model and code in different execution environments, run tests, view results, and create reports. Additionally, run the same test case for different variant configurations by creating test case iterations. Trace the test results to the variant configuration used for each test case or iteration.
Reduce Variant Models
Automatically generate a model that includes only selected variant configurations. This can be a single variant configuration, called a 100% model, or a subset of variant configurations, called a 120% model. The source is a top-level 150% model that contains all variants. You can do this process by selecting variant configurations or specifying variant control values.
To distribute and share models, use Variant Reducer. This protects intellectual property by removing unused variants and dependent artifacts such as files, variables, and more. Generate a detailed standalone report with Simulink Report Generator to analyze differences between the original and simplified model, and address warnings due to broken dependencies.
Code Generation for Variant Choices
Generate code for models with variants and choose whether to include all variant choices or only the active variant in the generated code.
Activate the required variant choice in the generated code or final executable without needing to regenerate or recompile code. You can create a real-time application with a variant subsystem and run it on hardware connected to your physical system.
Learn More
- Activate Variant During Different Stages of Simulation and Code Generation Workflow
- Generate Code from Variant Sink and Source Blocks (3:12)
- Create Real-Time Applications Using Variants and Simulink Real-Time
- Generate Preprocessor Conditionals for Variant Systems
- Group Variant Parameter Values and Conditionally Switch Active Value Sets in Generated Code
- Variant Signal Dimensions
Model and Implement AUTOSAR Variants
Leverage Simulink variant capabilities to implement scalable AUTOSAR architectures used in software for multiple vehicle lines.
Model AUTOSAR software components with variation points to enable AUTOSAR interfaces or implementations based on predefined control conditions.
Generate AUTOSAR-compliant code with conditional logic for variant handling. Use system constants and variant parameters to define behavior at compile time or run time. Import and export ARXML files with AUTOSAR variants to integrate Simulink into the complete AUTOSAR workflow.