?

基于知識輔助和OOOI報文的飛機航段識別系統

2021-06-21 01:53韓雁飛孫淑光徐廣有
計算機應用與軟件 2021年6期
關鍵詞:油量航段報文

韓雁飛 孫淑光 徐廣有 王 蓉

1(中國民航大學天津市智能信號與圖像處理重點實驗室 天津 300300)2(海航航空技術(天津)有限責任公司 天津 300300)3(廈門太古飛機工程有限公司 福建 廈門 361003)

0 引 言

一個完整的飛行航段是指航空器從起飛點到下一個著陸點之間的飛行,因此一次航班可以包括一個航段或者多個航段。在機載設備中,根據飛行警告計算機(Flight Warning Computer,FWC)預設的航段邏輯,一個飛行航段可以劃分為10個不同階段,用于幫助和定位機載設備故障發生時的飛行階段。然而,在地面系統中,航空公司需要依據飛機號和其對應的飛行航段對飛機通信尋址與報告系統(Aircraft Communications Addressing and Reporting System,ACARS)報文[1-2]進行存儲、管理和數據分析。因此,能夠實現飛行航段的正確劃分和識別,對飛機的有效運營、性能監控和健康管理等均有著至關重要的作用。

ACARS可以監測和報告當前航班飛行階段的變化,其中包含四種階段狀態(滑出——Out of the gate;起飛——Off the ground;著陸——On the ground;滑入——Into the Gate),工業上簡稱為OOOI,這四個狀態也稱為OOOI事件[3]。一次完整的飛行航段包含上述四種狀態,即在飛行過程中將依次產生四種OOOI報文,這些報文被稱為OUT報、OFF報、ON報、IN報。對于OOOI事件的監控可被用于航空運行調度安排、航班滑出預測和機場場面運行監控等[4-7]。Nakahara等[8]對美國紐約肯尼迪機場的機場場面運行數據進行分析后指出,利用OUT報文和OFF報文之間的時間間隔,可為機場場面運行的擁堵情況提供一個良好的度量。作為ACARS系統的一個重要應用,利用OOOI報文中所包含的狀態信息可以為航空公司的地面報文監控系統提供飛機航段劃分,文獻[9]利用CLIPS開發工具初步實現了適用于航空公司地面監控的航段識別系統,但是其僅實現了航段識別的邏輯推理,在知識獲取和自主學習等方面還有待完善。

隨著航空業的飛速發展,全球范圍內航班數量與日俱增??罩薪煌ǖ膿頂D以及一些人為或設備故障為航空公司的管理監控帶來了巨大的挑戰。在OOOI報文的實際使用過程中,各種人為因素、設備故障和環境干擾等會導致報文內容的錯誤或缺失,甚至出現報文丟失的情況。例如:2017年1月和2月某公司一架737-800飛機機組反映ACARS OOOI報文ON和IN時間相同的故障情況,經過對歷史報文分析后發現該故障在2016年12月就已經出現,之后維修人員經過長達3個月的故障排查才解決了此次故障情況。這種非正常情況的出現,極有可能導致地面系統不能準確識別航班所處的航段,進而發出錯誤的請求,影響航班任務的正常執行。

針對OOOI報文出現內容差錯、部分內容缺省甚至報文丟失的異常情況,本文提出了一種基于知識輔助和OOOI報文的飛機航段識別方法。該方法借助專家系統的設計思路和運行流程,考慮航班多航段運行的實際特性,以機載燃油油量、預計到達時間和位置報等作為輔助知識,以OOOI報文中的關鍵參數作為航段推理的事實依據,建立了一套完整的飛行航段識別邏輯及知識庫。以真實報文為例,對報文漏發的情況進行航段識別并分析。結果表明,利用航段改變、航段不變、報文無效和航段撤銷等判別結果,該系統可有效地實現飛機航段識別。

1 OOOI報文解析

作為一種在飛機和地面站之間進行數據傳輸的數字式數據鏈系統,ACARS系統的數據管理單元通過采集多種機載傳感器(例如,艙門、剎車和起落架上的傳感器)的輸出信號來定義OOOI事件。一次完整的航班任務包含上述四種狀態,即在飛行過程中將依次產生四種OOOI報文,在ACARS報文體系中,這些報文被稱為OUT報、OFF報、ON報和IN報[10]。

