主要内容

在变量子系统块中定义、配置和激活变量选项

表示变量子系统中的变量选择

变体选择是模型中组件的两个或多个配置。这个例子展示了如何在变型子系统块A.变型子系统块允许您使用的组合子系统,模型,或子系统参考块作为变量选择。有关表示设计变体的其他方法,请参见Simulink中的变体类型金宝app

  1. 添加变型子系统块,并命名它。

    此块用作变量选择的容器。

  2. 双击变型子系统块A.dd输入外埠块,以便匹配该块的输入和输出。

    请注意

    您只能添加输入,外埠,子系统,及模型块内变型子系统块。您可以通过数据端口传递控制信号。

  3. 右键单击屏幕上的徽章变型子系统块,并选择块参数(子系统)

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

    金宝app®创建空子系统块内变型子系统块。新块具有与包含块相同数量的输入和输出端口变型子系统块。

    提示

    如果您的变体选择有不同数量的输入和输出端口,请参见在变量子系统中映射变量选择的输入和输出

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

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

    如果空变量选择在编译期间是活动的,那么Simulink会忽略它。金宝app

包括金宝app作为变量选择的模型

控件中可以包含一个Simulink模金宝app型作为变体选择变型子系统块。

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

    请注意

    如果您的型号具有不同数量的输入和输出端口,请参阅在变量子系统中映射变量选择的输入和输出

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

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

    金宝appSimulink创建了一个未解决的问题模型块的变型子系统块。

  4. 双击未解决的模型街区,在街上型号名称框中,输入要用作模型变量选择的模型的名称,然后单击好啊

配置不同的控制

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

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

    模式=3;版本=2;

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

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

    金宝appSimulink验证只有一种变体选择是主动的仿真。如果允许零主动变型控制被选中时,您可以有零变体选择。当控制条件不激活变量时,Simulink将使用默认变量进行模拟和代码生成。金宝app

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

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

在变量子系统中映射变量选择的输入和输出

一个变型子系统块允许您使用的组合子系统,模型,或子系统参考块作为变量选择。输入变型子系统块接收来自上游的模型组件映射到变量选择的输入和输出端口。

表示变量选择的块可以具有与父对象中的输入和输出端口数量不同的输入和输出端口变型子系统块。但是,必须满足以下条件:

  • 变量选择必须具有与变型子系统容器块或它必须是容器块上端口的子集。

  • 变量选择必须具有与变型子系统容器块或它必须是容器块上端口的子集。

  • 变体选项必须具有与变型子系统容器。

在模拟过程中,Simulink将在模拟金宝app中禁用非活动端口变型子系统块。

转换为变量子系统块

在Simuli金宝appnk编辑器中,可以将这些块转换为变型子系统布洛克:

  • 子系统

  • 模型

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

  • 有条件执行的子系统

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

也可以将这些块转换为变型子系统以编程方式阻止。为此,请使用以下任一语法:

  • 金宝appSimulink.VariantManager.convertToVariant(华东桐柏

  • 金宝appSimulink.VariantManager.convertToVariant(gcbh

例如

开放式系统(“sldemo_变体_子系统”);Simulink.VariantMan金宝appager.convertToVariant('sldemo_variant_子系统/控制器');

如果将变量模型转换为变量子系统,请注意模型块参数生成预处理条件不同于变型子系统块参数变体激活时间。对于变量模型,启用该参数将导致仿真和更新图表仅编译激活的变量。对于变量子系统,启用该参数将编译所有变量,这会降低仿真和更新的速度。

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

相关的例子

更多关于