1 为什么需要标定?
同一款车有不同的配置,功能越多价格自然就越高,比如客户可以选择是否购买智能辅助驾驶功能服务;汽车通常配置了不同的驾驶模式,比如经济模式,正常模式和运动模式,驾驶员可以根据自己的喜好和路况来选择。
以上两个例子都与标定相关,一个通过标定可以实现一个功能的开与关,以此提供不同的车辆配置,另一个通过标定可以实现同一功能的不同性能,以此给驾驶员提供不同的驾驶品质。这是从整车表现角度来说大概说明了下为什么需要标定,而从汽车研发角度来说,在工程应用问题上,很多零部件(发动机,电机和电池等)的特性仅通过数学模型形式很难准确表达,需要通过大量的实验测试来摸清规律,再通过工程手段或方法来表示。
另外汽车应用环境非常复杂,比如变速箱控制,受温度,气压和坡度等诸多因素影响,为了得到更好的控制效果,也需要大量的试错和调试,才能获取更优的控制方法和参数,因此标定工程师每年都要去三高(高寒,高温,高海拔)环境测试。
2 什么是标定?
标定有点类似,具体来说,标定是根据控制器或者整车的性能要求,不断调优控制器内部参数的过程。以Y=a*X+b公式为例,假设Y是目标值,X是输入的固定量,那么为了达到Y,必须不断调试a和b。
标定就是不断调节a和b的数值,就如上图通过多次标定最终得到a和b都为5时,可以获得最优的驱动控制性能。a和b也被称为标定量,这个例子假设a和b只是数值形式,实际上标定量也常见于数组或查表形式。标定就可以看成对控制器这类内部参数(标定量)不断调优,得到最佳的参数值并固化,以使得车辆获取最佳的功能或性能。
3 如何修改标定量?
需要先了解一些ECU(单片机)软硬件基础知识:ECU的存储分为RAM和ROM,两者区别在于掉电后数据是否会消失,RAM掉电后数据会消失,而ROM掉电后数据不会消失,FLASH和EEPROM都属于ROM。软件简单来说包括程序代码和数据,而ECU软件主要包括程序代码、数据和标定量3块,当把ECU软件刷写到控制器,ECU软件会存储在ROM/Flash。控制器运行的时候,程序代码存储在Flash,但数据被copy到RAM,即CPU从Flash中取指令,从RAM中读数据。
4、XCP协议
具体使用怎么方法实现读取和修改标定量的值?怎么能够访问RAM中标定量的地址?
答案就是XCP协议!XCP协议的写访问保证了标定系统可以对RAM中的标定量进行数值修改,即标定(calibration)。
当然要完成标定这项工作,需要具备一些条件:
- 首先要有一个好的修改标定常量的工具。
- 其次要有一个好的观测方式(要么肉眼,要么通过PC端)。
- 最后还要有一个好的人机交互界面。
常听说的INCA和CANape就能满足上述的要求,不过它俩都是基于ASAM-MCD(Standardization of Automation and Measurement systems, with the work groups: Measurement, Calibration and Diagnosis)来实现的,一个完整标定系统的描述如下:
图中,ASAM-MCD-1MC,即XCP协议;ASAM-MCD-2MC,即A2L文件
AL2用来告诉标定工具ECU里面各种详细信息的,包括指令支持类型、通讯方式、观测量、标定量在FLASH和RAM的那个具体地址以及实际数据和算法物理数据转换公式等信息
然后采用使用XCP指令集,以XCP报文帧格式获取标定量或观测量的数值。
这样Master就知道存放在ECU内部的标定量和观测量的地址,可以对ECU内部memory进行读写访问等操作。
标签:控制器,定量,简略,RAM,ECU,标定,XCP From: https://blog.csdn.net/ChrisKKC/article/details/144346312