主要内容

定义,配置和激活变量

代表变体选择

变体选项是模型中的两个或多个组件配置。此示例显示如何表示A内的变体选择不同的子系统块在模型中。有关表示设计变体的其他方法,请参见在Simulink中表示变体的选项万博1manbetx

  1. 添加A.不同的子系统块到您的模型并命名。

    该块用作变体选择的容器。

  2. 双击不同的子系统块。添加轮廓尺寸外港块使它们与此块的输入匹配和输出。

    笔记

    您只能添加轮廓尺寸外港子系统,模型A内的块不同的子系统块。您可以通过数据端口传递控制信号。

  3. 右键单击徽章不同的子系统块并选择块参数(子系统)

  4. 在块参数对话框中,单击为您要添加的每个变体子系统选择的按钮。

    万博1manbetx®创造空子系统块内部不同的子系统块。新块具有与包含相同数量的输入和输出端口不同的子系统块。

    提示

    (如果您的变体选择具有不同数量的输入和输出端口,请参阅映射Inports和Varport的变体选择.)

  5. 打开每个子系统块并创建表示变体选择的模型。

  6. 当您是原型变种时,您可以创建空子系统没有输入或输出的块不同的子系统块。空子系统重新创建子系统在不需要完全建模变体的情况下处于非活动状态的情况。对于空变体选择,请指定变体激活条件或通过放置一个变量条件条件前的符号。

    如果在编译期间空变量选择处于活动状态,则Simulink将忽略它。万博1manbetx

包括万博1manbetx作为变量选择的模型

您可以将Simulink模型包含在A万博1manbetx内的变体选择不同的子系统块。

  1. 创建要包含作为变体选择的模型。确保它具有相同数量的输入和输出端口作为包含的不同的子系统块。

    笔记

    如果您的模型有不同数量的输入和输出端口,请参见映射Inports和Varport的变体选择

  2. 在模型中,右键单击不同的子系统包含变体选择并选择的块块参数(子系统)

  3. 在块参数对话框中,单击按钮添加一个模型块作为变体选择。

    万博1manbetxsimulink创建一个未解决的模型块在不同的子系统块。

  4. 双击未解决的模型块。在模型名称框中,输入要用作模型变体选择的模型的名称,然后单击好吧

配置变型控件

可以使用变体控件指定激活变体选择的条件。您还可以最多指定一个变体选择作为默认值。

  1. 在MATLAB®命令提示符,指定组合时创建激活条件的控制变量。

    模式= 3;版本= 2;

  2. 右键单击不同的子系统块,它是模型中变量选择的容器块参数(子系统)

  3. 在“块参数”对话框中,在版本控制列,选择(默认)在其中一个选择旁边。

    万博1manbetxSimulink验证只有一个变体选择是否有效仿真。如果允许零主动变体控制被选中,您可以具有零变体选择。当控制条件不激活变型时,Simulink使用默认变体进行仿真和代码生成。万博1manbetx

  4. 指定每个其他选择的变体条件。如果您使用的是空变量选择,请指定选择的变体条件。您也可以通过将其提示出现现有的激活条件的象征。

  5. 点击申请;否则,您的更改不会保存。

转换为变异

在Simuli万博1manbetxnk编辑器中,您可以将这些块转换为不同的子系统堵塞:

  • 子系统堵塞

  • 模型堵塞

  • 变体模型块(用于在R2017b之前的版本中创建的模型)

  • 有条件地执行子系统

为此,请右键单击块,然后在上下文菜单中单击子系统和模型参考>转换成>不同的子系统

您还可以将这些块转换为不同的子系统块以编程方式。要做到这一点,可以使用以下任何语法:

  • 万博1manbetxSimulink.VariantManager.convertToVariant (GCB.

  • 万博1manbetxSimulink.VariantManager.convertToVariant (GCBH.

例如,

Open_System('sldemo_variant_subsystems');万博1manbetxsimulink.variantmanager.converttovariant('sldemo_variant_subsystems / controller');

如果您将不同的模型转换为不同的子系统,请注意模型块参数生成预处理器条件不同于不同的子系统块参数变体激活时间.对于变体模型,启用参数会导致模拟和更新图只编译活动变体。对于变型子系统,启用参数可以编译所有变型,这会使模拟和更新变慢。

将变体模型转换为变体子系统可能要求您更新使用的脚本变体命令行参数。

相关例子

更多关于