高 源, 王昌龙, 唐晓峰, 曾铄峰, 王文卓, 关 栋
(扬州大学机械工程学院, 江苏 扬州 225127)
典型的自动驾驶系统主要包括感知层与决策控制层.感知层负责自车定位、静态障碍物识别、动态障碍物检测与跟踪、车道线识别、交通信号识别等;决策控制层负责路径规划、行为决策、运动控制等[1].现有的自动驾驶系统普遍由单一方法控制,但在实际应用中,受硬件故障、通信延迟等影响,控制算法的稳定性不佳, 鲁棒性较弱.对此, 国内外学者进行了相关研究.如Coskun等[2]提出一种考虑通信延迟不确定性的模糊鲁棒时滞控制器,能在通信延迟情况下保持较好的跟踪性能; Zhang等[3]提出一种三层结构的控制系统,通过协同控制横摆力矩和制动轮缸压力,保证车辆在转弯制动工况下的横向稳定性和制动性能;Song等[4]提出一种基于模型的独立故障检测和双滑模观测器的纵向自动驾驶容错控制方法,降低了控制输出误差;Hu等[5]提出一种模糊逻辑自适应比例积分微分(proportional integral differential,PID)横向控制方法,可抵抗激光雷达与高清地图不匹配造成的定位误差,使控制系统的输入更平滑.以上研究从不同方面提高了自动驾驶车辆控制系统的鲁棒性,但没有考虑控制系统硬件发生故障的极端情况.尤其在车道线不完整、道路标示模糊的封闭园区道路中,一旦单一控制方法出现故障,车辆容易偏离车道产生危险.
为解决上述问题,本文拟针对自动驾驶车辆的横向运动控制技术,研究车道保持冗余联合控制方法,设计基于线性二次型最优控制(linear quadratic regulator, LQR)算法的主控制方法,在反馈控制的基础上引入前馈控制,消除系统的稳态误差.同时,设计基于PID算法的冗余控制方法.采用CarSim与MATLAB软件开展联合仿真试验,对比不同车速下发生故障时主控制与联合控制下的试验结果,对冗余联合控制方法的性能进行验证与分析.
自动驾驶车辆跟随车道中心线进行运动控制,其原理是通过控制前轮转角实现对车辆运动方向的控制.针对封闭园区道路内车速较低的特点,本文建立车辆动力学模型的重点在于车辆的横摆和侧向运动[6].同时, 为了减小计算量和提高控制实时性, 对车辆的动力学约束进行了以下理想化假设[7]: 1)假设车辆始终在平坦的路面行驶,忽略车辆在垂直方向的运动; 2)不考虑左右轮胎在行驶过程中垂向载荷的转移; 3)忽略悬架对车辆的影响; 4)不考虑各个方向的空气阻力.
图1 车辆动力学模型
(1)
式中,vy和vx分别为车辆的侧向速度和纵向速度;Cf和Cr为前轴和后轴的侧偏刚度(均为实际单侧车轮侧偏刚度的2倍).
车道保持的控制目标是对车道中心线进行轨迹跟踪,须通过动力学方程建立横向误差微分方程.自动驾驶领域常用的坐标系包括车辆坐标系、大地坐标系和Frenet坐标系.车辆控制系统运行时,车辆下一时刻的位置仅由车辆当前时刻的车速、加速度和前轮转角决定,规划轨迹也基于当前时刻的车辆位姿[8].采用大地坐标系的控制误差较大, 故本文采用Frenet坐标系建立横向误差微分方程.
图2 横向误差模型
(2)
车辆的横向运动控制算法包括纯跟踪(pure pursuit)、PID、LQR和模型预测控制(model predictive control, MPC)等[8].自动驾驶车辆的运动控制须在保证轨迹跟踪精度的同时,对路面突发事件作出快速响应.本文选用LQR算法通过状态空间方程中的状态量误差与控制量误差构造目标函数,并在线性约束的条件下求解最优控制结果,即最优的前轮转向角[9].
(3)
Uk=-KXk,
(4)
式中LQR控制器增益K=-(R+BTPk+1B)-1BTPk+1A.
(5)
前馈控制的目的是取得合适的δf, 使式(5)中的横向误差为零.将式(5)展开并取出横向距离误差所在行,可得
(6)
式中k1和k3为式(4)中K=(k1,k2,k3,k4)的对应值.令式(6)等于0, 可得前馈控制量为
(7)
主控制须在合适时间切换冗余控制,防止主控制故障时的车道偏离现象.现有的车道偏离决策模型主要包括基于未来偏移量差异(future offset difference, FOD)、车辆横越车道线时间(time to lane crossing,TLC)、知识的道路场景感知(knowledge-based interpretation of road scenes, KBIRS)[10]和车辆在车道中的当前位置(car’s current position,CCP)[11]的模型.其中,CCP模型简单有效,适用于封闭园区道路场景,其原理是以车辆当前位置与车道边缘的相对距离作为车辆是否偏离车道的判断标准.
图3为运用SIMULINK与CarSim软件设计的冗余联合控制模型,主要包括CarSim车辆模型、LQR主控制模块、PID冗余控制模块和切换模块,模型可对不同的自动驾驶工况进行模拟,分析不同车速下的各控制模块性能.模块之间的输出1表示车辆的实际位置、车速信息,输出2表示车辆与车道中心线的横向偏移量D, 输出3表示LQR模块计算出的前轮转角,输出4表示PID冗余控制模块计算出的前轮转角,输出5为切换模块经过故障判断后切换的前轮转角.切换模块包含了主控制切换冗余控制的2个触发条件.触发条件1为D大于车道宽与车宽差值的1/2, 此时,系统判定车辆开始偏离车道;触发条件2为前轮转角变化率近似于0, 此时,系统判定车辆方向盘“卡死”;当同时满足触发条件1和2时,系统判定主控制故障,立即切换冗余控制.
图3 冗余联合控制模型
本文选取封闭园区道路环境进行仿真试验, 以验证冗余联合控制方法的性能.封闭园区道路与标准公路的设计不同, 道路两侧存在大量植物与建筑物,车道间距较近且车道线不完整、道路标示模糊.设置行驶路线为直线型和小曲率弯道,行驶车道为双向两车道, 试验车型为CarSim软件中的C-Class车型,车宽1.9 m,车道宽度为2.9 m.式(2)中A、B、C涉及的具体车辆参数取值为m=1 412 kg,a=1.015 m,b=1.895 m,Iz=1 536.7 kg·m2,Cf=5 290.6 N/(°),Cr=5 290.6 N/(°).在CarSim软件中建立道路场景模型, 同时添加用于检测车道线的摄像头和车道偏离传感器.仿真试验行驶路线和试验环境如图4所示.
图4 仿真试验设置
图5为发生故障时LQR主控制和冗余联合控制方法的运行结果.如图5(a)(b)显示, 主控制一旦发生故障, 8 s后不同车速下的前轮转角变化率均接近于0, 且横向偏移量均达0.5 m(车道宽与车宽差值的1/2)以上, 并逐渐增大, 表明车辆无法继续跟踪车道中心线行驶,开始偏离车道.图5(c)(d)显示,在8~13 s内, 当横向偏移量达到0.5 m(冗余控制触发条件1),且系统检测到车辆前轮转角变化率近似于0(冗余控制触发条件2)时,联合控制方法中主控制立即切换为冗余控制, 不同车速下的前轮转角曲线随即均发生明显变化,车速为40、30、20和10 km·h-1时对应的冗余控制切换时间点分别为第8、9、11、13秒, 由于转向惯性,横向偏移量到达峰值0.63 m后开始减小,最终趋向于0 m.
图5 仿真试验结果
上述结果表明,在车速为10~40 km·h-1的仿真试验中, PID控制算法响应速度较快,能在车道偏离时紧急调整方向,适用于冗余控制; LQR算法稳定性较高,跟踪车道中心线效果良好,适用于主控制;车辆同时配备以上两种控制方法后,当主控制方法发生故障,车辆与车道稍有偏离时,联合控制方法能够立即切换为冗余控制,使车辆重回车道线中心.须注意的是,在实际行驶过程中,当车速过高时,会出现冗余控制切换不及时导致车辆偏离车道的情况,原因是信号传输、执行器动作等环节需要固定的响应时间.在车速较高的情况下须减小冗余控制触发条件1的阈值,及时进行冗余控制切换,以保证车辆的安全性.