自动生成变量配置
请注意
此功能需要仿真软件的变体经理®。
模型可能包含几个变种块,每个都有许多不同的选择。一个不同的配置用于表示这种变体的组合选择模型层次结构。例如,在一个系统,一个工厂和一个控制器,一个线性控制器内部工厂,没有噪音和一个非线性控制器与外部低忠诚代表两个不同的系统的配置。
您可以使用变量管理器创建和管理配置模型。变量管理器定义了一个变量配置为一组变量控制变量和它们的值,可以激活一个特定的模型层次结构的变化。不同配置的更多信息,请参阅不同的配置。经理变体的概述,请参阅仿真软件的变体经理。
配置使用变量管理器产生变体
手动创建所有可能的变体配置模型可以耗费时间。您必须激活他们单独检查,如果他们是有效的,如果他们满足必要的约束。您可以自动生成变种配置模型使用变量管理器,你可以:
考虑所有可能的组合的不同控制变量在创建配置。
指定的值范围,必须考虑每一个控制变量。这个规范只允许您控制过程和生成所需的配置的子集。
创建配置满足一些先决条件。
自动生成配置验证识别无效的情况下。
生成的有效配置模型编译成功或全部配置包括无效的。
出口选择配置与模型关联的变量配置数据对象。
出口全球约束的前提条件变体配置数据对象。
以编程方式生成变量配置,使用Simulink.VariantManager.generateConfigurations
方法。
生成配置步骤
这张照片显示的步骤从变异生成变量配置管理器。
打开你想产生变异的模型配置。
经理开放的变体。
在建模选项卡,打开设计部分并单击变体经理。另外,右键单击变体徽章在任何变体块模型和选择在变量管理器。
打开生成配置选项卡。
在变体经理将来发布设置部分中,点击生成配置。
这张图片显示了生成的配置窗口
slexVariantManagement
模型。打开模型,从MATLAB运行以下命令®命令行。openExample (“simulink_variants / AutomaticallyGenerateVariantConfigurationsRefPageExample”);open_system (“slexVariantManagement”);
配置不同的控制变量的操作。
的配置控制变量选项卡列出使用的变量控制变量模型。
改变控制变量的顺序在表中,使用和。这种变化只影响被认为是控制变量的顺序组合生成过程和对生成的有效配置没有影响。
的值列是充满可能的值为控制变量,在模型中指定。你可以根据需要编辑值。您还可以指定所需的值的子集,它允许您限制生成的配置。例如,提供价值
线性
为变量Ctrl
单独为线性控制器生成配置。指定可选的先决条件。
在申请前提文本框中,指定条件限制的配置生成。的值必须是一个特征向量或单元阵列特征向量包含有效的控制变量定义布尔表达式变体。例如,条件
{' Ctrl = = ControllerType。线性', 'PlantLoc == PlantLocation.Internal'}
只生成配置指定的值相对应Ctrl
和PlantLoc
变量。指定配置生成的类型,基于有效性。
在生成基于有效性列表中,选择其中一个值:
有效的
——只包含有效的配置。这包括重复配置,在功能上是等价的。valid-unique
——只包含有效的配置没有重复,在功能上是等价的(默认)。如果配置功能对等,这个选项列表的配置结果。
所有
——包括有效、无效和复制配置。
请注意
两个变量配置的功能与如果他们导致同一组活跃的块模型。你可以识别一群功能与配置在生成的结果有效状态价值
等效K
,在那里K
是一个注释用于组等价的配置,例如,Equivalent1
。一个无效的变体配置违反语义变体和更新图过程中会产生一个错误。例如,你有一个配置在内联变体块杀死所有的选择。然而,这一块允许零变异控制设置为
从
,这与失活,导致一个错误。对于任何有效性选项,这个过程生成只有那些配置满足指定的先决条件。
可以选择从结果中排除特定的配置。
在排除配置数据对象文本框,您可以指定的名称
Simulink.VariantConfigurationData
对象包含变异不能生成配置。默认情况下,电流变体的名称与模型关联配置数据对象填充在这个盒子,和配置在这个对象将被忽略。点击生成配置。
的生成配置窗格以表格形式显示了结果。有效的配置出现在绿色和无效的红色突出显示。
的有效状态列在结果显示配置是否独特,功能等效,或无效。这些值的字段有:
独特的
——配置是有效的和独特的功能没有任何等价物。等效K
——配置是有效的,是一个功能相当于另一个配置。K
是一个注释来确定一组相同的配置,例如,Equivalent1
。如果你有设置生成基于有效性选项
valid-unique
和生成的配置功能对等,结果显示其中一个配置有效状态设置为等效K
。无效的
——配置是无效的。
你可以编辑配置名称的名字列。您可以使用和按钮开关的选择表行。
生成的配置导出到变量与模型关联配置数据对象。如果你想执行这个步骤保存生成的配置。
选择你想要的配置导出表的生成配置窗格。
出口指定的先决条件为约束变量配置数据的对象,选择添加前提约束。
点击添加选定的配置。这个操作添加选中的配置的命名配置列表配置选项卡。如果你选择添加前提约束,操作还增加了约束的前提条件约束选项卡。
点击关闭生成配置回到管理管理器选项卡的变体。
或将更改保存到变量配置数据对象。导出生成的配置之后,可以使用任何的这些选项管理选项卡来保存或恢复您的更改:
将更改应用到基础模型所使用的工作区或数据字典,点击申请更改。
重新加载的变体配置对象基础模型所使用的工作区或数据字典,点击重新加载对象。这允许您恢复的变化还没有出口到这些存储的位置。
永久保存新配置和约束的变量配置数据对象到一个文件,点击导出到文件。
快照的生成过程
当你产生变体使用变体经理或使用自动配置Simulink.VariantManager.generateConfigurations
自动生成过程的方法,模型捕获快照。基于时间戳的子文件夹命名为每次你创建的操作生成内部配置和保存< modelname > _vmgrsnap
模型中的文件夹文件夹。使用快照,您可以得到的概述自动生成过程的输入和输出,手动快照之间的比较结果来理解模型编辑生成的配置的影响。快照包含不同的文件存储以下信息。这些内容在将来的版本中可能发生变化。
块被认为是
使用不同控制变量
命令用于生成配置
生成配置
限制
只支持的自动生成过程
= =
,~ =
,& &
,| |
,~
运营商变体块的变量控制表达式和先决条件。如果变量控制表达式使用其他运营商,如算术或关系运算符,可以激活这些变体的选择可能的配置生成。这个过程不支持这些建模元素生成变量配置:
变体块用变异控制表达式包含noninteger双值,结构字段,或
Simulink.Parameter
对象的值设置为一个表达式类型slexpr
变异参数类型的对象
Simulink.VariantVariable
模型代表一个库或子系统
变体街区的变量控制方式参数设置为
标签
、变异控制标签是字符串,而不是变量。因此他们并没有出现在生成的配置。
不同的子系统块
为不同的子系统块,这些条件也适用:
如果变量控制方式参数设置为
标签
,只有主动标签路径中出现的变化被认为是当您生成配置。考虑这个模型层次结构模型不同的子系统块在
标签
模式。子系统是主动选择变体子系统块,其变异控制设置为一个标签,SUB1
。变异的控制变量一个
积极的选择和使用被认为是当您生成配置。这个过程没有考虑控制变量B
因为它是不活跃的选择的不同的子系统。这是所有的列表生成配置。
如果变量控制方式参数设置为
sim codegen切换
,只有在变化sim卡
选择被认为是当您生成配置。变异的控制中codegen
层次结构,只有默认值包括在生成的配置。考虑这个模型层次结构模型不同的子系统块在
sim codegen切换
模式。的sim卡
选择不同的子系统子系统块。变异的控制变量B
在这个选择是当您生成配置。这个过程只考虑控制变量的默认值C
因为它是codegen
选择子系统的变体。这是所有的列表生成配置。
如果变体激活时间被设置为
更新图
,只有主动选择的变化被认为是用于生成配置。
另请参阅
Simulink.VariantConfigurationData
|Simulink.VariantManager
|Simulink.VariantConfigurationAnalysis