Simulink代码生成:数据字典的建立、关联模型

本文介绍如何建立Simulink数据字典,并关联模型。

文章目录

  • 1 数据字典的作用
  • 2 数据对象的简单概念
  • 3 数据对象的管理方式
    • 3.1 mat文件或m文件
    • 3.2 Excel表格&m脚本
    • 3.3 Simulink自带的数据字典文件
  • 4 建立和关联Simulink数据字典文件
  • 5 sldd数据字典的一些说明
  • 6 总结

1 数据字典的作用

简单来说,数据字典的作用就是把一个模型用到的所有数据对象都统一放到一个地方管理起来。Simulink中,数据对象包括信号对象、参数对象、枚举量、常量等。也就是说,数据字典是很多个数据对象的集合。

2 数据对象的简单概念

举个最简单的数据对象的例子,新建一个Simulink模型,其中有3个Gain模块,他们的放大参数相同,都是2。
Simulink代码生成:数据字典的建立、关联模型_第1张图片
如果要修改的话,就必须每个模块都打开来,把其中的2改成3,会很麻烦。为了解决修改很麻烦的问题,可以在Matlab工作空间建立一个常量Gain_Const=2,再把Gain模块中的放大参数改成Gain_Const常量,如下图所示。需要修改的时候直接把值改成3就行了。这里的Gain_Const就是一个常量的数据对象
Simulink代码生成:数据字典的建立、关联模型_第2张图片
Simulink代码生成:数据字典的建立、关联模型_第3张图片

3 数据对象的管理方式

上一节例子中Simulink模型在仿真的时候可以关联到Matlab工作空间中的Gain_Const常量。但这么做有一个问题,那就是下次重启Matlab的时候,工作空间里的Gain_Const常量就没了,要重新添加进去,才能仿真Simulinnk模型。

因此,要把这些个数据对象保存到本地,然后仿真的时候要加载进工作空间才行。至于怎么把数据对象本地化,博主见过有3种管理方法。

3.1 mat文件或m文件

右键选中Matlab工作区中的所有数据对象(上面的例子里只有一个),将它们另存到本地的mat文件或m文件中。路径最好在Simulink文件的相同路径下。
Simulink代码生成:数据字典的建立、关联模型_第4张图片
在每次打开demo.slx模型前,都把这个demo.mat文件加载到Matlab工作空间中。
Simulink代码生成:数据字典的建立、关联模型_第5张图片
博主认为这么做会有些弊端。首先,每次加载一下文件会很麻烦,不过这还是可以忍受的。比较关键的是,查找和修改数据对象不方便。在企业级项目中,模型往往都很大,里面包含的数据对象非常多,工作区会有许多数据对象,非常不好找。

因为这些弊端,所以很多项目都不用这种原始的方式管理数据字典。

3.2 Excel表格&m脚本

这种方式是把所有的数据对象都写进一个表格中,包括数据对象的类型(信号对象、枚举量、常量等)、参数(包括维度、初始值、StorageClass等)和数值都按照一定的规范列在表格中。然后通过写一个Matlab脚本,把表格中的数据对象定义写到工作空间中。

这个方法本质还是工作空间中的数据对象,但是因为引入了表格,使得数据对象的搜索和查找变得更容易了。不过依然避免不了手动加载到工作空间这一步骤,改一次表格的内容,就要重新运行一次脚本,也是挺麻烦的,所以博主也不推荐。

3.3 Simulink自带的数据字典文件

通过建立一个Simulink自带的数据字典文件(以sldd为后缀),并将其和Simulink模型关联,就可以实现数据对象的管理。博主强烈推荐,下一章会举例讲解sldd文件的建立和关联。

4 建立和关联Simulink数据字典文件

1.打开模型上方工具栏的Model Explorer
Simulink代码生成:数据字典的建立、关联模型_第6张图片
2.File–>New–>Data Dictionary建立一个数据字典,将其命名为demo.sldd,保存在Sminulink文件同一个路径下。
Simulink代码生成:数据字典的建立、关联模型_第7张图片
Simulink代码生成:数据字典的建立、关联模型_第8张图片
3.选中demo下的Design Data,点击上方的Add Matlab Variable,这时中间的数据字典展示栏会显示一个默认的名为“Var”的常量对象。
Simulink代码生成:数据字典的建立、关联模型_第9张图片
4.将它的Name修改为Gain_Const,Value改为2.
Simulink代码生成:数据字典的建立、关联模型_第10张图片
5.右键demo–>Save Changes
Simulink代码生成:数据字典的建立、关联模型_第11张图片
至此,数据字典文件创建完成,一个常数对象添加到数据字典中。接下来就要把数据字典和模型相关联起来。
1.打开Simulink模型–>Model Properties–>Link to Data Dictionary
Simulink代码生成:数据字典的建立、关联模型_第12张图片
2.在弹出的窗口中选中Data Dictionary–>点击Browse…–>在弹出的路径中选中刚刚建立的demo.sldd
Simulink代码生成:数据字典的建立、关联模型_第13张图片
3.点击Apply,这时会出现一个询问窗口,问我们要不要同时关联Matlab工作空间的数据对象。如果勾上了,就不会同时关联Matlab工作空间的数据对象,取消勾选则会同时关联。
Simulink代码生成:数据字典的建立、关联模型_第14张图片
这里博主比较喜欢同时关联,因为可以方便用工作空间中的东西调试模型。不过如果工作空间和demo.sldd中有着同名对象,仿真模型则会报出冲突的错误。

4.这里就关联好sldd文件了,模型上面会出现一行关联成功的提示。
Simulink代码生成:数据字典的建立、关联模型_第15张图片
至此,关联数据字典也就完成了,接下来可以仿真模型或者生成代码。
Simulink代码生成:数据字典的建立、关联模型_第16张图片

5 sldd数据字典的一些说明

1.首先,建立sldd数据字典并关联模型后,在Model Explorer中关掉它也可以正常仿真Simulink模型和生成代码.这就意味着,仿真模型前不需要加载数据字典文件,比前两种每次都要加载的方法要方便。

2.sldd数据字典中可以方便地筛选或者搜索数据对象,如图所示。Simulink代码生成:数据字典的建立、关联模型_第17张图片
3.sldd数据字典要在Matlab地路径列表中,或者在当前路径下。所以最好把sldd数据字典命名为和模型相同,并和模型放在同一路径下。模型拷贝和传输地时候也带上sldd文件。

6 总结

博主现在地工作中已经淘汰掉Excel关联数据字典地方式,而是全线采用Simulink自带的sldd数据字典。所以十分推荐使用sldd数据字典,以后的博客在讲数据对象配置的时候,也是在sldd数据字典中配置的。

>>返回个人博客总目录

你可能感兴趣的:(Simulink代码生成,Simulink)