OOOI報文按照飛機執行航班任務的事件發生順序進行播發,依次是OUT報、OFF報、ON報和IN報,分別對應飛機滑出、起飛、著陸和滑入等四種狀態,利用這四種狀態即可描述一次完整的航班航段,如圖1所示。

圖1 完整航段中OOOI報文產生順序

由于OOOI報文是用于報告飛機狀態的報文,所以一般出現在ACARS報文下行報文中,飛機通過地-空數據通信的方式將表示飛機滑出、起飛、著陸和滑入等四種狀態事件的OOOI報文下傳給地面。下行報文符合ARINC618協議[11]的數據格式,由數據鏈服務提供商(Datalink Service Provider,DSP)將其轉換為符合ARINC620協議[12]數據格式的報文,并轉發給其他終端用戶。

在地空數據通信網絡中,飛機通過空地鏈路向地面傳輸數據,信息以字符的形式被記錄在傳輸的報文中,OOOI的傳輸服務行(即報文頭)包括飛機號、航班號等重要參數[13]。此外,其他參數的解釋以及參數在報文中的字符表示形式,如表1所示。

表1 OOOI報文基本內容

地面終端用戶按照ARINC620協議標準對經由DSP轉發后的OOOI報文進行解析,以實際中的OOOI報文為例,如圖2所示是山東航空于2017年4月26日當天接收并保存的OUT報文。解析之后,可獲得的報文內容如下:報文發送的時刻為2017年4月26日10時51分38秒,機尾號為B-5119,航班號為SC4779,起飛機場代碼ZHCC,報文類型是OUT報,報文接收時間是10時51分,當前機載油量1×104kg。

圖2 OUT報文示例

由圖2可見,OUT報的關鍵參數為起飛機場信息。同理,依據ARINC620協議標準對OFF報、ON報和IN報進行解析,其中OFF報的關鍵參數為起飛機場和目的機場信息,ON和IN報的關鍵參數均包含目的機場信息。不同類型的報文在報文類型標識符處會有所不同,OOOI報文中通過“OUT”“OFF”“ON”“IN”等字符區分不同的報文類型。

2 航段識別的知識獲取

在商業、工業等領域,專家系統(Expert System,ES)的應用較為廣泛,其本質是一種高效的代碼程序,這類智能程序通過運用某一專業領域中人類專家積累的專業知識或者經驗,模仿專家解決問題的邏輯,從而高效地解決系統面臨的現實問題[14]。

航段識別的知識獲取是建立專家系統知識庫的主要手段,搭建知識庫是實現專家系統的核心和首要工作[15]。提取書本、文獻和該領域專家的技術經驗等已有的知識,并將其轉化為機器能夠識別的形式就是知識獲取的過程。

2.1 航段識別的報文參數選取

為了使基于知識輔助和OOOI報文的飛機航段識別方法具有專家系統的邏輯推理能力,需要為推理邏輯提供事實依據,也就是事實庫。事實庫中應包含當前報文內容和歷史報文內容,推理邏輯將依據這些事實綜合得出識別結果。因此,應當選取報文中合適的參數,作為邏輯推理的事實,將這些參數解析出來并保存在數據庫中。

完整的OOOI報文可分為報頭和正文兩部分。一般情況下,報頭部分位于OOOI報文的前5行,其報文格式基本保持不變,其包含的有效信息包括發送地址、報文觸發時間、報文接收時間、通信服務商代碼、飛機號和航班號等。報文正文的內容及格式可以依據不同航空公司的需求進行客戶化的編輯和修改,不同航空公司發送的OOOI報文格式可能會有所不同,但其一般情況下均會包含表征航班OOOI運行狀態的關鍵信息,主要包括報文名稱、發送時間、起飛機場代碼、目的機場代碼和飛機燃油油量等參數。

