分区数据层次结构模型参考使用数据字典
当你使用模型引用将一个大系统的模型分成更小的组件和子组件,您可以创建数据字典来隔离设计数据。设计数据组工作空间变量的模型用来指定块参数和信号特征。数据字典的基本信息,请参阅什么是数据字典?。
把这个组件的数据管理方法,创建一个共享字典包含公共数据为每个组件和一个单独的字典包含该组件所需要的数据。
打开示例模型和负载设计数据
打开示例模型ex_SystemModel
。这个模型是参考层次结构的顶部,包括其他示例模型。
加载mat文件包含在工作目录中创建设计基本工作空间中的数据。
负载ProjectData_Contr.mat负载ProjectData_ContrSub1.mat负载ProjectData_ContrSub2.mat负载ProjectData_ContrSubs.mat负载ProjectData_Plant.mat负载ProjectData_System.mat
为每个组件创建一个字典
这个例子展示了如何设计数据分割成字典。当你完成时,系统中的每个组件有一个字典,字典引用允许组件共享数据。
探索示例模型层次结构
在模型中,更新图。每个总线信号模型中使用
金宝appSimulink.Bus
对象作为数据类型。的对象,SensorBus
和CtrlBus
在基本工作空间。被引用的模型
ex_PlantComp_Lvl1
和ex_ContrComp
使用总线对象根级的输入和输出,这意味着植物和控制器组件共享对象。基本工作空间,双击
金宝appSimulink.NumericType
对象命名FloatType
。信号、参数和其他数据项控制器组件使用这个共享数据类型。在模型浏览器中模型层次结构ex_SystemModel窗格中,展开节点。
单击
配置
节点。在内容窗格中,节点参考SimConfigSet
出现了。SimConfigSet
是一个金宝appSimulink.ConfigSet
对象的基本工作空间。为模拟维护配置参数的一致性,所有参考模型的层次结构SimConfigSet
。右键单击节点
控制器(ex_ContrComp)
并选择开放。在模型浏览器中模型层次结构窗格中,展开新节点
ex_ContrComp
。单击配置
节点。在内容窗格中,节点
参考CodeGenConfigSet
出现了。CodeGenConfigSet
是一个金宝appSimulink.ConfigSet
对象的基本工作空间。为代码生成、维护配置参数一致性模型的控制器组件引用CodeGenConfigSet
。不要使用植物的模型组件CodeGenConfigSet
。在模型层次结构窗格中,选择基本工作空间。在内容窗格中,右键单击变量
diff
并选择发现在使用。在选择一个系统对话框中,选择ex_SystemModel
并点击好吧。如果你看到一个信息更新图,点击好吧。在内容窗格中,变量
diff
使用常数块的模型ex_ContrComp_Sub1_Lvl1
和ex_ContrComp_Sub1_Lvl2
,占第一控制器子组件。同样,其他模型的层次结构份额基本工作空间变量多项式系数
,初始化
,μ
,ρ
。
表显示了分享每个变量的模型基本工作空间。
变量名 | 模型使用的变量 | 共享的范围 |
---|---|---|
CtrlBus |
顶层模型的植物和控制器组件 | 全球共享的整个系统 |
SensorBus |
顶层模型的植物和控制器组件 | 全球共享的整个系统 |
SimConfigSet |
所有模型的层次结构 | 全球共享的整个系统 |
ρ |
ex_PlantComp_Lvl2 ,ex_ContrComp_Sub1_Lvl2 ,ex_ContrComp_Sub2_Lvl2 |
全球共享的整个系统 |
μ |
ex_PlantComp_Lvl1 和ex_PlantComp_Lvl2 |
共享的模型组件 |
FloatType |
所有模型的控制器组件 | 由控制器共享组件和子组件 |
CodeGenConfigSet |
所有模型的控制器组件 | 由控制器共享组件和子组件 |
初始化 |
ex_ContrComp_Sub1_Lvl2 和ex_ContrComp_Sub2_Lvl1 |
由控制器共享子组件 |
diff |
ex_ContrComp_Sub1_Lvl1 和ex_ContrComp_Sub1_Lvl2 |
共享的模型在第一个控制器子组件 |
多项式系数 |
ex_ContrComp_Sub2_Lvl1 和ex_ContrComp_Sub2_Lvl2 |
共享的模型在第二个控制器子组件 |
假设不同团队的开发人员维护工厂组件和控制器组件。您可以使用数据字典存储和共享设计数据范围。
创建共享全球词典
创建一个共享全局数据字典包含整个系统全球共享的数据。
在Model Explorer中,选择文件>新>数据字典。
设置新词典名称
GlobalShare
并点击保存。在模型层次结构窗格中,右键单击
GlobalShare
节点并选择显示空的部分。在模型层次结构窗格中,选择基本工作空间。在内容窗格中,选择设计整个系统全球共享的数据:
CtrlBus
,SensorBus
,ρ
。右键单击并选择复制。
在模型层次结构窗格中,右键单击
设计数据
节点下GlobalShare
并选择粘贴。同样,复制
SimConfigSet
从基本工作空间和复制的配置
节点下GlobalShare
。
为工厂组件创建字典
创建一个数据字典的数据共享的模型组件。添加一个引用从这本字典共享全球字典。
在Model Explorer中,选择文件>新>数据字典。
设置新词典名称
植物
并点击保存。在模型层次结构窗格中,选择节点
植物
。在对话框中窗格中,引用字典,点击添加。双击
GlobalShare.sldd
。在模型层次结构窗格中,右键单击节点
植物
并选择保存更改。
联系工厂组件字典和迁移数据
链接工厂组件的组件词典然后在植物迁移数据共享的模型组件从基地工作区字典。
打开模型
ex_PlantComp_Lvl1
。在模型中,更新图。
如果诊断视图显示一个错误为多个不一致的定义
SimConfigSet
中,选择删除其他旁边的GlobalShare
实例。此修复的定义GlobalShare
字典和删除其他定义,可以看到的模型。在建模选项卡,在设计,点击链接到数据字典。
在对话框中,单击浏览。
双击
Plant.sldd
。在模型属性对话框中,单击应用。点击改变所有的模型为了应对信息链接引用的模型。
在模型属性对话框中,单击迁移数据。
在迁移数据对话框中,选择包括引用的数据模型然后点击迁移。
(可选)模型属性对话框,使模型访问基工作区。
删除之前的加载模型数据的方法。在模型属性对话框,在回调选项卡上,清晰的
PreLoadFcn
的模型。点击好吧。
为Controller组件创建字典
创建一个数据字典,其中包含控制器的数据共享的模型组件。这本词典还可以参考共享全球词典。
在Model Explorer中,选择文件>新>数据字典。
设置新词典名称
控制器
并点击保存。在模型层次结构窗格中,选择节点
控制器
。在对话框中窗格中,引用字典,点击添加。双击
GlobalShare.sldd
。在模型层次结构窗格中,右键单击节点
控制器
并选择保存更改。
控制器组件链接到字典和迁移数据
控制器组件链接到其组件词典然后迁移数据共享模型控制器组件从字典的基本工作空间。
打开模型
ex_ContrComp
。如果诊断视图显示一个错误为多个不一致的定义
SimConfigSet
中,选择删除其他旁边的GlobalShare
实例。此修复的定义GlobalShare
字典和删除其他定义,可以看到的模型。在建模选项卡,在设计,点击链接到数据字典。
在对话框中,单击浏览。
双击
Controller.sldd
。在模型属性对话框中,单击应用。点击改变所有的模型为了应对信息链接引用的模型。
在模型属性对话框中,单击迁移数据。
在迁移数据对话框中,选择包括引用的数据模型然后点击迁移。
(可选)模型属性对话框,使模型访问基工作区。
删除之前的加载模型数据的方法。在模型属性对话框,在回调选项卡上,清晰的
PreLoadFcn
的模型。点击好吧。
系统链接到全球词典
最后,链接顶部模型对全球词典。
打开模型
ex_SystemModel
。在建模选项卡,在设计,点击链接到数据字典。
在对话框中,单击浏览。
双击
GlobalShare.sldd
。在模型属性对话框中,单击好吧。点击改变这个模型只为了应对信息链接引用的模型。
检查数据存储
在模型浏览器中模型层次结构窗格中,选择字典节点植物。在内容窗格中,查看的内容Plant.sldd
,点击显示当前系统和下面。设计数据和配置部分的内容出现。
同样,视图的内容Controller.sldd
。
的数据源列显示每个字典存储的变量和对象。
全球所有的共享变量,如CtrlBus
和SensorBus
,居住在GlobalShare.sldd
。的变量初始化
两个控制器的子组件共享,驻留在Controller.sldd
。
如果开发团队分配给控制器组件必须改变全球共享变量,他们访问GlobalShare
字典文件。类似地,如果团队必须更改变量初始化
,他们必须访问控制器
字典文件。
检查字典层次结构
查看整个词典和模型层次结构,执行依赖分析。
打开保存的模型
ex_SystemModel
。在建模选项卡,设计部分中,点击依赖分析仪。
系统模型,ex_SystemModel
,与字典GlobalShare.sldd
。工厂组件和控制器组件都与一个单独的字典。访问共享数据,组件字典参考字典GlobalShare.sldd
。这些字典形成层次结构的引用。
策略发现共享数据
学习模型在模型引用层次共享数据,使用这些技术:
在一个开放的模型,在建模选项卡上,选择找到>找到参考变量。Model Explorer显示模型使用的变量,以及引用的模型使用的变量。然后您可以右键单击一个变量和选择发现在使用显示所有的模型,使用变量。有关更多信息,请参见编辑和管理工作空间变量模型浏览器使用。
在命令提示符处,使用函数
金宝appSimulink.findVars
确定一个模型使用的变量。然后,您可以使用该函数相交
确定变量两个模型、组件或子组件共享。