謝東穎
(中國民用航空汕頭空中交通管理站,汕頭515000)
當前民航空管正大力推進對中小機場在空管技術(shù)上的幫扶,通過技術(shù)援助等方式提高中小機場的空管保障能力,促進民航整體空管水平的提升。以中南地區(qū)為例,汕頭空管站負責了梅縣機場的ADS-B 的技術(shù)支持和相應設備運維。當前梅縣機場應用了ADS-B中小機場顯示系統(tǒng),該系統(tǒng)可以接入ADS-B 數(shù)據(jù),實現(xiàn)對梅縣管制區(qū)內(nèi)的飛行態(tài)勢監(jiān)視。ADS-B 是民航近年推進發(fā)展的新技術(shù),雖然已經(jīng)在全國范圍內(nèi)實現(xiàn)了普及,但是目前數(shù)據(jù)穩(wěn)定性方面還不如傳統(tǒng)雷達。本文從實際出發(fā)提出一種將雷達數(shù)據(jù)轉(zhuǎn)換為ADS-B 數(shù)據(jù)的軟件系統(tǒng),通過系統(tǒng)的轉(zhuǎn)換可以將本地的雷達數(shù)據(jù)以ADS-B 數(shù)據(jù)格式接入中小機場顯示系統(tǒng),為當?shù)貦C場的運行保障提供另一種手段。
ADS-B 采用網(wǎng)絡接入到中小機場顯示系統(tǒng),其格式為ASTERIX CAT021 格式,更新周期為0.4~0.6s。航空器的相關信息可以通過不同的消息廣播,具體數(shù)據(jù)項的更新時間間隔不一致,因此,每次更新的目標描述數(shù)據(jù)不一定完整,存在部分數(shù)據(jù)更新的情況。雷達數(shù)據(jù)在實際工作中則通過同步串口,采用HDLC 高級數(shù)據(jù)鏈路協(xié)議。一般的A/C 模式雷達的目標數(shù)據(jù)格式為歐控ASTERIX CAT001,服務信息數(shù)據(jù)格式為ASTERIX CAT002(S 模式雷達則分別為CAT034 和CAT048)[1],相比之下,雷達數(shù)據(jù)更新的周期較長,一般為4s 或5s。因此設計必須解決以下問題:一是需要將雷達數(shù)據(jù)的同步串口進行解析和處理得出具體數(shù)據(jù)項內(nèi)容;二是需要根據(jù)ASTERIX 協(xié)議將CAT001/CAT002和CAT034/CAT048 中的具體數(shù)據(jù)項和CAT021 中的具體對應項分別對應,進行數(shù)據(jù)狀態(tài)的更新,封裝為CAT021 的數(shù)據(jù)格式轉(zhuǎn)換為UDP 網(wǎng)絡數(shù)據(jù)接入到中小機場顯示系統(tǒng);三是解決兩種數(shù)據(jù)格式之間的更新周期不一致問題。對雷達數(shù)據(jù)進行內(nèi)插預測。主要的系統(tǒng)流程結(jié)構(gòu)如圖1,軟件設計上可以分為雷達數(shù)據(jù)處理模塊、數(shù)據(jù)轉(zhuǎn)換模塊、更新周期同步模塊和數(shù)據(jù)發(fā)送模塊。
圖1 系統(tǒng)流程結(jié)構(gòu)圖
為了提高開發(fā)效率,系統(tǒng)采用當前汕頭空管站在用自動化系統(tǒng)的協(xié)議轉(zhuǎn)換器,該協(xié)議轉(zhuǎn)換器可以將接入的雷達信號由RS-232 同步信號轉(zhuǎn)換為UDP 網(wǎng)絡信號。因此,系統(tǒng)只需要在網(wǎng)絡接入上對數(shù)據(jù)進行分析處理即可。在C#中UDP 數(shù)據(jù)處理可以采用以下方式。首先創(chuàng)建數(shù)據(jù)緩存隊列,并開啟數(shù)據(jù)包解析線程,創(chuàng)建UDP 通信對象,綁定本地IP 和端口,通過UDP 異步接收數(shù)據(jù)將接收到的數(shù)據(jù)封裝為DataPacket 放入數(shù)據(jù)包緩沖隊列中。后續(xù)的軟件分析處理模塊只需要在隊列中對具體數(shù)據(jù)項處理即可。數(shù)據(jù)格式解析則可以根據(jù)CAT021、CAT001 和CAT048 進行具體解析。同時,系統(tǒng)將建立起目標數(shù)據(jù)列表,通過航班號為唯一識別信息建立數(shù)據(jù)類,該類將包含數(shù)據(jù)轉(zhuǎn)換關鍵對應項的多個屬性,后續(xù)的數(shù)據(jù)項對應只需要修改具體目標的具體屬性即可,方便消息傳遞和處理[2]。
中小機場顯示系統(tǒng)在態(tài)勢顯示上的關鍵數(shù)據(jù)項為航空器的航班號、SSR、位置和高度,因此系統(tǒng)在進行數(shù)據(jù)轉(zhuǎn)換時必須關注相應的數(shù)據(jù)項信息,除了上述數(shù)據(jù),筆者對監(jiān)視數(shù)據(jù)的必須關注項進行了整理得出關鍵數(shù)據(jù)項對應表,具體如表1。
表1 關鍵數(shù)據(jù)項對應表
中小機場顯示系統(tǒng)在信號引接中需要數(shù)據(jù)源提供標識,而在ASTERIX 數(shù)據(jù)中,主要通過SAC/SIC 碼進行識別,因此系統(tǒng)需要對010 數(shù)據(jù)項進行解析;實際工作中ADS-B 數(shù)據(jù)是可以不包含SSR 二次代碼信息的,但是雷達數(shù)據(jù)必須實時具備該信息,因此為了提高信息的豐富余度,此處不管ADS-B 是否需要SSR 都將雷達數(shù)據(jù)的070 數(shù)據(jù)項轉(zhuǎn)換到ADS-B 的070 數(shù)據(jù)項中;S 模式與ADS-B 在航班號和24 位地址碼的格式表現(xiàn)上是類似的因此可以直接將其轉(zhuǎn)換應用,如若是A/C模式雷達數(shù)據(jù)則將其置為不可信“????”字符(如航班號);至于SPI 是監(jiān)視數(shù)據(jù)的重要信息,因此需要將雷達數(shù)據(jù)中的020 轉(zhuǎn)換到ADS-B 數(shù)據(jù)中的040 數(shù)據(jù)項;特殊代碼在ADS-B 中有兩個標志位,如若雷達數(shù)據(jù)的該數(shù)據(jù)項有具體的內(nèi)容,轉(zhuǎn)換時必須將ADS-B 中的200 數(shù)據(jù)項的標志位置為有效和在070 中設置相應的特殊代碼[3];位置和高度則是態(tài)勢顯示的關鍵,系統(tǒng)必須對其進行準確、實時的轉(zhuǎn)換。雷達數(shù)據(jù)采用的是極坐標或笛卡爾坐標系表現(xiàn)位置,ADS-B 則是WGS-84坐標顯示的經(jīng)緯度坐標。因此此處需要將雷達數(shù)據(jù)坐標轉(zhuǎn)為WGS-84。
在高度的處理上,主要存在精度的不一致情況。雷達數(shù)據(jù)主要采用C 模式高度,A/C 模式雷達的高度數(shù)據(jù)精度為100ft,S 模式則為25ft,ADS-B 也為25ft。而在實際應用中,這種精度的差別并不影響態(tài)勢顯示,因此可以選擇不進行精度對應處理,直接將雷達數(shù)據(jù)的高度數(shù)據(jù)項值填入具體的ADS-B 數(shù)據(jù)項即可。
如上所述,需要對雷達數(shù)據(jù)進行內(nèi)插預測處理,此處采用隨機森林內(nèi)插算法[4]。隨機森林可以綜合集成學習思想和隨機子空間方法,利用袋裝重抽樣的方法從4s 一周期的雷達歷史數(shù)據(jù)中抽取多個與原始樣本一樣數(shù)量的元素構(gòu)建一個決策樹。在決策樹的構(gòu)建中,通過隨機子空間法從特征中隨機選擇特征,利用最優(yōu)特征進行節(jié)點分裂。預測決策樹每次預測都會給出一個預測結(jié)果,并通過少數(shù)服從多數(shù)的原則得出最終的結(jié)果,最終進行回歸計算。具體實現(xiàn)為:系統(tǒng)保存1分鐘內(nèi)的雷達數(shù)據(jù)作為訓練集,并選擇出測試集和特征維數(shù),抽取根節(jié)點樣本進行訓練;若當前節(jié)點達到終止條件,該節(jié)點將會被設置為葉子節(jié)點,預測輸出具體的平均值,否則從特征維數(shù)中隨機選取特征維數(shù)尋找回歸效果最優(yōu)的特征和閾值,當最優(yōu)特征值大于該閾值時,樣本進入右節(jié)點,否則進入左節(jié)點。如此循環(huán)運行直到所有節(jié)點都被標記為葉子節(jié)點。為提高執(zhí)行效率,算法采用Python 設計[5],部分代碼實現(xiàn)如下:
對于中小型機場,管制空域較小,區(qū)域內(nèi)需要顯示的目標不多,因此可以在顯示范圍上對目標進行過濾,只關心和處理本區(qū)域內(nèi)目標,降低算法運行開銷。實際測試表明,這種算法能有效實現(xiàn)雷達數(shù)據(jù)更新周期的改變,位置和高度信息不會出現(xiàn)較大的突變,數(shù)據(jù)預測效果與實際的ADS-B 數(shù)據(jù)運行態(tài)勢較為接近。
數(shù)據(jù)最終需要封裝為CAT021 的ADS-B 數(shù)據(jù)發(fā)送到中小機場顯示系統(tǒng)。與雷達數(shù)據(jù)接收處理類似,此處采用UDP 封裝類,而前端的數(shù)據(jù)處理效果能夠滿足實時性要求,因此此處采用C#的UDP 通信關鍵類Udpclient 進行設計,引入命名空間:
為了提高系統(tǒng)的人機交互性能,系統(tǒng)在前端提供用戶接口,用戶可以輸入中小機場顯示系統(tǒng)的IP 地址。最終軟件通過“Send”方法的調(diào)用實現(xiàn)數(shù)據(jù)的發(fā)送。采用UdpClient 類調(diào)用函數(shù)發(fā)送UDP 數(shù)據(jù)包,具體實現(xiàn)部分代碼如下:
根據(jù)當前ADS-B 在中小機場的顯示應用提出一種ADS-B 數(shù)據(jù)轉(zhuǎn)換系統(tǒng),該系統(tǒng)將A/C 模式和S 模式雷達數(shù)據(jù)轉(zhuǎn)換為ADS-B 數(shù)據(jù),以豐富當前ADS-B 中小機場顯示系統(tǒng)的監(jiān)視源,為中小型機場的空管運行保障提供支持。系統(tǒng)在周期同步方面采用了隨機森林內(nèi)插法,完成了雷達數(shù)據(jù)與ADS-B 數(shù)據(jù)的實時同步顯示,軟件實現(xiàn)上通過C#和Python 結(jié)合編程的方式,兼顧開發(fā)效率和算法運行性能,在實際工作中表現(xiàn)良好。