主要内容

创建并激活不同的配置

请注意

此功能需要Simulink的变体管理器®

一个模型可能包含几个不同的块,每个块都有许多不同的选择。一个不同的配置用于表示跨模型层次结构的这种变体选择的组合。例如,在一个有一个设备和一个控制器的系统中,一个线性控制器与内部植物,无噪音和一个带有外部低保真装置的非线性控制器表示系统的两种不同配置。

您可以使用变体管理器来创建和管理模型的变体配置。变体管理器将变体配置定义为一组变体控制变量及其值,这些变量和值可以激活模型层次结构中的特定变体。有关不同配置的更多信息,请参见不同的配置.有关Variant Manager的概述,请参见Simulink的变体管理器

创建不同配置的步骤

您可以为模型创建多个命名的变体配置,或者您可以在模型使用的工作区中创建变体控制变量,以用作模型的临时变体配置。

此图像显示了为模型创建和保存新命名变体配置的高级工作流。

工作流来创建命名变量配置

开放变体管理器

打开您想要为其创建新的变体配置的模型。这里,打开slexVariantManagement使用以下命令进行建模。

目录(fullfile (matlabroot,“例子”“simulink_variants”“主要”));open_system (“slexVariantManagement”);
建模选项卡,打开设计部分,单击变体经理

变体管理器中的配置选项卡

查看配置选项卡在变体管理器。

变体管理器中的变体配置窗格

  • 第一个条目表示模型使用的全局工作空间(基本工作空间或数据字典),例如,topdata.sldd.变量控制变量及其值当前显示在模型的工作空间中,作为模型的临时变量配置。

  • 该表列出了为模型创建的已命名的变体配置。这些配置存储在类型为仿真软件。VariantConfigurationData)与模型相关联。

  • 表格中控制变量部分显示在所选配置中定义的可变控制变量及其值。所有控制变量都列在表中,无论是当模型的变量配置对象被加载时,还是当您从全局工作空间导入它们时。

    控制变量表的顶层变体配置,使用引用组件配置填充的控制变量是只读的,并且显示为灰色背景颜色。

  • 优先配置节允许您选择适合通用工作流模型的命名配置。

添加新的变体配置

  1. 为了在全局工作空间中为模型创建一个临时的变体配置,单击与模型的全局工作空间相对应的条目配置选项卡。

  2. 要添加一个新的命名变量配置,单击add variant configuration按钮.一个新行被添加到命名配置的表中。在框中键入此配置的名称。

变体管理器中的变体配置窗格中有一个名为configuration的新配置

在变体配置中添加、导入或导出控制变量

  1. 配置选项卡,向下滚动查看控制变量部分。该部分显示了当前选择的变体配置的名称。

  2. 在本节中,单击跨模型层次结构导入控制变量按钮为了从模型的全局工作空间导入任何现有的控制变量到变体配置。

  3. 要向变量配置中添加新的控制变量,请单击add控制变量按钮.默认情况下,此操作将添加类型为的新控制变量仿真软件。VariantControl用普通的MATLAB®变量作为其值传递给控制变量表。若要添加其他类型的控制变量,请单击按钮上的向下箭头。您可以更新该表中的值。

    请注意

    您可以在MATLAB基础工作区或数据字典中创建不同的控制变量。

    有关可以从控制变量表执行的操作列表,请参见在变体配置中编辑控制变量

  4. 要将控制变量导出到模型的全局工作空间,单击export control variables To global workspace(s)按钮

  5. 您可以使用描述节为配置提供可选的说明。

“配置”选项卡中的控制变量部分

在变体配置中编辑控制变量

上执行这些操作控制变量部分。

操作 行动

向配置中添加新的控制变量

单击添加控制变量按钮

新建控件变量的默认类型为仿真软件。VariantControl,其值为一个普通的MATLAB变量。

您还可以添加这些类型的变量。要查看所有选项,请单击按钮上的向下箭头。

  • 普通MATLAB变量

  • 仿真软件。参数

  • AUTOSAR。参数

将现有的控制变量从模型的全局工作区导入到配置中

单击跨模型层次结构导入控制变量按钮

请注意

控制变量从块中取出标签Mode不被导入,因为它们不是变量控制变量。

将控制变量导出到全局工作区 单击Export control variables to global workspace(s)按钮
根据每一列对行进行排序 单击列名,例如的名字价值增值税,或,以根据该列中的值对表进行排序。

显示或隐藏配置中控制变量的使用情况

  • 要查找变体配置中特定变体控制变量的使用情况,请在控制变量表中选择该变量,并单击显示所选控制变量的使用情况按钮.包含变量的行在模型层次结构表中高亮显示。

  • 要隐藏变量控制变量的使用情况,请单击“隐藏所选控制变量的使用情况”按钮

或者,右键单击控制变量表中的变量并选择显示使用隐藏的使用

提示

