一种过饱和状态下车道排队长度估计方法
技术领域
本发明属于智能交通系统技术领域,尤其涉及一种过饱和状态下车道排队长度的估计方法。
背景技术
信号交叉口排队长度是城市交通信号控制的重要参数之一,也是评估交叉口驶离效率的重要依据。传统排队长度建模方法一般基于交通波理论、排队论方法以及累积曲线理论等。交通系统是一个非线性、不连续、时变的复杂系统,依靠现有的排队长度估计模型无法实时地对排队长度进行准确计算。无论是传统经典排队长度模型还是基于传统模型的优化模型,不可避免的存在一些不足,例如模型适用范围受限、模型中部分参数在实际工程应用中难以获得等问题。
例如,申请号为2016109086350的中国专利申请,公开了一种车辆排队长度检测的方法和装置,提供了一种通过对车辆行程时间聚类分析车辆停车次数,再根据车道数和相位,计算路段最大排队长度的方法。该方法需要实时获取交通相位,在实际应用中不易实施。
又例如,申请号为2017111378671的中国专利申请,公开了一种基于卡口数据的排队长度计算方法和装置,该方法能根据卡口检测到的交通数据,考虑随机产生和停靠的车辆,计算每一相位内每一车道的最大排队长度。同样地,因需要实时获取交叉口的配时方案,在实际应用中难以实施。
虽然现有技术给出了一些计算排队长度的方法,但是城市交通拥堵形成的重要原因在于路网中处于过饱和状态的交叉口群处于锁死状态,从而造成周边路网的交通状态急剧恶化。为防止上述情况出现,需通过分析过饱和交叉口的运行情况,对配时方案进行优化。因此实时检测过饱和状态交叉口的排队长度,防止交叉口排队溢出,是亟待解决的问题。
发明内容
本发明的目的是提供一种过饱和状态下车道排队长度的估计方法,以获得过饱和状态交叉口的排队长度,解决现有技术方案无法处理过饱和状态下的排队长度问题。
为了实现上述目的,本发明技术方案如下:
一种过饱和状态下车道排队长度的估计方法,所述过饱和状态下车道排队长度的估计方法,包括:
获取历史过车记录,根据车头时距的大小变化,识别交叉口配时方案,所述配时方案,包括周期时长、红灯时长、绿灯时长;
根据所述交叉口配时方案,实时划分周期;
根据本周期内车道对应绿灯时长是否存在空放,以及驶离车辆从上游交叉口至本交叉口的行程时间与预设的等待时间阈值判断车道是否为过饱和状态,若是过饱和状态,则根据本周期内驶离车辆中最少排队次数车辆占总驶离车辆数的比例,计算本周期车道排队车辆总数,进而估计本周期相应的车辆排队长度。
可选的,所述获取历史过车记录,根据车头时距的大小变化,识别交叉口配时方案,包括:
根据历史过车记录中各个车辆过车时刻计算车头时距值;
根据计算得到的车头时距值,预设车头时距阈值;
根据计算得到的车头时距值和车头时距阈值,划分各个周期的过车记录;
计算配时方案,包括周期时长、红灯时长、绿灯时长。
可选的,所述车头时距阈值根据当前时间前设定时间段内的突变车头时距均值乘以设定的系数得到。
可选的,所述根据计算得到的车头时距值和车头时距阈值,划分各个周期的过车记录,包括:
根据车头时距与车头时距阈值,遍历车头时距集合,当车头时距大于车头时距阈值时,则意味着某一周期驶离首车的出现,将其对应的过车记录放入首车过车记录集合,该车前一辆车则为上一周期尾车,将该前一辆车对应的过车记录放入尾车过车记录集合。
可选的,所述计算配时方案,包括周期时长、红灯时长、绿灯时长,包括:
在历史过车记录对应的时段内第m个周期,车道对应的周期绿灯开始时间为首车过车记录集合中第m个元素中的过车时间Timef,m,周期绿灯结束时间为尾车过车记录集合中第m个元素中的过车时间Timel,m,则第m个周期时长为:
Cm=Timef,m+1-Timef,m
驶离时长为:
gm=Timel,m-Timef,m
等待时长为:
rm=Timef,m+1-Timel,m
计算历史过车记录对应的时段内各个周期的周期时长,取其平均值作为本交叉口的周期时长C:
其中n为尾车过车记录集合中元素个数;
取历史过车记录对应的时段内车道各个等待时长的最小值作为本交叉口车道对应驶离相位的红灯时长,取周期时长与红灯时长的差值作为本交叉口车道对应驶离相位的绿灯时长。
可选的,所述根据本周期内车道对应绿灯时长是否存在空放,以及驶离车辆从上游交叉口至本交叉口的行程时间与预设的等待时间阈值判断车道是否为过饱和状态,包括:
若本周期内车道对应绿灯时长与饱和车头时距hs的商小于等于本周期驶离车辆数,则绿灯期间不存在空放;
设置第一等待时间阈值Ttra:
Ttra=r+Lroad/vfree
其中Lroad表示从上游交叉口至本交叉口的路段长度,vfree表示车辆从上游交叉口至本交叉口的路段上的自由流速度,r表示红灯时长;
如果绿灯期间不存在空放且车辆的行程时间大于第一等待时间阈值Ttra,则存在过饱和状态。
可选的,所述根据本周期内驶离车辆中最少排队次数车辆占总驶离车辆数的比例,计算本周期车道排队车辆总数,包括:
设置第二等待时间阈值T'tra:
T'tra=(k-1)C+r+Lroad/vfree
其中r表示红灯时长,C表示周期时长,k表示驶离车辆中最少排队次数;
统计本周期内驶离车辆从上游交叉口至本交叉口的行程时间集合{Tt,p},行程时间集合{Tt,p}中元素个数为N,其中小于等于第二等待时间阈值T'tra的元素个数为N',本周期内最少排队次数车辆占总驶离车辆数的比例η为:
η=N'/N
本周期排队车辆数Qqueue:
Qqueue=(k+1-η)N
其中k为驶离车辆中最少排队次数。
本发明提出的一种过饱和状态下车道排队长度的估计方法,仅利用视频检测设备产生的过车记录就能够划分出交叉口信号配时周期、绿灯时长、红灯时长,不需要实时读取信号配时方案,更方便应用于实际工程中。此外,提供了一种过饱和状态下车道排队长度的计算方法,弥补了现有排队长度算法只能计算不饱和状态下排队长队的缺陷。所计算的排队长度可以应用于路段交通状态识别,为交通控制和诱导提供参考。
附图说明
图1为本发明一种过饱和状态下车道排队长度的估计方法流程图;
图2为本发明实施例车辆排队示意图。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
随着交叉口视频检测设备的完善,以及大数据、云计算等技术的发展,海量的过车记录被获取和存储,为交通参数的识别提供可能。
在一个实施例中,本申请提供了一种过饱和状态下车道排队长度的估计方法,如图1所示,该方法包括以下步骤:
步骤S1、获取历史过车记录,根据车头时距的大小变化,识别交叉口配时方案。
过车记录是指由视频检测设备,如卡口、电子警察,获取的一条车辆通过交叉口的信息。每条过车记录包括但不限于以下字段:过车时刻、车牌号码、交叉口名称、车道编号、方向等。
例如,一个典型的过车记录如表1所示:
表1
同一周期内,相邻两车若连续通过某一车道,则车头时距较小;两车若分别为上一周期最后一辆驶离车辆(尾车)、本周期首辆驶离车辆(首车),则车头时距会达到峰值。故可利用车道驶离车辆车头时距的大小变化,识别出各个完整周期的过车记录,从而计算出交叉口周期时长。
应该理解都是,本申请是对于车道排队长队进行估计,历史过车记录也是对应车道的过车记录,以下情况不作特别说明的情况下,均应理解为针对某一车道进行估计。
本实施例,识别交叉口配时方案的周期时长,包括如下步骤:
步骤S1.1、根据历史过车记录中各个车辆过车时刻计算车头时距值。
选取交叉口A车道lane最近2小时[Tstar,Tend]内的历史过车记录集合其中Noi表示车牌号,Timei表示车辆Noi通过本车道的时间。从数据集合中识别出各个完整周期的数据子集用于进行周期时长的计算。根据各个车辆过车时刻计算车头时距值集合{ht,i},其中:
ht,1=Time1-Tstart (1)
ht,i=Timei-Timei-1,i>1 (2)
单位为秒。
对于固定配时的交叉口而言,配时方案周期时长固定,各相位每周期的红灯等待时长固定。当车头时距ht,i大于划分周期时长的车头时距阈值时,则可判定相应的两辆车过车时刻处于不同的两个周期。此时车辆Noi为某一周期第一辆驶离车辆,即首车。
假设,处理过车记录获得下表:
表2
步骤S1.2、根据计算得到的车头时距值,预设车头时距阈值。
本实施例将划分周期时长的车头时距阈值定义为cyclethr,通过对比cyclethr与各车头时距值划分周期。将车头时距集合ht,i内数据按从大到小的顺序排序。通过对历史车头时距数据的分析,车头时距数值的大小在某区间内出现数据断层,例如在表2中,正常的车头时距都是几秒钟,在10秒~1分40秒之间出现数据断层,在数据断层之后出现有别于正常车头时距的突变车头时距数据,车2、3之间的突变车头时距为1分43秒,车20、21之间的突变车头时距为1分44秒,车36、37之间的突变车头时距为1分41秒,可由此确定划分周期的阈值。
在一个实施例中,所述车头时距阈值根据当前时间前设定时间段内的突变车头时距均值乘以设定的系数得到。
例如,取前十分钟的历史过车记录,计算出表2的车头时距,其中有三个突变车头时距,计算其均值为1分42秒,然后乘以设定的系数(假设为0.8),从而在本实施例中将阈值cyclethr设置为80s。所述系数取值范围可以在0.6~0.9之间,一般就能准确进行后续的判断。
步骤S1.3、根据计算得到的车头时距值和车头时距阈值,划分各个周期的过车记录。
根据车头时距与车头时距阈值cyclethr划分各个周期过车记录。将首车过车记录集合记为尾车过车记录集合记为遍历车头时距集合{ht,i},当ht,i>cyclethr时,则意味着某一周期驶离首车的出现,该车前一辆车则为上一周期尾车。若集合非空集,将该首车前一辆车过车记录添加进尾车过车记录集合
将该车过车记录添加进首车过车记录集合:
从表2中可以看出,车2、3之间的车头时距为1分43秒,车20,21之间的车头时距为1分44秒,车36、37之间的车头时距为1分41秒,大于阈值。因此,车3、21、37为其所在周期的首车,车2、20、36分别为上一周期的尾车,从而划分各个周期的过车记录。
步骤S1.4、计算配时方案,包括周期时长、红灯时长、绿灯时长。
本实施例交叉口配时方案包括周期时长、红灯时长、绿灯时长。
在[Tstart,Tend]时段内第m个周期,车道lane对应的周期绿灯开始时间为中第m个元素中的过车时间Timef,m,周期绿灯结束时间为中第m个元素中的过车时间Timel,m。本周期时长为:
Cm=Timef,m+1-Timef,m (5)
驶离时长为:
gm=Timel,m-Timef,m (6)
等待时长为:
rm=Timef,m+1-Timel,m (7)
计算[Tstart,Tend]时段内各个周期的周期时长,取其平均值作为本交叉口固定周期方案的周期时长C:
其中n为集合中元素个数。
取本时段内车道lane各个等待时长的最小值min(rm)作为本交叉口车道lane对应驶离相位的红灯时长r:
r=min(rm),m=1…n (9)
取周期时长与红灯时长的差值作为本交叉口车道lane对应驶离相位的绿灯时长g:
g=C-r (10)。
步骤S2、根据交叉口配时方案,实时划分周期。
根据历史数据分析出周期时长、绿灯时长以及红灯时长后,可用于实时划分完整周期。
实时计算驶离车辆间的车头时距值,当车辆车头时距大于红灯时长时,即ht,i≥r,意味着该车为新一轮周期的首辆车。当下一次出现ht,j≥r时,上一辆车为本周期的尾车,即[Timei,Timej-1]时间段内的过车为某一完整周期内的过车。
步骤S3、根据本周期内车道对应绿灯时长是否存在空放,以及驶离车辆从上游交叉口至本交叉口的行程时间与预设的等待时间阈值判断车道是否为过饱和状态,若是过饱和状态,则根据本周期内驶离车辆中最少排队次数车辆占总驶离车辆数的比例,计算本周期车道排队车辆总数,进而估计本周期相应的车辆排队长度。
在交叉口的车辆通行过程中,如果车道上车辆存在二次排队或多次排队的情况且车道对应绿灯期间无空放,则认为存在过饱和状态。
若本车道对应的绿灯时长g与该车道饱和车头时距hs的商小于等于本周期驶离车辆数,则绿灯期间不存在空放,也即对应绿灯时长不存在空放。可通过历史过车数据获取饱和车头时距值hs,具体方法为:绿灯刚启亮时,从第二辆车刚过停车线时开始计数,刚开始的几辆车一般都是以饱和车头时距通过停车线,在车头时距未发生离散前结束计数,用多个周期内统计到的时间除以统计车辆数得到饱和车头时距hs。
应该理解的是,若存在过饱和状态,则本周期排队车辆总数大于本周期车道驶离车辆数,且本周期驶离车辆均为排队车辆数。存在过饱和状态排队如图2所示,图中第一行表示上一周期排队情况,第二行表示本周期排队情况。图中所有实心圆代表排队车辆数,虚线前的圆表示本周期驶离车辆,虚线框中实心圆代表经过二次排队本次驶离的车辆,两圆形之间的距离表征车头时距。上一周期驶离部分排队车辆,剩余车辆需要经过二次排队下一周期驶离,即虚线框中的排队车辆。若存在过饱和状态,则车辆等待时间必大于一周期内红灯时长,故本车辆行程时间应大于自由流行程时间与红灯时长之和。设置等待时间阈值Ttra用以判断车辆是否进行二次排队:
Ttra=r+Lroad/vfree (11)
其中Lroad表示从上游交叉口至本交叉口的路段长度,vfree表示车辆在从上游交叉口至本交叉口的路段上的自由流速度,r表示红灯时长。若某车辆Nop的行程时间满足Tt,p>Ttra,则存在过饱和状态,车辆Nop为多次排队车辆。
本实施例通过统计本周期内驶离车辆从上游交叉口至本交叉口的行程时间集合{Tt,p},然后分析本周期驶离车辆中最少排队次数车辆占所有驶离车辆数的比例,来计算本周期车道排队车辆总数,进而估计本周期相应的车辆排队长度。
过饱和状态情况下车道排队长度计算:
实施例1、行程时间集合{Tt,p}中元素个数为N,其中小于等于Ttra的元素个数为N',则本周期内一次排队驶离车辆数占总驶离车辆数的比例为:
η=N'/N (12)
在本周期驶离的部分车辆中,仅有一部分车辆仅排队一次即驶离,剩余车辆是经过上周期排队本周期排队驶离。过饱和情况下相邻两周期排队车辆总数相距不大,驶离车辆数差距极小。假设上一周期驶离车辆数与本周期驶离车辆数相同,则本周期驶离车辆中识别为二次排队的车辆在上一周期也参与了排队,则上一周期排队车辆数为驶离车辆数与此部分二次排队车辆数之和。相邻两周期均为过饱和状态,用上一周期排队车辆数近似本周期排队车辆数。
故本周期本车道排队车辆总数:
Qqueue=N+(1-η)N=(2-η)N (13)
本周期相应的车辆排队长度为:
Lqueue=Leff×Qqueue (14)
其中Leff为有效车辆长度。
实施例2、对于车辆多次排队的情况。
若车辆仅排队一次,则车辆等待时长位于(0,r]区间内。若车辆排队次数为k(k≥2),则该车等待时长位于((k-2)C+r,(k-1)C+r]区间内,其中C为公式(8)计算所得周期时长。即该车行程时间位于((k-2)C+r+Lroad/vfree,(k-1)C+r+Lroad/vfree]区间内。
取本周期驶离车辆行程时间集合{Tt,p}中最小的元素Tt,p计算最少排队次数:
公式中括号表示向上取整。
设置阈值T′tra用以判断车辆排队次数是否大于k,
T'tra=(k-1)C+r+Lroad/vfree (16)
若某车辆Nop的行程时间满足Tt,p>T′tra,则车辆Nop排队次数大于k。
行程时间集合{Tt,p}中元素个数为N,其中小于等于T′tra的元素个数为N’,则本周期内k次排队车辆数占总驶离车辆数的比例为:
η′=N'/N (17)
对于车辆多次排队的情况,可利用如下公式近似得到本周期排队车辆数:
Qqueue=(k+1-η')N (18)
其中k为驶离车辆中最少排队次数,η′为最少排队次数车辆占驶离车辆数的比例。
本周期相应的车辆排队长度为:
Lqueue=Leff×Qqueue (19)
其中Leff为有效车辆长度。
容易理解的是,实施例1是实施例2的一种特殊情况,即k=1的情况,这里不再赘述。
本申请通过分析过车记录,挖掘潜在信息,以数据为基础计算车辆的排队长度并进行修正,相比于传统方法,不仅提高了计算的准确性,也保证了计算的实时性。
应该理解的是,本申请这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。