基于CCP协议的PID参数自动标定系统设计
2017-01-11毕栋周海鹰王思山
毕栋,周海鹰,王思山
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)
基于CCP协议的PID参数自动标定系统设计
毕栋,周海鹰,王思山
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)
设计开发了一种基于CAN Calibration Protocol协议的PID参数自动标定系统,通过上位机对PID参数进行自动修改,并记录实验数据,通过对实验数据的分析,可较快得到使系统稳定的参数值。通过具体实例设计了完整的下位机、上位机软件,提供了一种实现方法,验证了自动标定系统的可行性。
自动标定;PID控制器;CCP协议
目前广泛应用的PID参数整定方法有很多(试凑法、经验法、临界比例度法等)[1],不仅需要丰富的经验,还需要人工对ECU参数进行反复的修改比较,工作量大,难度高。为进一步提高PID参数整定的效率和精度,可使用标定的方法对PID参数进行整定。
本文中基于CCP2.1协议提出了一种自动标定思路,以达到较快获得系统稳定时合理PID参数的目的,并通过具体实例设计了完整的下位机、上位机软件,提供了一种实现方法,验证了自动标定系统的可行性。
1 CCP协议及工作原理
CCP是基于汽车CAN网络总线对汽车网络通信中的电控单元进行标定的一种协议,具有通信可靠、传输速度快、通用性好等优点,主要作用是监控ECU参数,在线调整MAP数据、ECU控制参数、工作参数以及离线数据处理等[3],其发展至今已应用于汽车各个领域。
基于CCP协议的ECU标定系统采用主-从的通信方式,主设备通过CAN总线与多个从设备连接。其中主设备(上位机)是测量标定系统,从设备(下位机)是待标定的电控单元ECU。CCP协议以CAN报文帧为基本单位来进行数据传递,发送和接收各使用一个CAN ID,分别为命令接收消息(CRO)和数据发送消息(DTO)。命令接收消息用于向下位机传递上位机的指令,数据发送消息用于向上位机传递下位机的命令应答或数据。通讯过程中,主设备与其中一个从设备建立逻辑连接后,由上位机发出控制命令,从设备接收到命令后执行相应的动作并做出应答(返回命令响应值或错误代码等信息),由此完成一次会话,若干会话的组合可实现多种功能,如建立断开连接、从ECU内存单元读取数据、向ECU内存单元写数据,初始化设备参数空间等[4]。
CCP协议定义了2种工作模式:查询模式(Polling)和数据采集模式(DAQ)。当处于查询模式时,系统采用“一问一答”的通讯方式,主设备发送消息命令,从设备收到命令后,执行相应的操作并反馈一帧报文,查询模式的数据传送方式相对容易,实现简单,但工作效率较低。处于DAQ模式时,从设备可根据主设备的要求按设定周期自动将监视数据上传,而不用在每个数据上传时都发一次上传命令,这种模式下系统工作效率高,但实现较复杂,需上传的数据量大。
2 自动标定系统的设计与实现
2.1 总体设计
本文中设计的自动标定系统由ECU电控单元、CAN-USB接口卡、PC机端的标定平台软件组成,其结构框图如图1所示。
图1 标定系统结构框图
标定数据分为控制参数和监视参数,其中控制参数为比例、积分和微分系数,对于不同的ECU,设计人员可自行设置PID参数变量。监视参数分为两类,一类是PID闭环控制过程中的反馈量和设定量,可在上位机界面中观察其实时波形;另一类是标志系统运行情况的重要数据,针对不同的PID控制器,设计人员可依据不同的控制对象(电源、电机、液压系统等),设计能够区分系统稳定运行的性能评价指标,并根据一定的经验规则,对每一个性能指标设置上下限,在标定过程中由下位机进行计算,并将范围内的计算数据值发送至上位机进行记录,通过对最终结果进行分析比较,确定PID参数的合理值。
科研成果转化率是衡量科研创新成果转化为商业产品的指数,据有效数据统计,我国的高校科研成果转化率约为10%,高职院校的科研成果转化率就更低了。许多高职院校的科研管理部门,并没有将科研成果转化纳入课题的考核范围,对科研成果的社会服务价值不做具体要求。因此,很多课题在立项的时候便不考虑后续的科研成果转化问题。
自动标定系统的核心是基于对不同PID控制器的分析了解基础上,设置一定的PID控制参数调节范围,再采用穷举的方式,通过上位机对其参数依次进行修改,记录实验数据值。
2.2 从设备软件设计
从设备软件主要由CAN Driver、CCP Driver和应用程序组成。CAN Driver的作用是为CAN应用程序提供接口,实现ECU数据的接收和发送功能,主要由CAN的初始化函数、CAN的接收函数和CAN的发送函数组成;CCP Driver由Command处理机和DAQ处理机两部分组成,是基于CAN Driver之上的接口标准,用于解析和执行CCP命令,实现与PC端的标定软件间的通信,从而完成对ECU参数标定和监视的功能。其控制流程图如图2所示。
系统在CAN底层驱动和CCP系统初始化工作完成后,下位机等待CAN接收中断事件的发生。当上位机写入CRO消息后,下位机判断是否接收到总线数据,若是则调用ccpCommand函数,完成命令的解析和处理,下位机主要接收PID参数值修改命令、标志位修改命令、DAQ模式相关命令和SHORT_UP命令。
每一对PID参数测试前都需要对系统进行初始化,因而下位机首先接收到复位标志位置位命令,通过调用复位函数完成系统初始化,随后接收PID参数值修改命令,完成对PID参数的修改,以上操作之后,接收DAQ模式配置命令,确定DAQ模式下的数据结构。为了完成DAQ处理机以及应用程序的开发,下位机定义了一个定时中断,在中断周期内完成应用程序的开发。
初始化和DAQ模式配置工作完成后,下位机判断是否接收到上位机启动标志位,若是则运行中断函数,开始PID的调节以及性能指标参数的计算。性能指标的计算过程中,每一个参数计算结束后均判断是否超过设定值,若是则下位机结束标识符置位,若否则继续性能指标参数的计算。计算结束后将中断函数中定义的一全局变量(定时标识变量)置位,开始DAQ模式下数据的上传。在一对PID参数测试周期(上位机定义)结束后,下位机接收START_STOP命令停止DAQ模式,并通过接收SHORT_UP命令将性能指标计算值上传,等待下一对PID参数的测试。
2.3 主设备软件设计
主设备软件开发可分为界面功能模块、CCP协议模块和CAN-USB驱动模块三大部分。界面功能模块完成功能选择、参数配置、图形显示等功能,CCP协议模块将CCP协议的11条基本命令和17条可选命令以类的成员函数进行定义,通过函数的调用实现不同的命令功能,在CCP模块封装好的消息包,通过调用CAN-USB驱动模块,实现驱动包的传输功能。其上位机运行主流程如图3所示。
图3 上位机软件控制流程图
标定过程中,上位机在启动阶段读取下位机参数配置文件,获取ECU参数的变量名称、地址、字节大小等。在完成PID控制参数初始化后,上位机通过发送命令报文在线修改下位机PID参数值,并完成DAQ模式的相关配置。为实现PID参数的自动标定,在对系统进行分析的基础上,取得PID参数的合理范围值,再通过循环程序,依次对控制参数进行累加,计算不同PID控制参数值下系统的性能指标值。监视过程中,采取2种数据上传方式,ECU A/D模块实时采集的反馈量、设定量和下位机结束标识符通过DAQ模式进行数据传递,以设定的周期向上位机上传数据,上位机接收到CAN报文后,产生接收中断事件,在上位机界面实时绘制反馈量和设定量的参数波形,并判断结束标识符是否被置位,若是则通过上位机的控制来结束本次测试的进行,进行下一组PID参数的标定,若否则判断当前测试是否结束,直至完成本次测试周期(上位机设定)。而对于性能指标监视值,在每一对PID值测试结束后,上位机调用SHORT_UP命令,在接收到CAN总线上的报文数据后,将范围内的性能指标计算值存储到上位机软件定义的数组中,并通过上位机控制结束DAQ模式,使下位机重新复位,进行下一对PID参数的测试。当所有PID参数的测试结束后上位机才将存储的性能指标计算值导入到文本文件中。
2.4 数据处理与解析
2.4.1 修改ECU内部参数值
系统中需修改的ECU内部参数包括PID参数值、复位标志位和启动标志位,从设备软件设计中提到,在PID调节过程中可对3个调节过程各设置1个比例系数,通过一定的经验规则设定比例系数的值,因而可以使上位机PID参数的调节控制在2个字节的整型数据范围内。对于上述2个标志位,均可设置为1个字节,数值为1时代表标志位置位。上位机通过SET_MTA命令设置该参数在ECU内存中的地址以及数据字节数,再调用DOWN⁃LOAD命令实现数据下载,下位机响应这些命令完成对ECU内数据的修改。
2.4.2 查询模式下的数据采集
对于上文中提到的性能指标参数采取查询模式下数据采集方式,系统中每个性能指标计算值可为单字节、双字节或4字节数据,由于上传字节低于5,可通过SHORT_UP命令来获取性能指标参数的计算值。
针对某一控制对象,会有多个不同的性能指标参数,而在上位机发送的命令与下位机回复的消息中,具有相同的命令计数器CTR,对于不同的性能指标参数值,上位机可在发送的命令中设置不同的CTR,上位机根据回复消息中的CTR值判断该数据属于哪个参数,从而完成数据的解析。
2.4.3 DAQ模式下的数据采集
DAQ模式下进行数据采集的参数为PID闭环控制过程中的反馈量、设定量和下位机结束标识符,系统中反馈量和设定量各设定为2个字节数据、下位机结束标识符1个字节数据(1表示置位)。
下位机定义了1个3维结构体,包含若干个DAQ list,每个DAQ list中包含一系列ODT列表,每个ODT对应于1个唯一的编号(PID),含有7个元素,可描述7个ECU内部参数的地址信息及数据长度,这些被ODT列表描述的参数,就是需要下位机用DAQ-DTO帧周期发送给主设备的监视参数。
在DAQ模式开始前,先要对下位机DAQ数据结构进行配置,可通过上位机发送一系列命令完成。首先由SET_S_STATUS命令设定下位机工作模式;调用SET_DAQ_PTR命令选定需要初始化的一个DAQ最小数据单元,并通过WRITE_DAQ命令设定选定的最小数据单元的数据起始地址及相应的数据长度,由于需要上传3个参数值,故需要重复SET_DAQ_PTR和WRITE_DAQ命令3次,3次重复命令中使用相同的list number(00)和ODT number(00),使用不同的元素序列号EleNum(00,01,02)。完成下位机DAQ数据结构的配置后,调用START_STOP命令开启DAQ模式,指定list num⁃ber为00和ODT number为00中的数据需要上传,其数据结构框图如图4所示。
图4 DAQ数据描述表
在接收到下位机上传的DAQ_DTO数据帧后,上位机根据配置,字节0~1和2~3分别代表PID闭环控制过程中的反馈量、设定量,字节4代表下位机结束标识符,从而完成数据的解析。
3 应用实例
以图5所示ECU硬件电路中开关电源的调节为例,ECU采用瑞萨的32位单片机R5F72AW。电源输入电压为18 V,单片机通过aVadjpwm1接口向MOS管输入触发脉冲,通过调节PWM占空比来改变输出电压,最终使电源模块在空载和负载情况下能维持12 V稳定电压输出。
图5 自动标定系统硬件框图
本次实验过程中采用PI控制,系统电压采样频率为4 kHz,达到稳定12 V后,通过分压电阻的分压作用,AdjustVFB端口处的电压设定值应为3 V(A/D输入量程为0~5 V),转化为数字量即2 458,单片机A/D模块通过采集AdjustVFB端口处的实际电压对输出进行跟踪,从而达到PI调节作用。为了测试系统在加载情况下的调节能力,每一对PI参数测试过程中,在系统运行后的1 s时刻通过继电器的控制自动给电源加载。
控制参数为比例系数和积分系数,监视参数为开关电源的性能评价指标、输出电压设定值和电压采集值,其中性能评价指标由空载启动时输出电压最大值(PValue)、峰值时间(PTime)、系统收敛时间(CTime)以及加载时最低电压(PValue_1)和收敛时间(CTime_1)组成。以上变量在瑞萨开发环境HEW2定义。同时,根据经验分别对性能指标值设定合理的取值区间,如果超过区间范围,即向上位机发送一个停止标志位,区间范围为
式中:PValue和PValue_1为数字量;PTime和CTime均为计数值,一次计数周期为0.25 ms(采样周期为4 kHz)。
本文中设计的自动标定系统中,主设备采用基于Object Pascal语言的可视化集成开发工具Del⁃phi来编写上位机软件,通过CAN-USB接口卡与总线ECU进行通信。标定过程开始前,在瑞萨开发环境HEW2中的MAP(view窗口)对话框中查找出ECU参数的地址,并在上位机软件中的文本文件中进行编辑。上位机启动时将自动读取文本文件的内容,通过CCPCONNECT()函数中定义的CON⁃NECT命令与下位机建立连接后,开始标定过程,其信息交互时序图如图6所示(1对PI参数测试)。
在测试过程中,P的取值范围为1~10,积分值的取值范围为1~150,调整步长为1,即测试次数为1500次,每一对PI参数值通过SetPGain()和Se⁃tIGain()函数写入到下位机,数据分为高字节Hbyte()和低字节Hbyte()。电压采集周期为0.25 ms,为获得电压连续的波形,每一对PI参数测试时,ECU采集电压次数为10000次,即系统中每一对PI值的测试时间为2.5 s。
查询模式下,在每一对PI值测试结束后,上位机通过调用ReadValue()等一系列函数实现对性能指标计算值的上传,高字节数据为dateH,低字节数据为dateL。根据下位机反馈的报文信息,对参数值类型进行解析,若CTR=0x0a,则该值PVal⁃ue,以此类推,当CTR=0x0e,该值为CTime_1。
DAQ模式下,通过DAQRequest()函数中的相关命令对下位机DAQ数据结构进行配置,然后通过DAQStart()函数启动DAQ模式,启动标志位置位后,开始DAQ模式下数据的周期上传,在上传的数据中判断下位机停止标志位是否置位,若值为1则调用SetSoftReset()函数将下位机复位,进行下一对PI值得测试,同时上位机根据电压反馈量和设定量绘制电压波形。图6中列举出1组DAQ数据消息,可得电压反馈值为2129(0x0851),电压设定值为2458(0x099a),下位机结束标识符为0,测试周期结束后,通过DAQStop()函数结束DAQ模式。
图6 信息交互时序图
4 结果分析
测试结果如表1所示,即上位机文本文件存储的合理参数值。通过分析可知:当PI值选取在(90,5)附近时,系统能够达到相对稳定状态。启动阶段的冲击电压PValue较小,均低于设定值2500(12.2 V);突加负载时电压降PValue_1在允许范围内,电压值均不低于2 100(10.25 V);启动阶段达到最大电压值的时间PTime为55(13.75 ms)左右,即启动阶段响应速度较快;在突加负载时,系统收敛时间PTime_1维持在150(37.5 ms)左右,能在短时间使系统达到稳定状态。
图7是截取DAQ模式下绘制的电压波形图,横坐标为系统运行时间,纵坐标为电压对应的数字量。图中曲线分别表示电压设定值2 458(12 V)和实际采集的电压值,在每一对PI值测试的启动阶段电压产生阶跃响应,在1 s时刻突加负载,电压值有一个明显的降落,经过PI调节后电压值恢复到设定状态。
表1 监视参数数据
图7 上位机电压波形图
5 结论
系统基于CCP协议进行设计,适用范围广,可用于同类型不同系统的自动标定。本文中的自动标定系统结构简单,能自动获取参数,实时性强,准确性高。系统的局限性是需要基于一定的经验规则,选取合理的参数值范围,同时为了较快获得合理的目标值,自动标定过程中需要选取选择性强的性能指标参数,使其具有区分性。
[1]金奇,邓志杰.PID控制原理及参数整定方法[J].重庆工学院学报,2005(5):91-94.
[2]KLiebknecht H.CCP CAN Calibration Protocol[C].Eu⁃rope:H.Liebknecht,1999.
[3]蔡燕飞.基于CCP协议的ECU标定系统上位机设计[J].汽车工程师,2012(8):53-59.
[4]李雅博,张俊智,甘海云,卢青春.基于CCP协议的HEV用ECU标定系统设计[J].汽车工程,2004(4):375-378.
[5]庄继晖,谢辉,朱仲文.基于模型的电控柴油机自动标定平台的开发[J].汽车工程,2013(7):624-628.
Design of Automatic Calibration System for PID Parameter Based on CCP Protocol
Bi Dong,Zhou Haiying,Wang Sishan
(School of Electrical&Information Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)
An automatic calibration system for PID parameter based on CAN Calibration Protocol was designed.Through recording and analyzing the experimental data with automatically modifying the PID parameters in host computer,the parameter values of the system stability can be obtained quickly.A host and slave computer program was designed by a typical example,which provided an implementation method for the automatic calibration system and verified its feasibility.
automatic calibration;PID controller;CCP protocol
TP273
:A
:1008-5483(2016)04-0033-06
10.3969/j.issn.1008-5483.2016.04.008
2016-06-14
湖北省科技支撑计划项目(2014BHE024)
毕栋(1990-),男,湖北黄冈人,硕士生,从事汽车电子、嵌入式软件方面的研究。E-mail:791156210@qq.com