基于改进型ELM的熟练驾驶员行车轨迹拟合方法研究
2021-12-11江昕炜华一丁
江昕炜,陈 龙,华一丁,徐 兴
(1.江苏大学汽车工程研究院,镇江212013;2.江苏大学汽车与交通工程学院,镇江212013)
前言
随着汽车电动化、智能化技术的快速发展及与感知、机器视觉等高新技术快速融合,智能汽车(或无人驾驶汽车、自动驾驶汽车)已经成为世界汽车工程领域的研究热点和汽车产业增长的新动力[1-2]。智能汽车在转向操控品质方面尽量接近人类驾驶员的转向操控水平,也称“仿人转向控制”,是智能汽车转向控制系统的研究热点。Kondo等[3]于1953年首先提出相关驾驶员的概念,建立了基于单点预瞄的驾驶员模型,其本质是基于控制理论原理将车辆轨迹横向偏差逐渐减小到零,从而实现转向操作。基于“预瞄-跟随”理论的驾驶员模型是由郭孔辉院士及其团队率先在国内提出并应用的,将驾驶员模型分为补偿跟踪型和预瞄跟踪型两类[4]。这两类模型中驾驶员的行为特征依靠的是传递函数的反馈环节进行近似模拟,其理论并没有考虑真实驾驶员的转向习惯和转向特征。
随着智能控制方法不断涌现,出现了结合智能控制的新型驾驶员模型。其中,具有代表性的方法是使用非线性理论无限逼近真实驾驶员,将神经网络和模糊规则算法应用到类似驾驶员模型的构建过程中。Rix等[5]根据汽车转向道路实车试验,利用模糊数学理论模拟驾驶员转向行为并建立相应模型,该模型综合考虑了预瞄环节和补偿环节两个方面的控制问题。Cao等[6]基于预瞄最优理论结合简单人工神经网络(POSANN)构建驾驶员模型,在考虑摄动动力学和跟踪误差情况下建立了新的驾驶员-车辆系统模型,新模型可以提高实时路径跟踪性能。张文明等[7]建立基于最优预瞄控制的人工神经网络驾驶员模型,在直线和曲线路径跟踪试验中体现良好的无人驾驶能力。
传统驾驶员模型的研究往往只适用于某些典型工况,因此,前期相关研究局限性较为明显。以适应多样性复杂环境、提升在线学习能力和实时调整能力为目标的高智能化成为当前自主驾驶研究热点。MacAdam[8]首次提出基于预测控制的驾驶员模型的概念。之后,Cole等[9]提出基于非合作纳什均衡模型预测控制的驾驶员模型,在保证跟踪精度的前提下有效降低控制器CPU的计算时间。Ungoren等[10]提出一种基于自适应预测控制框架下的侧向预瞄驾驶员模型。Prokop[11]提出基于模型预测在线优化的驾驶员模型。
由于以传统BP神经网络为代表的非线性拟合算法存在一些缺陷(如训练参数需人为设定,且易陷入局部最优),本文中针对类似传统BP神经网络等非线性算法在拟合驾驶员行车轨迹方面的不足,在传统极限学习机的基础上研究提出一种改进的方法,对熟练驾驶员的行车轨迹进行非线性拟合,在普通左/右转、掉头、车道保持和换道4种典型转向工况下进行了分段多项式表达的求解,基于极限学习机的非线性拟合算法,提出了一种卡尔曼滤波优化的策略,对已有极限学习机进行优化,在快速学习的基础之上,进一步提高学习的准确性。
1 车辆行驶轨迹的多项式拟合
1.1 驾驶员与试验车辆的选择
由于驾驶培训学校的教练长期从事驾驶教学和驾驶实践工作,因此其驾驶水平是相对较好的,可以近似认为是熟练驾驶员。本文中选择5名不同驾龄、不同性别的驾驶学校教练作为驾驶员,如表1所示。在实际车辆试验中,设计了普通向左/右转向、掉头转向、车道保持、换道等4种典型的转向工况,试验过程中车辆的速度是确定的,即由熟练驾驶员保持住某一稳定的车速下进行转向试验。试验选用上海通用GL8、斯柯达Octavia、本田雅阁和上汽MG 4款乘用车作为试验车辆,如图1所示。
图1 试验车辆
表1 驾驶员相关信息
为准确描述熟练驾驶员在典型转向工况下的转向操作特征,选择两方面的特征参数:驾驶员转向特征参数和车辆动力学参数。驾驶员转向特征参数包括:转角信号、转矩信号和转角速度信号。车辆动力学参数包括:横摆角速度信号、侧倾角信号和侧向加速度信号。各典型转向工况的试验组数和试验车速如表2所示。
表2 试验组数与试验车速
1.2 普通右转/左转工况轨迹拟合
熟练驾驶员在驾驶车辆时,会根据车辆和环境信息规划出一条最优的行车路径,然后操作转向盘、加速踏板或制动踏板,使车辆沿着规划好的路径平稳行驶。虽然自动驾驶车辆可以根据相关信息使用一些先进算法(如贝塞尔曲线、样条曲线等)进行路径规划,但所生成的路径与实际驾驶员行驶的路径有很大差别,这就有可能使自动驾驶车辆的舒适性变差。通过学习熟练驾驶员在不同工况下的行车路径,使无人驾驶车辆可以像熟练驾驶员一样操控车辆平稳地行驶。
在普通右转/左转工况下影响驾驶员行车轨迹的主要因素为:车速、驾驶风格、道路曲率和预瞄距离。普通右转/左转工况下的车辆行驶轨迹如图2(a)所示,为了准确表示熟练驾驶员的转向特性,采用分段多项式对普通右转/左转工况下的车辆行驶轨迹进行拟合,第1段和第2段拟合曲线如图2(b)和图2(c)所示,R²分别为0.994 2和0.993,接近1,说明拟合精确度很好。
图2 普通右转工况下轨迹拟合
1.3 掉头工况轨迹拟合
在掉头工况下影响驾驶员的行车轨迹的主要因素为:车速、驾驶风格、道路曲率和预瞄距离。掉头工况下的车辆行驶轨迹如图3(a)所示,为了准确表示熟练驾驶员的转向特性,采用分段多项式对掉头工况下的车辆行驶轨迹进行拟合,第1段和第2段拟合曲线如图3(b)和图3(c)所示。R²分别为0.984 4和0.992 7,接近1,说明拟合精确度很好。
图3 掉头工况下轨迹拟合
1.4 车道保持工况轨迹拟合
在车道保持工况下影响驾驶员的行车轨迹的主要因素为:车速、驾驶风格和预瞄距离。车道保持工况下的车辆行驶轨迹如图4所示,由于车道保持工况的车辆行驶轨迹较简单,采用一次多项式就可以进行很好拟合,R²为0.992 1,非常接近1。
图4 车道保持工况下轨迹拟合
1.5 换道工况轨迹拟合
在换道工况下影响驾驶员行车轨迹的主要因素为:车速、驾驶风格、侧向距离和预瞄距离。
换道工况下的车辆行驶轨迹如图5(a)所示,为了准确表示熟练驾驶员的转向特性,采用分段多项式对换道工况下的车辆行驶轨迹进行拟合,第1段和第2段拟合曲线如图5(b)和图5(c)所示。R²分别为0.993 1和0.981 7,接近1,说明拟合精确度很好。
图5 换道工况下轨迹拟合
1.6 分段函数衔接点处理
普通右转/左转工况、掉头工况以及换道工况都可以采用分段函数进行拟合,其路径函数表达式依次表示为
车道保持工况的路径函数表达式为
分段轨迹的衔接问题直接影响着车辆行驶轨迹拟合的准确性,伪谱法[12]的优点在于采用全局正交多项式逼近衔接处的状态量和控制量,只需引入切换点处的相应约束条件即可处理分段轨迹的衔接问题。假设一条由两段路径组合而成的轨迹,在衔接点处的状态量和控制量的表达形式为
式中:ζ为状态量;u为控制量;φ为车辆航向角;v为车辆速度;δ为转向盘转角;t0(1)为第1阶段路径开始时刻;te(1)为第1阶段路径终止时刻;t0(2)为第2阶段路径开始时刻;te(2)为第2阶段路径终止时刻。
由于伪谱法需要将时间区域转换到[-1,1]上,因此需要对车辆行驶轨迹阶段时间区域进行变换,将时间区域分成多个子区间,再将每个子区间分别转换为非线性规划问题(NLP)求解。因此,选取K-1个节点,将最优控制问题在t∈[t0(2),te(2)]上分成K个子区间,即t0(2)<t1<…<tk=te(2),由于连接点位置的选择是一个迭代的过程,因此t0(2)值的选取也是一个迭代过程。
式中γ为给定的时间频率。
对于任意子区间k,通过式(6)将时间区域由t∈[tk-1,tk]转换到τ∈[-1,1]。
hp自适应伪谱法在每次完成优化计算后都会检查离散点的数目与分布情况,当某一离散区间的计算精度不满足要求时,由hp自适应方法对该区间内的配点数h和全局插值多项式的维数p进行自适应调整。然后进行下一次的优化计算,直至残差满足要求为止。其算法流程如图6所示。
图6 自适应伪谱法计算流程
2 权重实时更新的极限学习机
2.1 极限学习机原理
为解决传统神经网络算法(如BP神经网络)学习量大、训练参数需人为设定、容易陷入局部最优等弊端,新加坡南洋理工大学黄广斌教授率先提出极限学习机算法[13],在设计相应算法时,只需对隐含层节点数进行改变,无须对网络输入权值和偏置进行调整,就会得到最优解,图7给出了极限学习机的结构组成,极限学习机算法的学习速度较快且泛化能力较强[14]。
图7 极限学习机原理结构图
若数据从输入端输入x,则L个隐结点的输出函数可以表示为
式中:βi为连接第i个隐结点的输出权;gi(x)为第i个隐结点的输出函数。隐结点有不同的类型,常用的主要有以下5种:
(1)附加隐结点函数gi(x)=G(ai⋅x+bi)
(2)RBF隐结点函数gi(x)=G|(bi⋅x-ai)|
(3)S型隐结点函数
(4)Hardlimit型隐结点函数
(5)多元二次隐结点函数
式中g为激励函数,表示向量内积。作为单隐层前馈神经网络,其显著结果个数与激励函数的结点个数有关,若任意非线性激励函数的结点数为N,则单隐层前馈神经网络能够依概率产生N个显著结果[15]。单隐层前馈网络可以随机地生成隐结点,在本质上与统一的学习机相同,任意有界分段函数可以作为附加结点的激励函数,而RBF的激励函数则可以是任意可积的分段连续函数[14]。由Bartlett[16]理论可知,极限学习机输出权的获取可以根据最小权的方法,且采用最小范数进行最小误差解的计算,从而有效提高了其通用性能。当显著训练样本(xi,yi)个数为N时,隐结点个数为L的极限学习机的输出为
式中:h(x)为隐层的输出向量,隐层的结点参数(ai,bi)(i=1,…,L)是随机分配的,连接第i个隐结点到输出结点的输出权重βi。
通过分析,这个线性系统的矩阵表达式为
则有
根据输入xi,有隐层输出网络矩阵H,而第i行代表隐层的输出向量。根据所有的输入(x1,…,xN),第i列代表第i个隐结点的输出。通过求解以下方程组的最小二乘解获得
β̂:式中H†为H广义伪逆雅可比矩阵,而最小范数β的最小平方解具有唯一性,使其训练误差达到最小。假定隐结点数L和训练样本数N,若存在L=N,则矩阵H是方阵且可逆。一般情况L<N,因此釆用广义逆矩阵求解。
2.2 基于卡尔曼滤波优化的极限学习机
ELM的输出权重估计问题一般是利用普通的最小二乘法(least squares,LS)进行解决。但是,LS估计器会在有多重共线性的情况下产生不良预测,导致较大方差,降低模型的稳定性,从而使学习的准确度降低[17],仅仅通过增加附加参数来优化输出权重,并没有从根本上解决问题。为解决传统ELM多重共线性的问题,提出利用卡尔曼滤波(Kalman filter,KF)算法对ELM的输出权重进行实时更新,并通过调整其方差来实现,即基于卡尔曼滤波优化的极限学习机(Kalman filter extreme learning machine,KFELM),该算法是基于卡尔曼滤波器的工作原理来处理多重共线性问题且实时调整估计状态方程的方差。
针对输出权重矩阵设计了滤波环节,此过程在权重更新阶段循环计算,随后,估计值通过滤波环节回归系数进行调整。
卡尔曼滤波算法可以简单概括如下。
其中预测阶段包括:
更新阶段包括:
式中:vt为t时刻下测量残差;St为t时刻的测量预测协方差;Kt为卡尔曼增益,它决定在t时刻预测阶段需要调整量的大小;Qt和Vt分别为状态转移和测量方程在t时刻的协方差。卡尔曼滤波算法的迭代过程如图8所示。
图8 卡尔曼滤波迭代流程
这里所提出的KFELM算法的输出权重更新算法可以概括如下。
步骤1:初始化阶段,得出t时刻的初始输出权重β,利用最大似然估计公式,即
来估计转移矩阵A和协方差矩阵vε和vω,这些参数是卡尔曼滤波器的重要组成部分,将用于后续步骤中,用来调整增益矩阵。
步骤2:给出t+1时刻的训练样本:
然后,利用式(22)计算Ht+1:
接着,利用式(23)计算Tt+1:
步骤3:对于t+1时刻的权重估计值βt+1,利用式(24)进行计算:
用卡尔曼滤波器的递推方程对αt进行滤除,用式(25)和式(26)状态方程估计α̂t+1|t和R̂t+1|t:
步骤4:利用式(27)计算t+1时刻的观测输出矩阵
步骤5:计算卡尔曼增益Kt+1,用于计算线性最小误差方差的估计值:
步骤6:利用式(29)更新αt+1|t+1的状态值:
步骤7:更新状态协方差矩阵Rt+1|t+1:
步骤8:根据状态空间模型的递归最小二乘解计算步骤。重复步骤2~步骤7,直到顺序训练数据结束。
步骤9:将α指定为由卡尔曼滤波器完成的回归结果系数。
步骤10:最后,根据式(31)线性方程得到估计的调整输出权重矩阵:
3 基于KFELM的车辆行驶轨迹非线性拟合
由于驾驶环境的多样性和复杂性,同时熟练驾驶员操控车辆进行转向本身就是一个非常复杂的驾驶过程。建立完善的数学模型去模拟驾驶员的转向行为是很难实现的。而良好的非线性逼近能力、快速学习及良好的泛化性能正是KFELM算法的优点,因此该算法适用于熟练驾驶员行车轨迹的拟合。通过KFELM算法的大量学习,训练出较为准确的车辆行驶轨迹。
由于实车试验的数据量较少,会影响KFELM算法的训练精度,因此本文中利用UC-win/Road三维交通实时虚拟仿真软件以及驾驶模拟仪进行大量模拟驾驶仿真试验,目的是对实车试验数据量进行补充。驾驶员利用驾驶模拟仪采集行车轨迹数据的过程如图9所示。
图9 驾驶模拟仪采集数据平台
所有的数据学习和测试都是在安装有MATLAB软件和具有2.40 GHz,6 GB RAM的计算机上进行的。实车试验数据与通过驾驶模拟仪采集到的数据相加,总共采集到的试验数据组数如表3所示,其中训练、测试数据按5∶1的比例从总数据样本中随机选取。其中,普通右转/左转工况的输入为车速、驾驶风格、道路曲率和预瞄距离,输出为a2、a1、a0;掉头工况的输入为车速、驾驶风格、侧向距离和预瞄距离,输出为b2、b1、b0;车道保持工况的输入为车速、驾驶风格和预瞄距离,输出为d1、d0;换道工况的输入为车速、驾驶风格、侧向距离和预瞄距离,输出为c2、c1、c0。在开始训练之前,所有的输入数据都需要归一化到[0,1]的范围内。训练过程中,所有的输出数据都需要标准化处理,使其保证在[-1,1]的范围内,KFELM算法主要计算隐层输出矩阵H的广义伪逆雅可比矩阵H†。
表3 各工况训练和测试组数
为便于分析KFELM算法在各种工况下的运行结果,分别采用极限学习机(ELM)和传统的神经网络算法BPNN对车辆行驶轨迹进行拟合,各种算法的训练精度、测试精度和学习时间数据对比如图10~图13所示。将各种算法的训练精度、测试精度和学习时间定量地表示出来,如表4所示。
表4 不同算法在各种工况下的性能比较
图10 为普通右转工况下不同算法效果比较。在普通右转/左转工况下,由于试验数据组数相比于其他3种工况较多,因此设置隐层神经元个数为20,基于KFELM算法的训练精度和测试精度分别为96.01%和96.69%,明显优于基于ELM算法的85.12%和86.06%以及基于BPNN算法的39.77%和42.5%,同时在学习速度方面,基于KFELM算法仅用时0.081 3 s,明显优于基于ELM算法的0.136 1 s以及基于BPNN算法的0.218 7 s。该KFELM算法学习速度非常快,体现出了ELM算法的特点,同时,在ELM算法的基础之上进一步提高了算法的训练精度和测试精度,较好地实现了普通右转/左转工况下的车辆行驶轨迹的拟合。
图10 普通右转工况下不同算法效果比较
图11 为掉头工况下不同算法效果比较。在掉头工况下,由于试验数据组数相比于其他3种工况较少,因此设置隐层神经元个数为5,基于KFELM算法的训练精度和测试精度分别为94.05%和94.04%,同样优于基于ELM算法的83.96%和81.4%以及基于BPNN算法的36.93%和37.06%,同时在学习速度方面,基于KFELM算法仅用时0.074 1 s,明显优于基于ELM算法的0.190 2 s以及基于BPNN算法的0.237 3 s。可见,KFELM算法较好地实现了掉头工况下车辆行驶轨迹的拟合。
图11 掉头工况下不同算法效果比较
图12 为车道保持工况下不同算法效果比较。在车道保持工况下,由于试验数据组数相对较少,因此设置隐层神经元个数为10,基于KFELM算法的训练精度和测试精度分别为96.85%和97.35%,同样优于基于ELM算法的86.25%和86.17%以及基于BPNN算法的42.47%和42.12%。同时在学习速度方面,基于KFELM算法仅用时0.091 4 s,明显优于基于ELM算法的0.196 7 s以及基于BPNN算法的0.229 2 s。可见,KFELM算法较好地实现了车道保持工况下车辆行驶轨迹的拟合。
图12 车道保持工况下不同算法效果比较
图13 为换道工况下不同算法效果比较。由于车道保持工况的试验数据组数相对较少,因此设置隐层神经元个数为10,基于KFELM算法的训练精度和测试精度分别为95.59%和95.23%,同样优于基于ELM算法的84.62%和83.94%以及基于BPNN算法的39.14%和39.69%,同时在学习速度方面,基于KFELM算法仅用时0.090 3 s,明显优于基于ELM算法的0.142 7 s以及基于BPNN算法的0.218 7 s。可见KFELM算法较好地实现了换道工况下车辆行驶轨迹的拟合。
图13 换道工况下不同算法效果比较
4 结论
(1)用分段多项式表达右转、掉头、车道保持和换道等4种典型转向工况下熟练驾驶员的行车轨迹,采用自适应伪谱法处理分段轨迹的衔接问题,提高车辆行驶轨迹拟合的准确性。
(2)基于极限学习机的非线性拟合算法,提出了一种卡尔曼滤波优化的策略,通过调整方差,对ELM的输出权重进行实时更新,设计了针对输出权重矩阵的滤波环节,解决多重共线性问题。
(3)对4种工况进行了拟合试验。结果表明,该方法对熟练驾驶员的行车轨迹进行非线性拟合,可以保证在快速学习的基础上,进一步提高学习的准确性,较好地实现了4种典型工况下车辆行驶轨迹的拟合。