文档

什么是变体,什么时候使用它们

变异是什么?

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

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

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

  • 不同的子系统:用于层次模型结构。块是一个包含两个元素的模板子系统作为变体系统使用的块。您可以添加子系统街区,以及模型块,变异。

  • 变型:用于层次模型结构。块是一个包含两个元素的模板模型作为变体系统使用的块。您可以添加模型街区,以及子系统块,变异。

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

  • 模型

请注意

单输入的采样时间变异来源/变体水槽块可以因多个输入而不同变异来源/变体水槽块。有关示例时间的更多信息,请参见什么是样本时间?

对于新型号,使用a模型仅当您需要使用有条件执行的模型(带有控制端口的模型)的变体时,才为模型变体阻塞。为了向后兼容,支持模型变体。万博1manbetx然而,对模型变体的万博1manbetx支持将在未来的版本中被删除。使用不同的子系统Block提供了这些优势:

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

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

将一个模型类的变体模型不同的子系统块包含模型块引用变量模型时,右键单击模型块,并选择子系统及模型参考>转换为>不同的子系统. 或者,您可以使用万博1manbetxSimulink.VariantManager.convertToVariant函数。指定模型块名称或块句柄。的converted model produces the same results as the original model.

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

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

使用变体的好处

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

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

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

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

  • 如果模型组件具有多个备选配置,则可以有效地探索这些不同的备选配置,而无需更改固定不变的组件。

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

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

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

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

何时使用变体

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

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

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

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

  • 基本相似但略有变化的模型,例如在您希望将测试模型与调试模型分离的情况下。

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

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

中表示变量的选项万博1manbetx

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

请注意

对于新型号,使用a模型仅当您需要使用有条件执行的模型(带有控制端口的模型)的变体时,才为模型变体阻塞。使用一个模型为向后兼容而支持变体模型的块。万博1manbetx但是,支持使用万博1manbetx模型块包含模型变体将在未来的版本中被删除。下面是一个使用不同的子系统块作为变体模型的容器,请参见模型参考变量

变异来源变体水槽

不同的子系统变型

变体的选择表示

数量的端口

子系统模型

允许选择层次结构

是的

不同选择之间的导入和输出端口数量不匹配

万博1manbetxSimulink禁用非活动端口

万博1manbetxSimulink禁用非活动端口

选项指定默认变量

是的

是的

万博1manbetx支持控制端口

是的

可以另存为独立文件

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

部分

注释的选择(

此外,您可以使用变异来源变体水槽块这些块允许在整个模型中传播各种条件,并可以通过模型引用层次结构传播条件。

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

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

一个不同的子系统容器中的变体选择是否表示为子系统模型阻碍。变量子系统块从上游模型组件接收的输入映射到变量选择的输入和输出。

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

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

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

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

变体徽章

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

变体徽章

变异来源

变体水槽

不同的子系统

当没有选择选项时,默认的变体徽章。

变块重写变量条件并使用下面的变量选项选中。

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

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

变块传播变异子系统外部的条件选项选中。

不适用

不适用

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

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

不适用

不适用

注释掉和注释通过

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

  • 注释掉:从模拟中排除选定的块。信号被终止并接地。

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

访问注释掉或者是通过评论选项,右键单击块并在上下文菜单中选择注释掉通过评论基于您的建模需求。

或者,您也可以选择块和按下Cltr + Shift + X发表评论或出版Cltr + Shift + Y通过发表评论。

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

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

  • set_param (gcb,“评论”,“上”);%注释掉一个块

  • 设置参数(gcb、'commented'、'through');%通过块进行注释

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

当注释掉一个块时,该块输出端口的信号名称将被忽略。要在模拟过程中包含这些信号,必须在模块的输入端口添加信号名称。

注释掉通过评论不支持这些块:万博1manbetx轮廓尺寸外埠重复的港口,连接端口参数尺寸。参数输出港数据存储内存信号发生器转到标记可见性、For和While块。

相关的例子

更多关于

这个话题有用吗?