双点预瞄式智能车大曲率路径的横向控制
2019-05-23刁勤晴张雅妮朱凌云
刁勤晴,张雅妮,朱凌云
(重庆理工大学 计算机科学与工程学院, 重庆 400054)
智能车在减少交通事故、交通堵塞和环境污染等问题上具有突出的优势,受到了国内外专家学者的高度关注[1-4]。目前,在智能车的环境感知、信息融合、路径规划及运动控制等方面,已有大量研究,并取得了较多的理论与应用成果[5-8]。运动控制是智能车的核心部分之一,是指车载控制器依据当前周围环境和车体位移及姿态等信息,按照一定的逻辑做出决策,继而分别向驱动/制动及转向等执行机构发出控制指令[9]。按照不同的要求与目标,智能车的运动控制可分为两类:①将跟踪预期巡航速度作为目标的运动控制称为纵向控制;② 以跟踪期望路径为目标的运动控制称为横向控制。
为了确保车辆对道路的稳定准确跟踪,现有的横向控制研究中大多数将速度视为恒值,采用经典PID、最优控制、滑模、预测、模糊等控制策略,实现了车辆对直道及小曲率弯道(弯道半径不小于100 m)的较高精度跟踪[10-12]。然而,对于大曲率道路(弯道半径不大于50 m),例如城市道路及山区公路,上述相关文献中所提出方案的道路跟踪精度不高。
针对大曲率道路的横向控制问题,文献[13]提出了一种基于旋转投影双切线的弯道曲率检测方法,并给出了转向角的控制策略。文献[14]分析了在大曲率弯道下驾驶员的转向操作规律,设计了一种基于模糊逻辑的双并联控制策略。文献[15]建立了一种基于两点预瞄的智能驾驶员模型,实现了不同横向偏差下前轮转向角的自适应调节。文献[16]提出了一种采用三预瞄点检测方法的智能车横向控制策略,通过3个预瞄点实时获取道路的曲率并据此调节转向角。
上述4种控制方案均能实现车辆在大曲率弯道下的跟线行驶。然而,经过研究发现,上述跟踪方式只要检测到预瞄点的道路曲率发生变化,控制系统即刻做出转向响应。对于预瞄距离比较大的情况,会造成转向机构过早响应的问题。另外,不管是直道还是弯道路况,现有方案均基于恒定的车速进行控制。然而,在行车过程中直道的车速比较高,如果以直道的车速跟踪大曲率弯道,那么就会导致车辆出现较大的离心力从而引发较大幅度的侧倾。
为了避免智能车在大曲率弯道中转向机构过早响应,提高车辆的行驶安全性及跟线精度,保证弯道中的车速在预定的控制范围内,本文提出了一种双点预瞄式智能车大曲率路径的横向模糊控制方法,建立了车辆控制系统模型、动力学模型及视觉预瞄模型,介绍了双预瞄点的调节策略及其参数设计方法,在此基础上给出了两个预瞄距离的确定方法以及二维模糊控制器的设计方法,并采用遗传算法优化了模糊控制器的控制规则。
1 智能车控制系统模型
本文以某辆改装过的后驱式电动汽车作为试验平台,在其原有的组成和结构基础上配备了多种功能模块,如图1所示。根据各个模块的功能,将智能车控制系统分为感知层、决策层及执行层[9]。其中,感知层由各类位置、角度、视觉及姿态传感器组成,主要用以检测车辆自身及环境信息;决策层包括车载工控机及相关模块,用以将各类传感信息融合,并按照设定的逻辑制定出相应的控制策略;执行层主要包括转向、驱动及制动伺服机构,用以执行决策层的控制指令。
本文构建了智能车的横向控制系统(如图2所示)。预瞄距离调节模块的作用是依据车辆当前的位姿和道路信息来动态调节双预瞄点的预瞄距离;视觉预瞄模型可获得车辆在预瞄点处相对于目标路径的横向偏差yL和方位角偏差εL;横向模糊控制器采用2输入2输出的结构,输入变量为2个偏差yL和εL,输出变量为前轮转角δf和车辆受到的驱动/制动力矩Te。
图1 实验样车
图2 智能车横向控制系统框图
1.1 车辆动力学模型
为了简化分析,忽略车辆在垂向上的俯仰、绕纵向的侧倾以及左右轮胎侧偏特性的差异,仅考虑纵向、横向及横摆3个自由度,车辆的简化模型如图3所示。图中:υx和υy分别为车辆的纵向及横向速度;φ、δf和β分别为横摆角、前轮转向角及质心侧偏角;lf和lr分别为质心与前轮和后轮的间距;αf和αr分别为前后轮的侧偏角;Fyf和Fyr、Fxf和Fxr分别为前后轮胎的侧向力和纵向力。
图3 车辆简化模型
根据牛顿力学方程,由图3可建立车辆的动力学微分方程,如式(1)所示。
(1)
式中:kf和kr分别为前后轮胎的侧偏刚度;Iz和m分别为车辆的转动惯量及质量;fR、cx、cy分别为滚动阻力系数、纵向和横向的空气阻力系数;rω和Te分别为车轮半径及驱动/制动力矩。
1.2 视觉预瞄模型
本文的样车由安装在车辆上方的CCD摄像机来采集前方道路信息,利用图像处理算法得到车辆在预瞄点LA1处的道路曲率、横向偏差和方位偏差以及预瞄点LA2处的道路曲率。假设样车的质心与视觉传感器安装点重合,车辆与目标路径的几何关系如图4所示。
图4 车辆及目标路径的几何关系
图4中:Xc-Yc为以质心为原点的参考系;LA1和LA2为2个预瞄点,预瞄距离分别表示为L1和L2,且两者间距为ΔL;κ1和κ2为对应预瞄点的道路曲率;yL和εL分别为在预瞄点LA1处Xc轴与目标路径的横向偏差、预瞄点LA1处Xc轴与目标路径切线的夹角。另外,前轮转角和方位角偏差均以Xc轴为起始方向,逆时针为正,顺时针为负;当目标路径处于Yc轴正半平面时,yL为正,反之为负;Xc轴的正方向为车辆行驶的参考方向。
根据车辆的运动学方程,结合图4可得到视觉模型:
(2)
联合式(1)(2),即可得到车辆控制系统的数学模型,其中系统的状态变量为υx、υy、φ、yL及εL,控制量为δf和Te。
1.3 双点预瞄策略
本文采用LA1和LA2两个预瞄点来获取前方道路信息。检测预瞄点LA1的作用是获取前方道路的曲率κ1以及车辆相对于目标路径的横向偏差yL及方位角偏差εL,进而将偏差作为横向模糊控制器的输入量;预瞄点LA2的位置相对较远,作用是实时检测LA2点的曲率并结合LA1点的曲率来调节预瞄距离L1和L2。
为说明2个预瞄距离的取值方法,设定车辆先行驶在直道上,行驶一段路程后进入弯道,最后驶出弯道,其间2个预瞄点的道路曲率κ1和κ2共有4种组合方式,κ0为设定路径的曲率。各个路段的预瞄距离与道路曲率如图5所示。
图5 预瞄距离与设定道路曲率的关系
在s0~s1路段,κ1和κ2始终为零,表明车辆行驶在直道。对于这类情况,L2依据关系L2=L1+ΔL选取,预瞄距离L1则根据车速取值,L1与车速的关系为:
(3)
式中:Ls_max、Ls_min分别为直道路况下预瞄点LA1的最大和最小预瞄距离;υ为车辆当前的速度;υmax和υmin分别为最大和最小车速。这4个参数共同决定了系数a1和a2。其中,Ls_max和Ls_min的取值需要考虑控制系统的阻尼特性及超调响应、视觉系统的可视范围[9]。本文中,Ls_max=15.5 m,Ls_min=4.5 m,υmax=16 m/s,υmin=7 m/s,a1=1.22,a2=-4.04,ΔL=2 m。
当车辆在s1处,κ1=0且κ2≠0,说明道路前方存在弯道。此种情况下,为了避免L1过大而导致控制器过早响应,L2保持在s1处的取值,而L1根据曲率κ2进行调整,L1与κ2的关系表示为:
(4)
与式(3)类似,式(4)中Lc_max、Lc_min分别为弯道路况下预瞄点LA1的最大和最小预瞄距离,两者与Ls_max和Ls_min类似,同样要依据车辆的控制系统及视觉系统的特性来进行取值;κ2_max和κ2_min分别为预瞄点L2A检测到的最大和最小曲率。对于本文,Lc_max=4 m,Lc_min=2 m,κ2_max=0.05 m-1,κ2_min=0.01 m-1,b1=-50,b2=4.5。
在s2~s3路段,κ1和κ2始终不为零,说明车辆行驶在弯道。预瞄距离L1同样依据式(4)取值,同时L2=L1+ΔL。当车辆在s3处,κ1≠0且κ2=0,表明车辆即将驶离弯道进入直道。对于这种情况,L1和L2的取值保持在s3处的取值不变,直至车辆行驶至s4处。
2 模糊控制器
模糊控制能克服非线性系统的参数不确定性,具有不依赖于精确的系统数学模型且鲁棒性高等特点,能够模拟驾驶员的操纵行为,因而适用于车辆的运动控制系统[9]。模糊控制器结构主要包括模糊化、隶属度函数、规则库、模糊推理及解模糊化。
2.1 模糊化及隶属度函数
为了降低控制算法的复杂度从而获得转向及驱动/制动机构的快速响应,本文模糊控制器的结构为2维输入2维输出,横向偏差yL和方位角偏差εL作为控制器的输入变量,输出变量为前轮转角δf和驱动/制动力矩Te。当Te对车辆起到牵引力的作用时,Te为正值,反之为负值。
根据样车的特性参数及实际跟线效果,将yL和εL的基本论域设置为[-1.2 m,1.2 m]、[-30°,30°],而δf和Te分别为[-34.5°,34.5°]、[-220 N·m,220 N·m]。输入变量和输出变量的模糊集论域均为[-3,3],且输入变量的量化转换式及输出变量的比例因子kz分别为:
(5)
(6)
其中:xin和xc、yout和yc依次对应输入变量的精确值和模糊值、输出变量的精确值和模糊值,Xup和Xlow、Yup和Ylow依次为输入变量及输出变量基本论域的上下限值。
为了确保控制的精度和灵敏性,以及控制器的响应速度,输出变量的模糊子集包含了7个语言变量{NB,NM,NS,ZE,PS,PM,PB},每个变量的含义分别为“负大”、“负中”、“负小”、“零”、“正小”、“正中”、“正大”;输入变量的模糊子集语言变量设置为{NB,NS,ZE,PS,PB},且输入与输出模糊子集的隶属度函数采用三角函数和梯形函数,如图6所示。
图6 输入与输出变量的隶属度函数
2.2 模糊规则库
控制规则的确定是模糊控制器设计的关键,它直接影响控制器的性能。本文以若干名驾驶员作为对象,操纵样车在实际路道中行驶,并记录道路信息及车辆的状态数据,继而得到横向偏差和方位角偏差与前轮转角及驱动/制动力矩的关系。在此基础上建立模糊控制规则库R={R1…R25},其中每条规则均采用“IF-THEN”判断语句,即
Ri:IFyL_cisYWiandεL_cisEWi
THENδf_cis ΔWiandTe_cisTWi
其中:YWi、ΕWi、ΔWi、TWi分别为yL_c、εL_c、δf_c和Te_c的模糊集语言变量。横向模糊控制器的25条控制规则如表1所示。
2.3 模糊推理及解模糊化
综合考虑推理的运算时间及精度,所设计的控制器采用了Mamdani模糊推理法。经模糊推理之后,还需要对控制器输出的模糊量进行解模糊化。为了获得相对连续的控制输出,本文选择了直观且运算量相对较小的重心法[17]。该方法以隶属度函数及其横轴所包围面积的中心横坐标作为模糊量的精确值,即
(7)
式中:zi表示模糊控制器的输出变量在其论域中的数值;μzi为zi的隶属度函数取值;z表示控制器的输出经过解模糊化后的精确值。
表1 控制器的模糊规则
3 模糊控制器的遗传优化
基于驾驶员实地行车试验及操控数据,经过反复试凑可建立初始的模糊规则库。由此得到的初始规则库能实现较好的跟线效果,但存在一定的主观性。为使模糊控制器的控制规则达到全局最优,进一步提高控制的精度和平稳性,结合遗传算法的全局优化特性,本文在初始规则库的基础上采用遗传算法进行了模糊控制规则的优化。
3.1 编码
为了提升运算效率和精度,同时避免产生不可行解,本文采用十进制整数对控制规则进行编码。由于模糊控制器为2维输入2维输出的结构,2个输入均有5种语言变量,因而控制规则Ri(i=1,…,25)相对应的1维染色体为50位数的码串,即(rΔ1,rt1,rΔ2,rt2,…rΔ25,rt25)∈[1,7]。其中,编码rΔi(i=1…25)的数值1~7依次对应于输出变量δf_c的模糊子集{NB,NM,NS,ZE,PS,PM,PB};编码rti(i=1,…,25)则对应于输出变量Te_c的模糊子集。如表1所示的控制规则对应的染色体码串可表示为(1,1,2,3,2,2,2,1,1,1,… 6,1,7,1)。
3.2 适应度函数
本文中控制策略的优化目标是:在确保横向偏差和方位角偏差最小的情况下,采用尽可能小的转向角以获得较好的驾驶平顺性,同时采用尽可能大的驱动/制动力矩来提升行驶和制动速度。针对该目标,本文采用的适应度函数为
(8)
式中:α1、α2、α3、α4为对应项在适应度函数中的权重,且α1=α2=0.35,α3=0.2,α4=0.1。适应度函数的数值反映了控制规则的优越性,适应度数值越高,说明采用该控制规则的系统响应特性越好。
3.3 遗传操作
遗传操作模拟了生物基因遗传的做法,对群体中的个体依据个体适应度的大小按照一定的概率进行操作,从而实现优胜劣汰的进化作用。本文采用选择、交叉与变异3种遗传算子[17]。
选择算子的作用是从当前代的群体中选出优良的个体,并将其复制到下一代群体中。本文采用轮盘赌方法,该方法首先计算群体中所有个体适应度的总和,再分别计算每个个体的适应度所占的比例,最后以该值作为对应个体的选择概率Psi。对于具有M个个体的种群,个体i被选中的概率Psi见式(9),式中i=1,2,…,M,Fi为个体i的适应度。
(9)
交叉又称重组,是产生新个体、增大搜索空间的重要手段。本文的交叉算子采用两点交叉法,该方法在相互配对的2个个体编码串中随机设置2个交叉点,然后依据交叉概率Pc交换2个交叉点之间的部分染色体,如图7所示。
图7 双点交叉遗传操作的示意图
变异运算是产生新个体的辅助方法。本文的变异算子采用基本位变异方法,该方法首先对个体编码串以变异概率Pm随机设定1位基因座,然后该基因座的基因值用其他等位基因值来代替。
遗传算法的具体流程如图8所示。首先,初始化种群个体数M=100,遗传代数n=100,交叉概率Pc=0.7,变异概率Pm=0.1;进而,建立生成初始种群,依据前述的模糊控制器设计方法来建立模糊推理系统并导入Simulink文件;继而计算出每个个体的适应度值Fi、执行选择、交叉及变异操作,直至达到设定的遗传代数后获得最优的控制规则。优化后控制器的输入与输出变量的曲面见图9、10。
图8 遗传算法流程
图9 yL_c、εL_c和输出变量δf_c的关系曲面
图10 yL_c、εL_c和输出变量Te_c的关系曲面
4 仿真实验与验证
为了验证控制器的有效性及准确性,根据前述的车辆控制系统模型和控制器设计方法,以及表2的样车参数,本文在Matlab/Simulink平台上搭建了系统的仿真模型。其中,目标路径共包含4个弯道,弯道1和弯道2的曲率分别为-0.01 m-1和0.02 m-1,弯道3和弯道4的曲率相对较大,分别为-0.04 m-1及0.05 m-1,目标路径如图11所示。
表2 样车主要参数
图11 目标路径
为了分析对比遗传算法优化前后控制系统对偏差的响应速度,设定车辆相对于目标路径的初始横向偏差和方位角偏差分别为0.5 m和10°,车速为10 m/s,可得到yL和εL的响应曲线(见图12)。由图12(a)可见,控制器消除横向偏差的响应时间由优化前的1.3 s减小为0.7 s,而且优化后的超调量仅为优化前的20%;由图12(b)可见,优化后控制器对方位角偏差的响应过程更加迅速,且变化相对平缓。
图13表示车辆在180~280 m的行程中2个预瞄距离L1和L2的调节过程,该行程由2个弯道及1个直道组成。由图可以看到:在路段1、路段2和路段3中,2个预瞄点的曲率κ1和κ2均相等,而且都满足关系L2=L1+ΔL,其中:路段2为直道,L1和L2呈线性增加的趋势;路段1和路段3为弯道,而且路段1的曲率小于路段3,2个路段对应的预瞄距离分别为4 m和3.5 m。
另外,在图13的201.2~203.1 m路段中,κ1=-0.01 m-1,κ2=0,说明车辆将驶离弯道进入直道,在此期间L1和L2均保持在201.2 m处的数值不变;在247.5~253.7 m路段,κ1=0,κ2=0.02 m-1,表明车辆将由直道转入弯道,此间L2保持数值9.6 m不变,而L1由7.6 m减小到3.5 m后保持在该值。此结果与预瞄距离的理论设计相吻合,表明所设计的控制系统的预瞄距离能够依据道路曲率和车速做相应的调节,而且当道路曲率发生跳变时,预瞄距离L1能够提前做出调整,从而避免控制器过早响应的问题。
图12 遗传优化前后的控制器响应对比
图13 预瞄距离L1和L2的调节过程
图14反映了车辆相对于目标路径的跟踪精度和控制效果,图中的横轴表示车辆相对参考原点行驶过的距离。其中,图14(a)表示LA1预瞄点检测到的曲率κ1。
图14 跟线效果与控制输出
图14(b)(c)反映了行驶过程中车辆相对于道路的偏差情况。可以看到,横向偏差yL在整个行驶过程中始终在±3 cm的范围以内。由图(c)可见,车辆在弯道1和弯道2中的方位角偏差εL均不高于1°,在弯道3和弯道4中εL分别为-2.3°和3.1°,而所有直道的εL均为0。
图14(d)(e)分别表示行驶过程中的车速及车辆受到的驱动/制动力矩。可以看到,在直道中Te为正值,车辆受到牵引力的作用,处于匀加速的状态;在曲率为-0.01 m-1的弯道时,Te接近于0,车速维持基本不变;在曲率较大的弯道2、3、4中,Te为负值,车辆受到制动力而减速,而且制动力矩的大小与弯道曲率呈正相关。
图14(f)为行驶过程中车辆前轮转角的调节过程。可以看到,当曲率κ1发生变化时,前轮转角均能做出相对应的调整,而且每一次调整中的上升时间均不超过0.5 s。需要特别指出的是,在大曲率弯道的转向中,转向角的幅值出现了±7%左右的振荡。这是由于曲率的较大幅度跳变导致了控制器输出的超调响应,这一部分超调量需要经过一定时间的振荡衰减才能达到稳定值。
综上可以看到,所设计的控制器能够依据道路曲率对车速进行有效的调节,在大曲率道路上车辆具有较高精度的跟线效果,达到了理论设计的控制效果。
5 结论
本文提出了适用于大曲率路径的双点预瞄式智能车横向模糊控制方法,给出了2个预瞄距离的确定方法以及模糊控制器的设计方法,并采用遗传算法优化了控制规则。结果表明:① 所设计的控制系统能够根据前方道路的曲率和车速对预瞄距离做出相适应的调节;② 控制器能够依据车辆与目标路径的偏差以及道路曲率的大小对车速进行有效的调节,同时车辆的前轮转向角能够以较高精度跟踪目标路径。
需要说明的是,由于隶属度函数的选择主要依据经验性知识,存在一定的主观性,因而所设计的控制器存在一定的稳态误差。为了进一步提升控制精度,则需要同时优化隶属度函数和控制规则。这部分内容将在后续的研究中开展。