由于任意兩個連續航段的起飛機場及目的機場代碼肯定不同,因此識別航段的最優判斷依據是報文正文中的起飛機場和目的機場代碼。但在實際發送的報文中,起飛機場和目的機場代碼不同時出現時,航班號也可作為判斷依據。在一個完整正常的航班任務中,航班號是保持不變的,但當航班任務是經停的航班時,同一個航班號會對應多個飛行航段,此時需要利用其他附加信息進行輔助識別。其中,機載燃油油量、預計到達時間(Estimated Time of Arrival,ETA)和ACARS的位置報(POS報)均是重要的輔助識別依據。飛機執行航段任務的過程一定會伴隨著燃油油量的消耗,燃油油量和OOOI事件的發生順序之間存在著對應的直接聯系。利用ETA作為輔助判斷知識,可以有效防止在大量報文無法接收時,將連續兩個航段識別為一個航段的可能。因此,本文選取燃油油量、ETA和POS報等作為識別OOOI過程的知識輔助參數。

2.2 航段識別規則及邏輯

航段識別規則即為航段識別知識的表示方式,即如何把用于航段識別的專業知識轉化為計算機能夠存儲和應用的表示形式。目前最常用的方式是規則表示法,它直接模擬人類思維過程,清晰直接地將知識表示成人類思維中最簡單的因果關系,一般是通過“IF-THEN”的規則形式表達[16-17],即:

IF P

THEN Q

其中:P代表規則的執行條件,例如前提、狀態等;Q表示結論或者規則執行結果等。具體含義為:若P條件成立或描述為真,則可推斷出結論Q或執行Q。通過歸納航段識別領域的相關基礎知識,考慮利用OOOI報文進行航段識別時可能的出錯模式,分析并總結專家經驗,得出了基于OOOI報文進行航段識別的知識[9],并將其以規則形式表示出來,具體內容如表2所示。

表2 飛行航段識別規則

續表2

在上述已有知識的基礎上,航段識別系統需要按照一定的推理機制應用所有的規則對OOOI報文進行推理和識別。在專家系統中,推理機通過讀取知識庫中的航段識別規則,依照事實庫的已有事實,遵循正向推理的原則,從已有的信息和數據出發,通過沖突消解的方式逐步建立基于OOOI報文的航段識別推理邏輯。建立推理邏輯的關鍵之處在于分析OOOI報文應用過程中可能出現的情況,并依據報文解析的關鍵參數設計合適的推理邏輯。

在正常情況下,飛機的一個航段能剛好完整地發送一組OOOI報文。但在報文的實際使用中一個航段可能會有多個OUT報或IN報。若航班執行過程中有飛機復飛的情況,則會發送多個ON報和OFF報,由此就會存在將一個航段誤識別為多個航段的情況。因此,根據航班多航段運行的實際特性,以機載燃油油量、ETA和POS報等作為輔助知識,對接收到的OOOI報文進行有效參數的提取,通過航段識別推理邏輯對報文內容進行判定。

由表2可知,依據航段識別規則,在航段識別的初始階段首先需要對報文的類型進行解析和判斷,提取報文中的關鍵參數,當識別到不同類型的報文時,結合歷史報文信息依據不同的判斷邏輯進行下一步的航段識別,航段識別邏輯的流程如圖3所示。

圖3 飛行航段識別邏輯流程

由圖3可見,若系統識別到當前報文為OUT報時,將進入條件2的判斷邏輯,從而進行下一步的識別,OUT報的識別邏輯流程如圖4所示,其中“DEP”指起飛機場或者目的機場代碼。

圖4 OUT報邏輯流程

由圖4可見,若當前OUT報文的DEP有效,則將當前DEP與歷史報文的DEP比對。若與歷史報文的DEP一致,且通過歷史OFF報、ON報或者位置報等判斷出飛機沒有起飛,代表飛機推出后滑回又重新推出的情況,故判定航段不改變;否則,若飛機已起飛,代表飛機返航后再推出的情況,判定航段改變。圖4中“燃油消耗<0”指當前報文的油量參數大于歷史報文油量。若當前OUT報文的DEP無效,則可以通過油量參數進行判斷。

