謝東穎
(中國民用航空汕頭空中交通管理站,汕頭515000)
當前民航空管正大力推進對中小機場在空管技術上的幫扶,通過技術援助等方式提高中小機場的空管保障能力,促進民航整體空管水平的提升。以中南地區為例,汕頭空管站負責了梅縣機場的ADS-B 的技術支持和相應設備運維。當前梅縣機場應用了ADS-B中小機場顯示系統,該系統可以接入ADS-B 數據,實現對梅縣管制區內的飛行態勢監視。ADS-B 是民航近年推進發展的新技術,雖然已經在全國范圍內實現了普及,但是目前數據穩定性方面還不如傳統雷達。本文從實際出發提出一種將雷達數據轉換為ADS-B 數據的軟件系統,通過系統的轉換可以將本地的雷達數據以ADS-B 數據格式接入中小機場顯示系統,為當地機場的運行保障提供另一種手段。
ADS-B 采用網絡接入到中小機場顯示系統,其格式為ASTERIX CAT021 格式,更新周期為0.4~0.6s。航空器的相關信息可以通過不同的消息廣播,具體數據項的更新時間間隔不一致,因此,每次更新的目標描述數據不一定完整,存在部分數據更新的情況。雷達數據在實際工作中則通過同步串口,采用HDLC 高級數據鏈路協議。一般的A/C 模式雷達的目標數據格式為歐控ASTERIX CAT001,服務信息數據格式為ASTERIX CAT002(S 模式雷達則分別為CAT034 和CAT048)[1],相比之下,雷達數據更新的周期較長,一般為4s 或5s。因此設計必須解決以下問題:一是需要將雷達數據的同步串口進行解析和處理得出具體數據項內容;二是需要根據ASTERIX 協議將CAT001/CAT002和CAT034/CAT048 中的具體數據項和CAT021 中的具體對應項分別對應,進行數據狀態的更新,封裝為CAT021 的數據格式轉換為UDP 網絡數據接入到中小機場顯示系統;三是解決兩種數據格式之間的更新周期不一致問題。對雷達數據進行內插預測。主要的系統流程結構如圖1,軟件設計上可以分為雷達數據處理模塊、數據轉換模塊、更新周期同步模塊和數據發送模塊。

圖1 系統流程結構圖
為了提高開發效率,系統采用當前汕頭空管站在用自動化系統的協議轉換器,該協議轉換器可以將接入的雷達信號由RS-232 同步信號轉換為UDP 網絡信號。因此,系統只需要在網絡接入上對數據進行分析處理即可。在C#中UDP 數據處理可以采用以下方式。首先創建數據緩存隊列,并開啟數據包解析線程,創建UDP 通信對象,綁定本地IP 和端口,通過UDP 異步接收數據將接收到的數據封裝為DataPacket 放入數據包緩沖隊列中。后續的軟件分析處理模塊只需要在隊列中對具體數據項處理即可。數據格式解析則可以根據CAT021、CAT001 和CAT048 進行具體解析。同時,系統將建立起目標數據列表,通過航班號為唯一識別信息建立數據類,該類將包含數據轉換關鍵對應項的多個屬性,后續的數據項對應只需要修改具體目標的具體屬性即可,方便消息傳遞和處理[2]。
中小機場顯示系統在態勢顯示上的關鍵數據項為航空器的航班號、SSR、位置和高度,因此系統在進行數據轉換時必須關注相應的數據項信息,除了上述數據,筆者對監視數據的必須關注項進行了整理得出關鍵數據項對應表,具體如表1。

