龙空技术网

Excel自动生成Simulink数据字典

新能源汽车控制 516

前言:

今天小伙伴们对“数据字典管理工具”可能比较重视,小伙伴们都需要分析一些“数据字典管理工具”的相关内容。那么小编也在网摘上收集了一些对于“数据字典管理工具””的相关知识,希望我们能喜欢,姐妹们一起来学习一下吧!

上周脚主介绍了基于Simulink的嵌入式系统自动代码生成,今天我们谈一谈自动代码生成中最重要的一个环节:Excel一键生成DD数据字典。

数据字典,是指对数据的数据项、数据结构、数据流、数据存储等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。一般包含数据名称、数据描述、数据类型、数据单位、存储类型等等属性。

基于Simulink的自动代码生成,必须做好Simulink信号、参数与对象的关联,这是保证Simulink信号与底层代码之间信号正常流通的关键,这里的对象就是通过数据字典定义的。

一般地,信号或参数对象可以通过Simulink工具栏进行一个个添加,或者通过写m文件进行定义。

以上两种方法对于输入输出信号、标定参数、观测参数较少的系统比较实用,但是对于汽车电控软件开发,往往就显得力不从心。

以纯电动整车控制器为例,其输入输出的CAN信号、模拟信号、数字信号等等种类繁多,再加上内部的标定量、观测量等等,信号、参数对象总和最多可能达到上万个。这么庞大的数据如果通过以上两种方式维护和管理,工作量将十分夸张,出错的概率也会很高。

对于Matlab,只要能通过鼠标操作完成的任务,代码就一定可以实现。对于重复性较强、创造性较弱的工作,就放心地交给代码去实现。

所以,工程上常常采用Excel的方式进行表格式的定义和管理,可读性强,进行数据整理、修改也十分方便。例如下图所示的Excel数据字典,对于某个子功能,通过三个表格定义输入信号、输出信号、标定参数的数据对象,对于每一个信号都可以清晰的看到它的信号描述、数据类型、存储类型等等参数。

基于以上的Excel数据字典,通过20行左右代码就可以自动把Excel中定义的数据内容加载到Matlab的workspace中。

以输入信号为例,可以定义一个Excel到数据字典的转换m文件,通过xlsread获取Excel数据内容,利用for循环和eval命令实现对数据对象的属性定义,如下图。

最后实现的效果就是把Excel中定义的x1、x2信号加载至workspace中,并且所有属性与Excel定义一致。

例如,生成的x1的定义如下图,其数据类型、初始值、最大最小值、单位、存储类型、描述都与Excel定义完全一致。

输出信号、标定参数当然也可以通过类似的方式实现。

工程上还有很多可以通过excel管理,然后代码自动操作的案例,这些小工具可以大大提高我们的工作效率,后面有机会脚主会继续介绍。

以上,介绍了通过Excel进行数据管理并自动生成数据字典的方法,更多关于代码自动生成的内容大家可参考以下书籍《Simulink代码生成技术入门到精通》。

后台有朋友留言说介绍的部分内容不够深入,也有朋友留言涉及操作的内容是否可以更具体一些。后面脚主尽量对部分工程或理论较深的内容深入介绍(在理解范围内),对操作性较强的内容也尽量详细说明,有其他建议也欢迎留言说明。

标签: #数据字典管理工具