基于无迹卡尔曼滤波和门控循环单元的道路坡度估计*

2022-11-17 05:48秦大同冯继豪刘永刚
汽车工程 2022年10期
关键词:卡尔曼滤波坡度动力学

秦大同,王 康,冯继豪,刘永刚,程 坤,夏 玉

(1.重庆大学,机械传动国家重点实验室,重庆 400044;2.重庆大学机械与运载工程学院,重庆 400044)

前言

道路坡度信息对于车辆动力学控制非常重要,它直接影响车辆动力传动电控系统和底盘主动安全电控系统中控制策略的实施,同时也影响车辆的安全性、舒适性、动力性和经济性[1-4]。

目前,国内外学者对车辆行驶过程中的道路坡度估计做了大量研究,主要分为基于外接传感器和基于车辆纵向动力学两类估计方法。基于外接传感器的坡度估计采用的外接传感器主要有加速度计[5]、陀螺仪[6]、GPS[7]和激光雷达[8]等。但车辆行驶中的高频瞬态运动特性和复杂的行驶工况易造成加速度传感器的量测信噪比降低,导致道路坡度的估计准确度不高[1]。而悬架变形和路面颠簸等因素又会导致陀螺仪传感器无法准确测得道路坡度。GPS信号因精度不高、稳定性差等特性也无法精确估计道路坡度[1,9]。大多数车辆的处理器又因无法处理激光雷达产生的巨量信息而不能实时估计道路坡度。此外,额外加装传感器成本高,不具备普适性,不利于道路坡度信息在车辆控制策略中的实际应用。

基于车辆纵向动力学的道路坡度估计方法大多是通过CAN总线中发动机输出转矩、变速器挡位和车速等数据结合车辆纵向动力学模型来估计坡度。雷雨龙等[10]基于车辆纵向动力学模型,通过扩展卡尔曼滤波算法(extended Kalman filter,EKF)估计道路坡度取得不错效果。孙恩鑫等[11]基于车辆纵向动力学模型,通过优化UKF中协方差矩阵Qt变化趋势,在微小加速度工况下,对汽车质量和道路坡度有较好估计效果。但此类方法均在起步、换挡、制动和停车工况下有较大估计误差,这是因为车辆纵向动力学模型不适用于4种特殊工况[12]。因此该类方法无法在车辆行驶全过程(非特殊工况和特殊工况)中应用,但特殊工况中的道路坡度信息对于车辆控制也是同等重要的。

有部分学者[1,12]通过将基于车辆纵向动力学和基于外接传感器估计的两组坡度数据融合来实现在特殊工况下的坡度估计。但前文已述,外接传感器的使用有一定局限性,且不具有普适性,无法简单、高效地解决车辆行驶全过程的道路坡度估计问题。

黄秋光[13]利用非特殊工况下结合车辆纵向动力学模型和EKF估计的道路坡度时间序列,基于自回归模型对制动工况下的道路坡度进行预测,有效降低了估计误差,给车辆行驶全过程的道路坡度估计问题的解决提供了新思路。需指出的是同一段道路的时序坡度变化规律会因行驶车速的不同而变化,不具有稳定性,因此不同车速下通过时序坡度来预测同一段道路的坡度,结果往往不同。但在修建道路时,道路坡度和坡度随路程的变化率必须符合国家标准,所以一条建成道路的坡度随路程变化的规律是确定的,因此根据距序坡度进行短距坡度预测更具稳定性和可行性。

本文中为简单有效地解决车辆行驶全过程的道路坡度估计问题,基于车辆纵向动力学模型,通过UKF估计车辆在非特殊工况下的道路坡度,再将时序坡度转换为距序坡度,通过GRU预测车辆处于特殊工况下的道路坡度。相比于其他方法,本文方法仅采用CAN总线数据实现了车辆在行驶全过程中的道路坡度估计,且创新性地将时序道路坡度转换为距序道路坡度,利用道路坡度随路程变化的确定性,对道路坡度进行短距预测。最后,通过Simulink仿真和实车道路试验验证了该方法的有效性。

1 道路坡度估计系统结构

