变体内联组件
R2026b在单层中实现结构性变化
使用内联变体模块,您可以在单个模型中表示一个系统的所有设计备选方案。每个设计选择项都作为单个层中的一个变体选择项纳入模型中。这种模型有固定的通用结构和一组有限的可变组件,这些组件根据具体变体控制项而被激活或反激活。您可以自动或手动激活组件。
例如,假设您要仿真一个模型,以通过使用不同雨量传感器来控制汽车挡风玻璃雨刷的速度。您可以提供雨量传感器模型作为 Variant Source 模块的输入,然后根据您选择的变体控制项在传感器之间切换。有关详细信息,请参阅变体控制项简介。
您为内联变体模块生成的代码可以包含一个系统的所有变体选择项。您可以在代码编译前或在模型启动时在选择项之间切换,如Activate Variant During Different Stages of Simulation and Code Generation Workflow中所述。有关使用内联变体模块生成代码的信息,请参阅变体结构 (Simulink Coder)。
模块
| Variant Source | Route among multiple inputs using variants | |
| Variant Sink | Route amongst multiple outputs using variants | |
| Variant Start | Define start of bounded region (自 R2024a 起) | |
| Variant End | Define end of bounded region (自 R2024a 起) | |
| Manual Variant Source | 在输入端的多个变体选择项之间切换 | |
| Manual Variant Sink | 在输出端的多个变体选择项之间切换 |
类
Simulink.VariantUtils | Utility methods to work with variant elements (自 R2023b 起) |
函数
enumeration | 类枚举成员和名称 |
对象
struct | 结构体数组 |
Simulink.VariantControl | Create variant control variable object |
Simulink.Parameter | 存储、共享和配置参数值 |
Simulink.VariantExpression | Specify conditions that control variant selection |
主题
配置变体控制项
- Variant Control Modes in Variant Blocks
Learn how to control variant blocks. - Activate Variant During Different Stages of Simulation and Code Generation Workflow
Use variant activation time to set active choices during different stages of simulation and code generation workflows. - Use Variant Control Variables in Variant Blocks
This topic explains how to use different types of variant control variables in variant blocks. - 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. - Provide Variation in Signal Source and Destination Using Manual Variant Source and Manual Variant Sink Blocks
This example shows how to use the inline variant blocks Manual Variant Source and Manual Variant Sink.
传播变体条件
- 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 Using Variant Source and Variant Sink Blocks
Propagate variant conditions from the Variant Source and Variant Sink blocks. - Propagate Variant Conditions to Define Variant Regions in Virtual and Nonvirtual Subsystems
Understand variant condition propagation to virtual and non-virtual subsystems. - Variant Elements Within Buses
This example explains how to create buses with elements having different variant conditions. - Propagate Variant Conditions to Control Execution of Conditional Subsystems
Understand how to use Variant Subsystem blocks with conditionally executed systems as variant choices. - Control Variant Condition Propagation Using Bounded Regions and Signal-Level Isolation
Limit the scope of variant condition propagation by confining variant conditions to bounded regions or terminating them at specific signal paths.
在工作区中定义变体控制项变量
- Choose and Configure a Workspace for Variant Control Variables of Variant Blocks
Choose the workspace that matches your scoping, activation time, and hierarchy requirements for variant control variables in variant blocks. - Use Base Workspace to Define Globally Accessible Variant Control Variables for Variant Blocks
Control variant choices across models in a MATLAB session by defining variant control variables in the base workspace. - Use Data Dictionary to Define Shared Variant Control Variables for Variant Blocks
Control variant choices across multiple models by defining variant control variables in a data dictionary for version control, team sharing, and traceability. - Use Model Workspace to Define Variant Control Variables Scoped to the Model for Variant Blocks
Control variant choices by defining variant control variables in the model workspace to scope them to a single model so they persist with the model file. - Override Variant Control Variables of Variant Blocks in Simulation Runs
Override variant control variable values for individual simulation runs using a SimulationInput object without modifying persistent workspace or data dictionary values.
配置每个实例的变体控制项
- Use Model Arguments with Fast Restart to Switch Variant Choices Per Instance Without Recompiling for Variant Blocks
Control variant choices per model instance by defining variant control variables as model arguments in a referenced model. - Use Mask Parameters for Per-Instance Variant Control in Variant Blocks
Control variant choices per block instance by defining a mask parameter as the variant control variable and setting its value from the mask dialog box. - Use Mask Parameters with Fast Restart to Switch Variant Choices Without Recompiling for Variant Blocks
Control the active variant choice per block instance without recompiling by using mask parameters as variant control variables with the startup activation time and fast restart. - Use Mask Initialization Code for Per-Instance Variant Control in Variant Blocks
Control active variant choices in a variant block by defining variant control values or mapping mask parameter selections to label names in a mask initialization script. - Use Mask Parameters with Enumeration Classes for Per-Instance Variant Control of a Variant Block in a Locked Library
Control variant choices per block instance in a locked custom library by using mask parameters as variant control variables with enumeration classes in condition expressions. - 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.
疑难解答
Transform Model to Variant System (Simulink Check)
Use the Model Transformer tool to transform a model into a variant system.
