城市道路紧急车辆优先通行方法与流程
未命名
07-17
阅读:157
评论:0
1.本发明涉及一种智能交通技术,特别涉及一种城市道路紧急车辆优先通行方法。
背景技术:
2.城市道路交通拥堵、交通信号灯周期性特性的影响下,驾驶员通行时间较自由流行程时间大幅度增加。针对承担特殊任务的紧急救援车辆,为一定程度上减少社会人民群众的生命、财产安全,专业的医疗、消防救援、治安处理是目的,牺牲小部分社会车辆的通行权益,合理车速下争分夺秒到达事件现场是途径。由此城市道路中特殊紧急车辆的优先通行方法亟待研究。
3.车辆的优先通行方法大致包含以下几类,一是通过实时交通状态规划最快到达目的地的线路,按照信号实时灯色提供合理的建议行驶速度,此种方法针对线路不固定的场景,可保证平稳速度驾驶、少停车,但因交通拥堵、绿灯周期性影响无法保证较高的运行速度,故不能实现较高等级的车辆优先;二是采用延长、提前、插入、跳跃特殊功能实现车辆优先,一般用于公交优先场景,此种方法一般适用于常态化多次发生的优先,不适用于单次紧急发生的情况;三是信号机系统针对固定线路,通过相位驻留的形式,预先配置线路及优先相位实现优先,此种方法在进行相位驻留时因未结合实际路况与相位状态,提前较长时间对路口进行相位驻留,会对社会车辆产生很大的通行影响;四是根据固定线路提前安排好人手,步进手动对信号灯进行控制实现优先,此种方案若线路过长,人力耗费较大,且人工经验较多,依然会出现对社会车辆影响较大的情况;五是采用快速绿波法进行临时协调控制,此种方法需保证车辆在指定的时间区间经过路口,且对于线路较长的线路,随行驶距离的增大,运行速度的波动,效果逐渐减弱。
技术实现要素:
4.针对优先通行权力的车辆尽可能少受社会车辆影响快速通行的问题,提出了一种城市道路紧急车辆优先通行方法,基于车辆gps实时数据、gis城市路网数据、卡口数据、信号配时相关数据、排队长度数据等,通过地图匹配、预警位置计算、运行速度计算、锁定时刻等的计算,实时预估车辆到达路口前进行相位驻留(锁定)的最早与最晚时刻,并在紧急事件发生后对线路上社会车辆进行通行补偿。本发明针对固定线路设计,只需要在车辆开始运行时启动优先模块,在无指定速度限制、较少人工依赖的基础上,可保证车辆到达路口时为绿灯,同时最晚时刻的计算也尽可能减少了对社会车辆的影响。
5.本发明的技术方案为:一种一种城市道路紧急车辆优先通行方法,具体包括如下步骤:
6.1)在城市路网固定线路上,将车辆通过每个联网信控路口的通行方向对应的相位定义为协调相位,在线路中路口上游为保证协调相位能正常锁定设定的保险位置定义为上游理想预警保险位置;
7.2)根据gps实时数据、gis城市路网数据、联网信控路口数据、联网信控路口信号配
时相关数据、排队长度数据,通过路段匹配、路口上游理想预警保险位置计算、预计到达下游路口时间计算,来计算锁定时刻,根据锁定时刻实时预估紧急车辆到达路口前可进行相位驻留的最早与最晚时刻,根据预估时刻启动优先通行;
8.3)紧急车辆根据优先通行通过路口后,对通过的线路上社会车辆进行通行补偿。
9.进一步,所述步骤2)中路段匹配将实时运行的车辆与城市路网匹配起来,实时判断车辆在路网上的精确位置,便于后续相位驻留开始时间的计算,路段匹配具体包括:
10.1)、地图匹配:
11.应用gis服务计算gps点前后位移距离及有效的方向角进行备选路段匹配;针对匹配的备选路段,采用方向角和投影距离计算匹配指数,最终选择匹配指数最小的路段作为匹配成功路段,并输出路段对应路段起点路口编号start_cross_no即经纬度坐标(start_lon,start_lat)、路段终点路口编号end_cross_no与经纬度坐标(end_lon,end_lat)、与起点路口距离distance_tostartroute、与终点路口距离distance_tolastroute、gps投影点坐标(projection_lon,projection_lat)、路段长度route_distance、与下游各路口的距离distance_down_effective_site;
12.2)路段有效性变更判断:
13.gps坐标发生变化时,若匹配路段未发生变化,即路段无变更,无需进行变更有效性判别计算;若路段发生了变化,记录首次发生变更的gps点为p,则最后一个未发生变化的点p-1,当前gps点为f,f≥p,变更前路段为j,根据相关配置表找到当前路段j的下游相邻路段集—左转、直行、右转,同时判断变更路段是否为相邻路段,若是进入步骤2.2),否则进入变更进入步骤2.3);
14.2.1)与变更前路段终点计算:
15.经过路段j的gps点f与路段j的终点的距离为:
[0016][0017]
其中,distance_fromlastroute
fj
为经过路段j的gps点f与路段j的终点的距离;(end_lon,end_lat)路段终点路口end_cross_no的经纬度,由gis服务输出;(projection_lon,projection_lat)为gps投影点坐标经纬度,由gis服务输出。
[0018]
2.2)变更路段为相邻路段判断:
[0019]
判断distance_fromlastroute
fj
是否大于相邻路段默认最小距离min_distance_nearroad=15米,若大于则认为是有效变更,输出匹配的新路段;否则为非有效变更,非有效变更时,与变更前匹配路段保持一致;
[0020]
2.3)变更路段为非相邻路段判断:
[0021]
判断distance_fromlastroute
fj
是否大于非相邻路段默认最小距离min_distance_notnearroad=500米,若大于则认为是有效变更,令change_type=2,输出匹配的新路段;否则为非有效变更非有效变更时,与前点匹配路段保持一致,并进入下一步判断;
[0022]
2.4)变更路段非相邻路段且连续变更无效:
[0023]
若连续变更无效次数小于5,即distance_number<max_invalid_number,则确定
变更无效,max_invalid_number为变更无效次数限制值,默认值取5,若连续5次变更均无效记录,即invalid_number≥max_invalid_number,则记录当前点匹配的新路段编号,对新路段进行判断,若当前连续采集的gps的3个点满足距离路段终点距离逐渐变大且距离路段起点距离逐渐变小,则输出“匹配无结果”;否则,变更有效,输出匹配的新路段,
[0024]
距离路段终点距离逐渐变大且距离路段起点距离逐渐变小即:
[0025]
distance_tolastroutef>distance_tolastroute
f+1
且
[0026]
distance_tostartroutef<distance_tostartroute
f+1
[0027]
distance_tolastroute为gps投影点与路段终点路口距离,由gis服务输出;
[0028]
distance_tostartroute为gps投影点与路段起点路口距离,由gis服务输出。
[0029]
进一步,所述步骤2)中路口上游理想预警保险位置计算,反向赋予各路口一个动态位置,一旦到达该位置,协调相位即进入随时可驻留的状态,计算具体包括:
[0030]
a、车辆排队清除时间计算:
[0031]
queue_clear_time=queue_number*aver_time,
[0032]
其中,queue_clear_time为排队清除时间,单位:秒;queue_number为排队长度,辆排队长度有实时数据时接入雷达实时排队长度数据,若无暂时使用配置数据;aver_time为每辆车通过路口的平均时间,s,通过实际过程数据产生的饱和车头时距计算得到;
[0033]
b、预警保险时间计算:
[0034]
预警保险时间是指车辆到达路口之前,提前预警才能保证协调相位正常锁定的时间,即计算的保险时间,
[0035][0036]
其中,warning_time为预警保险时间,单位:秒;lock_min_greentime为相位驻留时,各相位最短绿灯时间,单位:秒;min_cycle为相位驻留最小周期时间,单位:秒;i为相位编号,相位数量和协调相位可通过配置表获得;
[0037]
c、路口与对应上游理想预警位置距离计算:
[0038]
warning_distance=warning_time*speedthremin,
[0039]
其中,warning_distance为联网信控路口与对应上游理想预警位置距离,m;speedthremin为车辆运行速度的下限值,10m/s。
[0040]
进一步,所述步骤2)中预计到达下游路口时间计算,通过对到达下游路口的距离与旅行速度的分别计算,得到预计到达下游路口的时间与时刻,具体包括:
[0041]
行驶速度计算:
[0042]
通过滑动时间窗的方法计算行驶速度,选择最近sliding_time秒gps点的行程速度平均值,sliding_time建议取5-10秒,假设当前点前sliding_time秒内有sliding_gps_number个点,则当车辆行驶的平均速度计算公式如下:
[0043]
[0044]
t1为gps数据更新时间,根据项目获取,本算法针对频率为固定值时展开;若数据未累计到sliding_time秒,则车辆平均行程速度选用已更新gps点数据的平均值;
[0045]
动态平均速度计算:
[0046][0047]
aver_speed为车辆平均行程速度,m/s;distance_tostart为当前位置与起点之间的距离,m;
[0048]
travel_time为旅行时间,秒,travel_time=fdt_time
gps点-path_start_time,fdt_time
gps点
为所取sliding_time秒内所有gps点的数据时间,path_start_time为线路开始时间,线路启动时获取的时间;
[0049]
计算预计到达下游各路口的时间:
[0050]
estimate_travel_time=distance_down_effective_site/aver_speed
[0051]
estimate_travel_time为到达下游各联网信控路口的时间,秒;
[0052]
计算预计到达下游各路口的时刻:
[0053]
接收gps数据时的时间current_time即最新一条数据的fdt_time为数据采集时刻,而不是数据回传或更新时刻,
[0054]
estimate_travel_datetime=current_time+estimate_travel_time
[0055]
estimate_travel_datetime为预计到达下游各联网信控路口的时刻。
[0056]
进一步,所述步骤2)中计算锁定时刻,通过对车辆到达各个关键位置的判断,进行相位驻留时相位跳过不跳过两种情况进行分析,从而计算锁定最早时刻、最晚时刻,最早时刻代表可立即锁定时刻,最晚时刻代表过了此时刻就无法锁定的时刻,根据计算的锁定最早时刻、最晚时刻给出实时锁定状态,包括未到达预警位置时、已越过预警位置未到达路口且来的及锁定时、已越过预警位置未到达路口且来不及锁定时三种位置及信号状态。
[0057]
进一步,所述步骤2)中根据预估时刻启动优先通行,即将时间折算周期、相位获取优先方案,具体包括:
[0058]
s-6-1、当前运行相位判断:
[0059]
根据实时相位数据可知,当前运行相位p及相位剩余时间fint_phase_leftime;s-6-2、预计到达指定位置时经过周期数、相位折算:
[0060]
对周期的定义有两种形式:(1)从a相位开始至最后一个相位为一个周期,称之为固定周期;(2)从当前运行相位所在周期的上一周期的当前相位下一相位开始至本周起当前运行相位结束为一周期,称之为滚动周期;
[0061]
s-6-2-1:当前周期剩余时间计算:
[0062]
当前周期剩余时间为:
[0063]
cycle_leftime=fint_cycle_time-fint_cycle_elapsedtime
[0064]
cycle_leftime为当前周期剩余时间;
[0065]
fint_cycle_time为固定周期时间,来源于相关实时数据表;
[0066]
fint_cycle_elapsedtime为周期已运行时间,来源于相关实时数据表;
[0067]
s-6-2-2:历史滚动最近周期时长:
[0068]
滚动周期是随相位数据变化实时更新周期时长数据,历史滚动最近周期时间为当前运行相位时长、除当前运行相位外其他所有相位的历史最近运行时长之和;
[0069][0070]
change_cycle_time为历史滚动周期时长,秒;
[0071]
p为当前相位编号,i∈[1,p];
[0072]
fint_phase_time为相位时长,来源于相关实时数据表;
[0073]
滚动周期计算为获取实时历史周期时间、相位时间,避免在路口进行相位切换,进入新的周期;
[0074]
s-6-2-3:可运行周期数、周期外剩余时间计算:
[0075]
算法开启后,gps数据可接收即进行计算,预计到达指定位置时间由预计到达下游路口时间、预计到达路口预警位置时间2部分组成,以下模块通用estimate_arrival_time
[0076]
=[estimate_travel_time、estimate_warningposition_datetime]
[0077][0078]
estimate_cycle_number-预计可运行周期数;
[0079]
estimate_arrival_number-预计到达指定位置的时间,秒;
[0080][0081]
estimate_cyclextra_time-周期外剩余时间,秒;
[0082]
s-6-2-4:预计运行相位集合计算:
[0083]
若estimate_arrival_time>fint_cycle_lefttime,则进行step1~step3的计算,step1:初始化:记周期的第一个相位为待判断相位,剩余时间=周期外剩余时间,预计运行相位集合为left_phase_set={待判断相位};
[0084]
step2:若剩余时间-待判断相位的历史最近运行时长》0,则进入step3;否则,结束计算输出预计运行相位集合left_phase_set={1,2,......,x},最终集合中的待判断相位为x,即预计运行相位为x,m为集合的数量;
[0085]
step3:更新:剩余时间=剩余时间-待判断相位的历史最近运行时长,待判断相位为其下一相位,返回step2;
[0086]
若周期外剩余时间estimate_arrival_time≤fint_cycle_lefttime,则进行step4~step5的计算;
[0087]
step4:比较相位剩余时间与周期外剩余时间的大小:
[0088]
若estimate_cycleextra_time≤fint_phase_lefttime,预计运行相位为当前相位i=m=fstr_phaseid,left_phase_set={p}即车辆马上到达的情况,计算结束;若
estimate_cycleextra_time>fint_phase_lefttime,记当前相位的下一相位为第一个待判断相位,预计运行相位集合为left_phase_set={p+1,p+2,...,x},m为集合的相位数量;
[0089]
step5:判断:首次小于0时,记录x的值,即为集合中的待判断相位,即预计运行的相位;s-6-2-5:预计运行相位的已运行时长和剩余时长计算:
[0090]
预计运行相位的已运行时长=周期外剩余时间-预计运行相位集合中其他所有相位的历史最近运行时长之和,除预计运行相位;
[0091][0092]
estimate_phase_elapsedtime-到达指定位置时预计运行相位的已运行时长,s;m为left_phase_set集合相位数量,g为集合中元素,
[0093][0094]
estimate_endphase_lefttime-到达指定位置时预计运行相位的剩余时长,s;s-6-3:预计到达路口时经过周期数、相位折算:
[0095]
预计到达指定位置时间为预计到达下游联网信控路口时间,即
[0096]
estimate_arrival_time=estimate_travel_time;
[0097]
s-6-4:预计到达路口预警位置时经过周期数、相位折算:
[0098]
预计到达指定位置时间为预计到达下游联网信控路口预警位置时间,即estimate_arrival_time=estimate_warningposition_datetime;
[0099]
s-6-5:预计到达联网信控路口时的相位状态计算:
[0100]
依据上节预计到达联网信控路口时的相位编号及相位已运行时间、相位剩余运行时间计算结果判断相位所处的阶段,
[0101]
若estimate_phase_lefttime_1-clear_time>threshold_time,位于预计运行相位x清空时间之前,可操作相位operate_phase=x;
[0102]
threshold_time-误差保留时间,取值2s;
[0103]
若estimate_phase_lefttime_1-clear_time≤threshold_time,位于预计运行相位x的下一相位的清空时间之前,operate_phase=x+1;
[0104]
s-6-6:预计到达联网信控路口时的相位与协调相位关系判断:
[0105]
若预计到达联网信控路口时可操作相位为目标协调方向对应相位,即operate_phase∈coordination_phase,
[0106]
协调相位取集合coordination_phase中首个相位。
[0107]
进一步,所述步骤3)中社会车辆进行通行补偿,即为相位补偿,具体包括:s-9-1:锁定相位相关参数获取:
[0108]
根据实时相位数据,确定锁相位期间运行相位列表,判断锁定命令下发到解锁命令期间共完整运行的相位数及各相位绿灯运行时间,
[0109]
判断期间运行相位数与路口当前运行相位总数的关系,若等于运行相位总数,则采集所有各个相位i的绿灯时间fint_phase_time,以及完整固定周期时长fint_cycle_time;若相位数小于当前运行相位总数,则从相位锁定命令前寻找,找到一个完整周期的周期长度fint_cycle_time以及各相位对应的绿灯时间fint_phase_time;
[0110]
读取历史相位数据,确定下发命令期间完整运行周期,得到各个相位历史绿灯时间fint_phase_time
历史
及历史周期长度fint_cycle_time
历史
;
[0111]
s-9-2:流量比计算模块:
[0112]
根据车道号读饱和流率表得到车道在锁定相位下饱和流率和车道流量flow
l
,则车道的流率比流向j对应关键车道的流率比锁定相位i对应关键流向的流率比s-9-3:流量补偿方案计算模块:
[0113]
补偿周期长度采用历史原周期长度,cycletimenew=fint_cycle_time
历史
式中:cycletimenew为补偿方案周期长度,秒;
[0114]
根据损失的绿信比、流量补偿周期数以及各流向流率比计算各相位流量补偿方案,
[0115][0116][0117]
式中:greentimenewi为新方案i相位绿灯时长,秒;
[0118]
compentcycle为流量补偿周期数,配置数据,默认取3;
[0119]
satthreshold为设定饱和度阈值,配置数据,默认0.75
[0120]
greentimecomi为补偿方案i相位绿灯时长,秒。
[0121]
本发明的有益效果在于:本发明城市道路紧急车辆优先通行方法,可在保障车辆尽快通行、无建议速度限制、无需过多交通保障人员的基础上,有效降低对社会车辆的影响,实现整体通行效率最优。
附图说明
[0122]
图1为本发明城市道路紧急车辆优先通行方法流程图;
[0123]
图2为本发明方法中清空时间示意图;
[0124]
图3为本发明方法中路口与理想预警位置关系示意图。
具体实施方式
[0125]
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0126]
一种城市道路特殊紧急车辆优先通行方法,包括以下步骤:
[0127]
步骤s-1:路口上游理想预警保险位置计算
[0128]
本步骤主要计算各个联网信控路口对应的上游理想预警位置,此位置当线路一定时一般为固定的,但如果考虑实时排队需清空的时间,则为动态变化的。城市路网固定线路上,车辆经过的每个联网信控路口的通行方向对应的相位定义为协调相位,上游理想预警保险位置是指线路中路口上游为保证协调相位能正常锁定计算的保险的位置。
[0129]
步骤s-1-1:车辆排队清除时间计算:
[0130]
指定车辆运行过程中因有受前序排队车辆的可能,故需将前序排队考虑进去。
[0131]
queue_clear_time=queue_number*aver_time,
[0132]
其中,queue_clear_time为排队清除时间,单位:秒;queue_number为排队长度,辆。排队长度有实时数据时接入雷达实时排队长度数据,若无暂时使用配置数据。aver_time为每辆车通过路口的平均时间,s,通过实际过程数据产生的饱和车头时距计算得到,本发明不做详细说明。
[0133]
实时排队长度的清空事件计算,目的为尽可能降低车辆到达路口时受到前序排队车辆的影响程度,使得车辆顺利通过路口。
[0134]
步骤s-1-2:预警保险时间计算:
[0135]
预警保险时间是指车辆到达路口之前,需要提前预警才能保证协调相位正常锁定的时间,即计算的保险时间。本发明适用于相位驻留时跳过非协调相位与不跳过非协调相位两种情况。
[0136][0137]
其中,warning_time为预警保险时间,单位:秒。lock_min_greentime为相位驻留时,各相位最短绿灯时间,单位:秒。min_cycle为相位驻留最小周期时间,单位:秒。i为相位编号,相位数量和协调相位可通过配置表获得。
[0138]
步骤s-1-3:路口与对应上游理想预警位置距离计算:
[0139]
上游理想预警位置距离为车辆到达联网信控路口之前多远开始预警的位置。因位置不宜计算,本算法采用距离计算。
[0140]
warning_distance=warning_time*speedthremin,
[0141]
其中,warning_distance为联网信控路口与对应上游理想预警位置距离,m。speedthremin为车辆运行速度的下限值,10m/s。
[0142]
对动态预警位置与预警时间的计算,即反向赋予各路口一个动态位置,一旦到达该位置,协调相位即进入随时可驻留的状态,不仅是对优先车辆优先通行的保障,亦是对交通管理人员的操作提示。
[0143]
步骤s-2:路段匹配
[0144]
本步骤目的为将实时运行的车辆与城市路网匹配起来,实时判断车辆在路网上的精确位置,便于后续相位驻留开始时间的计算。
[0145]
步骤s-2-1:地图匹配
[0146]
首先需完成gps数据与gis地图匹配,本说明不做详细阐述。其大致过程如下。
[0147]
(1)应用gis服务计算gps点前后位移距离及有效的方向角进行备选路段匹配;
[0148]
(2)针对匹配的备选路段,采用方向角和投影距离计算匹配指数,最终选择匹配指数最小的路段作为匹配成功路段,并输出路段对应路段起点路口编号start_cross_no即经纬度坐标(start_lon,start_lat)、路段终点路口编号end_cross_no与经纬度坐标(end_lon,end_lat)、与起点路口距离distance_tostartroute、与终点路口距离distance_tolastroute、gps投影点坐标(projection_lon,projection_lat)、路段长度route_distance、与下游各路口的距离distance_down_effective_site等。
[0149]
步骤s-2-2:路段有效性变更判断
[0150]
gps坐标发生变化时,若匹配路段未发生变化,即路段无变更,无需进行变更有效性判别计算;若路段发生了变化,记录首次发生变更的gps点为p,则最后一个未发生变化的点p-1,当前gps点为f,f≥p,变更前路段为j。根据相关配置表找到当前路段j的下游相邻路段集(左转、直行、右转)。同时判断变更路段是否为相邻路段,若是进入步骤s-2-2-2,否则进入变更进入步骤s-2-2-3。
[0151]
步骤s-2-2-1:与变更前路段终点计算
[0152]
经过路段j的gps点f与路段j的终点的距离为:
[0153][0154]
其中,distance_fromlastroute
fj
为经过路段j的gps点f与路段j的终点的距离;(end_lon,end_lat)路段终点路口end_cross_no的经纬度,由gis服务输出;(projection_lon,projection_lat)为gps投影点坐标经纬度,由gis服务输出。
[0155]
步骤s-2-2-2:变更路段为相邻路段
[0156]
判断distance_fromlastroute
fj
是否大于相邻路段默认最小距离min_distance_nearroad=15米,若大于则认为是有效变更,输出匹配的新路段。否则为非有效变更,非有效变更时,与变更前匹配路段保持一致。
[0157]
步骤s-2-2-3:变更路段为非相邻路段
[0158]
判断distance_fromlastroute
fj
是否大于非相邻路段默认最小距离min_distance_notnearroad=500米,若大于则认为是有效变更,令change_type=2,输出匹配的新路段。否则为非有效变更非有效变更时,与前点匹配路段保持一致,并进入下一步判
断。
[0159]
步骤s-2-2-4:变更路段非相邻路段且连续变更无效
[0160]
若连续变更无效次数小于5,即distance_number<max_invalid_number,则确定变更无效。
[0161]
max_invalid_number为变更无效次数限制值,默认值取5。
[0162]
若连续5次变更均无效记录,即invalid_number≥max_invalid_number,则记录当前点匹配的新路段编号,对新路段进行判断,若(当前连续采集的gps的)judg_number=3个点满足距离路段终点距离逐渐变大且距离路段起点距离逐渐变小,则输出“匹配无结果”;否则,变更有效,输出匹配的新路段。
[0163]
距离路段终点距离逐渐变大且距离路段起点距离逐渐变小即:
[0164]
distance_tolastroutef>distance_tolastroute
f+1
且
[0165]
distance_tostartroutef<distance_tostartroute
f+1
[0166]
distance_tolastroute为gps投影点与路段终点路口距离,由gis服务输出。
[0167]
distance_tostartroute为gps投影点与路段起点路口距离,由gis服务输出。
[0168]
步骤s-2-1的计算基本可正确将车辆与路段匹配成功,但由于车辆到达路口时距离路口各个路段距离均较近,容易出现匹配错误、反复、跳跃的情况,且gis路网会存在部分路网的缺失,为了提升匹配结果的准确性,步骤s-2-2利用路网基础特性,可有效避免上述提到问题,将车辆准确匹配到路网上。
[0169]
步骤s-3:解除相位驻留判断
[0170]
当路段发生变更后,说明车辆已经驶离路口,若协调相位coordination_phase为驻留状态,则发出信息message1=“车辆已经驶离路口,请解除相位驻留”,若协调相位coordination_phase为非驻留状态,发出信息message2=“车辆已经驶离路口,请关注下游路口”。
[0171]
下述步骤为车辆未到达路口时的计算。
[0172]
步骤s-4:预计到达下游路口时间计算
[0173]
通过对到达下游路口的距离与旅行速度的分别计算,得到预计到达下游路口的时间与时刻。
[0174]
步骤s-4-1:行驶速度计算
[0175]
通过滑动时间窗的方法计算行驶速度,选择最近sliding_time秒gps点的行程速度平均值。sliding_time建议取5-10(测试后确定),暂时取7秒。假设当前点前7秒内有sliding_gps_number个点,则当车辆行驶的平均速度计算公式如下:
[0176]
t1为gps数据更新时间,根据项目获取,本算法针对频率为固定值时展开。
[0177]
若数据未累计到7秒,则车辆平均行程速度选用已更新gps点数据的平均值。
[0178]
(1)与起点路口距离计算:
[0179][0180]
distance_tostart为当前位置与起点之间的距离,m;
[0181]
(lon,lat)为实时gps点经纬度坐标;
[0182]
(viproute_start_longitude,viproute_start_latitude)为线路起点位置经纬度,来自于配置表;cross1st_distance为起点至第一路口距离,m,数据来自配置表;route_distance为路段长度,由gis服务输出,m;
[0183]
(cross_lonj,cross_latj)为第j个路口的经纬度坐标,j为路口序列;h为当前gps点对应的上游路口编号,即start_cross_no,由gis服务输出;
[0184]
(2)旅行时间计算:
[0185]
travel_time=fdt_time
gps点-path_start_time
[0186]
travel_time为旅行时间,秒;
[0187]
fdt_time
gps点
为所取7秒内所有gps点的数据时间;
[0188]
path_start_time为线路开始时间,线路启动时获取的时间。
[0189]
(3)平均速度计算:
[0190][0191]
aver_speed为车辆平均行程速度,m/s;
[0192]
平均速度为动态计算值,其变化会引起到达下游路口时间发生变化,界面展示需求,数据不易频繁波动,从开始时刻,速度波动在wave_threshold=[-5%,5%]时,数据不进行更新。
[0193]
因紧急车辆有优先通行权时,其速度相对较稳定,故本步骤采用全局运行速度代替未来可能运行速度,且进行了波动区间控制,一方面可避免速度的频繁波动带来预计到达路口时间的频繁变化,相关人员进行管理时无法获得确定信息而影响判断;另一方面车辆运行时到达红绿灯时可能出现速度过低的情况,其无若代表车辆未来的运行速度,将导致与实际情况偏差较大,从而影响结果准确性。
[0194]
步骤s-4-2:计算预计到达下游各路口的时间:
[0195]
estimate_travel_time=distance_down_effective_site/aver_speed
[0196]
estimate_travel_time为到达下游各联网信控路口的时间,秒;
[0197]
步骤s-4-3:计算预计到达下游各路口的时刻
[0198]
接收gps数据时的时间current_time即最新一条数据的fdt_time为数据采集时刻,而不是数据回传或更新时刻。
[0199]
estimate_travel_datetime=current_time+estimate_travel_time
[0200]
estimate_travel_datetime为预计到达下游各联网信控路口的时刻。
[0201]
步骤s-5:预计到达各路口预警位置时间计算:
[0202]
随gps数据更新;已越过理想预警位置时,该模块停止计算。
[0203]
步骤s-5-1:预计到达各路口预警位置时间计算
[0204]
预计到达各路口预警位置时间=(预计到达下游联网信控路口的距离-路口与对应上游理想预警位置距离)/车辆平均行程速度
[0205]
(1)当distance_down_effective_site≥warning_distance时,未达到预警位置。
[0206][0207]
(2)当distance_down_effective_site<warning_distance时,已经越过预警位置,无需计算到达路口预警位置时间、时刻。
[0208]
步骤s-5-2:预计到达各路口预警位置时刻计算
[0209]
预计到达各路口预警位置时刻=最新一条gps数据的时间+预计到达各路口预警位置时间
[0210]
步骤s-6:时间折算周期、相位:
[0211]
步骤s-6-1:当前运行相位判断
[0212]
根据实时相位数据可知,当前运行相位p及相位剩余时间fint_phase_leftime。
[0213]
步骤s-6-2:预计到达指定位置时经过周期数、相位折算
[0214]
对周期的定义有两种形式:(1)从a相位开始至最后一个相位为一个周期,本文中称之为固定周期;(2)从当前运行相位所在周期的上一周期的当前相位下一相位开始至本周起当前运行相位结束为一周期,本文中称之为滚动周期。
[0215]
步骤s-6-2-1:当前周期剩余时间计算:
[0216]
当前周期剩余时间为:
[0217]
cycle_leftime=fint_cycle_time-fint_cycle_elapsedtime
[0218]
cycle_leftime为当前周期剩余时间;
[0219]
fint_cycle_time为固定周期时间,来源于相关实时数据表。
[0220]
fint_cycle_elapsedtime为周期已运行时间,来源于相关实时数据表。
[0221]
步骤s-6-2-2:历史滚动最近周期时长
[0222]
滚动周期是为了随相位数据变化实时更新周期时长数据,历史滚动最近周期时间为当前运行相位时长、除当前运行相位外其他所有相位的历史最近运行时长之和。
[0223][0224]
change_cycle_time为历史滚动周期时长,秒;
[0225]
p为当前相位编号,i∈[1,p];
[0226]
fint_phase_time为相位时长,来源于相关实时数据表。
[0227]
滚动周期计算为获取实时历史周期时间、相位时间最好的手段,其避免了在路口进行相位切换,进入新的周期,且新的周期各相位时间较原来周期发生改变时,固定周期时长取新旧周期均不正确的现象。
[0228]
步骤s-6-2-3:可运行周期数、周期外剩余时间计算
[0229]
算法开启后,gps数据可接收即进行计算,预计到达指定位置时间由预计到达下游路口时间、预计到达路口预警位置时间2部分组成,以下模块通用e=s[tiesmtaitmea_tea_rrtirvaavle_lt_itmieme、estimate_warningposition_datetime]
[0230][0231]
estimate_cycle_number-预计可运行周期数;
[0232]
estimate_arrival_number-预计到达指定位置的时间,秒;
[0233][0234]
estimate_cyclextra_time-周期外剩余时间,秒。
[0235]
步骤s-6-2-4:预计运行相位集合计算
[0236]
1)若estimate_arrival_time>fint_cycle_lefttime,则进行step1~step3的计算。
[0237]
step1:初始化:记周期的第一个相位为待判断相位,剩余时间=周期外剩余时间,预计运行相位集合为left_phase_set={待判断相位}。
[0238]
step2:若剩余时间-待判断相位的历史最近运行时长》0,则进入step3;否则,结束计算输出预计运行相位集合left_phase_set={1,2,......,x},最终集合中的待判断相位为x,即预计运行相位为x,m为集合的数量。
[0239]
step3:更新:剩余时间=剩余时间-待判断相位的历史最近运行时长,待判断相位为其下一相位,返回step2。
[0240]
2)若周期外剩余时间estimate_arrival_time≤fint_cycle_lefttime,则进行step4~step5的计算。
[0241]
step4:比较相位剩余时间与周期外剩余时间的大小
[0242]
若estimate_cycleextra_time≤fint_phase_lefttime,预计运行相位为当前相位i=m=fstr_phaseid,left_phase_set={p}即车辆马上到达的情况,计算结束。
[0243]
若estimate_cycleextra_time>fint_phase_lefttime,记当前相位的下一相位为第一个待判断相位,预计运行相位集合为left_phase_set={p+1,p+2,...,x},m为集合的相位数量。
[0244]
step5:判断:
[0245][0246]
首次小于0时,记录x的值,即为集合中的待判断相位,即预计运行的相位。
[0247]
步骤s-6-2-5:预计运行相位的已运行时长和剩余时长计算
[0248]
预计运行相位的已运行时长=周期外剩余时间-预计运行相位集合中其他所有相位(除预计运行相位)的历史最近运行时长之和。
[0249][0250]
estimate_phase_elapsedtime-到达指定位置时预计运行相位的已运行时长,s;m为left_phase_set集合相位数量,g为集合中元素。
[0251]
estimate_endphase_lefttime=(fint_phase_time
x
)
最新获取数据-left_phase_elapsedtimeestimate_endphase_lefttime-到达指定位置时预计运行相位的剩余时长,s;
[0252]
步骤s-6-3:预计到达路口时经过周期数、相位折算
[0253]
预计到达指定位置时间为预计到达下游联网信控路口时间,即estimate_arrival_time=estimate_travel_time
[0254]
步骤s-6-4:预计到达路口预警位置时经过周期数、相位折算
[0255]
预计到达指定位置时间为预计到达下游联网信控路口预警位置时间,即estimate_arrival_time=estimate_warningposition_datetime
[0256]
步骤s-6-5:预计到达联网信控路口时的相位状态计算
[0257]
依据上节预计到达联网信控路口时的相位编号及相位已运行时间、相位剩余运行时间计算结果判断相位所处的阶段。由清空时间计算结果,计算公式如下,示例图如附图2.
[0258]
若estimate_phase_lefttime_1-clear_time>thresh old_time,位于预计运行相位x清空时间之前,可操作相位operate_phase=x;
[0259]
threshold_time-误差保留时间,取值2s
[0260]
若estimate_phase_lefttime_1-clear_time≤threshold_time,位于预计运行相位x的下一相位的清空时间之前,operate_phase=x+1
[0261]
步骤s-6-6:预计到达联网信控路口时的相位与协调相位关系判断
[0262]
若预计到达联网信控路口时可操作相位为目标协调方向对应相位,即operate_phase∈coordination_phase
[0263]
协调相位取集合coordination_phase中首个相位。
[0264]
用于预测未来车辆到达指定位置时与现在相比经历了几个周期,到达了新的周期的那个相位,相位已运行了多少长时间等。其目的为反向准确推算车辆到达什么位置、什么时候应该进行相位驻留的操作,可有效的减少绿灯时间的浪费。
[0265]
步骤s-7:锁定时刻计算
[0266]
通过对车辆到达各个关键位置的判断,进行相位驻留时相位跳过不跳过两种情况进行分析,从而计算锁定最早时刻、最晚时刻等。
[0267]
步骤s-7-1:锁定最早时间、时刻计算
[0268]
锁定最早时间倒计时即是指由当前时刻距离路口需要锁定协调的时间。
[0269]
锁定最早时间倒计时
[0270][0271]
锁定最早时刻
[0272][0273]
步骤s-7-2:锁定最晚时间、时刻计算
[0274]
步骤s-7-2-1:协调相位编号判断
[0275]
按照协调相位集合中coordination_phase首个相位编号为1,按照实际相位集合cross_phase相位相序将有效相位数量phase_count_number依次编号,集合cross_phase_index=[1,n]。
[0276]
步骤s-7-2-2:锁定最晚时间计算
[0277]
分为车辆从预警位置正常行驶到达路口过程中是否会经过协调相位两种情况计算。
[0278]
1)预警位置正常行驶到达路口过程中预计未经过协调相位
[0279]
(1)根据上述编号规则,记到达预警位置时运行相位编号为x_2,相位剩余时间estimate_endphase_lefttime_2秒
[0280]
(2)根据步骤s-1-2得到各路口预警保险时间记为warning_time秒,锁定最晚时间记为latetime,初始化latetime为1秒,空字典m。
[0281]
(3)判断latetime是否小于warning_time,若小于运行(4)步,否则跳转(5)步。
[0282]
(4)结合预警位置相位x_2、相位剩余时间estimate_endphase_lefttime_2,以及latetime计算锁定最晚时刻运行相位x_3,相位剩余时间estimate_endphase_lefttime_3秒。最晚时刻运行相位x_3,相位剩余时间estimate_endphase_lefttime_3、相位已运行时间estimate_phase_elapsedtime_3,协调相位(编号1),计算最晚锁定时刻需要锁定过渡时间transtime
x_3
,transtime
x_3
的计算方法如下式所示。判断最晚锁定时间latetime和锁定过渡时间transtime
x_3
之和是否小于等于预警保险时间warning_time_now,若是则当前latetime满足锁定要求记为true,否则当前latetime不满足锁定要求记为false。latetime作为键,是否满足作为值插入字典m中。latetime加1,转步骤(3)。
[0283]
预警保险时间warning_time要累计滚动,在车辆经过预警位置每更新一次实时位置的基础上,预警保险时间
[0284]
warning_time_now
[0285]
=warning_time-(current_time-warningposition_datetime)
[0286]
warning_time_now-实时更新的预警时间;
[0287]
warningposition_datetime-到达预警位置时的时刻,记录该时刻,越过预警位置不更新。
[0288]
当clear_time
x_3
+threshold_time≤estimate_endphase_lefttime_3时:
[0289]
不跳相位:
[0290][0291]
跳相位
[0292][0293]
当clear_time
x_3
+threshold_time》estimate_endphase_lefttime_3时:
[0294]
不跳相位:
[0295][0296]
跳相位:
[0297]
transtimej=estimate_endphase_lefttime_3+lock_min_greentime
x_3+1
[0298]
(5)选择map中值为true元素,将键的最大值作为最晚锁定时间latetime。
[0299]
2)预警位置正常行驶到达路口过程中预计经过协调相位
[0300]
车辆从预警位置正常行驶到达路口预计经过协调相位集合coordination_phase中的任意一个相位,则令经过协调相位的时间区间为coordination_phasei,经过协调相位的定义为位于协调相位清空时间前,满足要求的相位才进行一下计算。
[0301]
coordination_phasetime_range=[min[(fint_phase_timei)
最新获取数据-fint_phase_leftimei],(fint_phase_timei)
最新获取数据-clear_timei]
[0302]
根据周期、相位折算模块,计算满足以上区间的时间区间
[0303]
coordination_phase_datetime_range=[left_datetime,right_datetime]
[0304]
coordination_phase_datetime_range-从当前时刻到到达协调相位区间所经过的时间区间;
[0305]
因车辆从预警位置正常行驶到达路口预计经过协调相位可能不是一个,故多个相位的区间形成到达时间集合coordination_phase_datetime_range_set
[0306]
1.latetime∈coordination_phase_datetime_range_set
[0307]
2.latetime《warning_time_now
[0308]
3.latetime取最大值
[0309]
同时满足以上3个条件,所得latetime即为所求
[0310]
锁定最晚时间倒计时为
[0311][0312]
步骤s-7-2-3:锁定最晚时刻计算
[0313]
锁定最晚时刻
[0314][0315]
未到达预警位置时、已越过预警位置未到达路口且来的及锁定时、已越过预警位置未到达路口且来不及锁定时三种位置及信号状态下,相位驻留时相位跳过不跳过两种选项下,锁定最早与最晚时刻有以下几方面的有点:一是从线路启动时刻开始,平台界面上均可显示其锁定最早与最晚时刻,直观易懂;二是最早时刻代表了可立即锁定时刻,最晚时刻代表过了此时刻就无法锁定的时刻,若为了尽可能减少绿灯浪费或对社会车辆的影响,需选择在最晚时刻进行锁定,但道路状态存在较多未知可能,故最早时刻给管理人员充分的选择区间与个人判断空间,便于其做出自己的安排;三是其适用范围广,可应用于不同信号机品牌、不同车辆位置、不同相位驻留选项、不同经验管理人员下的紧急车辆优先。四是其输出包含来不及锁定状态,一旦出现此种情况,管理人员可提醒紧急车辆做好路口停车准备。
[0316]
步骤s-8:实时锁定状态判断
[0317]
此步骤目的在于详细分析未到达预警位置时、已越过预警位置未到达路口且来的及锁定时、已越过预警位置未到达路口且来不及锁定时三种位置及信号状态下的结果输出,为详细的判断逻辑。
[0318]
步骤s-8-1:路口上游理想预警位置与起点位置关系判断
[0319]
联网信控路口上游理想预警位置位于起点左侧,即联网信控路口与对应上游理想预警位置的距离≥联网信控路口与起点位置的距离时,即warning_distance≥distance_site_tostart时,进入步骤s-8-2计算;
[0320]
联网信控路口上游理想预警位置位于起点右侧,即联网信控路口与对应上游理想预警位置的距离《联网信控路口与起点位置的距离时,即warning_distance<distance_site_tostart时,进入步骤s-8-3计算。
[0321]
步骤s-8-2:路口上游理想预警位置位于起点位置左边
[0322]
进行以下步骤的计算:
[0323]
step1:判断当前是否收到相位锁定命令(锁相位命令已经下发至路口,并且返回下发成功),若下发成功进入步骤step2,若未检测到此命令,进入步骤step3;
[0324]
step2:输出“无需锁定”;计算距离锁定开始时间,即距离锁定开始时间=到达联网信控路口时间;
[0325]
step3:当预计到达联网信控路口时可操作相位为协调相位,进入step2;否则,进
入step4
[0326]
locking_time=estimate_travel_time
[0327]
锁定时刻为预计到达联网信控路口的时刻。
[0328]
经过周期数即到达相位为预计到达联网信控路口时经过的周期数及相位相关参数。
[0329]
step4:调用锁定时间计算模块,覆盖已越过预警位置&locking_latetime≥0;locking_latetime无解两种情况。
[0330]
步骤s-8-3:路口上游理想预警位置位于起点位置右边
[0331]
进行以下步骤的计算:
[0332]
step1:进行车辆是否已经越过预警位置判断,见步骤s-5-1,若已经越过预警位置,进入步骤s-8-2,如未到达预警位置,进入步骤step2;
[0333]
step2:当预计到达联网信控路口时可操作相位为协调相位,进入step3;否则,进入step4
[0334]
step3:输出“无需锁定”;计算距离锁定开始时间,即距离锁定开始时间=到达联网信控路口时间
[0335]
locking_time=estimate_travel_time
[0336]
锁定时刻为预计到达联网信控路口的时刻。
[0337]
经过周期数即到达相位为预计到达联网信控路口时经过的周期数及相位相关参数。
[0338]
step4:调用锁定时间计算模块,覆盖最早、最晚锁定时间未到达预警位置这种情况。
[0339]
步骤s-9:相位补偿
[0340]
步骤s-9-1:锁定相位相关参数获取
[0341]
根据实时相位数据,确定锁相位期间运行相位列表,判断锁定命令下发到解锁命令期间共完整运行的相位数及各相位绿灯运行时间。
[0342]
判断期间运行相位数与路口当前运行相位总数的关系,若等于运行相位总数,则采集所有各个相位i的绿灯时间fint_phase_time,以及完整固定周期时长fint_cycle_time。若相位数小于当前运行相位总数,则从相位锁定命令前寻找,找到一个完整周期的周期长度fint_cycle_time以及各相位对应的绿灯时间fint_phase_time。
[0343]
读取历史相位数据,确定下发命令期间完整运行周期,得到各个相位历史绿灯时间fint_phase_time
历史
及历史周期长度fint_cycle_time
历史
。
[0344]
步骤s-9-2:流量比计算模块
[0345]
根据车道号读饱和流率表得到车道在锁定相位下饱和流率和车道流量flow
l
,则车道的流率比
[0346]
流向j对应关键车道的流率比
[0347]
锁定相位i对应关键流向的流率比
[0348]
步骤s-9-3:流量补偿方案计算模块
[0349]
补偿周期长度采用历史原周期长度。
[0350]
cycletimenew=fint_cycle_time
历史
[0351]
式中:cycletimenew—补偿方案周期长度,秒;
[0352]
根据损失的绿信比、流量补偿周期数以及各流向流率比计算各相位流量补偿方案
[0353][0354][0355]
式中:greentimenewi—新方案i相位绿灯时长,秒;
[0356]
compentcycle—流量补偿周期数,配置数据,默认取3;
[0357]
satthreshold—设定饱和度阈值,配置数据,默认0.75
[0358]
greentimecomi—补偿方案i相位绿灯时长,秒;
[0359]
因特殊车辆对应相位优先过程中会影响社会车辆正常通行,故特殊车辆优先完成后,需采取一定的措施恢复交通。根据实时交通需求,计算补偿信号配时方案,清空优先中造成的非协调相位车辆的积压,最大限度的保障社会车辆的通行权益。
[0360]
本发明城市道路紧急车辆优先通行方法:
[0361]
1、可在任意时间、路网任意位置、任意信号机品牌、任意相位驻留模式下使用,故其适用较强;
[0362]
2、定义动态预警位置,为车辆实时位置做临界位置数据标定,起到警示作用的基础上,变更相关参数的计算方法,从而提高结果的准确性。
[0363]
3、设计滚动周期计算方法,计算时可得到最新、最能反应实时相位信息的信号配时数据,可提高相关事件计算的准确性;
[0364]
4、其充分考虑了计算结果稳定性要求,将全局平均速度作为未来车辆运行速度,避免了到达路口时刻,锁定最早、最晚时刻的结果频繁波动;
[0365]
5、其锁定最早与最晚时刻计算为全局参数,考虑了未到达预警位置时、已越过预警位置未到达路口且来的及锁定时、已越过预警位置未到达路口且来不及锁定时三种位置及信号状态下,相位驻留时相位跳过不跳过两种选项下的情况。一方面,尽可能减少绿灯浪费的基础上,予交通管理者预留判断空间,支撑业务平台使用信心的增长;另一方面保障车辆通过路口时尽可能少受到同向社会车辆、红绿灯周期变化的影响,使得车辆快速通过路口。
[0366]
6、车辆驶离路口快速结束相位驻留,促使路口尽快恢复正常。同时针对优先操作对社会车辆影响较大的路口,结合实时交通状态,进行适当的相位补偿,保障路口运行的快
速恢复。
[0367]
7、进行相位驻留判断中结合了各车道车辆实时排队情况,车辆到达路口前,预留了清空已有排队车辆的事件,保障车辆到达路口时较少受社会车辆的影响。
[0368]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:
1.一种城市道路紧急车辆优先通行方法,其特征在于,具体包括如下步骤:1)在城市路网固定线路上,将车辆通过每个联网信控路口的通行方向对应的相位定义为协调相位,在线路中路口上游为保证协调相位能正常锁定设定的保险位置定义为上游理想预警保险位置;2)根据gps实时数据、gis城市路网数据、联网信控路口数据、联网信控路口信号配时相关数据、排队长度数据,通过路段匹配、路口上游理想预警保险位置计算、预计到达下游路口时间计算,来计算锁定时刻,根据锁定时刻实时预估紧急车辆到达路口前可进行相位驻留的最早与最晚时刻,根据预估时刻启动优先通行;3)紧急车辆根据优先通行通过路口后,对通过的线路上社会车辆进行通行补偿。2.根据权利要求1所述城市道路紧急车辆优先通行方法,其特征在于,所述步骤2)中路段匹配将实时运行的车辆与城市路网匹配起来,实时判断车辆在路网上的精确位置,便于后续相位驻留开始时间的计算,路段匹配具体包括:1)、地图匹配:应用gis服务计算gps点前后位移距离及有效的方向角进行备选路段匹配;针对匹配的备选路段,采用方向角和投影距离计算匹配指数,最终选择匹配指数最小的路段作为匹配成功路段,并输出路段对应路段起点路口编号start_cross_no即经纬度坐标(start_lon,start_lat)、路段终点路口编号end_cross_no与经纬度坐标(end_lon,end_lat)、与起点路口距离distance_tostartroute、与终点路口距离distance_tolastroute、gps投影点坐标(projection_lon,projection_lat)、路段长度route_distance、与下游各路口的距离distance_down_effective_site;2)路段有效性变更判断:gps坐标发生变化时,若匹配路段未发生变化,即路段无变更,无需进行变更有效性判别计算;若路段发生了变化,记录首次发生变更的gps点为p,则最后一个未发生变化的点p-1,当前gps点为f,f≥p,变更前路段为j,根据相关配置表找到当前路段j的下游相邻路段集—左转、直行、右转,同时判断变更路段是否为相邻路段,若是进入步骤2.2),否则进入变更进入步骤2.3);2.1)与变更前路段终点计算:经过路段j的gps点f与路段j的终点的距离为:其中,distance_fromlastroute
fj
为经过路段j的gps点f与路段j的终点的距离;(end_lon,end_lat)路段终点路口end_cross_no的经纬度,由gis服务输出;(projection_lon,projection_lat)为gps投影点坐标经纬度,由gis服务输出。2.2)变更路段为相邻路段判断:判断distance_fromlastroute
fj
是否大于相邻路段默认最小距离min_distance_nearroad=15米,若大于则认为是有效变更,输出匹配的新路段;否则为非有效变更,非有效变更时,与变更前匹配路段保持一致;2.3)变更路段为非相邻路段判断:
判断distance_fromlastroute
fj
是否大于非相邻路段默认最小距离min_distance_notnearroad=500米,若大于则认为是有效变更,令change_type=2,输出匹配的新路段;否则为非有效变更非有效变更时,与前点匹配路段保持一致,并进入下一步判断;2.4)变更路段非相邻路段且连续变更无效:若连续变更无效次数小于5,即distance_number<max_invalid_number,则确定变更无效,max_invalid_number为变更无效次数限制值,默认值取5,若连续5次变更均无效记录,即invalid_number≥max_invalid_number,则记录当前点匹配的新路段编号,对新路段进行判断,若当前连续采集的gps的3个点满足距离路段终点距离逐渐变大且距离路段起点距离逐渐变小,则输出“匹配无结果”;否则,变更有效,输出匹配的新路段,距离路段终点距离逐渐变大且距离路段起点距离逐渐变小即:distance_tolastroute
f
>distance_tolastroute
f+1
且distance_tostartroute
f
<distance_tostartroute
f+1
distance_tolastroute为gps投影点与路段终点路口距离,由gis服务输出;distance_tostartroute为gps投影点与路段起点路口距离,由gis服务输出。3.根据权利要求1所述城市道路紧急车辆优先通行方法,其特征在于,所述步骤2)中路口上游理想预警保险位置计算,反向赋予各路口一个动态位置,一旦到达该位置,协调相位即进入随时可驻留的状态,计算具体包括:a、车辆排队清除时间计算:queue_clear_time=queue_number*aver_time,其中,queue_clear_time为排队清除时间,单位:秒;queue_number为排队长度,辆排队长度有实时数据时接入雷达实时排队长度数据,若无暂时使用配置数据;aver_time为每辆车通过路口的平均时间,s,通过实际过程数据产生的饱和车头时距计算得到;b、预警保险时间计算:预警保险时间是指车辆到达路口之前,提前预警才能保证协调相位正常锁定的时间,即计算的保险时间,其中,warning_time为预警保险时间,单位:秒;lock_min_greentime为相位驻留时,各相位最短绿灯时间,单位:秒;min_cycle为相位驻留最小周期时间,单位:秒;i为相位编号,相位数量和协调相位可通过配置表获得;c、路口与对应上游理想预警位置距离计算:warning_distance=warning_time*speedthremin,其中,warning_distance为联网信控路口与对应上游理想预警位置距离,m;speedthremin为车辆运行速度的下限值,10m/s。4.根据权利要求1所述城市道路紧急车辆优先通行方法,其特征在于,所述步骤2)中预计到达下游路口时间计算,通过对到达下游路口的距离与旅行速度的分别计算,得到预计
到达下游路口的时间与时刻,具体包括:行驶速度计算:通过滑动时间窗的方法计算行驶速度,选择最近sliding_time秒gps点的行程速度平均值,sliding_time建议取5-10秒,假设当前点前sliding_time秒内有sliding_gps_number个点,则当车辆行驶的平均速度计算公式如下:t1为gps数据更新时间,根据项目获取,本算法针对频率为固定值时展开;若数据未累计到sliding_time秒,则车辆平均行程速度选用已更新gps点数据的平均值;动态平均速度计算:aver_speed为车辆平均行程速度,m/s;distance_tostart为当前位置与起点之间的距离,m;travel_time为旅行时间,秒,travel_time=fdt_time
gps点-path_start_time,fdt_time
gps点
为所取sliding_time秒内所有gps点的数据时间,path_start_time为线路开始时间,线路启动时获取的时间;计算预计到达下游各路口的时间:estimate_travel_time=distance_down_effective_site/aver_speedestimate_travel_time为到达下游各联网信控路口的时间,秒;计算预计到达下游各路口的时刻:接收gps数据时的时间current_time即最新一条数据的fdt_time为数据采集时刻,而不是数据回传或更新时刻,estimate_travel_datetime=current_time+estimate_travel_timeestimate_travel_datetime为预计到达下游各联网信控路口的时刻。5.根据权利要求1所述城市道路紧急车辆优先通行方法,其特征在于,所述步骤2)中计算锁定时刻,通过对车辆到达各个关键位置的判断,进行相位驻留时相位跳过不跳过两种情况进行分析,从而计算锁定最早时刻、最晚时刻,最早时刻代表可立即锁定时刻,最晚时刻代表过了此时刻就无法锁定的时刻,根据计算的锁定最早时刻、最晚时刻给出实时锁定状态,包括未到达预警位置时、已越过预警位置未到达路口且来的及锁定时、已越过预警位置未到达路口且来不及锁定时三种位置及信号状态。6.根据权利要求1至5中任意一项所述城市道路紧急车辆优先通行方法,其特征在于,所述步骤2)中根据预估时刻启动优先通行,即将时间折算周期、相位获取优先方案,具体包括:s-6-1、当前运行相位判断:根据实时相位数据可知,当前运行相位p及相位剩余时间fint_phase_leftime;s-6-2、预计到达指定位置时经过周期数、相位折算:
对周期的定义有两种形式:(1)从a相位开始至最后一个相位为一个周期,称之为固定周期;(2)从当前运行相位所在周期的上一周期的当前相位下一相位开始至本周起当前运行相位结束为一周期,称之为滚动周期;s-6-2-1:当前周期剩余时间计算:当前周期剩余时间为:cycle_leftime=fint_cycle_time-fint_cycle_elapsedtimecycle_leftime为当前周期剩余时间;fint_cycle_time为固定周期时间,来源于相关实时数据表;fint_cycle_elapsedtime为周期已运行时间,来源于相关实时数据表;s-6-2-2:历史滚动最近周期时长:滚动周期是随相位数据变化实时更新周期时长数据,历史滚动最近周期时间为当前运行相位时长、除当前运行相位外其他所有相位的历史最近运行时长之和;change_cycle_time为历史滚动周期时长,秒;p为当前相位编号,i∈[1,p];fint_phase_time为相位时长,来源于相关实时数据表;滚动周期计算为获取实时历史周期时间、相位时间,避免在路口进行相位切换,进入新的周期;s-6-2-3:可运行周期数、周期外剩余时间计算:算法开启后,gps数据可接收即进行计算,预计到达指定位置时间由预计到达下游路口时间、预计到达路口预警位置时间2部分组成,以下模块通用estimate_arrival_time=[estimate_travel_time、estimate_warningposition_datetime]estimate_cycle_number-预计可运行周期数;estimate_arrival_number-预计到达指定位置的时间,秒;estimate_cyclextra_time-周期外剩余时间,秒;s-6-2-4:预计运行相位集合计算:若estimate_arrival_time>fint_cycle_lefttime,则进行step1~step3的计算,step1:初始化:记周期的第一个相位为待判断相位,剩余时间=周期外剩余时间,预计运行相位集合为left_phase_set={待判断相位};
step2:若剩余时间-待判断相位的历史最近运行时长>0,则进入step3;否则,结束计算输出预计运行相位集合left_phase_set={1,2,......,x},最终集合中的待判断相位为x,即预计运行相位为x,m为集合的数量;step3:更新:剩余时间=剩余时间-待判断相位的历史最近运行时长,待判断相位为其下一相位,返回step2;若周期外剩余时间estimate_arrival_time≤fint_cycle_lefttime,则进行step4~step5的计算;step4:比较相位剩余时间与周期外剩余时间的大小:若estimate_cycleextra_time≤fint_phase_lefttime,预计运行相位为当前相位i=m=fstr_phaseid,left_phase_set={p}即车辆马上到达的情况,计算结束;若estimate_cycleextra_time>fint_phase_lefttime,记当前相位的下一相位为第一个待判断相位,预计运行相位集合为left_phase_set={p+1,p+2,...,x},m为集合的相位数量;step5:判断:首次小于0时,记录x的值,即为集合中的待判断相位,即预计运行的相位;s-6-2-5:预计运行相位的已运行时长和剩余时长计算:预计运行相位的已运行时长=周期外剩余时间-预计运行相位集合中其他所有相位的历史最近运行时长之和,除预计运行相位;estimate_phase_elapsedtime-到达指定位置时预计运行相位的已运行时长,s;m为left_phase_set集合相位数量,g为集合中元素,estimate_endphase_lefttime=(fint_phase_time
x
)
最新获取数据-left_phase_elapsedtimeestimate_endphase_lefttime-到达指定位置时预计运行相位的剩余时长,s;s-6-3:预计到达路口时经过周期数、相位折算:预计到达指定位置时间为预计到达下游联网信控路口时间,即estimate_arrival_time=estimate_travel_time;s-6-4:预计到达路口预警位置时经过周期数、相位折算:预计到达指定位置时间为预计到达下游联网信控路口预警位置时间,即estimate_arrival_time=estimate_warningposition_datetime;s-6-5:预计到达联网信控路口时的相位状态计算:依据上节预计到达联网信控路口时的相位编号及相位已运行时间、相位剩余运行时间计算结果判断相位所处的阶段,
若estimate_phase_lefttime_1-clear_time>threshold_time,位于预计运行相位x清空时间之前,可操作相位operate_phase=x;threshold_time-误差保留时间,取值2s;若estimate_phase_lefttime_1-clear_time≤threshold_time,位于预计运行相位x的下一相位的清空时间之前,operate_phase=x+1;s-6-6:预计到达联网信控路口时的相位与协调相位关系判断:若预计到达联网信控路口时可操作相位为目标协调方向对应相位,即operate_phase∈coordination_phase,协调相位取集合coordination_phase中首个相位。7.根据权利要求6所述城市道路紧急车辆优先通行方法,其特征在于,所述步骤3)中社会车辆进行通行补偿,即为相位补偿,具体包括:s-9-1:锁定相位相关参数获取:根据实时相位数据,确定锁相位期间运行相位列表,判断锁定命令下发到解锁命令期间共完整运行的相位数及各相位绿灯运行时间,判断期间运行相位数与路口当前运行相位总数的关系,若等于运行相位总数,则采集所有各个相位i的绿灯时间fint_phase_time,以及完整固定周期时长fint_cycle_time;若相位数小于当前运行相位总数,则从相位锁定命令前寻找,找到一个完整周期的周期长度fint_cycle_time以及各相位对应的绿灯时间fint_phase_time;读取历史相位数据,确定下发命令期间完整运行周期,得到各个相位历史绿灯时间fint_phase_time
历史
及历史周期长度fint_cycle_time
历史
;s-9-2:流量比计算模块:根据车道号读饱和流率表得到车道在锁定相位下饱和流率和车道流量flow
l
,则车道的流率比流向j对应关键车道的流率比锁定相位i对应关键流向的流率比s-9-3:流量补偿方案计算模块:补偿周期长度采用历史原周期长度,cycletimenew=fint_cycle_time
历史
式中:cycletimenew为补偿方案周期长度,秒;根据损失的绿信比、流量补偿周期数以及各流向流率比计算各相位流量补偿方案,
式中:greentimenew
i
为新方案i相位绿灯时长,秒;compentcycle为流量补偿周期数,配置数据,默认取3;satthreshold为设定饱和度阈值,配置数据,默认0.75greentimecom
i
为补偿方案i相位绿灯时长,秒。
技术总结
本发明涉及一种城市道路紧急车辆优先通行方法,在线路中路口上游为保证协调相位能正常锁定计算的保险位置设定为上游理想预警保险位置;根据GPS实时数据、GIS城市路网数据、联网信控路口数据、联网信控路口信号配时相关数据、排队长度数据,通过路段匹配、路口上游理想预警保险位置计算、预计到达下游路口时间计算,来计算锁定时刻,根据锁定时刻实时预估紧急车辆到达路口前可进行相位驻留的最早与最晚时刻,根据预估时刻启动优先通行;紧急车辆根据优先通行通过路口后,对通过的线路上社会车辆进行通行补偿。可在保障车辆尽快通行、无建议速度限制、无需过多交通保障人员的基础上,有效降低对社会车辆的影响,实现整体通行效率最优。效率最优。效率最优。
技术研发人员:杨学晨 王雪雪 徐克宁 曹毅 华建记 刘晓谦 刘正杰 王维 邹阳 高旭升
受保护的技术使用者:上海电科智能系统股份有限公司
技术研发日:2022.12.14
技术公布日:2023/6/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
