星基ADS-B航迹显示终端设计与实现

2019-05-14 02:42刘海涛
中国民航大学学报 2019年2期
关键词:缓冲区航迹图层

刘海涛,金 鑫

(中国民航大学电子信息与自动化学院,天津 300300)

广播式自动相关监视(ADS-B)是一种基于航空数据链的空管监视技术。与传统的一次与二次雷达监视相比,ADS-B监视具有建设成本低、监视范围广、监视精度高及数据更新快等优点,因此ADS-B广泛应用于空管监视与场面监视等领域。然而,地基ADS-B系统监视范围受限于地面站的位置,监视覆盖范围仅限于航路周围地区,难以实现在洋区、荒漠、峡谷等地区的监视覆盖。马航MH370航班失联事件以后,为解决全球广域范围内的航空器监视跟踪问题,文献[1]提出了星基ADS-B监视的概念。将ADS-B接收机部署于低轨道卫星中,多颗低轨道卫星形成覆盖全球的星基ADS-B系统。与地基ADS-B系统相比,星基ADS-B系统具有覆盖范围广的优势。目前国际民航组织(ICAO)已建议将星基ADS-B系统作为全球航班跟踪的主要技术手段。

目前,在星基ADS-B领域,国内外主要开展了3方面工作:星基ADS-B技术可行性验证、系统方案及系统性能评估。为了验证星基ADS-B技术的可行性,德国、加拿大、丹麦等国家相继发射了ADS-B试验装置[1-3]验证了星基监视技术的可行性,中国国防科技大学发射的天拓三号卫星完成了星载ADS-B信号接收实验。在星基ADS-B系统建设方面,美国Aireon公司提出基于铱星的星基监视方案,该方案利用铱星66颗低轨卫星搭载ADS-B接收机,以实现全球范围内ADS-B信号接收与飞机监视,预计该系统将在2018年提供商业服务;此外,美国全球星公司提出基于全球星的星基监视方案。在星基ADS-B系统性能评估方面,为获得ADS-B共信道干扰对监视系统性能的影响,文献[4-7]通过计算机仿真方法评估了共信道干扰对星基监视系统性能的影响。

为满足基于星基ADS-B系统航班跟踪的需要,设计了星基ADS-B航迹显示终端软件。首先,给出了航班跟踪软件的功能,随后给出了航班跟踪软件的组成架构,进一步给出航班跟踪软件的关键技术,包括ADS-B报文接收、解析及处理流程、目标航迹显示流程与GIS系统实现流程。最后利用天拓实验卫星数据测试了航班跟踪终端软件,测试表明该软件可实现对全球航班有效的监视及跟踪,为相关空管监视软件设计提供了参考,具备一定实用价值。

1 系统功能与组成架构

为实现星基ADS-B系统对全球航班信息处理和监视功能,设计航迹显示终端系统架构如图1所示。

图1 航迹显示终端系统架构Fig.1 System architecture of ADS-B track display terminal

航迹显示终端系统主要包括星基ADS-B全球航班跟踪模块、GIS地理信息显示模块、航行情报资料模块、数据库管理模块,模块主要功能如图2所示。航迹显示终端外部设备为一台ADS-B接收机,外部依赖文件包括GIS地图文件与航行情报文件。软件通过数据库管理模块控制外部ADO数据访问与星基ADS-B数据库之间的信息交互。

1)星基ADS-B全球航班跟踪模块

图2 航迹显示终端功能模块Fig.2 Functional module of ADS-B track display terminal

星基ADS-B全球航班跟踪模块是航迹显示终端的核心功能模块,完成星基ADS-B报文接入处理工作,并在航迹显示终端基本地图上综合显示出ADS-B目标飞行状态。该模块接收的星基ADS-B报文来源包括ADS-B接收机、天拓卫星的ADS-B报文记录文件与星基ADS-B数据库。航迹显示终端包括接收机显示和回放显示两种工作模式,接收机显示模式下,通过使用者设置端口号与IP地址完成ADS-B接收机的报文导入;回放显示模式下,使用者可选择报文记录文件或星基ADS-B数据库作为回放来源,通过设置回放时间完成报文导入工作。该模块会对导入报文进行数据解析和坐标投影转换、星基ADS-B报文处理错误率统计、航迹数据缓冲区中的航迹信息合成和管理,最后完成星基ADS-B目标的综合显示,显示内容由目标图标、尾迹、航班标牌、航班列表4部分组成。

2)GIS地理信息显示模块

