主要内容

使用数据字典的模型引用层次结构的分区数据

当您使用模型引用将大型模型中的大型系统中的较小的组件和子组件中断时,您可以创建数据字典以隔离设计数据。设计数据是模型用于指定块参数和信号特性的工作空间变量集。有关数据词典的基本信息,请参阅什么是数据字典?

要将基于组件的方法采用数据管理,请创建一个共享字典,该字典包含公共数据和每个组件的单独字典,该组件包含该组件所需的数据。

为每个组件创建字典

此示例显示如何将设计数据分为词典。完成后,系统中的每个组件都有字典,字典引用允许组件共享数据。

探索示例模型层次结构

  1. 导航到文件夹matlabroot./ help / toolb万博1manbetxox / simulink /示例(打开)

  2. 将这些文件复制到可写的文件夹:

    • ProjectData_Contr.Mat.

    • ProjectData_Contrsub1.mat.

    • ProjectData_Contrsub2.mat.

    • projectData_Contrsubs.mat.

    • ProjectData_Plant.mat.

    • projectdata_system.mat.

    • ex_systemmodel.

    • ex_plantcomp_lvl1.

    • ex_plantcomp_lvl2.

    • ex_contrcomp.

    • ex_contrcomp_sub1_lvl1.

    • ex_contrcomp_sub1_lvl2.

    • ex_contrcomp_sub2_lvl1.

    • ex_contrcomp_sub2_lvl2.

  3. 加载MAT文件以在基础工作区中创建设计数据。

  4. 打开示例模型ex_systemmodel.。此模型位于引用层次结构的顶部,包括其他示例模型。

  5. 在模型中,更新图表。模型中的每个总线信号使用万博1manbetxsimulink.bus.对象作为数据类型。对象,过敏血针Ctrlbus.,在基础工作区。

    引用的模型ex_plantcomp_lvl1.ex_contrcomp.使用总线对象进行根级输入和输出,这意味着工厂和控制器组件共享对象。

  6. 在基础工作区中,双击万博1manbetxsimulink.numerictype.对象命名浮子。控制器组件中的信号,参数和其他数据项使用此共享数据类型。

  7. 在模特资源管理器中模型层次结构窗格,展开节点EX_SYSTEMMODEL。

    点击配置节点。在里面内容窗格,节点引用simconfigset.出现。simconfigset.是A.万博1manbetxsimulink.configset.基础工作区中的对象。要保持模拟的配置参数均匀性,层次结构中的所有模型都会参考simconfigset.

  8. 右键单击节点控制器(EX_CONTRCOMP)并选择打开

  9. 在模特资源管理器中模型层次结构窗格,展开新节点ex_contrcomp.。点击配置节点。

    在里面内容窗格,节点参考codegenconfigset.出现。codegenconfiget.是A.万博1manbetxsimulink.configset.基础工作区中的对象。为了维护代码生成的配置参数均匀性,控制器组件中的模型是指的codegenconfiget.。工厂组件中的模型不使用codegenconfiget.

  10. 在里面模型层次结构窗格,选择基础工作区。在里面内容窗格,右键单击变量并选择找到所使用的地方。在里面选择一个系统对话框,选择ex_systemmodel.然后点击好的。如果看到关于更新图表的消息,请单击好的

    在里面内容窗格,变量用来使用不变模型中的块ex_contrcomp_sub1_lvl1.ex_contrcomp_sub1_lvl2.,构成第一个控制器子组件。同样,层次结构中的其他模型共享基本工作区变量COEFF.在里面, 和rho.

该表显示了在基础工作区中共享每个变量的模型。

变量名 使用变量的模型 分享范围
Ctrlbus. 工厂和控制器组件中的顶级型号 整个系统全球共享
过敏血针 工厂和控制器组件中的顶级型号 整个系统全球共享
simconfigset. 层次结构中的所有型号 整个系统全球共享
rho. ex_plantcomp_lvl2.ex_contrcomp_sub1_lvl2., 和ex_contrcomp_sub2_lvl2. 整个系统全球共享
ex_plantcomp_lvl1.ex_plantcomp_lvl2. 由工厂组件中的模型共享
浮子 控制器组件中的所有型号 由控制器组件和子组件共享
codegenconfiget. 控制器组件中的所有型号 由控制器组件和子组件共享
在里面 ex_contrcomp_sub1_lvl2.ex_contrcomp_sub2_lvl1. 由控制器子组件共享
ex_contrcomp_sub1_lvl1.ex_contrcomp_sub1_lvl2. 由第一个控制器子组件中的模型共享
COEFF. ex_contrcomp_sub2_lvl1.ex_contrcomp_sub2_lvl2. 由第二个控制器子组件中的模型共享

假设单独的开发人员团队维护工厂组件和控制器组件。您可以使用数据字典来存储和范围共享设计数据。

创建共享全球词典

创建共享全局数据字典,该字典包含整个系统全局共享的数据。

  1. 在模型资源管理器中,选择文件>新的>数据词典

  2. 将新的字典名称设置为Globalshare.然后点击保存

  3. 在里面模型层次结构窗格,右键单击Globalshare.节点并选择显示空节

  4. 在里面模型层次结构窗格,选择基础工作区。在里面内容窗格,选择整个系统全局共享的设计数据:Ctrlbus.过敏血针, 和rho.

  5. 右键单击并选择复制

  6. 在里面模型层次结构窗格,右键单击设计数据节点下Globalshare.并选择粘贴

  7. 同样,复制simconfigset.来自基础工作区并复制到配置节点下Globalshare.

