在仿真金宝app软件®,您可以使用变体块来创建一个满足多个变体需求的单一模型。该模型具有固定的公共结构和有限的可变分量集。变量组件的激活取决于您选择的变量选择。因此,生成的主动模型是基于变量选择的固定结构和变量组件的组合。
在模型中使用变量块有助于模型对称为变量选择的不同条件表达式的重用性。这种方法可以帮助您满足基于应用程序、成本或操作考虑的各种客户需求。
你可以根据模型设计使用这些变体块:
请注意
单输入的采样时间变异来源/变体水槽块可以因多个输入而不同变异来源/变体水槽块。有关示例时间的更多信息,请参见什么是样本时间?
使用不同的子系统Block提供了这些优势:
让你可以混合模型和子系统块作为变体系统
金宝app支持灵活的I/O,所以所有的变体不需要有相同数量的输入和输出端口
将一个模型类的变体模型不同的子系统块包含模型块引用变量模型时,右键单击模型块,并选择子系统及模型参考>转换为>不同的子系统.或者,您可以使用金宝appSimulink.VariantManager.convertToVariant
函数。指定模型块名称或块句柄。转换后的模型产生的结果与原始模型相同。
如果您想模拟一个模型,该模型表示具有多种配置的汽车。这些配置虽然在某些方面相似,但在油耗、发动机尺寸或排放标准等属性上可能有所不同。您可以使用变体来仅对不同的配置建模,而不是设计多个共同表示所有可能配置的模型。这种方法保持了公共组件的固定。
该模型在单个变量中包含两个变量选择不同的子系统块。变体选择是模型中组件的两个或多个配置。
在基于模型的设计中使用变体有以下几个好处:
变体为您提供了一种为多个系统设计一个模型的方法。
您可以快速地将设计可能性作为变体原型,而不必注释掉模型的部分。
变体可以帮助您开发模块化设计平台,以促进重用和定制。这种方法通过降低复杂性来提高工作流程的速度。
如果一个模型组件有几个可选配置,那么您可以有效地探索这些变化的可选配置,而不需要更改固定的、不变的组件。
您可以使用不同的变体配置来模拟或从相同的模型生成代码。
您可以为给定的测试套件以组合方式模拟每种设计可能性。
如果您正在处理大规模的设计,您可以将测试这些设计的过程分布在多核计算机集群上。或者,您可以将不同的测试套件映射到设计替代方案,以有效地管理特定于设计的测试。
您可以从具有许多变体的主模型生成一个带有配置子集的简化模型。
变体可以帮助您在单一、统一的框图中指定模型的多个实现。以下是你可以使用变体的三个场景:
表示多个模拟、代码生成或测试工作流的模型。
在组件级包含多个设计选择的模型。
子系统表示变量选择的块可以具有与父块中的输入和输出端口数量不同的输入和输出端口不同的子系统块。看到映射变量选择的导入和输出端口.
这些模型大部分是相似的,但有一些细微的变化,例如在您想要将测试模型与调试模型分离的情况下。
左边的测试模型有一个固定的设计。在右侧,相同的测试模型包含一个为调试目的而引入的变体。
金宝appSimulink在更新图表期间和代码编译期间选择活动变量。
您可以将一个或多个变体表示为这些块中的变体选择。
变异来源和变体水槽块 |
不同的子系统和变体模型块 |
|
---|---|---|
变体的选择表示 |
数量的端口 |
子系统或模型块 |
允许选择层次结构 |
没有 |
是的 |
在不同的选择中输入和输出端口的数量不匹配 |
金宝appSimulink禁用非活动端口 |
金宝appSimulink禁用非活动端口 |
选项指定默认变量 |
是的 |
是的 |
金宝app支持控制端口 |
没有 |
是的 |
可以保存为独立文件吗 |
没有 |
没有 |
金宝app支持物理建模连接端口 |
没有 |
部分 |
注释的选择( |
没有 |
没有 |
此外,您可以使用变异来源和变体水槽块。这些块支持在整个模型中传播可变条件,并可以通过模型引用层次结构传播条件。
您可以在模型层次结构中的多个级别上创建变体。
一个不同的子系统块是表示为的变量选择的容器子系统或模型块。输入不同的子系统块接收来自上游模型的组件映射到变量选择的输入和输出端口。
子系统和模型表示变量选择的块可以具有与父块中的输入和输出端口数量不同的输入和输出端口不同的子系统块。但是,必须满足以下条件:
变体选择的导入的名称是父变体子系统使用的导入名称的子集。
变体选择的输出端口名称是父变体子系统使用的输出端口名称的子集。
如果变量选择有控制端口,数据输入端口的名称必须与控制端口名称匹配。
在模拟过程中,Simulink将禁用非金宝app活动端口不同的子系统块。
每个Variant块都有一个与之相关联的徽章。变体徽章的颜色和图标表示变体块的状态。它还提供了对少数Variant命令的快速访问。您可以右键单击Variant徽章来访问这些命令。
变体徽章 |
变异来源 |
变体水槽 |
不同的子系统 |
---|---|---|---|
当没有选择选项时,默认的变体徽章。 |
|
||
块与变体 |
|
|
|
块与变体允许零主动变型控制选项选中。 |
|
|
|
块与变体 |
|
|
|
块与变体 |
|
|
|
块与变体 |
|
|
|
块与变体 |
|
|
|
块与变体 |
|
|
|
块与变体传播变异子系统外部的条件选项选中。 |
不适用 |
不适用 |
|
块与变体更新图 选为变体激活时间和允许零主动变型控制选项选中。 |
|
|
|
块与变体更新图表,分析所有的选择 选为变体激活时间和允许零主动变型控制选项选中。 |
|
|
|
块与变体代码编译 选为变体激活时间和允许零主动变型控制选项选中。 |
|
|
|
块与变体更新图 选为变体激活时间和传播变异子系统外部的条件选项选中。 |
不适用 |
不适用 |
|
块与变体更新图表,分析所有的选择 选为变体激活时间和传播变异子系统外部的条件选项选中。 |
不适用 |
不适用 |
|
块与变体代码编译 选为变体激活时间和传播变异子系统外部的条件选项选中。 |
不适用 |
不适用 |
|
块与变体允许零主动变型控制和传播变异子系统外部的条件选项选中。 |
不适用 |
不适用 |
|
块与变体 |
不适用 |
不适用 |
|
考虑一下,当您想要模拟一个Simulink模型时,需要从模拟中排除它的一些金宝app块,而不需要从模型中物理地移除这些块。的注释掉和通过评论在Simulink中的命金宝app令为您提供了一个选项来从模拟中排除块。根据您的建模需求,您可以使用以下选项:
注释掉:从模拟中排除选定的块。信号被终止并接地。
通过评论:从模拟中排除选定的块。信号通过了。要通过块进行注释,块的输入端口和输出端口的数量必须相同。
访问注释掉或者是通过评论选项,右键单击块并在上下文菜单中选择注释掉或通过评论基于您的建模需求。
或者,您也可以选择块和按下Ctrl + Shift + X发表评论或出版Ctrl + Shift + Y通过发表评论。
您可以使用get_param
和set_param
命令以编程方式查看或更改块的注释状态。例如,
get_param (gcb,“评论”);%查看块的注释状态
set_param (gcb,“评论”,“上”);%注释掉一个块
set_param (gcb,“评论”,“通过”);%通过块进行注释
set_param (gcb,“评论”,“关闭”);取消注释块
当注释掉一个块时,该块输出端口的信号名称将被忽略。要在模拟过程中包含这些信号,必须在模块的输入端口添加信号名称。
注释掉和通过评论不支持这些块:金宝app轮廓尺寸,外港重复的港口,连接端口,参数尺寸。,参数输出港,数据存储内存,信号发生器,Goto标签可见性For和While块。