Componenti gerarchici della variante
R2026aCon i blocchi di varianti gerarchiche, è possibile rappresentare tutte le alternative di progettazione di un sistema in un unico modello. Ogni scelta di progettazione è incorporata nel modello come una scelta di variante in una gerarchia separata. Tali modelli hanno una struttura comune fissa e un insieme finito di componenti variabili che vengono attivati o disattivati a seconda dei controlli della variante.
Ad esempio, si supponga di voler simulare un modello che rappresenti un veicolo con tre possibili configurazioni del motore: 4 cilindri a gas, 6 cilindri a gas e 8 cilindri a gas. È possibile implementare ciascun modello di motore come un sottosistema separato all’interno del blocco Variant Subsystem e quindi passare da un sottosistema all’altro in base ai controlli della variante selezionata. Per ulteriori informazioni, vedere Introduction to Variant Controls.
Il codice generato per i blocchi di varianti gerarchiche può contenere tutte le scelte di variante di un sistema. È possibile passare da una scelta all'altra prima della compilazione del codice o all'avvio del modello, come descritto in Activate Variant During Different Stages of Simulation and Code Generation Workflow. Per informazioni sulla generazione di codice con blocchi di varianti gerarchiche, vedere Variant Structures (Simulink Coder).
Blocchi
| Variant Subsystem | Template subsystem containing Subsystem blocks as variant choices |
Classi
Simulink.VariantUtils | Utility methods to work with variant elements (Da R2023b) |
Funzioni
enumeration | Class enumeration members and names |
Oggetti
struct | Array di struttura |
Simulink.Parameter | Store, share, and configure parameter values |
Simulink.VariantControl | Create variant control variable object |
Simulink.VariantExpression | Specify conditions that control variant selection |
Argomenti
- Implement Structural Variations with Variant Subsystems in a Separate Model Hierarchy
Learn basic functionality of variant subsystems.
- Variant Control Modes in Variant Blocks
Learn how to control variant blocks.
- Propagate Variant Conditions to Define Variant Regions with Variant Blocks
Determine active model components by propagating variant conditions using variant blocks.
- Propagate Variant Conditions to Define Variant Regions Outside Variant Subsystems to Promote Consistency and Reduce Errors
Propagate variant conditions outside a Variant Subsystem block to adapt its interface according to the state of underlying blocks.
- Manage Variant Components to Pass Specified Values from Inactive Variant Subsystems with No Active Choice (Simulink Coder)
Exclude inactive variant components from code generated for Variant Subsystem block at compile time.
- Model Reference Variants
This example shows how to use model reference variants.
- Propagate Variant Conditions to Control Execution of Conditional Subsystems
Understand how to use Variant Subsystem blocks with conditionally executed systems as variant choices.
- Add or Remove Variant Choices of Variant Assembly Subsystem Blocks Using External Files
Understand how to add or remove variant choices of the Variant Assembly Subsystem block using external files without modifying model.
- Use Mask Parameter Object to Control Variant Choices in Masked Variant Assembly Subsystem Block
Control variant choices in a masked Variant Assembly Subsystem block by instantiating subclasses of a shared superclass as the mask parameter object value.
- Control Active Choice of Variant Subsystem During Simulation or Execution of Generated Code
Switch the active variant of a Variant Subsystem block during simulation or execution of generated code by using a Parameter Writer block.
Risoluzione dei problemi
Convert Variant Subsystem to Variant Assembly Subsystem
Steps to convert Variant Subsystem block to Variant Assembly Subsystem block.
Transform Model to Variant System (Simulink Check)
Use the Model Transformer tool to transform a model into a variant system.