图1为本文提出的基于无迹卡尔曼滤波和门控循环单元的道路坡度估计系统主要结构。首先,从CAN总线中接收时序信息t,发动机输出转矩Te,车速v,目标挡位it,实际挡位ia,制动状态Bf和离合器油压pc。然后,工况识别模块根据v、it、ia、Bf和pc数据识别特殊工况。其中根据车速为0识别停车工况,根据车速从0开始增加和离合器油压升至接合油压识别起步工况,根据目标挡位和实际挡位不一致识别换挡工况,根据制动状态为“1”识别制动工况。

若车辆未处于特殊工况,则工况识别模块激活非特殊工况道路坡度估计模块,特殊工况道路坡度估计模块休眠,此时非特殊工况道路坡度估计模块根据时序、发动机输出转矩、车速、实际挡位以及上一时刻道路坡度数据,基于车辆纵向动力学模型,通过UKF实时估计道路坡度。若车辆处于特殊工况,则工况识别模块激活特殊工况道路坡度估计模块,非特殊工况道路坡度估计模块休眠,此时特殊工况道路坡度估计模块根据历史坡度数据,利用GRU神经网络进行短距坡度预测。最后,坡度值记录模块按照时序信息依次记录道路坡度估计结果。

2 非特殊工况下道路坡度估计算法

非特殊工况具体指车辆速度不为0,离合器完全接合,且没有制动力的状态。据文献[14]所述,车辆下一时刻的状态仅与当前时刻状态有关,而与之前状态无关,所以在微小时间刻度上,车辆行驶中的车速等参数具有马尔可夫性,即可以用卡尔曼滤波器结合车速等参数来估计道路坡度。大量研究[1,9-13]表明,在非特殊工况下,利用车辆纵向动力学模型结合卡尔曼滤波类算法可较为准确地估计道路坡度。但车辆纵向动力学模型是非线性的,故不可直接应用卡尔曼滤波器。基于卡尔曼滤波算法提出的UKF和EKF可应用于非线性系统,且UKF比EKF计算更简单,线性化误差更小。因此本文在非特殊工况下采用结合车辆纵向动力学模型和UKF算法来估计道路坡度。

2.1 车辆纵向动力学模型

如图2所示,将行驶中的车辆看作一个刚体,θ表示道路坡度,上坡时取正值,下坡时取负值,Ft表示车辆驱动力,Ff表示滚动阻力,Fi表示坡度阻力,Fw表示空气阻力。

在只考虑纵向运动时,根据牛顿定律得车辆纵向动力学方程为

式中:Fj=δmv̇为加速阻力,δ为旋转质量换算系数;m为车辆质量;v为车辆纵向速度;Te为发动机转矩;ig为变速器传动比;i0为主减速器传动比;ηT为传动效率;g为重力加速度;f为滚动阻力系数;CD为空气阻力系数;A为车辆迎风面积。

在建立车辆行驶状态空间方程前,先假设车辆行驶过程中质量m保持不变,且车辆只有纵向运动。又因为试验车上CAN总线数据传输频率为100 Hz,即时间步长为0.01 s,而国内车辆合法的最大行驶速度为120 km/h,即一个时间步长内,车辆的行驶距离不超过0.34 m,所以假设一个时间步长内道路坡度变化率θ̇不变。且一般道路中坡度角较小,则假设θ≈sinθ≈tanθ,cosθ=1。将车辆纵向速度和道路坡度设为系统状态变量,即x=[v,θ]T,则系统微分方程为

将式(2)离散化处理得系统状态转移方程:

式中:T为时间间隔;k为变量在离散系统中的时序序号,对应kT时刻;W为过程噪声。

因为可从CAN总线中直接读取车速数据,所以将系统观测方程设为

式中V为观测噪声。

式(3)和式(4)组成了系统的状态空间方程,其中W k和V k为均值等于零且互不相关的白噪声,其协方差矩阵分别为Q k和R k。根据文献[11]中描述,若通过自适应收缩系数对误差协方差矩阵进行动态调整可加快估计的收敛速度,但对估计精度提升不大,加上本文研究重点不在此,故将Q k和R k值设为定值。

2.2 道路坡度的无迹卡尔曼滤波估计

