文档

定义、配置和激活变体

代表不同的选择

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

  1. 添加一个不同的子系统块,并命名它。

    这个块作为变量选择的容器。

  2. 双击不同的子系统块。添加导入和输出块,以便它们与该块的输入和输出相匹配。

    请注意

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

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

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

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

    提示

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

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

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

    如果空变量选择在编译期间是活动的,那么Simulink会忽略它。万博1manbetx

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

控件中可以包含一个Simulink模万博1manbetx型作为变体选择不同的子系统块。

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

    请注意

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

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

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

    万博1manbetx控件中创建一个未解析的模型引用块不同的子系统块。

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

配置不同的控制

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

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

    模式= 3;版本= 2;

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

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

    万博1manbetxSimulink验证只有一种变体选择是主动的仿真。如果允许零主动变型控制被选中时,您可以有零变体选择。当控制条件不激活变量时,Simulink将使用默认变量进行仿真。万博1manbetx

  4. 为每个其他选项指定一个可变条件。如果您正在使用空的变体选项,请为该选项指定一个变体条件。您还可以通过在现有的激活条件前加上前缀来注释掉它的象征。

  5. 点击应用;否则,您的更改不会被保存。

转换为变异

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

  • 子系统

  • 模型

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

  • 有条件地执行子系统

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

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

  • 万博1manbetxSimulink.VariantManager.convertToVariant (华东桐柏

  • 万博1manbetxSimulink.VariantManager.convertToVariant (gcbh

例如,

open_system(“sldemo_variant_subsystems”);万博1manbetxSimulink.VariantManager.convertToVariant(“sldemo_variant_subsystems /控制器”);

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

将变体模型转换为变体子系统需要您更新使用变体命令行参数。

相关的例子

更多关于

这个话题有用吗?