上一篇《什么是标定》对标定进行了初步的介绍,让大家有了一个感性的认识。标定是一项非常复杂的工作的,涉及方方面面的知识非常多,本文将对标定具体实现的过程进行介绍。
控制器对标定的支持
在前面的文章中介绍了控制算法是在软件编程的时候已经写入到控制器中,是通过标定对相关的参数进行优化调整。为了实现上述目的,控制器在软件开发中就必须支持标定数据的存储和标定通讯协议两部分功能,下面将分别进行说明:
标定数据的存储
大家都知道为了保证嵌入式软件运行的效率,大部分数据都是定义在RAM中的,只有固化确定的数据一般会存储在ROM中,比如常见的const类型的数据。而RAM中的数据又是在下电后会被清零复位的,所以标定修改了RAM的数据就无法存储下来。因此,在控制器内部就需要分别在ROM和RAM中分别划分一个区域来定义标定数据,这两个区域的空间大小必须一样,同时需要在两个区域按照相同的顺序分别一一对应定义变量,ROM区域定义为const类型变量,RAM区域定义为正常的变量。通过标定修改的数据,可以通过RAM地址映射存储到对应的ROM地址变量中,在标定完成后烧录到ROM区域中,下次上电初始化的是再从ROM中拷贝到对应的RAM区域,如此就可以实现了标定数据的自动映射参与控制算法的计算。下图是控制器内部变量映射关系说明。
标定通讯协议
嵌入式软件控制算法在开发验证完成后就会烧录到控制器中,如果通过修改数据后重新编译烧录来实现标定数据的更改就会非常麻烦。主要有以下两方面原因:一是对于一个控制器标定数据优化的频次无法确定,尤其在软件开发完成释放后就不能每次都通过烧录编译的方法来实现;二是控制器在硬件和软件控制算法定型后都会安装到固定的控制器外壳中,如果更新标定数据都通过烧录软件就需要反复拆除外壳;三是编译烧录软件更新数据就无法实现在线实时标定,让标定工作无法正常开展,这也是最关键的一点。因此,汽车行业内专门定义了相应的标定通讯协议,目前常用的是CCP和XCP两种协议,只要控制器内容集成了标定通讯协议栈软件就可以实现在线实时标定,后续文章将会对标定协议进行详细的介绍。
标定工具的支持
当拿到一个可以支持标定的控制器后就需要选择标定工具来实现具体的标定工作了。标定工具通常包括与控制器和电脑连接通讯的硬件以及在电脑中运行的标定软件,这两部分都相对比较复杂,目前行业内主流使用的标定软硬件套件厂家基本以VECTOR的CANape和ETAS的INCA两种工具。上述两种标定工具功能非常复杂,也都是收费的商业软件,价格都在大几万人民币左右。后续文章也会对上述两种标定工具的使用展开详细的介绍。
标定的具体工作
在前面的文章介绍中举了一个简单的示例说明什么是标定,但是实际的标定工作是一项非常复杂的工作,甚至在某一些标定工作内容中还带一些危险的因素。在此以汽车行业的标定为例,一辆汽车包含了发动机、变速箱、整车匹配等等很多部分。所有零部件组成一辆完整的汽车之前需要对零部件进行标定,这就是通常所说的零部件台架标定。一辆整车在投放市场之前还需要进行包括动力性、经济性、排放性能等多方面的标定,同时由于车辆实际使用的环境是天南地北,所以就还需要在平原、高寒、高原、高热、高湿等多种环境下开展上述整车标定工作。如果按照正常完整的开发流程,一个车型从设计到投放市场的时间至少是3年,在这其中标定工作占了很大一部分工作内容,后续我们也将会介绍标定工程师相关工作。
下一篇文章我们就将开始介绍标定协议相关知识,让大家能够更清楚的了解实现标定的具体过程。