主要内容

在变量子系统块外部传播变量条件

指定变量条件时变型子系统块,仿真软件金宝app®传播这些条件以确定在模拟期间模型的哪些组件处于活动状态。默认情况下,这些条件不会传播到变量子系统之外。你可以使用在变量子系统外部传播条件块参数,以允许条件传播到变型子系统块连接到连接块。

请注意

在模型组件上显示的变量条件注释帮助您可视化传播的条件。

上的变量条件注释调试选项卡,选择信息覆盖>变体的传说

如果变体的传说不可用,位于调试选项卡,选择信息覆盖>变异的条件

考虑这个模型包含一个变型子系统块命名控制器有两种不同的选择,线性控制器非线性控制器.一个特定的变量条件激活每个块。

中的变量选择控制器块没有相同的接口。入口传感器1传感器3用于线性控制器非线性控制器,但传感器2仅用于线性控制器.因此,传感器2块仅在以下情况下才处于活动状态:线性控制器是活动的,不执行其他选择。将模型组件置于变型子系统控制器)了解系统中块的活动或非活动状态变型子系统块时,块条件必须传播到块边界之外。

请注意

变量条件不会在外部传播变型子系统如果块中的所有变量选项具有相同的接口,则为块。

在变量子系统外部传播条件

要在可变子系统之外传播条件,请选择在变量子系统外部传播条件在的“块参数”对话框中变型子系统块。默认情况下,此参数设置为

变条件在外部传播变型子系统更新图激活时间

变体激活时间参数为变型子系统块被设置为更新图,只分析主动选择,以确定从变型子系统传播出去的条件。

在本例中,当您将活动变量选择设置为非线性控制器传感器2处于非活动状态。变量批注v2条件设置为显示在传感器2端口和非活动的输入端口块In2这和它有关。在变体条件图例中,条件被设置为如果与该条件相关联的块从未激活。

当您将活动变量选项设置为线性控制器,传感器2端口和输入块In2是无条件的,因为线性控制器正在使用所有的输入信号。

您生成的代码只包含活动选择。在本例中,输入端口In2处于非活动状态,因此它不是生成代码的一部分。

变条件在外部传播变型子系统代码编译激活时间

对于任何变量激活时间,除了更新图,分析所有的变种选择,以确定从变种子系统传播出去的条件。

在示例模型中,设置变体激活时间参数代码编译

这些条件会在外部传播变型子系统两个变量选项的块。

生成的代码包含预处理器条件中包含的活动和非活动选项#如果# elseif.在本例中,输入端口In2有必要的条件加以保护。

请注意

将各种条件传播到外部变型子系统指定了零主动变量控制的块,选择允许零主动变型控制在的“块参数”对话框中变型子系统块。

无输入和输出块的变量子系统上的条件传播

用A来考虑这个模型变型子系统块与两个不同的选择。块上没有进口或出口。这两种变体选择都有条件Var = = 1Var = = 2分别地当在变量子系统外部传播条件参数变型子系统块被设置为,一个逻辑在变条件中,Var = = 1 | | Var = = 2,设置在变型子系统块。当参数设置为时在…上,不适用任何条件变型子系统块。

无输入和输出的变型子系统

传播条件以编程方式

传播外部环境变型子系统以编程方式阻止,请使用以下语法之一:

  • 传播条件:

    set_param (VariantSubsystemName“PropagateVariantConditions”,“上”)

    例如

    设置参数(“sldemo变量子系统/控制器”、“传播变量条件”、“开启”)
  • 传播条件并在代码中生成预处理条件:

    set_参数(VariantSubsystemName、'PropagateVariantConditions'、…'on'、'VariantActivationTime'、'code compile')

    例如

    set_param(“slexVariantSubsystems /控制器”、“PropagateVariantConditions”,…“上”、“VariantActivationTime”、“代码编译)

可变子系统的自适应接口

这个示例展示了如何将变体条件传播到变体子系统块之外,使该块能够根据底层块的状态调整其接口。

探索模型

打开模型slexVariantSubsystemsAdaptiveInterface

Controller块是一个变体子系统,它提供了一个线性非线性选择。这个线性选择是活跃的V = 1非线性选择是活跃的V = 2V是类型为的变量控制变量金宝appSimulink.参数并在PostLoadFcn模型的回调。

要更改变量控制变量的值,请在MATLAB命令窗口中输入V.值=1V.值=2

双击控制器块以查看其内容。的线性非线性选择没有类似的界面。的线性选择是使用传感器1传感器3输入的控制器块这个线性选择是不使用传感器2输入而不产生浸透输出。

在的“块参数”对话框中控制器街区变异子系统外的传播条件选中此复选框。此设置将条件传播到块外部,并使变量子系统块能够根据底层块的状态调整其接口。

模拟模型

将活动选项设置为后模拟模型线性.情况V = 2传播到In2滤波器,及饱和记录器块。这些块变得不活动,因为线性选择是不使用传感器2输入,而不是写入浸透输出控制器块。

局限性

可以在Simscape上设置从可变子系统传播的可变条件™ 或状态流®块只有更新图变体激活时间。

请注意

a的所有元素多路复用器多路分配器,或向量串联阻塞信号必须具有相同的变异条件。

相关话题