GIS地理信息显示模块是航迹显示终端的基本地图界面,完成了GIS地图文件的加载、图层管理、地图显示漫游功能。航迹显示终端使用shapefile文件作为GIS数据来源,shapefile文件作为广泛使用的电子地图数据文件,存储了矢量数据形式的地理元素信息。航迹显示终端启动时加载预设的GIS地图文件,显示内容包括行政区域、河流、湖泊、洋区等。航迹显示终端根据显示内容划分为若干图层进行管理,图层管理包括载入、检索、编辑、卸载功能。地图漫游包括拖动、缩放地图功能。

3)航行情报资料模块

航行情报资料模块为航迹显示终端提供航行情报,完成航行情报信息的加载和显示功能。航迹显示终端启动时加载外部文件获取航行情报资料,内容包括机场位置、国际航路与区域航路的报告点位置、危险区、限制区、近进区等要素。航行情报资料模块的基础层为每种要素建立了GDI绘图模型,在GIS地图绘制完成后该模块按照显示顺序依次绘制各类航行情报信息。

4)数据库管理模块

数据库管理模块完成星基ADS-B数据库的表单创建、读写、查找、删除工作。星基ADS-B数据库采用SQL Server进行实现,SQL Server是关系型数据库管理系统,具有可伸缩性、相关软件集成度高、配置简单访问快的优点。数据库按照日期建立表单,表单内容包括原始报文、解读结果和飞行状态3部分。原始报文的长度为112 bit;解读结果符合RTCA的DO260-B标准[8],包括高度层、航班号、空中位置、速度、导航完整性等18项字段;飞行状态是报文解读内容的子集,包括航班号、地址码、速度、高度、航向5项字段。

2 系统关键技术

2.1 星基ADS-B报文接入处理流程

星基ADS-B系统监视范围广,因而数据量大;同时星基ADS-B采用DF-17数据编码标准,此标准将航班某一时刻的各个状态信息,如速度、位置、航班号等分别编码成为112 bit的数据帧进行下传,其平均每个航班每秒下传数据达6.7帧,因而其数据具有密度高、信息离散的特点。DF-17报文数据帧结构如表1所示。

表1 DF-17报文结构Tab.1 Structure of DF-17 message

使用单一线程无法实现数据实时接收及处理,因此采用多个独立接入线程并行进行数据接收及处理,不同线程间采用共享内容缓冲区方式来实现数据共享与传输。此报文处理架构保证了星基ADS-B数据的实时接入及处理。数据接入线程工作流程如图3所示。

完成报文接入后,首先根据计算机时间加入时间戳后将报文文件进行外部存储,然后对接收内容进行CRC校验并获得航班ICAO地址,提取ME字段,最后根据ME类型和子类型参考DF-17报文规范对接入数据进行解析,数据解析流程如图4所示。

图3 接入线程工作流程Fig.3 Working process of receiving thread

图4 报文解析流程Fig.4 Working process of data interpretation thread

为便于统计星基ADS-B报文处理结果,在解析报文内容时会检查数据完整性和准确性,记录报文解析异常原因、统计接收正确报文数量。解析异常类型分为长度与报文实际字节数不一致,数据项格式不符无法解析,解析结果超出标准文档规定范围3种类型,解析异常类型会被记录到解析结果中。解析结果被存放在解读缓冲区中等待航迹数据缓冲区移除并合成航迹信息。解析异常报文也会被存储于ADS-B数据库中以便ADS-B性能评估系统跟踪分析。

2.2 星基ADS-B目标航迹显示流程

1)航迹缓冲区设计

航迹数据缓冲区采用STL list实现,是星基ADSB目标航迹显示的数据来源。航迹缓冲区中节点内容为目标飞行状态历史记录,包括飞机唯一标识的ICAO地址码、速度矢量信息、意图信息、WGS-84坐标系下的经纬度位置点集、高度层变化曲线等内容。

航迹数据缓冲区的维护包括节点添加、更新和超时删除3种类型。由于DF-17报文信息具有信息零散的特性,应将解析结果融合为飞行状态。航迹数据缓冲区维护流程如图5所示。

图5 航迹数据缓冲区维护流程Fig.5 Maintaining process of track data buffer

航迹数据缓冲区为目标信息发生改变时需要通知的对象定义了一个更新接口,当状态发生改变时向其发出通知。当航迹缓冲区进行更新时,通知基本地图上的目标图标和目标列表,被通知者通过更新接口实现具体功能,收到状态改变通知后调用更新接口获得目标状态改变情况。

2)目标航迹显示流程

目标航迹显示主要由目标图标和目标列表两部分组成。目标图标显示包括飞机图标、历史尾迹和航班标牌3部分。标牌内容为地址码、航班号、速度、高度和航向,标牌与目标图标之间以虚线相连。目标列表则将目标较为详细的信息如距离、方位、高度层、仰角、更新时间、导航完整性等以列表的形式展现。ADSB目标显示流程如图6所示。

