若要与多个模型共享配置集,请将其存储为独立配置设置在仿真软件金宝app®数据字典或基本工作区中。默认情况下,配置集驻留在单个模型中,因此只有该模型可以使用它。一个独立的组态集是金宝app仿真软件。ConfigSet
对象,存储在模型外部,以便多个模型可以使用它。
要在模型中使用独立的配置集,请创建配置引用在指向独立配置集的模型中。然后,您可以以与标准配置集相同的方式激活配置引用。多个模型可以引用相同的独立配置集。
在需要时使用配置引用:
在多个模型中使用相同的配置参数。当您更改独立配置中的参数值时,更改将应用于引用该配置的每个模型。
要跨模型层次结构共享配置集,您可以将引用从顶层模型传播到它所引用的模型。有关更多信息,请参见跨引用模型共享配置.
更改任意数量模型的配置参数而不更改模型文件。当您在Simulink数据字典中存储配置集时,更改配置中的参数值将更改数据字典文金宝app件。链接到数据字典并引用配置集的模型使用新值,但它们的模型文件不会更改。
快速替换任意数量模型的配置集,而不更改模型文件。当您在Simulink数据字典中存储配置集时,您可以从同样存储在数据字典中的引用金宝app指向该配置。然后,您的模型可以引用数据字典的配置引用。当您将数据字典的引用更改为指向不同的配置集时,模型将使用新的配置。
当配置引用引用基本工作空间中的配置时,它指向表示金宝app仿真软件。ConfigSet
对象。为变量分配不同的配置集,将该配置集分配给引用该变量的每个模型。
对于本例,您将配置集存储在Simulink数据字典中,并从链接到数据字典的模型中引用配置集。金宝app要创建和链接Simulink数据字典,请参金宝app见迁移模型以使用Simulink数据字典金宝app.要共享已经保存在模型中的配置集,请将配置转换为引用的独立配置,如跨引用模型共享配置.
在从模型中引用独立的配置集之前,在Simulink数据字典中创建配置并将其链接到模型。金宝app对于本例,请使用Simulink项目金宝appsldemo_slproject_airframe
.该项目包含Simulink数据字典金宝appsystem_model
以及连接到数据字典的多个模型。
打开项目。在命令行中,输入sldemo_slproject_airframe
.
在项目文件夹中,在文件夹中数据
,双击Simulink数据字典金宝appsystem_model.sldd
.数据字典将在模型资源管理器中打开。
在模型层次结构窗格中,展开的数据字典节点system_model
.右键单击该节点,单击显示空的部分.
选择“配置”节点,单击添加配置按钮.中的配置集对象内容窗格,使用默认名称,配置
.
为新配置命名SharedConfig
.
可以访问数据字典的模型system_model.sldd
可以引用新的配置。
要在模型中使用独立的配置集,请附加指向该配置集的配置引用。对于本例,请使用该模型LinearActuator
.该模型链接到Simulink数据字典金宝appsystem_model.sldd
,其中包含您的新配置SharedConfig
.
打开模型。在命令行中,输入LinearActuator
.
在模型资源管理器中模型层次结构窗格中,选择模型节点。
选择添加>配置引用或单击添加配置参考按钮.
在模型节点下,单击配置.一个新的配置引用参考
上市。
为配置引用命名LinActuatorRef
.
新的配置引用被附加到模型,但是它还没有指向一个独立的配置,而且它也不是活动的。要完成设置,请解析并激活配置参考。
未解析的配置引用是没有指向有效配置集对象的配置引用。当您使用上述步骤创建配置引用时,将无法解析该引用。
要解析您创建的配置引用,请执行以下操作:
在模型层次结构的模型节点下LinearActuator
模型,选择Configurations节点。在内容窗格中,选择未解析的配置引用,LinActuatorRef
.
右边的窗格显示未解析配置引用。
使用的名字下拉菜单选择SharedConfig
,它是在数据字典中创建的。
提示
可以指定配置引用的名称,而不是配置集的名称。但是,嵌套超过这个深度的配置引用会导致错误。
点击应用.警告图标消失,参考指向您的独立配置集。
如果您的配置引用已经被解析,您可以按照以下步骤更改它所引用的配置集。
在创建配置引用并将其附加到模型之后,激活该引用以使用模型中引用的配置。
在模型层次结构的模型节点下LinearActuator
模型,选择Configurations节点。在内容窗格中,选择配置参考LinActuatorRef
.
右键单击配置引用LinActuatorRef
并选择激活.
当配置引用处于活动状态时,Model Explorer将显示带有后缀的引用的名称(主动)
.独立配置集现在提供了模型的配置参数。
对于本例,您将更新配置集,并查看它如何影响其关联的模型。重复上述过程进行关联SharedConfig
第二种模式:
打开模型NonLinearActuator
.该模型还链接到包含独立配置集的数据字典。
在模型资源管理器中,添加对模型的配置引用NonLinearActuator
.
为配置引用命名NonLinActuatorRef
.
将引用指向独立的配置集SharedConfig
.
激活配置参考。
两个模型现在都包含指向Simulink数据字典中相同配置集对象的配置引用。金宝app
您可以通过从指向配置集的引用的“配置引用”对话框中打开独立配置集来编辑它。更改独立配置集会影响引用它的配置引用,这些引用中覆盖的参数除外。要编辑您从模型中引用的配置集,请执行以下操作:
打开引用配置集的模型之一。对于本例,打开模型LinearActuator
.
要打开“配置参考”对话框,请在建模选项卡上,单击模型设置按钮.“配置参考”对话框显示所引用配置的只读视图SharedConfig
.在对话框中,您可以浏览、搜索和获得与参数上下文相关的帮助,方法与在配置参数对话框中相同。
在配置参考对话框的顶部,单击模型配置参数图标.打开“配置参数”对话框。现在可以像对任何配置集一样更改和应用参数值。
请注意
配置集中的一些选项不能在独立配置中使用,因为它们在一个特定的模型上执行操作。例如,数据导入/导出>连接输入按钮在独立配置集中不受支持,金宝app因为它会为使用该配置的模型打开根导入映射器。
在解算器窗格中,设置类型参数固定步
.点击应用,然后好吧.
应用的更改将出现在“配置参考”对话框中。引用独立配置的模型SharedConfig
使用新的求解器类型。
您可以覆盖引用独立配置集的模型的单个参数值,而不更改独立配置。对于被覆盖的参数,引用使用您在本地分配的值,而不是引用配置集中的值。例如,假设LinearActuator
和NonLinearActuator
都在同一个模型层次结构中。你想要的LinearActuator
,但希望Simulink返回一个错误,如果金宝appNonLinearActuator
被引用不止一次。在本例中,可以覆盖模型参考>每个top模型允许的实例总数参数,仅用于NonLinearActuator
模型。
对于本例,重写模型的配置引用中的参数NonLinearActuator
.
打开模型NonLinearActuator
.
要打开“配置参考”对话框,请在建模选项卡上,单击模型设置按钮.激活配置参考显示了被引用配置的只读视图。
右键单击要更改的参数并选择覆盖从上下文菜单。现在,您可以像更改任何配置集一样更改参数值。对于本例,重写参数模型参考>每个top模型允许的实例总数并将值设置为一个
.
在左侧窗格中,每个窗格显示其包含的覆盖参数的数量。
点击应用保持这些变化取消将参数恢复为引用值。
对参数值所做的更改仅应用于覆盖和编辑参数的配置引用。它们不会影响对所引用配置集的其他引用。对于这个例子,模型NonLinearActuator
允许一个顶级模型引用它一次,而模型LinearActuator
允许顶级模型多次引用它。
若要将被覆盖的参数从引用的配置集恢复为其值,请右键单击被覆盖的参数并选择恢复从上下文菜单。被覆盖的参数重置为引用配置中的值,并再次变为只读。
如果您将独立的配置集存储在Simulink数据字典中,您可以通过保存数据字典来保存对配置的更改。金宝app
如果在退出MATLAB之前,您的模型引用了存储在基本工作空间中的配置集®,则需要将引用的配置集保存到mat文件或MATLAB脚本中。
在模型资源管理器中,在模型层次结构中,选择基本工作空间.
在内容窗格中,右键单击引用的配置集对象的名称。
从上下文菜单中选择出口选择.
指定用于将配置集保存为mat文件或MATLAB脚本的文件名。
提示
重新打开模型时,必须加载保存的配置集,否则无法解析配置引用。要设置模型以自动加载配置集对象,请参见自定义模型行为的回调.
如果配置引用使用导出到mat文件或MATLAB脚本的配置集,则需要将引用的配置集从文件加载到基本工作空间。
在模型资源管理器中,在模型层次结构中,右键单击基本工作空间.
从上下文菜单中选择进口.
为保存的配置集指定文件名并选择OK。配置集对象出现在基本工作区中。
一个配置引用可以指向另一个配置引用,但是不能在第二个引用之外嵌套一个配置引用。
如果在使用自定义目标时激活配置引用,则ActivateCallback
函数不会触发通知相应的独立配置集。同样地,如果一个独立的配置集从一个目标切换到另一个目标,则ActivateCallback
函数不会触发通知新目标。即使一个活动配置引用指向该目标,也会发生此行为。有关ActivateCallback
功能,请参阅rtwgensettings结构(金宝app仿真软件编码器).
不是引用中的所有参数都可以被覆盖,例如,在模型引用层次结构中必须一致的参数就不能被覆盖。