为工厂组件创建字典

为工厂组件中的模型共享的数据创建数据字典。将此字典添加到共享全局字典中的引用。

  1. 在模型资源管理器中,选择文件>新的>数据词典

  2. 将新的字典名称设置为植物然后点击保存

  3. 在里面模型层次结构窗格,选择节点植物。在对话框中,在引用的词典, 点击添加

  4. 双击globalshare.sldd.

  5. 在里面模型层次结构窗格,右键单击节点植物并选择保存更改

将工厂组件链接到字典和迁移数据

将工厂组件链接到其组件字典,然后将由工厂组件中的模型与基本工作区中共享的数据迁移到字典中。

  1. 打开模型ex_plantcomp_lvl1.

  2. 在模型中,更新图表。

  3. 如果诊断视图显示多个不一致定义的错误simconfigset., 选择删除其他人旁边的Globalshare.实例。此修复程序保持定义Globalshare.字典并删除模型可以看到的其他定义。

  4. 在里面造型标签,下面设计, 点击链接到数据字典

  5. 在对话框中,单击浏览

  6. 双击Plant.Sldd.

  7. 在里面模型属性对话框,单击申请。点击改变所有型号响应关于链接引用模型的消息。

  8. 在里面模型属性对话框,单击迁移数据

  9. 在“迁移数据”对话框中,选择包括来自引用模型的数据然后点击迁移

  10. (可选)模型属性对话框,清除启用模型访问基础工作区

  11. 删除以前的加载模型数据的方法。在里面模型属性对话框,在回调标签,清除preloadfcn.对于模型。

  12. 点击好的

为控制器组件创建字典

创建数据字典,该字典包含控制器组件中的模型共享的数据。此字典还可以引用共享全局字典。

  1. 在模型资源管理器中,选择文件>新的>数据词典

  2. 将新的字典名称设置为控制器然后点击保存

  3. 在里面模型层次结构窗格,选择节点控制器。在对话框中,在引用的词典, 点击添加

  4. 双击globalshare.sldd.

  5. 在里面模型层次结构窗格,右键单击节点控制器并选择保存更改

将控制器组件链接到字典和迁移数据

将控制器组件链接到其组件字典,然后将由控制器组件中的模型与基本工作区中共享的数据迁移到字典中。

  1. 打开模型ex_contrcomp.

  2. 如果诊断视图显示多个不一致定义的错误simconfigset., 选择删除其他人旁边的Globalshare.实例。此修复程序保持定义Globalshare.字典并删除模型可以看到的其他定义。

  3. 在里面造型标签,下面设计, 点击链接到数据字典

  4. 在对话框中,单击浏览

  5. 双击Controller.Sldd.

  6. 在里面模型属性对话框,单击申请。点击改变所有型号响应关于链接引用模型的消息。

  7. 在里面模型属性对话框,单击迁移数据

  8. 在“迁移数据”对话框中,选择包括来自引用模型的数据然后点击迁移

  9. (可选)模型属性对话框,清除启用模型访问基础工作区

  10. 删除以前的加载模型数据的方法。在里面模型属性对话框,在回调标签,清除preloadfcn.对于模型。

  11. 点击好的

链接系统到全球字典

最后,将顶部模型链接到全局字典。

  1. 打开模型ex_systemmodel.

  2. 在里面造型标签,下面设计, 点击链接到数据字典

  3. 在对话框中,单击浏览

  4. 双击globalshare.sldd.

  5. 在里面模型属性对话框,单击好的。点击仅更改此模型响应关于链接引用模型的消息。

检查数据存储

在模特资源管理器中模型层次结构窗格,选择“字典”节点工厂。在里面内容窗格,查看内容Plant.Sldd., 点击显示当前系统及以下。出现设计数据和配置部分的内容。

同样,查看内容Controller.Sldd.

数据源列显示了每个字典存储的变量和对象。

所有全局共享变量,如Ctrlbus.过敏血针, 住在globalshare.sldd.。变量在里面,这两个控制器子组件共享,驻留在内Controller.Sldd.

如果分配给控制器组件的开发团队必须更改全局共享变量,则可以访问Globalshare.字典文件。同样,如果团队必须对变量进行更改在里面,他们必须访问控制器字典文件。

检查词典层次结构

要查看整个字典和模型层次结构,请执行依赖性分析。

  1. 打开已保存的模型ex_systemmodel.

  2. 在这一点造型标签,在设计部分,点击依赖性分析仪

系统模型,ex_systemmodel.,链接到字典globalshare.sldd.。植物组件和控制器组件各自链接到单独的字典。要访问共享数据,组件词典引用了字典globalshare.sldd.。这些词典形成引用层次结构。

发现共享数据的策略

要了解模型引用层次结构中的模型如何共享数据,请使用以下技术:

  • 在开放模型中,在“建模”选项卡上,选择>找到参考变量。模型资源管理器显示模型使用的变量以及引用模型使用的变量。然后,您可以右键单击变量并选择找到所使用的地方显示使用变量的所有模型。有关更多信息,请参阅使用Model Explorer编辑和管理工作区变量

  • 在命令提示符下,使用该函数万博1manbetxsimulink.findvars.确定模型使用的变量。然后,您可以使用该功能相交确定变量两个模型,组件或子组件共享。

相关话题