及时获取更多文章,欢迎关注个人微信公众号 AutoGeeker
在使用Embedded Coder 工具进行代码生成时,为提高模型和代码可读性,通常会对信号线进行命名,并与Workspace或Data Dictionary中的数据进行关联,例如我们在Workspace中定义Signal类型的数据,用命令行实现:
在进行功能模块开发时,将上述命令行写成一个m文件,就可以统一对所有数据进行定义,但使用m文件其实不是很方便进行管理,如果需要对某些数据的定义进行修改,需要在m文件中搜寻到该数据定义的命令再进行修改。今天要介绍的是利用常用的EXCEL,对数据(或者说是数据字典)进行统一管理,然后自动在Workspace中生成Signal和Parameter数据。
我们先需要建立一个EXCEL模板,用于填写Signal和Parameter两种类型的数据,Signal和Parameter可以简单理解类似于全局/局部变量和标定参数的区别,Signal用于信号线,Parameter用于Constant、Gain、LookupTable等模块中的设置。
Signal类型的数据:
Parameter类型的数据:
例如上面我们用命令行形式定义了A为Signal类型数据,打开A的属性窗口,可以看到与EXCEL中第一行的标题可以一一对应(属性中有些可以默认不设置,DataType、Dimensions、Initial value、Storage class等这些是必要的)。
EXCEL模板设计好后,M脚本的主要工作其实就是读取EXCEL中的内容,再将内容转换成命令行直接输出或者保存到一个m文件中,我们这里采用第二种保存到一个m文件中的方式,最后自动运行这个m文件即可实现自动定义。
这里仅贴出其中一段脚本,具体代码可后台联系小编获取
该脚本中最主要的是用到了fprintf 这个函数,即对新建的m文件中进行写入操作。
最终生成一个m文件,文件内容其实就是文章开头在Command Window中输入的那些命令,大致如下:
最后自动运行该m文件就可以实现在Workspace中进行数据定义了。如果在开发过程或模型定标过程中需要修改部分变量参数的属性,则在EXCEL中统一修改即可,不需要去管脚本文件。
效果演示