主要内容

与多个模型共享一个配置

若要与多个模型共享配置集,请将其存储为独立配置设置在仿真软件®数据字典或基本工作区中。默认情况下,配置集驻留在单个模型中,因此只有该模型可以使用它。独立配置集是仿真软件。ConfigSet对象,您将其存储在模型之外,以便多个模型可以使用它。

若要在模型中使用独立配置集,请创建配置引用在指向独立配置集的模型中。然后,您可以以与标准配置集相同的方式激活配置引用。多个模型可以引用相同的独立配置集。

当你想:

  • 在多个模型中使用相同的配置参数。当您更改独立配置中的参数值时,更改将应用于引用该配置的每个模型。

    要跨模型层次结构共享配置集,您可以将引用从顶层模型传播到它的引用模型。有关更多信息,请参见跨引用模型共享配置

  • 更改任意数量模型的配置参数,而不更改模型文件。在Simulink数据字典中存储配置集时,更改配置中的参数值将更改数据字典文件。链接到数据字典并引用配置集的模型使用新的值,但是它们的模型文件没有更改。

  • 在不更改模型文件的情况下快速替换任意数量模型的配置集。当您在Simulink数据字典中存储配置集时,您可以从同样存储在数据字典中的引用中指向该配置。然后,您的模型可以引用数据字典的配置引用。当您更改数据字典的引用以指向不同的配置集时,模型将使用新的配置。

    当配置引用基本工作区中的配置时,它指向表示仿真软件。ConfigSet对象。将不同的配置集分配给变量,将该配置集分配给引用该变量的每个模型。

对于本例,您将在Simulink数据字典中存储配置集,并从链接到数据字典的模型中引用配置集。要创建和链接Simulink数据字典,请参见迁移模型以使用Simulink数据字典.若要共享已保存在模型中的配置集,请将该配置转换为引用的独立配置,如跨引用模型共享配置

在数据字典中创建配置集

在从模型引用独立配置集之前,请在Simulink数据字典中创建配置并将其链接到模型。对于本例,使用Simulink项目sldemo_slproject_airframe.该项目包含Simulink数据字典system_model以及链接到数据字典的多个模型。

  1. 打开项目。在命令行中,键入sldemo_slproject_airframe

  2. 在项目文件夹中,在文件夹中数据,双击Simulink数据字典system_model.sldd.数据字典在Model Explorer中打开。

  3. 模型层次结构窗格中,展开的数据字典节点system_model.右键单击节点,单击显示空的部分

  4. 选择Configurations节点并单击添加配置按钮.配置集对象出现在内容窗格,使用默认名称,配置

  5. 命名新配置SharedConfig

模型资源管理器显示模型system_model的配置部分。配置集SharedConfig显示在内容窗格中。

可以访问数据字典的模型system_model.sldd可以引用新的配置。

创建并附加配置引用

要在模型中使用独立的配置集,请附加指向该配置集的配置引用。对于本例,使用模型LinearActuator.该模型链接到Simulink数据字典system_model.sldd,其中包含您的新配置SharedConfig

  1. 打开模型。在命令行中,键入LinearActuator

  2. 在模型资源管理器中模型层次结构窗格中,选择模型节点。

  3. 选择添加>配置引用或单击添加配置参考按钮

  4. 在模型节点下,单击配置.命名为参考上市。

  5. 命名配置引用LinActuatorRef

模型资源管理器显示模型线性执行器的配置部分。配置引用LinActuatorRef在内容窗格中突出显示。

新的配置引用附加到模型,但是它还没有指向独立的配置,而且它还不是活动的。要完成设置,解析并激活配置引用。

解析配置参考

未解析的配置引用是指没有指向有效配置集对象的配置引用。使用上述步骤创建配置引用时,引用无法解析。

解析您创建的配置引用:

  1. 模型层次结构控件的模型节点下面的LinearActuator模型,选择Configurations节点。在内容窗格中,选择未解析的配置引用,LinActuatorRef

    右边窗格显示配置引用无法解析。

    配置参考信息。name字段显示指定配置名称的警告。

  2. 使用的名字要选择的下拉菜单SharedConfig,这是在数据字典中创建的。

    提示

    可以指定配置引用的名称,而不是配置集的名称。但是,在此深度之外嵌套配置引用会导致错误。

  3. 点击应用.警告图标消失,引用指向独立配置集。

如果您的配置引用已经解析,您可以按照以下步骤更改它引用的配置集。

激活配置参考

在您创建配置引用并将其附加到模型之后,激活引用以在模型中使用被引用的配置。

  1. 模型层次结构控件的模型节点下面的LinearActuator模型,选择Configurations节点。在内容窗格中,选择配置引用LinActuatorRef

  2. 右键单击配置引用LinActuatorRef并选择激活

当配置引用处于活动状态时,Model Explorer将显示带有后缀的引用的名称(主动).独立的配置集现在为模型提供配置参数。

在另一个模型中创建一个配置引用

