什么是变体和何时使用它们

变异是什么?

在仿真万博1manbetx软件®,您可以使用变体块来创建一个满足多个变体需求的单一模型。该模型具有固定的公共结构和有限的可变分量集。变量组件的激活取决于您选择的变量选择。因此,生成的主动模型是基于变量选择的固定结构和变量组件的组合。

在模型中使用变量块有助于模型对称为变量选择的不同条件表达式的重用性。这种方法可以帮助您满足基于应用程序、成本或操作考虑的各种客户需求。

你可以根据模型设计使用这些变体块:

  • 变体子系统:用于等级模型结构。该块是两个有两个的模板子系统块用作变体系。你可以加子系统街区,以及模型块,用于变体。

  • 变体模型:用于等级模型结构。该块是两个有两个的模板模型块用作变体系。你可以加模型街区,以及子系统块,用于变体。

  • 内联变体:用于平面模型结构。

请注意

单输入的采样时间变体源/变体汇块可以因多个输入而不同变体源/变体汇块。有关采样时间的更多信息,请参阅什么是样本时间?

使用A.变体子系统Block提供了这些优势:

  • 让你可以混合模型子系统块作为变体系

  • 万博1manbetx支持灵活的I/O,所以所有的变体不需要有相同数量的输入和输出端口

将一个模型包含变体模型的块变体子系统块包含模型参考变体模型的块,右键单击模型块并选择子系统和模型参考>转换为>变体子系统.或者,您可以使用万博1manbetxsimulink.variantmanager.converttovariant.函数。指定模型块名称或块句柄。转换模型产生与原始模型相同的结果。

如果您想模拟一个模型,该模型表示具有多种配置的汽车。这些配置虽然在某些方面相似,但在油耗、发动机尺寸或排放标准等属性上可能有所不同。您可以使用变体来仅对不同的配置建模,而不是设计多个共同表示所有可能配置的模型。这种方法保持了公共组件的固定。

该模型在单个变量中包含两个变量选择变体子系统块。变体选项是模型中的两个或多个组件配置。

使用变体的好处

在基于模型的设计中使用变体有以下几个好处:

  • 变体为您提供了一种为多个系统设计一个模型的方法。

  • 您可以快速地将设计可能性作为变体原型,而不必注释掉模型的部分。

  • 变体可以帮助您开发模块化设计平台,以促进重用和定制。这种方法通过降低复杂性来提高工作流程的速度。

  • 如果模型组件有几种替代配置,则可以有效地探索这些不同的替代方案,而无需更改固定的,不变的组件。

  • 您可以使用不同的变体配置来模拟或从相同的模型生成代码。

  • 您可以为给定的测试套件以组合方式模拟每种设计可能性。

  • 如果您正在使用大规模设计,可以在多核计算机集群上分发测试这些设计的过程。或者,您可以将不同的测试套件映射到设计有效管理特定测试测试的替代方案。

  • 您可以从具有许多变体的主模型生成一个带有配置子集的简化模型。

何时使用变体

变体可以帮助您在单一、统一的框图中指定模型的多个实现。以下是你可以使用变体的三个场景:

  • 表示多个模拟、代码生成或测试工作流的模型。

  • 在组件级包含多个设计选择的模型。

    子系统表示变量选择的块可以具有与父块中的输入和输出端口数量不同的输入和输出端口变体子系统块。看映射变量选择的导入和输出端口

  • 这些模型大部分是相似的,但有一些细微的变化,例如在您想要将测试模型与调试模型分离的情况下。

    左边的测试模型有一个固定的设计。在右侧,相同的测试模型包含一个为调试目的而引入的变体。

万博1manbetxSimulink在更新图表期间和代码编译期间选择活动变量。

代表Variants的选项万博1manbetx

您可以将一个或多个变体表示为这些块中的变体选择。

变体源变体汇

变体子系统变体模型

变体的选择表示

数量的端口

子系统模型堵塞

允许选择层次结构

没有

是的

变体选择中的输入和输出端口不匹配

万博1manbetxSimulink禁用非活动端口

万博1manbetxSimulink禁用非活动端口

选项指定默认变体

是的

是的

万博1manbetx支持控制端口

没有

是的

可以保存为独立文件吗

没有

没有

万博1manbetx支持物理建模连接端口

没有

部分

注释的选择(

没有

没有

此外,您可以使用变体源变体汇块。这些块能够在整个模型中传播变体条件,并且可以通过模型参考层次结构传播条件。

您可以在模型层次结构中的多个级别上创建变体。

映射变量选择的导入和输出端口

一个变体子系统块是一个代表为的变体选择的容器子系统模型块。输入变体子系统块从上游型号组件映射到变体选择的输入和输出端口。

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

  • 变体选择的导入的名称是父变体子系统使用的导入名称的子集。

  • 变体选择的输出端口的名称是父变量子系统使用的输出端口名称的子集。

  • 如果变量选择有控制端口,数据输入端口的名称必须与控制端口名称匹配。

在模拟过程中,Simulink将禁用非万博1manbetx活动端口变体子系统块。

变体徽章

每个变体块都有一个与之相关的徽章。变体徽章的颜色和图标表示变体块的状态。它还提供了快速访问很少的变体命令。您可以右键单击Variant Badge以访问这些命令。

变体徽章

变体源

变体汇

变体子系统

默认Variant Badge未选择选项时。

块与变体标签选择为变体控制模式一个主动的变体选择被选择标签模式有效选择选择。

块与变体允许零主动变体控制选项选中。

块与变体在更新图中分析所有选择并生成预处理器条件选项选中。

块与变体在变体子系统之外传播条件选项选中。

不适用

不适用

块与变体在更新图中分析所有选择并生成预处理器条件允许零主动变体控制选项选中。

块与变体在更新图中分析所有选择并生成预处理器条件在变体子系统之外传播条件选项选中。

不适用

不适用

块与变体允许零主动变体控制在变体子系统之外传播条件选项选中。

不适用

不适用

评论和评论

考虑一下,当您想要模拟一个Simulink模型时,需要从模拟中排除它的一些万博1manbetx块,而不需要从模型中物理地移除这些块。的注释出通过Simulink中的命令万博1manbetx为您提供从模拟中排除块的选项。根据您的建模要求,您可以使用以下选项:

  • 注释出:从模拟中排除所选块。信号终止并接地。

  • 通过:从模拟中排除所选块。信号通过。要通过块进行评论,输入端口的数量和块的输出端口必须相同。

访问这一点注释出或者通过选项,右键单击块,并在上下文菜单中选择注释出通过根据您的建模要求。

或者,您也可以选择块并按Ctrl + Shift + X发表评论或出版Ctrl + Shift + Y评论。

您可以使用get_paramset_param.命令以编程方式查看或更改块的注释状态。例如,

  • get_param(gcb,'评论');%要查看块的注释状态

  • set_param(gcb,'评论','开');%评论一个街区

  • set_param (gcb,“评论”,“通过”);%通过块进行注释

  • set_param (gcb,“评论”,“关闭”);取消注释块

当您注释出块时,块的输出端口处的信号名称被忽略。为了在仿真期间包括此类信号,必须在块的输入端口处添加信号名称。

注释出通过不支持这些块:万博1manbetxinport.,外港重复的港口,连接端口,参数尺寸。,参数出口,数据存储内存,信号发生器,Goto标签可见性,而且块块。

相关的例子

更多关于