表1 關鍵數據項對應表
中小機場顯示系統在信號引接中需要數據源提供標識,而在ASTERIX 數據中,主要通過SAC/SIC 碼進行識別,因此系統需要對010 數據項進行解析;實際工作中ADS-B 數據是可以不包含SSR 二次代碼信息的,但是雷達數據必須實時具備該信息,因此為了提高信息的豐富余度,此處不管ADS-B 是否需要SSR 都將雷達數據的070 數據項轉換到ADS-B 的070 數據項中;S 模式與ADS-B 在航班號和24 位地址碼的格式表現上是類似的因此可以直接將其轉換應用,如若是A/C模式雷達數據則將其置為不可信“????”字符(如航班號);至于SPI 是監視數據的重要信息,因此需要將雷達數據中的020 轉換到ADS-B 數據中的040 數據項;特殊代碼在ADS-B 中有兩個標志位,如若雷達數據的該數據項有具體的內容,轉換時必須將ADS-B 中的200 數據項的標志位置為有效和在070 中設置相應的特殊代碼[3];位置和高度則是態勢顯示的關鍵,系統必須對其進行準確、實時的轉換。雷達數據采用的是極坐標或笛卡爾坐標系表現位置,ADS-B 則是WGS-84坐標顯示的經緯度坐標。因此此處需要將雷達數據坐標轉為WGS-84。
在高度的處理上,主要存在精度的不一致情況。雷達數據主要采用C 模式高度,A/C 模式雷達的高度數據精度為100ft,S 模式則為25ft,ADS-B 也為25ft。而在實際應用中,這種精度的差別并不影響態勢顯示,因此可以選擇不進行精度對應處理,直接將雷達數據的高度數據項值填入具體的ADS-B 數據項即可。
如上所述,需要對雷達數據進行內插預測處理,此處采用隨機森林內插算法[4]。隨機森林可以綜合集成學習思想和隨機子空間方法,利用袋裝重抽樣的方法從4s 一周期的雷達歷史數據中抽取多個與原始樣本一樣數量的元素構建一個決策樹。在決策樹的構建中,通過隨機子空間法從特征中隨機選擇特征,利用最優特征進行節點分裂。預測決策樹每次預測都會給出一個預測結果,并通過少數服從多數的原則得出最終的結果,最終進行回歸計算。具體實現為:系統保存1分鐘內的雷達數據作為訓練集,并選擇出測試集和特征維數,抽取根節點樣本進行訓練;若當前節點達到終止條件,該節點將會被設置為葉子節點,預測輸出具體的平均值,否則從特征維數中隨機選取特征維數尋找回歸效果最優的特征和閾值,當最優特征值大于該閾值時,樣本進入右節點,否則進入左節點。如此循環運行直到所有節點都被標記為葉子節點。為提高執行效率,算法采用Python 設計[5],部分代碼實現如下:


對于中小型機場,管制空域較小,區域內需要顯示的目標不多,因此可以在顯示范圍上對目標進行過濾,只關心和處理本區域內目標,降低算法運行開銷。實際測試表明,這種算法能有效實現雷達數據更新周期的改變,位置和高度信息不會出現較大的突變,數據預測效果與實際的ADS-B 數據運行態勢較為接近。
數據最終需要封裝為CAT021 的ADS-B 數據發送到中小機場顯示系統。與雷達數據接收處理類似,此處采用UDP 封裝類,而前端的數據處理效果能夠滿足實時性要求,因此此處采用C#的UDP 通信關鍵類Udpclient 進行設計,引入命名空間:

為了提高系統的人機交互性能,系統在前端提供用戶接口,用戶可以輸入中小機場顯示系統的IP 地址。最終軟件通過“Send”方法的調用實現數據的發送。采用UdpClient 類調用函數發送UDP 數據包,具體實現部分代碼如下:

根據當前ADS-B 在中小機場的顯示應用提出一種ADS-B 數據轉換系統,該系統將A/C 模式和S 模式雷達數據轉換為ADS-B 數據,以豐富當前ADS-B 中小機場顯示系統的監視源,為中小型機場的空管運行保障提供支持。系統在周期同步方面采用了隨機森林內插法,完成了雷達數據與ADS-B 數據的實時同步顯示,軟件實現上通過C#和Python 結合編程的方式,兼顧開發效率和算法運行性能,在實際工作中表現良好。