对于本例,您将更新配置集,并查看它如何影响其关联的模型。重复上面的过程进行关联SharedConfig第二种模型:

  1. 打开模型NonLinearActuator.该模型还链接到包含独立配置集的数据字典。

  2. 在Model Explorer中,向模型添加一个配置引用NonLinearActuator

  3. 命名配置引用NonLinActuatorRef

  4. 将引用指向独立配置集SharedConfig

  5. 激活配置引用。

两个模型现在都包含一个指向Simulink数据字典中相同配置集对象的配置引用。

更改引用配置集中的参数值

通过从指向配置集的引用的“配置参考”对话框中打开它,可以编辑独立配置集。更改独立配置集会影响引用它的配置引用,但在这些引用中覆盖的参数除外。要编辑您从模型中引用的配置集:

  1. 打开引用配置集的一个模型。对于本例,打开模型LinearActuator

  2. 打开“配置参考”对话框建模选项卡上,单击模型设置按钮.“配置参考”对话框显示所引用配置的只读视图SharedConfig.在对话框中,您可以按照在Configuration parameters对话框中的方式浏览、搜索和获取与上下文相关的参数帮助。

  3. 在Configuration Reference对话框的顶部,单击Model Configuration Parameters图标.打开“配置参数”对话框。现在可以像对任何配置集一样更改和应用参数值。

    请注意

    配置集中的一些选项不能在独立配置中使用,因为它们在一个特定的模型上执行操作。例如,数据导入/导出>连接输入按钮在独立的配置集中不受支持,因为它为使用该配置的模型打开根导入映射器。

  4. 解算器窗格中,设置类型参数固定步.点击应用,然后好吧

  5. 应用的更改出现在“配置参考”对话框中。引用独立配置的模型SharedConfig使用新的求解器类型。

修改配置参考中的“参数值”

您可以覆盖引用独立配置集的模型的单个参数值,而不更改独立配置。对于被覆盖的参数,引用使用您在本地分配的值,而不是引用的配置集中的值。例如,假设这样LinearActuator而且NonLinearActuator都在同一个模型层次结构中。你想要的LinearActuator被引用的次数,但希望Simulink返回一个错误,如果NonLinearActuator被多次引用。在本例中,您可以重写模型参考>每个顶级模型允许的实例总数参数。NonLinearActuator模型。

对于本例,覆盖模型配置引用中的参数NonLinearActuator

  1. 打开模型NonLinearActuator

  2. 打开“配置参考”对话框建模选项卡上,单击模型设置按钮.活动配置引用显示被引用配置的只读视图。

  3. 右键单击要更改的参数并选择覆盖从上下文菜单。您现在可以像更改任何配置集一样更改参数值。对于本例,覆盖该参数模型参考>每个顶级模型允许的实例总数并将该值设置为一个

    在左窗格中,每个窗格显示其包含的被覆盖参数的数量。

    配置参考对话框引用配置SharedConfig。每个顶级模型允许的实例总数参数用蓝色高亮显示,并设置为值1。

  4. 点击应用保持变化或取消将参数恢复为引用值。

    对参数值所做的更改只应用于覆盖和编辑参数的配置引用。它们不影响对被引用配置集的其他引用。对于本例,模型NonLinearActuator允许顶级模型引用它一次,而模型LinearActuator允许一个顶级模型多次引用它。

若要将被覆盖的参数从引用的配置集中恢复为其值,请右键单击被覆盖的参数并选择恢复从上下文菜单。被覆盖的参数重置为引用配置中的值,并再次变为只读。

保存引用的配置集

如果将独立配置集存储在Simulink数据字典中,则可以通过保存数据字典来保存对配置的更改。

如果在退出MATLAB之前,您的模型引用了存储在基本工作区中的配置集®,您需要将引用的配置集保存到mat文件或MATLAB脚本中。

  1. 在模型资源管理器中,在模型层次结构中,选择基本工作空间

  2. 内容窗格中,右键单击引用的配置集对象的名称。

  3. 从上下文菜单中选择出口选择

  4. 指定用于将配置集保存为mat文件或MATLAB脚本的文件名。

提示

当您重新打开模型时,您必须加载保存的配置集,否则配置引用将无法解析。要设置模型以自动加载配置集对象,请参见用回调自定义模型行为

加载已保存的引用配置集

如果配置引用使用导出到mat文件或MATLAB脚本的配置集,则需要将引用的配置集从文件加载到基本工作区。

  1. 在模型资源管理器中,在模型层次结构中,右键单击基本工作空间

  2. 从上下文菜单中选择进口

  3. 指定保存的配置集的文件名并选择OK。配置集对象出现在基本工作区中。

配置引用限制

  • 配置引用可以指向另一个配置引用,但不能在第二个引用之外嵌套配置引用。

  • 如果在使用自定义目标时激活配置引用,则ActivateCallback函数不会触发以通知相应的独立配置集。同样,如果一个独立配置集从一个目标切换到另一个目标,则ActivateCallback函数不会触发以通知新目标。即使活动配置引用指向该目标,也会发生此行为。有关ActivateCallback功能,请参阅rtwgensettings结构(仿真软件编码器)

  • 并不是引用中的所有参数都可以被覆盖,例如,模型引用层次结构中必须一致的参数不能被覆盖。

相关的话题

Baidu
map