UKF的核心思想是将无损变换(unscented transform,UT)与标准卡尔曼滤波结合,通过UT变换近似非线性函数的概率密度分布,确定sigma点和对应权重,再进行标准卡尔曼滤波处理。该方法不用求解Jacobi矩阵,线性误差小,精度高[15]。本文中采用的基于UKF的道路坡度估计方法具体步骤如下。

(1)对于状态向量x,根据设置的初始协方差矩阵和非特殊工况前一时刻的状态值,通过UT变换得到(2n+1)个sigma点及对应的期望权重和协方差权重为状态向量维度,取值为2。

通过非线性估计函数f k(x)求取的一步预测值:

再根据和相应期望权重以及协方差权重计算状态向量的一步预测值和相应协方差矩阵P k|k-1:

(2)根据̂k|k-1再次通过UT变换得到对应的sigma点并通过非线性观测函数h k(x),求取的一步预测值:

再根据和相应期望权重,计算观测量的一步预测值:

再由P z͂k和P x͂k z͂k计算卡尔曼滤波增益矩阵:

(3)计算此时刻系统最优估计值,并更新协方差矩阵:

3 特殊工况下道路坡度估计算法

在起步、换挡和制动工况下,车辆纵向动力学模型都不适用,但这3种特殊工况持续时间一般都较短,车辆行驶的距离也较短。而在短距离内,道路坡度的变化规律具有延续性,因此可以根据特殊工况前一段距离的道路坡度数据预测特殊工况下的道路坡度。对于停车工况,因为车辆没有移动,因此以停车工况前一时刻坡度值为整个停车工况期间的坡度值。

对于序列预测问题,许多学者通过应用长短期记忆(long short term memory,LSTM)神经网络取得了不错的效果[16],但LSTM的结构较复杂,训练和预测较耗时,无法应用到对实时性有要求的实车上。Cho等[17]提出了LSTM的一个变体,即GRU,其结构简单,计算速度快,且预测效果与LSTM相当。因此本文在起步、换挡和制动工况下,根据工况前一段路程的距序坡度数据,通过GRU预测道路坡度。

3.1 GRU结构

GRU神经网络单元结构如图3所示。GRU中只有两个门:重置门(reset gate)r t和更新门(update gate)z t。其中r t的作用是决定上一时刻输出h t-1的保存或遗忘程度,而z t的作用是决定将上一时刻的输出h t-1和当前时刻的h't的哪些信息保留到当前时刻最终输出h t中。σ为Sigmod函数,它是两个门的一部分,作用是将数据转换到0~1范围内,0代表信息的完全遗忘,1代表信息的完全保留;tanh是双曲正切函数,作用是将数据转换到-1~1范围内;这两个激活函数的目的是防止梯度消失和梯度爆炸。

GRU的前向传递公式为

式中:W r为输入层在重置门中的权重;U r为上一时刻隐藏层在重置门中的权重;W z为输入层在更新门中的权重;U z为上一时刻隐藏层在更新门中的权重;W h为输入层在tanh激活函数中的权重;U h为上一时刻隐藏层在tanh激活函数中的权重;⊗表示矩阵的Hadamard乘积。

3.2 道路坡度短距预测

如图4所示,本文采用的基于GRU的短距坡度预测方法主要分为数据前处理、GRU网络训练、短距坡度预测和数据后处理4个部分。

当工况识别模块发出“非特殊工况切换为特殊工况”信号时,特殊工况道路坡度估计模块被激活。数据前处理部分首先将系统中存储的时序坡度历史数据转换为随距离变化的距序坡度数据(该历史数据为通过本文方法估计并储存的数据,后续仿真和试验结果表明该方法估计精度较高,保证了历史数据的准确性,此外历史数据的长度需不小于GRU训练数据长度),并通过插值拟合,以设定距离间隔提取工况切换前一段距离的距序坡度(经不断尝试,当距离间隔和提取的总距离分别设置为0.05和10 m时,估计效果最好),再将该序列进行归一化处理。然后,利用处理后的序列训练GRU神经网络。由于无法预知特殊工况内车辆的行驶距离,所以短距坡度预测部分通过训练好的GRU神经网络预测一个较长的序列(后续仿真和试验中,特殊工况持续里程平均值分别为18.70和8.53 m,最大值分别为164.72和19.02 m,因此设置预测的距离坡度总里程为200 m,距离间隔同训练数据为0.05 m)。最后,对预测序列进行反归一化处理得到实际坡度数据,并根据工况切换信号发出时刻对应的累计里程,通过插值拟合提取对应的坡度值并输出。当工况识别模块发出“特殊工况”信号时,数据后处理部分被单独激活,并根据信号发出时刻对应的累计里程,通过插值拟合提取对应坡度值,即该时刻坡度值。

