CACC,全称为cooperativeadaptivecruisecontrol,也称协同自适应巡航控制,是应用于自动驾驶车辆跟驰研究的热门模型。本文从几类典型的跟驰模型、CACC模型的公式理解、CACC模型在SUMO中的应用来了解CACC模型。
跟驰模型和换道模型是交通流理论中重要的微观控制模型。车辆处于跟驰状态可由前后两车的车头间距和车头时距判定。首个跟驰模型为1953年提出的Pipes跟驰模型,在此之后,GM模型、神经网络模型、FVD模型、IDM模型、元胞自动模型等像雨后春笋般得到发展和应用。随着自动驾驶技术的发展,跟驰模型从传统模型转向ACC、CACC模型等研究。
ACC,全称为adaptivecruisecontrol,也称自适应巡航控制。在ACC系统中,后车通过雷达和红外传感器能够获得前车的速度、加速以及间距信息,从而通过调节后车速度、加速度改变两车间距。ACC系统中响应时间较驾驶员反映时间大大降低,因此可以提高通行效率。改变IDM模型中的安全车头时距的参数即可解释ACC系统的控制模型。在ACC基础上,发展得到CACC的车辆纵向控制方式。
CACC控制方式基于车-车无线通信(V2V),它打破了ACC模型中只能获取前车模型的局限,能够获取周围车辆的信息(在周围车辆也安装CACC系统的基础上),它获得感知环境时更全面、精确且时延小,因此能够进一步减小行车时延,保证行车安全。(在自动驾驶技术的研究中,有一项称为CACC车辆退化率,即指当自动驾驶车辆的前方车辆由自动驾驶车辆变为人工驾驶车辆时,后车由CACC退化为ACC,这是在研究列队行驶中较为重要的指标)
加州伯克利PATH实验室提出的恒定车间时距策略的CACC模式是一种广泛使用的方法。公式如下,其内涵较为简单,通过实际与期望间距的误差项不断调整后车速度。
其中,x_{i}为跟驰车辆的位移,v_{i}为跟驰车辆速度,e为实际距离与期望距离之间的误差,T为最小安全车头时距,i-1代表前车,v_{kprev}为车辆前一时刻的速度。
SUMO文档中对CACC的说明网址为https://sumo.dlr.de/docs/Car-Following-Models/CACC.html。简要翻译一下,SUMO中的CACC模型基于三篇文献开发,期刊来源于TransportationResearchPartC和TRR。CACC模型分为四种模式,分别是速度控制模式(Speedcontrolmode)、间距控制模式(Gapcontrolmode)、间距接近控制模式(Gap-closingcontrolmode)和防碰撞控制模式(Collisionavoidancecontrolmode)。
在三篇文献中的解释:
在Xiao,Wang&vanArem[1]的文章中,提出了三种控制模式,分别是cruisingcontroller、gap-regulatingcontroller以及gap-closingcontroller,应该就是对应SUMO中CACC的前三种控制模式了。在cruising模式中,车辆加速度由前一时刻的速度和期望速度之差决定。在gap-regulatingcontroller中,其加速度的生成公式如下:
其中,k代表仿真步长,k-1代表前一仿真步长,d_{0}为间距边界值,随速度的变化而变化。由上式可知,要求得k步车辆速度,必须知道k-1、k-2步的信息。
同时,我们也可以发现gap-closingcontroller的作用,通过改变另外两种模式下的权重值k_{1}、k_{2}、k_{p}、k_{d},使模式的转化更为平稳。
在Xiao,Wang,Schakel&vanArem[2]的文章中提出也提出上述三种控制模式,当车辆位于gap-regulatingcontroller状态下时,其速度控制为:
由上式可知,要求得要求得k步车辆速度,必须知道k-1、k-2、k-3步的信息。其所需知道的信息比上一篇文章中更全面。
同时,文献中提出的CACC车辆的双重循环控制模型也很值得学习,如下图。
在SUMO中关于CACC介绍的页面中,同时提供了核心代码,/src/microsim/cfmodels/MSCFModel_CACC.cpp,以便读者更好的理解模型。下图代码为SUMO中防碰撞模式下的核心代码,也即上述提过的gap-regulatingcontroller状态,由图对比文献可知,仿真平台中的权重取值与文献中稍有不同。
在了解了CACC核心思想后,补充下SUMO中车辆使用CACC跟驰模型方法,是在rou文件中设置车辆类型或车辆的carFollowModel,如下:
通过SUMO提供的文献和说明的学习,相信可以更好地掌握CACC模型的内涵,更便利SUMO中CACC模型参数的修改。
全部评论 (0)