主要内容

变体水槽

使用变量在多个输出之间路由

  • 库:
  • 金宝appSimulink /信号路由

  • 变体沉块

描述

变体水槽块有一个输入端口和一个或多个输出端口。您可以将Variant选项定义为连接到输出端口的块,以便至多有一个选项是活动的。

每个输出端口都与一个变量控件相关联。计算为的变量控件真正的,确定哪个输出端口处于活动状态。

在仿真中,仿真软件金宝app®将活动选择直接连接到变体水槽阻塞并忽略不活动的选择。

请注意

单输入的采样时间变体水槽块可以因多个输入而不同变体水槽阻碍。有关采样时间的详细信息,请参见什么是采样时间?

港口

输入

全部展开

输入信号,指定为标量、矢量或矩阵,连接到有源输出端口。

数据类型:|双重的|一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔值|不动点|枚举|公共汽车|结构

输出

全部展开

第一个变量的输出信号。计算结果为的Variant控件真正的,确定哪个输出端口处于活动状态。

数据类型:|双重的|一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔值|不动点|枚举|公共汽车

第n个变量的输出信号。计算结果为的Variant控件真正的,确定哪个输出端口处于活动状态。

数据类型:|双重的|一半|int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔值|不动点|枚举|公共汽车

参数

全部展开

  • 表达式-根据对变型条件的评估选择主动变型,使用表达式模式变量条件中使用的变量控制变量必须在全局工作区或数据字典中创建。

  • 标签-根据在中指定的变量名称选择活动变量的步骤标签模式主动选择参数,使用标签模式。在标签模式下,Variant控件是一个字符串,不需要在任何工作空间中创建。

    当您选择标签模式时,变体徽章指示更改。

    请注意

    当你推广标签模式主动选择参数设置为掩码,变量控制方式是禁用的。

    • 如果块在表达式模式,同时推广标签模式主动选择参数设置为掩码时,可以更改变量控制方式标签通过改变被提升的标签模式主动选择参数。

    • 如果块在标签模式,同时推广标签模式主动选择参数设置为掩码时,不能更改变量控制方式表达式模式。

    有关将参数提升到掩码的信息,请参见将参数升级到掩码

  • sim codegen切换-要在模拟和代码生成工作流的变体之间自动切换,请使用sim codegen切换模式。当你模拟(普通,加速器,快速加速器)一个模型,然后Simulink自动选择金宝app模拟分支作为主动选择。类似地,当您进行软件在环(SIL)、处理器在环(PIL)仿真或生成代码或使用外部模式时,Simulink会自动选择金宝appcodegen树枝

将此参数设置为不同的值时,变体标记会发生更改,如中所示变体徽章

依赖关系

变体激活时间参数仅在设置变量控制方式参数表达式sim codegen切换