图6 星基ADS-B目标显示流程Fig.6 Displaying process of ADS-B target

2.3 基于shapefile的GIS系统实现

1)shapefile文件结构

航迹显示终端使用shapefile文件作为GIS数据来源,shapefile文件是地图矢量数据存储文件,由主文件、索引文件和dbase表组成,主文件记录几何信息,格式如表2所示;索引文件记录偏移地址,格式如表3所示。shapefile文件包含若干图形类型,航迹显示终端只使用 PolyLine、Polygon、MultiPoint这 3种类型作为GIS数据来源。

表2 shp文件结构Tab.2 Structure of.shp file

表3 shx文件结构Tab.3 Structure of.shx file

2)图层设计和管理

GIS系统显示内容在内存中是按照图层进行组织和管理的。GIS系统内包含若干图层,图层内容包括显示时所使用的画笔、字体、画刷等工具与地物符号和注记内容,地图符号库根据图形类型为图层设计了点状、多线、区域3种绘图符号。对图层的操作包括载入、显示、卸载3种类型。每个图层对应着若干空间数据实体,实体内容包括位置矢量数据和属性特征数据,在读取shapefile文件时可获得实体内容,对实体的操作包括增加、删除、修改和检索。图层类的基本内容如下:

3)坐标转换流程

在完成地图显示前需进行坐标转化,由于地图文件中记录的WGS-84大地坐标,首先从大地坐标系转化到投影直角坐标系。航迹显示终端采用墨卡托投影完成坐标转换。墨卡托投影是等角正轴圆柱投影,具备在微小尺度下投影前后的图形形状相同的特性,被google Maps、OpenStreetMap等商业地图所采用。然后将投影直角坐标系按照地图比例尺转换为屏幕坐标系即可得到屏幕显示坐标。

4)消息循环实现

为实现航迹显示终端地图绘制与业务逻辑,需要建立消息循环。程序启动后首先利用CreateWindow()创建主窗口,调用ShowWindow()函数将主窗口显示在屏幕上,进入消息循环,调用GetMessage()函数获取消息,调用DispatchMessage()函数将消息分发到指定窗口。人机交互界面捕捉基本事件,消息管理和调度模块将基本事件转化为系统消息后放入应用程序的消息队列之中,应用程序根据消息队列进行事件处理和目标更新。基本流程如下。

a)创建自定义消息,如:

#define WM_MSG WM_USER+1008

b)填写消息和处理函数的映射关系,如:

c)使用 PostMessageA(hWnd,Msg,wParam,lParam)发送消息,如:

d)在消息映射对应的函数中实现功能,如:

3 系统运行与测试效果

星基ADS-B航迹显示终端硬件拓扑图如图7所示,系统硬件由数据显示终端、数据存储阵列单元及局域网络通信单元组成。显示终端采用Visual Studio 2012作为开发环境,使用MFC建立交互界面。

图7 系统硬件拓扑图Fig.7 System hardware topology

软件运行环境为CPU CORE i5-2450 2.5GHz,2G RAM,Windows 7 OS,目前已得到实现基本功能需求且性能稳定的软件版本,导入天拓实验卫星数据对软件运行情况进行测试的效果如图8所示。经测试,航迹显示终端的GIS地图可完成15万个地理元素的综合显示,显示更新时间小于50 ms,各尺度下地图漫游时没有明显卡顿现象。软件可完成最多3 000个ADS-B目标的实时显示和数据回放功能,目标刷新间隔为1 s,此外,软件具备星基ADS-B目标航迹显示和回放功能,支持历史航迹、航路导出、数据库查看功能。软件经疲劳测试,可完成连续48 h的显示和回放工作。

图8 星基ADS-B航迹显示终端运行效果Fig.8 Running result of ADS-B track display terminal

4 结语

针对星基ADS-B数据特点设计了用于监视全球航班的星基ADS-B航迹显示终端软件。介绍了软件的功能设计与组织架构设计,并详细介绍了关键技术实现流程,最后利用天拓实验卫星数据测试了航迹显示终端,测试表明软件运行稳定,可完成对全球航班进行有效的监视及跟踪工作,为相关ADS-B监视软件的开发提供了参考,具有一定实用价值。

猜你喜欢
缓冲区航迹图层
大数据分析的船舶航迹拟合研究
为《飞舞的空竹龙》加动感
串行连续生产线的可用度与缓冲库存控制研究*
基于ARC的闪存数据库缓冲区算法①
解密照片合成利器图层混合模式
自适应引导长度的无人机航迹跟踪方法
视觉导航下基于H2/H∞的航迹跟踪
无人机航迹追踪算法研究与仿真
初涉缓冲区
本期导读