如圖5所示,對于OFF報文,判定航段不變的唯一條件為飛機未起飛。如飛機已起飛,通過對比當前OFF報與上一個OFF報的時間間隔,確定航段是否改變。如當前報文的接收時間與上一個報文的接收時間差小于某個定值,判定當前OFF報為重復發送,拋棄報文;如大于定值,則判定當前OFF報正常,航段改變。同理,通過查看歷史報文是否有IN報,也可以判斷當前OFF報是否為重復發送。

圖5 OFF報邏輯流程

圖6為ON報邏輯流程,其中“當前報文時間>ETA”指當前ON報文的接收時間在預計到達時間之后,如滿足此條件,則代表飛機航段改變,否則通過歷史報文是否存在ON報進一步判斷當前ON報文是否有效。如存在,則代表當前ON報文重復發送,拋棄報文;如不存在,則代表當前ON報文正常,航段不變。

圖6 ON報邏輯流程

圖7為IN報邏輯流程,可以看出,與歷史報文DEP不相同則表明當前報文無效拋棄。需要注意的是“與歷史報文DEP相同”這一判斷成立的條件包括不存在起飛機場和目的機場的報文,并且在飛機未起飛的情況下,判定為撤銷航段,刪除該記錄。

圖7 IN報邏輯流程圖

若當前報文為POS報,系統則將POS報作為輔助航段識別的判斷條件,POS報的邏輯流程如圖8所示。由圖8可知,“飛機落地”這一判斷成立的條件包括存在ON報、存在POS報和IN報以及存在OFF報和IN報三種情況。

圖8 POS報邏輯流程

3 基于知識輔助的飛機航段識別系統

本文利用專家系統的框架設計實現了一種基于知識輔助和OOOI報文的飛機航段識別方法,并在此基礎上搭建一套完整的飛機航段識別系統。該系統以OOOI報文為數據源,根據航班多航段運行的實際特性,以機載燃油油量、ETA和POS報等作為輔助知識,使用C# 編程語言在Microsoft Visual Studio 2010的平臺中完成系統運行界面的設計和開發。

3.1 系統整體架構

基于知識輔助和OOOI報文的飛機航段識別系統是以飛機OOOI報文為數據源,以“對象”為中心來設計系統運行界面,在Microsoft Visual Studio 2010的環境下使用C#語言的可視化窗口設計進行編程開發。在進行解析OOOI報文的基礎上,將報文內的關鍵參數保存到Microsoft Office Access數據庫中,通過對數據庫的操作實現對報文參數的讀取和錄入。

基于OOOI報文的多航班飛機航段識別系統的結構原理圖,如圖9所示。系統的主要功能模塊包括報文錄入模塊、報文解析模塊、航段識別模塊、當前航段報文查詢模塊、歷史航段報文查詢模塊和系統登錄與退出模塊。每個模塊互相關聯,共同實現航段識別系統的有效工作。

圖9 系統結構原理圖

(1) 報文錄入模塊。該模塊可實現報文參數的自動錄入和手動錄入兩種方式。采用自動接收報文方式時,可以實時處理OOOI報和POS報的信息,當系統正常啟動時就自動開啟這種工作方式,該功能通過固定時間間隔的數據刷新方式實現。報文手動錄入模塊主要用于特殊情況下的臨時航班錄入。采用手動錄入方式時,可在該窗口的下拉菜單中手動選擇該報文的數據庫、表名以及路徑等關鍵信息,系統將按照所選信息執行報文錄入,并將相應參數存入數據庫。

(2) 報文解析模塊。該模塊對接收到的OOOI報或POS報按照ARINC620協議標準進行解析,可獲得的報文的關鍵參數,包括:報文發送的時刻,機尾號,航班號,起飛機場代碼,目的機場代碼,報文類型和當前載機油量等。同時,將解析后的報文關鍵參數保存到Microsoft Office Access數據庫的相應表單中。

(3) 航段識別模塊。航段識別功能的實現流程如圖10所示。報文錄入到數據庫中以后,即獲得當前報文的參數信息,查詢并調取歷史數據庫中對應飛機號的歷史信息,將當前報文參數與歷史報文參數綜合通過系統的邏輯判斷,得到判斷結果,共分為以下4種判斷結果:航段改變、航段不變、報文無效和航段撤銷。對于不同判斷結果,系統自動完成對應的后續操作,并將航段識別結果顯示在界面上,最后將識別結果和參數一并錄入到數據庫中。