这个参数决定了Simulink是否设置一个主动选择金宝app变体水槽块在更新图或代码编译期间。该参数还决定在生成的ERT目标代码中包含哪些可变性。如果您选择包含所有的Variant选项,这些选项将包含在生成的代码中的C预处理器条件语句(# If和#endif)中。

当您将此参数设置为不同的值时,变体徽章将发生如下所示的变化变体徽章

您可以设置变体激活时间参数为:

  • 更新图-S金宝appimulink在传播信号属性之前的更新图表期间设置活动选项。在传播信号属性之前,将删除非活动选项,因此生成的代码仅包含活动选项。

  • 更新图表,分析所有的选择-S金宝appimulink在传播信号属性后更新图表期间设置活动选项。信号属性会传播到活动和非活动选项。对所有选择进行分析,以确保仿真结果和代码生成结果之间所有变量分支的一致性。在模型启动之前,在更新关系图的末尾删除非活动选项。生成的代码只包含活动选项。对于模拟和代码生成,此工作流保持不变。

  • 代码编译—对于仿真,工作流程与更新图表,分析所有的选择.但是,在代码生成期间不会删除不活动的选项。生成的代码包含活动选项和非活动选项,这些选项包含在C预处理器条件语句中,#如果# endif

  • 启动-执行模型时,将分析活动和非活动选项在整个模型中的一致性,这些选项将参与模拟和代码生成工作流。使用此选项,可以使用快速重新启动提高迭代模拟的速度。有关详细信息,请参阅快速重启如何改进迭代模拟.从模型生成的代码包含了常规选项中包含的活动选项和非活动选项如果条件。从生成的代码构建的可执行文件还包含活动和非活动选项。

此图显示了在此参数中指定的不同值的Variant激活时间。

有关详细信息,请参阅表示生成代码中的变体源和接收块(嵌入式编码)

依赖关系

不同变量激活时间的可用性取决于您指定的变量控制模式的类型。这个变体激活时间参数确定Simulink设置活动选项的时间范围。该参数还确定要在生成的代码中包含的金宝app可变性。此表说明了每个变量控制模式支持的变量激活时间。金宝app

变体激活时间
变量控制方式 更新图 更新图表,分析所有的选择 代码编译 启动
表达式
标签 x x x
sim codegen切换 x x

编程使用

块参数:VariantActivationTime
类型:特征向量
价值观:更新图|更新图表,分析所有的选择|代码编译
默认值:更新图

连接到Variant Sink块上游的一个Variant选择的输入端口的编号。该值为只读。

点击添加端口或删除已存在的用户。

显示全局工作区中可用的变量控件。变量控件可以是布尔条件表达式或金宝appSimulink.变体对象表示布尔条件表达式。如果您想为您的模型生成代码,您必须将控制变量定义为MATLAB®变量。

要输入非数字变量控制值,请使用枚举数据。有关使用枚举数据的信息,请参阅在Simulink模型中使用枚举数据金宝app

要输入变体名称,请双击变异控制表达式单元格,并在Variant控件表达式中键入。点击应用编辑Variant控件名称之后。如果添加或删除Variant控件而不应用更改,则之前对Variant控件名称的编辑将丢失。

编程使用

块参数:VariantControls
类型:字符向量单元数组
价值观:与Variant选择相关联的Variant控件
默认值:“变异”

显示条件对于以下变量控件:金宝appSimulink.变体对象。属性中创建或更改Variant条件金宝appSimulink.变体参数对话框或全局工作区中。

有关详细信息,请参阅以编程方式创建变量控件金宝appSimulink.变体

当你选择变量控制方式作为标签,标签模式主动选择选项可用。您可以从中选择活动的变体选项标签模式主动选择选项。您也可以右键单击屏幕上的徽章变体水槽块,并选择标签模式主动选择

标签模式主动选择下拉列表显示当前在全局工作空间或数据字典中定义的所有Variant控件。使用有效的MATLAB标识符来指定Variant控件。有关详细信息,请参阅金宝appSimulink.变体

请注意

标签模式主动选择选项不可用表示模式。

依赖关系

要启用此参数,请选择标签模式。

编程使用

块参数:LabelModeActivechoice
类型:特征向量
价值观:由变量控制表达式指定
默认值:Choice_1

要在没有激活变量选择的情况下模拟模型(包含变量块),请选择允许零主动变型控制选择。当这个选项被选中,并且没有活动的Variant选项时,Simulink将禁用连接到的输入和输出流的所有块金宝app变体水槽块。从更新图或模拟中忽略删除的块。

如果你不选择这个选项,当没有活动的Variant选项时,Simuli金宝appnk会生成一个错误。

当您选择此选项时,Variant徽标将指示更改。

依赖关系

表示选择自变量控制方式被选中。

编程使用

块参数:允许零变量控制
类型:特征向量
价值观:“关”|“上”
默认值:“关”

选择此选项时,Simulink会对上的每个变量控件(条件表金宝app达式)进行注释变体水槽阻塞端口。

编程使用

块参数:ShowConditionOnBlock
类型:特征向量
价值观:“关”|“上”
默认值:“关”

块特征

数据类型

布尔值|公共汽车|双重的|枚举|不动点|一半|整数||字符串

直接引线

没有

多维信号

没有

适应信号

没有

过零检测

没有

扩展功能

C/C++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app

定点转换
使用fixed-point Designer™设计和模拟定点系统。

介绍了R2016a