4 仿真与实车试验

4.1 仿真

为调试整个坡度估计系统,也为检验该坡度估计方法的有效性,在Simulink环境中搭建人-车-路模型进行仿真验证。该仿真模型由驾驶员模型、车辆动力学模型和道路模型组成,其中驾驶员模型以PID控制为基础建立,车辆动力学模型由发动机模型、双离合自动变速器模型和行驶阻力模型组成,道路模型由道路坡度和循环工况组成。其中车辆动力学模型中的各项参数采用试验中实车参数,如表1所示。

表1 实车参数

道路模型中的道路坡度为随机选取的一段总里程为14 480 m的坡度数据,如图5所示。随机坡度的最大值为13.370%,最小值为-2.522%。

图6(a)为全面测试本文所提出的道路坡度估计系统,道路模型的循环工况采用更接近国内乘用车驾驶实际情况的CLTC-P循环工况,该循环工况的最大累计里程为14 480 m,并根据该循环工况通过插值拟合将图5中的坡度数据转换为时序坡度数据。为评估本文所提出的基于无迹卡尔曼滤波和门控循环单元的道路坡度估计方法(后面用UKF-GRU替代表示)的估计效果,以同样只依靠车载CAN总线数据的UKF坡度估计方法和在特殊工况下暂停估计的UKFK坡度估计方法作为对照,对3种方法分别进行坡度估计仿真。仿真时,经调试将3种方法中UKF的参数设置为:Q=diag([10-4,10-7]);R=0.01;P=diag([1.4×10-3,10-9])。其中若初始协方差矩阵P设置过大将导致GRU切换为UKF时,坡度估计误差突然变大,为避免这一问题,通过将P设置为一个较小的值(该值是经过不断尝试得来),有效抑制了该情况的发生。而UFK切换为GRU时,GRU会延续坡度值的变化趋势,因此基本不会出现误差突变的情况。

此外,为客观评价3种方法的估计效果,以平均绝对误差MAE和均方根误差RMSE为指标评估3种方法的估计效果,评价指标具体计算公式为

式中:n为坡度序列长度;ei为i时刻的坡度估计值;ai为i时刻的坡度实际值。

仿真结果如表2和图6~图8所示。此外,为更清晰地观察3种估计方法在特殊工况中的表现,将工况识别模块的识别结果通过不同背景色表示。

表2中客观评价指标表明:在整体上,UKFGRU估计精度较其它两种算法有较大提升。图7中,在时间维度下,UKF在特殊工况中表现非常糟糕,在特殊工况下的较大估计误差也影响了其在非特殊工况初始阶段的估计效果。UKFK因在特殊工况中沿用特殊工况前一时刻的坡度值,且除停车工况外的其余特殊工况持续时间一般较短,而停车工况中道路坡度不发生改变,所以在特殊工况下UKFK的估计误差比UKF有明显下降。但也因为其在特殊工况中停止估计的缘故,导致其估计误差也较大,且通常停车工况前是制动工况,因此其在制动工况中的误差也会一直延续到整个停车工况中,显然该估计结果也无法满足实际需求。而UKF-GRU因为可以在特殊工况中根据历史坡度数据预测道路坡度,所以特殊工况下的估计误差与非特殊工况相差不大,与UKFK相比,UKF-GRU在特殊工况中的估计精度有明显提升。图8中,在距离维度下,可以发现特殊工况持续里程大都较短,该情况恰好契合GRU在短序预测中准确度高的特点,所以在特殊工况中应用GRU进行短距坡度预测使UKF-GRU可以很好地跟随坡度变化趋势,有较高的坡度估计精度,而UKF和UKFK则与之成鲜明对比。但GRU的预测精度会随预测长度变长而变差,若特殊工况内平均车速较高,则特殊工况下的行驶里程变大,GRU的估计误差也会变大。该仿真结果验证了本文提出的UKF-GRU坡度估计方法的有效性。