您可以浏览模型层次结构,以了解配置中控制变量的使用情况。激活一个变体配置后,启用显示使用为所需的变量控制变量。现在选择变量的使用选项中的导航工具条中的过滤器。使用箭头键逐级遍历使用这些变量的模型层次结构行。

更改配置中控制变量的数据类型

在“转换为”中单击向下箭头仿真软件。VariantControl按钮查看转换选项。

您可以将控制变量转换为以下任何类型:

  • 仿真软件。VariantControl,以仿真软件。参数对象作为其值

  • 仿真软件。VariantControl,其值为一个普通的MATLAB变量

  • 仿真软件。参数

  • AUTOSAR。参数

  • 普通MATLAB变量

有关显示不同类型的变量控制变量的使用及其用途的示例,请参见在可变块中使用可变控制变量

编辑仿真软件。参数AUTOSAR。参数控制变量

使用编辑仿真软件。参数AUTOSAR。参数控制变量按钮

指定仿真软件。参数控制变量作为表达式,则使用等号(=)后跟数学表达式来设置参数对象的Value属性。例如,输入= a + b

为引用的组件设置不同的配置

您的模型可能由具有预定义变量配置的引用模型组成。顶级模型的变体配置还必须定义模型层次结构中任何引用组件(如引用模型)所使用的变体控制变量。这种方法有助于为跨层次结构的变体控件维护一个统一的定义。

如果引用的组件拥有自己的已存在的命名变量配置,您可以使用它们在顶级模型配置中设置相应的变量控制变量。您可以使用组件配置视图,以选择用于初始化的引用组件配置。控件的步骤组件配置看,看到使用参考模型配置组合顶模的不同配置

为不同的配置定义约束

约束是用户定义的检查,您可以使用它来防止模型中无效的变体组合。您可以定义模型范围的约束,这些约束必须由为模型创建的所有变体配置来满足。它表示为使用可变控制变量创建的条件表达式。表达式必须求值为true才能满足约束。当您激活一个变体配置时,变体管理器会根据适用的约束来验证配置。

请注意

当您为活动配置编译模型时,变体管理器约束也会得到验证。但是,这些约束在编译后不会被验证,例如,在启动变量激活时间。

  1. 单击约束选项卡中的变量管理器窗口。的约束表中列出了为模型创建的任何现有约束。

  2. 若要添加新的约束,请单击add约束按钮.添加一个新行。

  3. 在框中输入约束的名称。

  4. 约束定义部分,在条件框中,输入用变量控制变量定义的布尔条件表达式。条件必须求值为真以满足约束。

  5. 描述框中,为约束输入可选的描述。

变量管理器中的约束选项卡

提示

您可以更改变体管理器窗口的布局以保持配置而且约束窗格彼此挨着。此布局允许您引用控制变量节定义约束。若要移动窗格,请单击窗格顶部并拖动。

保存不同配置

您可以使用类型的变体配置对象仿真软件。VariantConfigurationData为一个模型存储所有命名的变量配置和约束。如果模型还没有与变体配置对象相关联,变体管理器将帮助您设置一个新的变体配置数据对象。

  1. 类型中的变体配置数据对象的名称仿真软件。VariantConfigurationData变量管理器工具条中的文本框。

  2. 要将变量配置数据对象导出到模型使用的全局工作空间(基本工作空间或Simulink数据字典),请单击申请更改.该操作还将对象与模型关联起来。

  3. 要从模型使用的全局工作区重新加载对象,请单击重新加载对象.这允许您恢复尚未导出到全局工作区的更改。

    当您将变体配置中的变体控制变量导出到全局工作空间时,或者当您激活一个变体配置时,相应的变体控制变量将被推到全局工作空间。从variant Manager重新加载变体配置对象不会恢复这些更改。

  4. 要将变体配置数据对象与模型分离,请设置仿真软件。VariantConfigurationData框为空,单击申请更改

  5. 单击,将配置数据对象导出为mat文件或MATLAB脚本文件导出到文件

    如果模型使用基本工作区,此选项允许您保存对象以供重用。

  6. 要将保存在文件中的变体配置数据对象加载到变体管理器中,单击从文件导入

验证并激活变体配置

  • 要激活命名变量配置或全局工作区配置,请从配置选择并单击激活配置

    该操作验证配置并将所选配置应用于模型。激活还将配置中的控制变量推到模型的全局工作空间。

  • 与此过程相关的任何错误都将在诊断窗格。

  • 成功激活后,模型层次结构表反映了更改。您可以:

    • 探索活跃的变种选择系统模型层次结构的选项卡。控件还可以在层次结构中导航导航过滤器以了解控件变量的使用情况、活动选择和无效选择。

    • 编译或模拟活动配置的模型。

要以编程方式激活模型,请参见Simulink.VariantManager.activateModel

有关激活过程与模型编译(更新图)的不同之处的信息,请参见变体管理器激活和更新图过程之间的区别

另请参阅

||

相关的话题

Baidu
map