劉海濤,金 鑫
(中國(guó)民航大學(xué)電子信息與自動(dòng)化學(xué)院,天津 300300)
廣播式自動(dòng)相關(guān)監(jiān)視(ADS-B)是一種基于航空數(shù)據(jù)鏈的空管監(jiān)視技術(shù)。與傳統(tǒng)的一次與二次雷達(dá)監(jiān)視相比,ADS-B監(jiān)視具有建設(shè)成本低、監(jiān)視范圍廣、監(jiān)視精度高及數(shù)據(jù)更新快等優(yōu)點(diǎn),因此ADS-B廣泛應(yīng)用于空管監(jiān)視與場(chǎng)面監(jiān)視等領(lǐng)域。然而,地基ADS-B系統(tǒng)監(jiān)視范圍受限于地面站的位置,監(jiān)視覆蓋范圍僅限于航路周?chē)貐^(qū),難以實(shí)現(xiàn)在洋區(qū)、荒漠、峽谷等地區(qū)的監(jiān)視覆蓋。馬航MH370航班失聯(lián)事件以后,為解決全球廣域范圍內(nèi)的航空器監(jiān)視跟蹤問(wèn)題,文獻(xiàn)[1]提出了星基ADS-B監(jiān)視的概念。將ADS-B接收機(jī)部署于低軌道衛(wèi)星中,多顆低軌道衛(wèi)星形成覆蓋全球的星基ADS-B系統(tǒng)。與地基ADS-B系統(tǒng)相比,星基ADS-B系統(tǒng)具有覆蓋范圍廣的優(yōu)勢(shì)。目前國(guó)際民航組織(ICAO)已建議將星基ADS-B系統(tǒng)作為全球航班跟蹤的主要技術(shù)手段。
目前,在星基ADS-B領(lǐng)域,國(guó)內(nèi)外主要開(kāi)展了3方面工作:星基ADS-B技術(shù)可行性驗(yàn)證、系統(tǒng)方案及系統(tǒng)性能評(píng)估。為了驗(yàn)證星基ADS-B技術(shù)的可行性,德國(guó)、加拿大、丹麥等國(guó)家相繼發(fā)射了ADS-B試驗(yàn)裝置[1-3]驗(yàn)證了星基監(jiān)視技術(shù)的可行性,中國(guó)國(guó)防科技大學(xué)發(fā)射的天拓三號(hào)衛(wèi)星完成了星載ADS-B信號(hào)接收實(shí)驗(yàn)。在星基ADS-B系統(tǒng)建設(shè)方面,美國(guó)Aireon公司提出基于銥星的星基監(jiān)視方案,該方案利用銥星66顆低軌衛(wèi)星搭載ADS-B接收機(jī),以實(shí)現(xiàn)全球范圍內(nèi)ADS-B信號(hào)接收與飛機(jī)監(jiān)視,預(yù)計(jì)該系統(tǒng)將在2018年提供商業(yè)服務(wù);此外,美國(guó)全球星公司提出基于全球星的星基監(jiān)視方案。在星基ADS-B系統(tǒng)性能評(píng)估方面,為獲得ADS-B共信道干擾對(duì)監(jiān)視系統(tǒng)性能的影響,文獻(xiàn)[4-7]通過(guò)計(jì)算機(jī)仿真方法評(píng)估了共信道干擾對(duì)星基監(jiān)視系統(tǒng)性能的影響。
為滿足基于星基ADS-B系統(tǒng)航班跟蹤的需要,設(shè)計(jì)了星基ADS-B航跡顯示終端軟件。首先,給出了航班跟蹤軟件的功能,隨后給出了航班跟蹤軟件的組成架構(gòu),進(jìn)一步給出航班跟蹤軟件的關(guān)鍵技術(shù),包括ADS-B報(bào)文接收、解析及處理流程、目標(biāo)航跡顯示流程與GIS系統(tǒng)實(shí)現(xiàn)流程。最后利用天拓實(shí)驗(yàn)衛(wèi)星數(shù)據(jù)測(cè)試了航班跟蹤終端軟件,測(cè)試表明該軟件可實(shí)現(xiàn)對(duì)全球航班有效的監(jiān)視及跟蹤,為相關(guān)空管監(jiān)視軟件設(shè)計(jì)提供了參考,具備一定實(shí)用價(jià)值。
為實(shí)現(xiàn)星基ADS-B系統(tǒng)對(duì)全球航班信息處理和監(jiān)視功能,設(shè)計(jì)航跡顯示終端系統(tǒng)架構(gòu)如圖1所示。
圖1 航跡顯示終端系統(tǒng)架構(gòu)Fig.1 System architecture of ADS-B track display terminal
航跡顯示終端系統(tǒng)主要包括星基ADS-B全球航班跟蹤模塊、GIS地理信息顯示模塊、航行情報(bào)資料模塊、數(shù)據(jù)庫(kù)管理模塊,模塊主要功能如圖2所示。航跡顯示終端外部設(shè)備為一臺(tái)ADS-B接收機(jī),外部依賴(lài)文件包括GIS地圖文件與航行情報(bào)文件。軟件通過(guò)數(shù)據(jù)庫(kù)管理模塊控制外部ADO數(shù)據(jù)訪問(wèn)與星基ADS-B數(shù)據(jù)庫(kù)之間的信息交互。
1)星基ADS-B全球航班跟蹤模塊
圖2 航跡顯示終端功能模塊Fig.2 Functional module of ADS-B track display terminal
星基ADS-B全球航班跟蹤模塊是航跡顯示終端的核心功能模塊,完成星基ADS-B報(bào)文接入處理工作,并在航跡顯示終端基本地圖上綜合顯示出ADS-B目標(biāo)飛行狀態(tài)。該模塊接收的星基ADS-B報(bào)文來(lái)源包括ADS-B接收機(jī)、天拓衛(wèi)星的ADS-B報(bào)文記錄文件與星基ADS-B數(shù)據(jù)庫(kù)。航跡顯示終端包括接收機(jī)顯示和回放顯示兩種工作模式,接收機(jī)顯示模式下,通過(guò)使用者設(shè)置端口號(hào)與IP地址完成ADS-B接收機(jī)的報(bào)文導(dǎo)入;回放顯示模式下,使用者可選擇報(bào)文記錄文件或星基ADS-B數(shù)據(jù)庫(kù)作為回放來(lái)源,通過(guò)設(shè)置回放時(shí)間完成報(bào)文導(dǎo)入工作。該模塊會(huì)對(duì)導(dǎo)入報(bào)文進(jìn)行數(shù)據(jù)解析和坐標(biāo)投影轉(zhuǎn)換、星基ADS-B報(bào)文處理錯(cuò)誤率統(tǒng)計(jì)、航跡數(shù)據(jù)緩沖區(qū)中的航跡信息合成和管理,最后完成星基ADS-B目標(biāo)的綜合顯示,顯示內(nèi)容由目標(biāo)圖標(biāo)、尾跡、航班標(biāo)牌、航班列表4部分組成。
2)GIS地理信息顯示模塊
GIS地理信息顯示模塊是航跡顯示終端的基本地圖界面,完成了GIS地圖文件的加載、圖層管理、地圖顯示漫游功能。航跡顯示終端使用shapefile文件作為GIS數(shù)據(jù)來(lái)源,shapefile文件作為廣泛使用的電子地圖數(shù)據(jù)文件,存儲(chǔ)了矢量數(shù)據(jù)形式的地理元素信息。航跡顯示終端啟動(dòng)時(shí)加載預(yù)設(shè)的GIS地圖文件,顯示內(nèi)容包括行政區(qū)域、河流、湖泊、洋區(qū)等。航跡顯示終端根據(jù)顯示內(nèi)容劃分為若干圖層進(jìn)行管理,圖層管理包括載入、檢索、編輯、卸載功能。地圖漫游包括拖動(dòng)、縮放地圖功能。
3)航行情報(bào)資料模塊
航行情報(bào)資料模塊為航跡顯示終端提供航行情報(bào),完成航行情報(bào)信息的加載和顯示功能。航跡顯示終端啟動(dòng)時(shí)加載外部文件獲取航行情報(bào)資料,內(nèi)容包括機(jī)場(chǎng)位置、國(guó)際航路與區(qū)域航路的報(bào)告點(diǎn)位置、危險(xiǎn)區(qū)、限制區(qū)、近進(jìn)區(qū)等要素。航行情報(bào)資料模塊的基礎(chǔ)層為每種要素建立了GDI繪圖模型,在GIS地圖繪制完成后該模塊按照顯示順序依次繪制各類(lèi)航行情報(bào)信息。
4)數(shù)據(jù)庫(kù)管理模塊
數(shù)據(jù)庫(kù)管理模塊完成星基ADS-B數(shù)據(jù)庫(kù)的表單創(chuàng)建、讀寫(xiě)、查找、刪除工作。星基ADS-B數(shù)據(jù)庫(kù)采用SQL Server進(jìn)行實(shí)現(xiàn),SQL Server是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有可伸縮性、相關(guān)軟件集成度高、配置簡(jiǎn)單訪問(wèn)快的優(yōu)點(diǎn)。數(shù)據(jù)庫(kù)按照日期建立表單,表單內(nèi)容包括原始報(bào)文、解讀結(jié)果和飛行狀態(tài)3部分。原始報(bào)文的長(zhǎng)度為112 bit;解讀結(jié)果符合RTCA的DO260-B標(biāo)準(zhǔn)[8],包括高度層、航班號(hào)、空中位置、速度、導(dǎo)航完整性等18項(xiàng)字段;飛行狀態(tài)是報(bào)文解讀內(nèi)容的子集,包括航班號(hào)、地址碼、速度、高度、航向5項(xiàng)字段。
星基ADS-B系統(tǒng)監(jiān)視范圍廣,因而數(shù)據(jù)量大;同時(shí)星基ADS-B采用DF-17數(shù)據(jù)編碼標(biāo)準(zhǔn),此標(biāo)準(zhǔn)將航班某一時(shí)刻的各個(gè)狀態(tài)信息,如速度、位置、航班號(hào)等分別編碼成為112 bit的數(shù)據(jù)幀進(jìn)行下傳,其平均每個(gè)航班每秒下傳數(shù)據(jù)達(dá)6.7幀,因而其數(shù)據(jù)具有密度高、信息離散的特點(diǎn)。DF-17報(bào)文數(shù)據(jù)幀結(jié)構(gòu)如表1所示。
表1 DF-17報(bào)文結(jié)構(gòu)Tab.1 Structure of DF-17 message
使用單一線程無(wú)法實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)接收及處理,因此采用多個(gè)獨(dú)立接入線程并行進(jìn)行數(shù)據(jù)接收及處理,不同線程間采用共享內(nèi)容緩沖區(qū)方式來(lái)實(shí)現(xiàn)數(shù)據(jù)共享與傳輸。此報(bào)文處理架構(gòu)保證了星基ADS-B數(shù)據(jù)的實(shí)時(shí)接入及處理。數(shù)據(jù)接入線程工作流程如圖3所示。
完成報(bào)文接入后,首先根據(jù)計(jì)算機(jī)時(shí)間加入時(shí)間戳后將報(bào)文文件進(jìn)行外部存儲(chǔ),然后對(duì)接收內(nèi)容進(jìn)行CRC校驗(yàn)并獲得航班ICAO地址,提取ME字段,最后根據(jù)ME類(lèi)型和子類(lèi)型參考DF-17報(bào)文規(guī)范對(duì)接入數(shù)據(jù)進(jìn)行解析,數(shù)據(jù)解析流程如圖4所示。
圖3 接入線程工作流程Fig.3 Working process of receiving thread
圖4 報(bào)文解析流程Fig.4 Working process of data interpretation thread
為便于統(tǒng)計(jì)星基ADS-B報(bào)文處理結(jié)果,在解析報(bào)文內(nèi)容時(shí)會(huì)檢查數(shù)據(jù)完整性和準(zhǔn)確性,記錄報(bào)文解析異常原因、統(tǒng)計(jì)接收正確報(bào)文數(shù)量。解析異常類(lèi)型分為長(zhǎng)度與報(bào)文實(shí)際字節(jié)數(shù)不一致,數(shù)據(jù)項(xiàng)格式不符無(wú)法解析,解析結(jié)果超出標(biāo)準(zhǔn)文檔規(guī)定范圍3種類(lèi)型,解析異常類(lèi)型會(huì)被記錄到解析結(jié)果中。解析結(jié)果被存放在解讀緩沖區(qū)中等待航跡數(shù)據(jù)緩沖區(qū)移除并合成航跡信息。解析異常報(bào)文也會(huì)被存儲(chǔ)于ADS-B數(shù)據(jù)庫(kù)中以便ADS-B性能評(píng)估系統(tǒng)跟蹤分析。
1)航跡緩沖區(qū)設(shè)計(jì)
航跡數(shù)據(jù)緩沖區(qū)采用STL list實(shí)現(xiàn),是星基ADSB目標(biāo)航跡顯示的數(shù)據(jù)來(lái)源。航跡緩沖區(qū)中節(jié)點(diǎn)內(nèi)容為目標(biāo)飛行狀態(tài)歷史記錄,包括飛機(jī)唯一標(biāo)識(shí)的ICAO地址碼、速度矢量信息、意圖信息、WGS-84坐標(biāo)系下的經(jīng)緯度位置點(diǎn)集、高度層變化曲線等內(nèi)容。
航跡數(shù)據(jù)緩沖區(qū)的維護(hù)包括節(jié)點(diǎn)添加、更新和超時(shí)刪除3種類(lèi)型。由于DF-17報(bào)文信息具有信息零散的特性,應(yīng)將解析結(jié)果融合為飛行狀態(tài)。航跡數(shù)據(jù)緩沖區(qū)維護(hù)流程如圖5所示。
圖5 航跡數(shù)據(jù)緩沖區(qū)維護(hù)流程Fig.5 Maintaining process of track data buffer
航跡數(shù)據(jù)緩沖區(qū)為目標(biāo)信息發(fā)生改變時(shí)需要通知的對(duì)象定義了一個(gè)更新接口,當(dāng)狀態(tài)發(fā)生改變時(shí)向其發(fā)出通知。當(dāng)航跡緩沖區(qū)進(jìn)行更新時(shí),通知基本地圖上的目標(biāo)圖標(biāo)和目標(biāo)列表,被通知者通過(guò)更新接口實(shí)現(xiàn)具體功能,收到狀態(tài)改變通知后調(diào)用更新接口獲得目標(biāo)狀態(tài)改變情況。
2)目標(biāo)航跡顯示流程
目標(biāo)航跡顯示主要由目標(biāo)圖標(biāo)和目標(biāo)列表兩部分組成。目標(biāo)圖標(biāo)顯示包括飛機(jī)圖標(biāo)、歷史尾跡和航班標(biāo)牌3部分。標(biāo)牌內(nèi)容為地址碼、航班號(hào)、速度、高度和航向,標(biāo)牌與目標(biāo)圖標(biāo)之間以虛線相連。目標(biāo)列表則將目標(biāo)較為詳細(xì)的信息如距離、方位、高度層、仰角、更新時(shí)間、導(dǎo)航完整性等以列表的形式展現(xiàn)。ADSB目標(biāo)顯示流程如圖6所示。
圖6 星基ADS-B目標(biāo)顯示流程Fig.6 Displaying process of ADS-B target
1)shapefile文件結(jié)構(gòu)
航跡顯示終端使用shapefile文件作為GIS數(shù)據(jù)來(lái)源,shapefile文件是地圖矢量數(shù)據(jù)存儲(chǔ)文件,由主文件、索引文件和dbase表組成,主文件記錄幾何信息,格式如表2所示;索引文件記錄偏移地址,格式如表3所示。shapefile文件包含若干圖形類(lèi)型,航跡顯示終端只使用 PolyLine、Polygon、MultiPoint這 3種類(lèi)型作為GIS數(shù)據(jù)來(lái)源。
表2 shp文件結(jié)構(gòu)Tab.2 Structure of.shp file
表3 shx文件結(jié)構(gòu)Tab.3 Structure of.shx file
2)圖層設(shè)計(jì)和管理
GIS系統(tǒng)顯示內(nèi)容在內(nèi)存中是按照?qǐng)D層進(jìn)行組織和管理的。GIS系統(tǒng)內(nèi)包含若干圖層,圖層內(nèi)容包括顯示時(shí)所使用的畫(huà)筆、字體、畫(huà)刷等工具與地物符號(hào)和注記內(nèi)容,地圖符號(hào)庫(kù)根據(jù)圖形類(lèi)型為圖層設(shè)計(jì)了點(diǎn)狀、多線、區(qū)域3種繪圖符號(hào)。對(duì)圖層的操作包括載入、顯示、卸載3種類(lèi)型。每個(gè)圖層對(duì)應(yīng)著若干空間數(shù)據(jù)實(shí)體,實(shí)體內(nèi)容包括位置矢量數(shù)據(jù)和屬性特征數(shù)據(jù),在讀取shapefile文件時(shí)可獲得實(shí)體內(nèi)容,對(duì)實(shí)體的操作包括增加、刪除、修改和檢索。圖層類(lèi)的基本內(nèi)容如下:
3)坐標(biāo)轉(zhuǎn)換流程
在完成地圖顯示前需進(jìn)行坐標(biāo)轉(zhuǎn)化,由于地圖文件中記錄的WGS-84大地坐標(biāo),首先從大地坐標(biāo)系轉(zhuǎn)化到投影直角坐標(biāo)系。航跡顯示終端采用墨卡托投影完成坐標(biāo)轉(zhuǎn)換。墨卡托投影是等角正軸圓柱投影,具備在微小尺度下投影前后的圖形形狀相同的特性,被google Maps、OpenStreetMap等商業(yè)地圖所采用。然后將投影直角坐標(biāo)系按照地圖比例尺轉(zhuǎn)換為屏幕坐標(biāo)系即可得到屏幕顯示坐標(biāo)。
4)消息循環(huán)實(shí)現(xiàn)
為實(shí)現(xiàn)航跡顯示終端地圖繪制與業(yè)務(wù)邏輯,需要建立消息循環(huán)。程序啟動(dòng)后首先利用CreateWindow()創(chuàng)建主窗口,調(diào)用ShowWindow()函數(shù)將主窗口顯示在屏幕上,進(jìn)入消息循環(huán),調(diào)用GetMessage()函數(shù)獲取消息,調(diào)用DispatchMessage()函數(shù)將消息分發(fā)到指定窗口。人機(jī)交互界面捕捉基本事件,消息管理和調(diào)度模塊將基本事件轉(zhuǎn)化為系統(tǒng)消息后放入應(yīng)用程序的消息隊(duì)列之中,應(yīng)用程序根據(jù)消息隊(duì)列進(jìn)行事件處理和目標(biāo)更新?;玖鞒倘缦隆?/p>
a)創(chuàng)建自定義消息,如:
#define WM_MSG WM_USER+1008
b)填寫(xiě)消息和處理函數(shù)的映射關(guān)系,如:
c)使用 PostMessageA(hWnd,Msg,wParam,lParam)發(fā)送消息,如:
d)在消息映射對(duì)應(yīng)的函數(shù)中實(shí)現(xiàn)功能,如:
星基ADS-B航跡顯示終端硬件拓?fù)鋱D如圖7所示,系統(tǒng)硬件由數(shù)據(jù)顯示終端、數(shù)據(jù)存儲(chǔ)陣列單元及局域網(wǎng)絡(luò)通信單元組成。顯示終端采用Visual Studio 2012作為開(kāi)發(fā)環(huán)境,使用MFC建立交互界面。
圖7 系統(tǒng)硬件拓?fù)鋱DFig.7 System hardware topology
軟件運(yùn)行環(huán)境為CPU CORE i5-2450 2.5GHz,2G RAM,Windows 7 OS,目前已得到實(shí)現(xiàn)基本功能需求且性能穩(wěn)定的軟件版本,導(dǎo)入天拓實(shí)驗(yàn)衛(wèi)星數(shù)據(jù)對(duì)軟件運(yùn)行情況進(jìn)行測(cè)試的效果如圖8所示。經(jīng)測(cè)試,航跡顯示終端的GIS地圖可完成15萬(wàn)個(gè)地理元素的綜合顯示,顯示更新時(shí)間小于50 ms,各尺度下地圖漫游時(shí)沒(méi)有明顯卡頓現(xiàn)象。軟件可完成最多3 000個(gè)ADS-B目標(biāo)的實(shí)時(shí)顯示和數(shù)據(jù)回放功能,目標(biāo)刷新間隔為1 s,此外,軟件具備星基ADS-B目標(biāo)航跡顯示和回放功能,支持歷史航跡、航路導(dǎo)出、數(shù)據(jù)庫(kù)查看功能。軟件經(jīng)疲勞測(cè)試,可完成連續(xù)48 h的顯示和回放工作。
圖8 星基ADS-B航跡顯示終端運(yùn)行效果Fig.8 Running result of ADS-B track display terminal
針對(duì)星基ADS-B數(shù)據(jù)特點(diǎn)設(shè)計(jì)了用于監(jiān)視全球航班的星基ADS-B航跡顯示終端軟件。介紹了軟件的功能設(shè)計(jì)與組織架構(gòu)設(shè)計(jì),并詳細(xì)介紹了關(guān)鍵技術(shù)實(shí)現(xiàn)流程,最后利用天拓實(shí)驗(yàn)衛(wèi)星數(shù)據(jù)測(cè)試了航跡顯示終端,測(cè)試表明軟件運(yùn)行穩(wěn)定,可完成對(duì)全球航班進(jìn)行有效的監(jiān)視及跟蹤工作,為相關(guān)ADS-B監(jiān)視軟件的開(kāi)發(fā)提供了參考,具有一定實(shí)用價(jià)值。