表2 仿真坡度估计结果客观评价指标值

4.2 实车试验

仿真结果验证了UKF-GRU的有效性,为进一步检验该方法在实际道路中的效果,进行实车道路试验。图9(a)为以某型装备7挡DCT变速器的SUV实车平台,通过车辆OBD接口和Vehicle Recorder数据采集设备读取CAN总线数据进行实际道路坡度估计试验。图9(b)为卫星图和实景图,试验道路为由A点(东经106.474 108°,北纬29.573 172°)到B点(东经106.473 973°,北纬29.571 362°)的一段含上下坡的道路。通过水平仪定点测量,并以图9(b)中A点为里程坐标0点,通过插值拟合方法得到该段道路坡度数据,如图9(c)所示,该段道路总里程为238.51 m。

实车试验时,驾驶员驾驶车辆从图9(b)中A点行驶到B点,在行驶过程中要求驾驶员必须有制动动作,其余操作依照驾驶员自身习惯。并且经调试将3种方法中UKF的参数设置为:Q=diag([10-7,10-7]);R=0.01;P=diag([4.6×10-4,4.3×10-6]),同仿真,通过不断尝试设置了一个可以较好抑制UKF初始估计误差的P值。试验过程中CAN总线中读取到的车速、发动机转矩、挡位和制动信号数据,以及通过插值得到的时序坡度数据和通过对车速求导得到的车辆纵向加速度数据,见图10。UKF、UKFK和UKF-GRU在实车试验中的道路坡度估计结果见表3和图10~图12。

表3 实车试验坡度估计结果客观评价指标值

如图10所示,实车试验过程中,试验车最高车速为34.37 km/h,最高挡位为3挡,有1次起步工况、7次换挡工况、3次制动工况和2次停车工况,没有中途停车工况。而UKF-GRU的最大误差为1.73%,且在特殊工况中,UKF-GRU估计误差比UKFK有明显下降。此外,UKF和UKFK在特殊工况中的较大误差对非特殊工况初始阶段的坡度估计效果影响较大,而UKFGRU因为在特殊工况中估计误差较小,所以其估计效果基本不变,具有较高稳定性。图12中,在距离维度下,UKF-GRU可以很好地跟随特殊工况前段里程坡度的变化趋势,因此误差较小。需指出的是,制动工况下UKF的估计误差最大,起步和停车工况次之,而换挡工况下3种坡度估计方法的估计误差都较小。

表3中客观评价指标表明,相比于UKFK,UKFGRU的两个误差评价指标分别降低了24.698%和29.788%。图11中,在时间维度下,UKF在4种特殊工况中估计效果都很差,只在换挡工况中效果稍好,且最大估计误差竟达37.462%,这在车辆控制中是无法接受的。相比于UKF,UKFK虽在特殊工况中明显降低了误差,但其最大误差仍达到了2.541%,

5 结论

针对无外接传感器时,传统坡度估计方法在起步、换挡、制动和停车4种特殊工况下不能很好估计道路坡度的问题,提出了一种适应特殊工况的UKFGRU道路坡度估计方法。仿真与实车试验结果表明,该方法不仅在非特殊工况下通过结合车辆动力学模型和UKF取得了较高的坡度估计精度,在特殊工况下,也可根据历史坡度数据,基于GRU神经网络进行短距坡度预测,即使不外接传感器也可有效降低误差,使车辆在特殊工况下也能获得准确的道路坡度值。本文为车辆控制所需高精度道路坡度数据的获取提供了一个新的可行方法。需指出的是UKF-GRU虽极大地克服了特殊工况给坡度估计带来的影响,但若特殊工况的累积里程过大或坡度变化规律不稳定,其估计精度也将随之降低。

猜你喜欢
卡尔曼滤波坡度动力学
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
《空气动力学学报》征稿简则
小天体环的轨道动力学
具有Markov切换的非线性随机SIQS传染病模型的动力学行为
脉冲星方位误差估计的两步卡尔曼滤波算法
Aqueducts
基于远程监控的道路坡度提取方法
放缓坡度 因势利导 激发潜能——第二学段自主习作教学的有效尝试
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