本发明属于汽车变速器控制技术领域,尤其涉及一种发动机油门需求扭矩的在线自学习方法。
背景技术:
对于重型卡车的自动变速箱atm选档控制程序来说,发动机油门需求扭矩map是非常重要的输入,其准确性直接决定了amt的选档性能。发动机油门需求扭矩map是一个基于发动机转速、油门开度对应需求扭矩的map图,其通常由发动机厂商通过实验标定确定。如附图的图1,其示出了典型的发动机油门需求扭矩map。
amt的选档控制模块需要根据发动机油门需求扭矩预测换挡发动机转速变化后,对应油门下的需求扭矩,从而根据此预测值来进行选档计算。因此,发动机油门需求扭矩map是amt选档策略中必须输入的信息。发动机油门需求扭矩map通常是由发动机厂商提供给amt供应商。amt供应商将该map存储在amt软件中,供amt的选档模块使用。但是对于独立的amt供应商通常需要匹配大量各种不同类型的发动机,不同的发动机类型、发动机控制软件版本、排放水平、发动机应用都会有不同的发动机油门需求扭矩map标定,这给amt系统的匹配带来了很大难度。而一旦发动机供应商提供的油门需求扭矩map不准确,或随着发动机软件版本的升级变化后,未协调amt供应商进行对应的amt软件更新,那么就会对amt的选档性能造成较大的影响。
技术实现要素:
本发明为解决上述现有技术存在的技术问题,提供了一种发动机油门需求扭矩的在线自学习方法,以实现amt控制软件自动学习和更新发动机油门需求扭矩。
本发明所采用的技术方案为:
发动机油门需求扭矩的在线自学习方法,包括如下步骤:
步骤1,在amt的随机存储器ram中存储一个二维map,将该二维map定义为lrntapmap,该lrntapmap对应了发动机转速从800rpm~2000rpm和油门开度从0%~100%范围内,对应数据点上学习到的油门需求扭矩值;
步骤2,采用发动机状态识别模块根据发动机ecu提供的can报文信号对当前的发动机状态steng进行识别,以决定amt中的油门需求扭矩map学习模块在线自学习的启动或停止;
步骤3,采用输入信号预处理模块对发动机ecu提供的can报文信号进行输入数据质量检查和移动窗口平均滤波,以得到稳定的输入信号用于在线学习;
步骤4,采用学习状态控制模块根据当前的发动机状态、输入数据质量、输入数据对应的需求扭矩map中对应的数据点的坐标进行自学习状态控制,实现不同学习状态间的切换,自学习状态控制包括五种不同的学习状态,分别为:非活动状态、暂停状态、学习状态、成熟度检查状态和冻结状态,不同的学习状态对应不同的处理方法;
步骤5,amt中的油门需求扭矩map学习模块进行对应状态下的计算和学习。
所述发动机ecu提供的can报文信号包括驾驶员需求发动机扭矩、发动机转速、油门开度和发动机冷却液温度。
所述步骤2中,发动机状态识别模块识别出发动机处于下述任意一条或多条状态时,amt中的油门需求扭矩map学习模块的在线自学习自动停止:(1)、发动机处于低温或过热状态;(2)、发动机转速过低或过高;(3)、油门开度小于5%或高于100%;(4)、发动机处于外部扭矩超越控制状态或故障限扭状态。
所述步骤3中,对发动机ecu提供的每个can报文信号,输入信号预处理模块将使用一个移动窗口对移动窗口内的数据进行最大值和最小值检查,并计算最大值和最小值的差值:
若被检查信号的最大值和最小值的差值大于设定的阈值,则认为该信号处于抖动状态,有效性检查输出信号stdataqlfd将被设为0,amt中的油门需求扭矩map学习模块的在线自学习被暂停;
若被检查信号的最大值和最小值的差值在设定的阈值范围内,有效性检查输出信号stdataqlfd,且移动窗口内被检查信号的平均值将被作为当前数据点用于后续的学习,从而得到当前发动机平均转速ctavgengspd、当前油门平均开度ctaccrpdlavglevl以及当前油门需求扭矩平均值ctdrvrdmndavgtrq。
所述步骤4和步骤5中,当检测到的当前发动机状态不满足进行自学习的条件时,即当steng=0时,学习状态控制模块控制amt中的油门需求扭矩map学习模块进入非活动状态,在非活动状态下,lrntapmap将被停止,所有计算中的中间变量将被重置。
所述步骤4和步骤5中,当stdataqlfd为0时,学习状态控制模块控制amt中的油门需求扭矩map学习模块进入暂停状态,在该状态下,对lrntapmap的学习将被暂停,但计算中的中间变量将被保持,不做重置处理。
所述步骤4和步骤5中,当发动机状态识别模块检测到的当前发动机状态满足进行自学习的条件且stdataqlfd为1时,学习状态控制模块控制amt中的油门需求扭矩map学习模块进入学习状态,在该状态下,lrntapmap中的数据点将被正常的学习和更新。
在所述自适应性状态下,amt中的油门需求扭矩map学习模块进行如下计算:
油门需求扭矩map学习模块根据当前发动机平均转速ctavgengspd和当前油门平均开度ctaccrpdlavglevl通过下式计算得到对应的在lrntapmap中的数据点坐标其中round为进行四舍五入圆整。
idxspd=round((ctavgengspd-800)/100)
idxap=round((ctaccrpdlavglevl)/10)
其中,idxap为当前油门平均开度所对应数据点的坐标值中的纵坐标,idxspd为当前平均发动机转速所对应数据点的坐标值中的横坐标,
使用输入信号预处理模块计算得到的当前发动机平均转速ctavgengspd、当前油门平均开度ctaccrpdlavglevl通过下式计算得到该数据点的权重值wghtfac,
wghtfac=max(1-sqrt((ctavgengspd-idxspd)/50)^2+
((ctaccrpdlavglevl-idxap)/5)^2,0)
其中,max为取最大值;sqrt为求均方根;该算法按照当前数据点位置和对应map中的数据点之间的距离来计算权重,距离越远,权重越小;
将对应数据点坐标上的lrntapmap中的原有数值与输入信号预处理模块计算得到的油门需求扭矩平均值ctdrvrdmndavgtrq进行如下计算,
lrntapmap[idxspd,idxap][0]=lrntapmap[idxspd,idxap][-1]*(1-wghtfac)+ctdrvrdmndavgtrq*wghtfac
所述步骤4和步骤5中,当输入的当前发动机平均转速ctavgengspd、当前油门平均开度ctaccrpdlavglevl信号对应的数据点的坐标发生变化时的瞬间,学习状态控制模块控制amt中的油门需求扭矩map学习模块进入成熟度检查状态,在该状态下,油门需求扭矩map学习模块将对lrntapmap中对应学习后的数据点的稳定性进行检查,若稳定性判别达到设定要求,则对应数据点将不再需要进行自学习。
所述amt中的油门需求扭矩map学习模块中存储有一个与lrntapmap相同维度的学习状态矩阵lrntstmap,其记录了对应位置点数据的学习成熟度状态;在成熟度检查状态下,油门需求扭矩map学习模块将对学习成熟度状态矩阵lrntstmap进行计算更新;
油门需求扭矩map学习模块将根据如下方法对应数据点每轮更新前后的学习值变化程度来判断对应数据点的学习成熟度:
将之前学习状态中更新得到的数据点lrntapmap[idxspd,idxap]与更新前暂存的对应位置上的变量lastlrntval进行比较:
如果每轮更新前后,学习值的变化小于阈值a,则该数据点的成熟度加1,其中,阈值a的取值为1%~20%,
即:如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap]<a且lrntstmap[idxspd,idxap][-1]<4
则lrntstmap[idxspd,idxap][0]=lrntstmap[idxspd,idxap][-1]+1;
如果每轮更新前后,学习值的变化大于阈值b,则该数据点的成熟度重置为1,其中,阈值b的取值为10%~30%,
即:如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap>b且lrntstmap[idxspd,idxap]<4,
则lrntstmap[idxspd,idxap][0]=1;
如果对应数据点的成熟度达到4,则认为该数据点已经完全成熟,今后再有对应数据点的数据信号输入时,将不再对该数据点进行更新,
即:若lrntstmap[idxspd,idxap]=4,则lrntapmap[idxspd,idxap]不做任何变化;
所述步骤4和步骤5中,当对应数据点不再需要进行自学习时,学习状态控制模块控制amt中的油门需求扭矩map学习模块进入冻结状态,在该状态下,lrntapmap中对应的数据点将不再进行更新。
由于采用了上述技术方案,本发明所取得的有益效果为:
本发明通过在amt程序设置对应的软件模块,使其在行驶中通过发动机提供的信号进行自动的油门需求扭矩map自学习,使用这种在线自学习方法的优点在于:
2、该自学习方法在车辆行驶过程中,在线自动完成自学习,不需要特定的学习实验流程,学习结果稳定且相对精确;而且,一旦对应数据点上的扭矩学习成功后,学习值将被冻结,今后不再进行学习了,节省了计算资源。
3、利用本发明中的方法能够使车辆在行驶中通过发动机提供的信号进行油门需求扭矩map在线自学习,为amt的选档控制模块提供了更准确的换档后可用扭矩输入,保证了amt选档性能的可靠性。
附图说明
图1示出了现有技术中典型的发动机油门需求扭矩map——lrntapmap。
图2为本发明中油门需求扭矩学习模块的结构原理图。
图3为本发明中学习状态控制的逻辑图。
图4为本发明中输入数据的权重计算原理图。
图5为本发明中输入信号的有效性检查原理图。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的详细说明,但本发明并不限于这些实施例。
如图2和图4所示,发动机油门需求扭矩的在线自学习方法,包括如下步骤:
步骤1,在amt的随机存储器ram中存储一个11行13列的二维map——lrntapmap,该lrntapmap对应了发动机转速从800rpm~2000rpm和油门开度从0%~100%范围内,对应数据点上学习到的油门需求扭矩值,其中下表一示出了lrntapmap中数据点的横/纵坐标(idxap/idxspd)与油门开度/发动机转速的对应关系:
表一
发动机ecu提供的can报文信号包括驾驶员需求发动机扭矩、发动机转速、油门开度和发动机冷却液温度。
所述步骤2中,发动机状态识别模块识别出发动机处于下述任意一条或多条状态时,amt中的油门需求扭矩map学习模块的在线自学习自动停止:(1)、发动机处于低温或过热状态(发动机水温低于80℃或高于95℃);(2)、发动机转速过低或过高(发动机转速低于800rpm或高于2000rpm);(3)、油门开度小于5%或高于100%;(4)、发动机处于外部扭矩超越控制状态或故障限扭状态
若被检查信号的最大值和最小值的差值windiff大于设定的阈值,则认为该信号处于抖动状态,有效性检查输出信号stdataqlfd将被设为0,amt中的油门需求扭矩map学习模块的在线自学习被暂停;
若被检查信号的最大值和最小值的差值windiff在设定的阈值范围内,有效性检查输出信号stdataqlfd将被设为1,且移动窗口内被检查信号的平均值将被作为当前数据点用于后续的学习,从而得到当前发动机平均转速ctavgengspd、当前油门平均开度ctaccrpdlavglevl以及当前油门需求扭矩平均值ctdrvrdmndavgtrq。
油门需求扭矩map学习模块根据当前发动机平均转速ctavgengspd和当前油门平均开度ctaccrpdlavglevl通过下式计算得到对应的在lrntapmap中的数据点坐标,其中round为进行四舍五入圆整,
idxspd=round((ctavgengspd-800)/100);
idxap=round((ctaccrpdlavglevl)/10);
其中,idxap为当前油门平均开度所对应数据点的坐标值并对应lrntapmap和lrntstmap中的纵坐标,idxspd为当前平均发动机转速所对应数据点的坐标值并对应lrntapmap和lrntstmap中的横坐标,
将对应数据点坐标上的lrntapmap中的原有数值与输入信号预处理模块计算得到的油门需求扭矩平均值ctdrvrdmndavgtrq进行如下计算:
步骤6,所述amt中的油门需求扭矩map学习模块中存储有一个与lrntapmap相同维度的学习状态矩阵lrntstmap,其记录了对应位置点数据的学习成熟度状态;在成熟度检查状态下,油门需求扭矩map学习模块将对学习成熟度状态矩阵lrntstmap进行计算更新。
油门需求扭矩map学习模块根据将根据如下方法对应数据点每轮跟新前后的学习值变化程度来判断对应数据点的学习成熟度:
例如:
如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap]<1%且=lrntstmap[idxspd,idxap][-1]<4
又比如:
如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap]<5%且=lrntstmap[idxspd,idxap][-1]<4
再比如:
如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap]<20%且lrntstmap[idxspd,idxap][-1]<4
如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap>10%且lrntstmap[idxspd,idxap]<4,
如果abs(lrntapmap[idxspd,idxap]-lastlrntval)/lrntapmap[idxspd,idxap>30%且lrntstmap[idxspd,idxap]<4,
本发明中未述及的部分采用或借鉴已有技术即可实现。
本文中所描述的具体实施例仅仅是对本发明的精神所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。