圖10 飛行航段識別功能實現流程

(4) 當前航段報文查詢模塊。該模塊以當前航段下所有航班的飛機號作為初級篩選條件,結合航段識別模塊的航段識別結果,為用戶提供當前航段下的所有航班的OOOI報文內容及其所屬航段信息,包括該報文的狀態、類型和航段標號。同時,該航段已存在的報文信息會通過右側的報文按鈕進行顯示,名稱變為紅色的按鈕代表該報文類型已存在,并可通過單擊進行查看。當前航段下報文內容及其航段識別結果,如圖11所示。

圖11 當前航段下報文內容及其航段識別結果

(5) 歷史航段報文查詢模塊。當用戶輸入需要查詢的飛機號和起止日期之后,系統以列表的形式展示出所查詢飛機的所有航段信息。

(6) 系統登錄與退出模塊。系統登錄與退出模塊通過友好的人機交互接口,實現系統的登錄、用戶注冊和退出等功能。

3.2 航段識別示例分析

OOOI報文在航班多航段運行的實際通信過程中,往往會出現由于人為因素、設備故障、環境干擾等原因導致報文異常情況,使得航空公司的地面系統不能準確識別航班狀態,進而發出錯誤的請求或決策指令,影響航班任務的正常執行。OOOI報文主要的錯誤情況包括報文漏發、報文重復和報文延誤等。按照常見的故障類型進行報文仿真,以同一個時間范圍內的4個航班號的50組OOOI報文數據為觀察對象,系統均可有效地對航段進行劃分,實現航段改變、航段不變、報文無效和航段撤銷等判別結果。

同時,以飛機號為B-5513在2017年4月25日當天的真實報文為例,針對報文漏發的情況進行實驗并分析。

如圖12所示,當前系統判斷飛機號B-5513接收到的報文為0航段的ON報,此時該0航段已接收的報文包括OUT報、OFF報、POS報和ON報,當前該航段的IN報還未發送。下一條系統接收到的報文記錄情況如圖13所示,此時機載設備發送的報文為該架飛機下一航段的OUT報,而未發送IN報,經系統判斷此時航段已經改變,即當前報文為飛機號為B-5513的1航段OUT報,此時系統邏輯判斷上一航段的IN報漏發了。

圖12 系統接收ON報

由圖13可知,當接收到該OUT報時,系統判斷的流程為:讀入當前的OUT報文,將報文內容進行解析獲取參數信息,由于報文類型為OUT報,進入OUT報邏輯判斷,由于當前報文信息中不含目的機場信息,所以判斷當前報文機場代碼無效,進入下一判斷,又由于當前報文燃油量值大于上一報文的燃油量值,所以判斷燃油消耗小于0,由此得到結論為航段改變。

圖13 系統漏發IN報

4 結 語

OOOI報文往往在實際的通信過程中不可避免地會出現多種異常情況,例如人為因素、設備故障、環境干擾等導致報文的不確定性。本文借助專家系統設計思路和運行流程,提出了一種基于知識輔助和OOOI報文的飛機航段識別方法。以機載燃油油量、預計到達時間和位置報等作為輔助知識,利用實際OOOI報文中的關鍵參數作為航段推理的事實依據,建立了一套完整的航段識別邏輯和知識庫。最后,以真實報文為例,針對報文漏發的情況進行航段識別診斷并分析,實驗結果表明,該方法可對航段進行有效劃分,實現航段改變、航段不變、報文無效和航段撤銷等判別結果,增加航段識別的準確程度和效率。

猜你喜歡
油量航段報文
基于J1939 協議多包報文的時序研究及應用
以太網QoS技術研究及實踐
基于Python的汽車CAN總線報文格式轉換系統的設計與實現
基于報文類型的限速值動態調整
基于電容式液位傳感器的油量監控系統
降低某型飛機油量指示干擾故障分析
自制油量表
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合