基于ADS-B的防撞检测算法研究
2021-07-24徐文江李妮锶
徐文江,林 琳,李妮锶,姚 成
(中国民用航空飞行学院 民航飞行技术与飞行安全科研基地,四川 广汉 618307)
0 引言
近年来我国越来越重视通用航空的发展,并逐渐开放低空空域,通用航空的发展在多个地区已取得明显成效。近几年我国运输飞机的年均增速超过10%,通航飞机数量也在快速增加。截至2019年,我国在册的运输飞机数量达3818架,通航飞机数量达2707架,无人机数量已达39.2万架[1]。航空器数量的快速增加,对于空中交通管理来说是一个巨大的挑战。空中交通警戒与防撞系统(TCAS系统)能够探测在其领域内装有空中交通管制应答机的任何飞机,已成功运用于运输航空。但TCAS系统不适用于通用航空,因此通用航空飞机在空中飞行时存在安全隐患。已有的数据表明,进入本世纪以来90%以上的飞机相撞事故发生在低空,且大部分为通用航空飞机[2]。可见,通用航空的防撞系统亟待进一步完善。
广播式自动相关监视(ADS-B) 是新航行系统中非常重要的通信和监视技术,主要实施地对空及空对空监视。ADS-B包括ADS-B OUT和ADS-B IN,前者周期性地广播飞机的飞行信息,包括飞机的ID、经度、纬度、高度、航向等,后者接收周围的ADS-B信息。ADS-B能够提高空域利用率,减轻云或能见度造成的限制,改善空中交通管制,防止飞机碰撞和引导其安全飞行[3]。ADS-B的信号源主要有全球卫星导航系统、惯性基准系统、惯性导航系统、飞行管理系统和其他机载传感器系统,这些系统均对地面设备没有依赖性。国际民航组织(ICAO)公布的ADS-B的传输数据链为1090SE模式,在该模式中数据的长度达到112位,更新率为2次/秒,有效的广播范围达到370400 m。ADS-B把冲突探测、冲突避免、冲突解决、航空交通管制系统(ATC)以及驾驶舱交通显示信息显示有机结合起来,为新航行系统增强和扩展了非常丰富的功能[4]。
为适应目前通用航空的发展特点,本文提出了一种基于ADS-B的空中交通防撞检测算法。该算法将飞机周围的区域划分为三个保护区:监视区域(SAZ)、保护区域(PAZ)、冲突区域(CAZ),可在更大范围内监视周围的飞机。当其他飞机进入SAZ时,对该飞机采用本文提出的算法进行水平方向和最接近距离分析,预判入侵飞机是否会与本机产生碰撞。如果存在碰撞危险,系统立刻发出警告。
1 飞机冲突检测算法
冲突检测算法是对出现在本机周围的飞机通过算法进行分析,判断其是否会与本机发生冲突。目前已有数种不同的冲突检测算法,其中,美国宇航局阿姆斯特朗飞行研究中心开发的一种Stratway模块化算法,使用精确的短期ADS-B信息进行速度状态轨迹估计,使飞机之间实时有效地保持安全间隔距离[5]。文献[6]提出了概率网格检测,该方法是关于飞机同时到达同一扇区概率的加权网格,每架飞机每秒会产生多个网格,通过概率网格的数值可以判断飞机是否会发生碰撞。闭环快速探索随机树算法检查预测路径和移动障碍物之间是否发生碰撞,每个时刻估算无人机和障碍物之间的距离,通过这种方法来避免飞机发生碰撞[7]。此外,还有许多学者研究了基于最接近点预测、时间轴、水平和垂直方向的碰撞检测算法,这些算法大部分是对飞机飞行轨迹的预测,存在一定的缺陷。
本文提出的检测算法,结合ADS-B监视范围广和数据更新快的特点,扩大监视范围,建立三层球体保护区模型,将没有危险的飞机提前排除。当有飞机出现在SAZ时,首先进行水平方向的判断,判断两机的飞行趋势和航向角关系。若水平方向上两机仍然具有碰撞危险,再进行最接近距离分析。如果两机存在碰撞危险,系统立即发出警告。该算法的算法流程图如图1所示,图1中RCAZ为本机冲突区域的半径。
图1 基于ADS-B算法流程图
1.1 飞机冲突区域划分
根据不同的机型设计适当的冲突区域,能缩短飞机之间的间隔,确保飞机之间安全距离。对飞机冲突区域的划分主要有两种模型:一种是圆柱体模型;另一种是球体模型。圆柱体模型划分方式通常是将飞机周围的区域划分为两个部分: CAZ和PAZ。CAZ 采用ATC 规定的区域大小,即以本机为中心,水平面半径为9.26 km,上下各为0.366 km 的圆柱体区域。PAZ 的大小根据不同的机型设定[8-10]。球体模型划分方式是以本机中心,将每一架飞机周围的区域划分为PAZ和CAZ,PAZ和CAZ均以飞机中心作为球心,较大球体和较小球体分别为PAZ和CAZ[11-12]。多数冲突探测算法以圆柱体为模型,存在计算量大、虚警和漏警概率高、区域划分不准确等问题[13]。
本文提出的算法充分利用ADS-B的优势,建立三层保护区球体模型,即以本机为中心,向外依次为CAZ、PAZ、SAZ,如图2所示。图中三个区域的半径根据ADS-B接收信息的有效距离和ATC的规定而定。根据ICAO间隔和空域安全专家组对ADS-B 提供类雷达服务下间隔的安全性所给出的评估结论,航路和终端区可采用5 n mile的最小间隔[14],本文碰撞区域的半径设置为5 n mile。PAZ区域的半径在CAZ 区域的基础上,根据入侵飞机航迹和相对速度来动态设置,即:
图2 飞机冲突区域划分
RPAZ=RCAZ+max(0,v(t))T
(1)
式中:v(t)为本机和入侵飞机在t时刻的相对速度;T为PAZ 的水平和垂直预留时间,取T=10 s[15]。PAZ区域为CAZ外侧到RPAZ的部分。SAZ的半径RSAZ设置为50 n mile,SAZ区域为PAZ外侧到RSAZ的部分。
1.2 冲突检测算法
在球体保护区模型上,对入侵到SAZ的飞机进行分析。分析内容包括两机的飞行趋势、水平方向航向位置关系和最接近的距离,通过三次判断最终得出入侵飞机是否会与本机发生碰撞。
当有飞机出现在SAZ时,设本机A的信息包括(xA,yA,hA,vA,ωA,θA),入侵飞机B的信息包括(xB,yB,hB,vB,ωB,θB),其中:(x,y,h)是飞机在WGS-84坐标系下的地理位置;v表示飞机的速度;ω表示飞机此时的航向角;θ表示飞机的俯仰角。基于如上信息,下面对两机的水平方向和最接近的距离进行判断和分析。
1.2.1 水平方向判断
水平方向的判断是通过数据分析两机的飞行趋势,即判断两机是接近飞行还是远离飞行。如果是远离飞行,入侵的飞机不会与本机发生碰撞,不再进行碰撞分析。如果是接近飞行,则需对飞机继续进行碰撞分析。
将飞机的速度分解为x、y、h三个方向的速度:
vx=vt×sinω
(2)
vy=vt×cosω
(3)
vh=vt×sinθ
(4)
vxA、vyA、vxB、vyB为本机A、入侵飞机B在x,y方向上的速度。t时刻的飞行趋势采用下式进行判断:
S1=(xAt-xBt)(vxAt-vxBt)+(yAt-yBt)(vyAt-vyBt)
(5)
根据式(5),S1>0表示两机远离飞行,S1<0表示两机接近飞行,S1=0表明两机相对静止飞行[16]。
将飞行趋势为接近飞行的入侵飞机做进一步的分析,在水平方向上采用航向角进行判断。航向线即飞机纵轴的延长线,从飞机所在位置经线北端顺时量到航向线的角度即为航向角,航向角的范围为0~360°,如图3所示。后续分析采用真航向作为判断依据。航向线不相交的两机不存在碰撞危险,不再进行冲突判断。
图3 两机的水平方向投影图
根据两机t时刻的坐标(xA,yA)和(xB,yB),可得:
Δx=xAt-xBt
(6)
Δy=yAt-yBt
(7)
通过式(6)和(7)并结合本机的航向得出入侵飞机的位置关系:可以为左前侧、左后侧、右前侧和右后侧。
根据两机的位置关系的不同进行航向角计算,并判断冲突情况。
1.2.2 最接近的距离分析
对水平方向上具有碰撞危险的入侵飞机进行进一步分析,判断其与本机的最接近距离。根据两机的前一时刻的飞行数据和此刻的飞行数据构建飞行轨迹公式,通过两机的飞行轨迹公式计算两机的最接近的距离d。如果最接近的距离d大于本机的CAZ半径,两机不会发生碰撞,否则两机具有发送碰撞的危险。
根据本机的前一时刻的飞行数据点(xAt-1,yAt-1,hAt-1)和此刻的数据点(xAt,yAt,hAt)构建一条本机的飞行轨迹:
入侵飞机的前一时刻的飞行数据点(xBt-1,yBt-1,hBt-1)和此刻的数据点(xBt,yBt,hBt)构建一条入侵飞机的飞行轨迹:
通过式(8)和(9)计算两机最接近的距离:
式中:vA=(xAt-xAt-1,yAt-yAt-1,hAt-hAt-1);vB=(xBt-xBt-1,yBt-yBt-1,hBt-hBt-1);M1=(xAt,yAt,hAt);M2=(xBt,yBt,hBt)。
最接近的距离d与本机的CAZ半径为RCAZ的比较:
S2=d-RCAZ(11)
如果S2>0表示两机不会相撞,如果S2<0表示两机的最接近的距离小于本机CAZ的半径,则两机具有碰撞的危险,系统立即发出警告。
通过两机飞行趋势分析、水平方向和最接近的距离的综合判断,若三个冲突均成立,表明两机确实存在碰撞的危险,需向飞行员发出警告,引起飞行员注意,使其能够及时采取措施,避免危险发生。
2 仿真分析
为了验证算法的有效性,利用MATLAB软件进行算法仿真,采用Monte-Carlo方法进行10000次计算。假设本机的位置为(75,75,900,7500,0,0),即本机在WGS-84坐标系下的地理位置为(75,75,7500),飞行速度为900 km/h,航向角为0°,俯仰角为0°,CAZ的半径RCAZ为5 n mile,PAZ的半径RPAZ为15 n mile,SAZ监视区域的半径RSAZ为60 n mile。
在本机周围随机出现22架飞机,首先判断这些飞机是否处于本机的SAZ内,再进行冲突检测判断。图4是初始交通态势图,横坐标的方向为东向,纵坐标的方向为北向。
图4 初始交通态势图
图5是10000次Monte-Carlo计算数据图,计算的飞机总量为250000架次。首先判断相邻的飞机是否处于本机的SAZ区域,经判断处在本机SAZ区域的飞机总数为208758架次。通过飞行趋势分析后,存在碰撞危险的飞机数量为104613架次,无冲突危险的飞机占比为58.1%;通过水平方向分析判断后存在危险的飞机数量为38115架次,此时,总的无冲突危险飞机占比为84.7%;最后,通过最接近的距离分析判断后存在危险的飞机数量为8049架次,总的无冲突危险飞机占比为96.7%,计算结果还表明,每次计算平均有0.8架入侵飞机与本机存在冲突。
图6为存在冲突危险入侵飞机的分析示意图。图中入侵飞机的三维位置为(83,101,10097),航向角为318°,速度为784 km/h。处在本机的SAZ内,两机是接近飞行,入侵飞机处在本机的右前侧,且入侵飞机航向角处于能够发生碰撞的范围内,两机有发生碰撞的危险。根据两机最接近距离判据,如果两机间最接近距离小于本机CAZ的半径,系统则立即发出警告。
3 结论
本文基于ADS-B针对复杂的空域管理提出了一种高效的冲突检测算法。该算法采用三层球体保护模型,通过飞行趋势、航向角和最接近距离三次判断后得出入侵飞机与本机的飞行情况。当本机与入侵飞机具有碰撞危险时,立刻发出警告。基于飞行实际情况和本算法,利用MATLAB软件采用Monte-Carlo方法进行10000次计算仿真。结果表明:通过飞行趋势判断能排除一半无冲突的飞机;通过航向角判断能够排除三分之一无冲突的飞机。该算法能够快速的检测出存在碰撞危险的入侵飞机,具有冲突的检测周期短、流程合理、方法简单高效、检测准确等优点。在实际的空域中飞行情况更加复杂,由于多种因素的综合影响,存在的冲突情况更多,对于冲突检测还需要更进一步研究。