商飛軟件有限公司 孟瀟峰 葉晨 黃偉林
為了更方便快捷的對近地告警系統進行測試驗證,減少測試成本和風險,提出了一種自動化的測試方法。首先介紹了自動化測試方法的設計需求;然后通過飛機仿真模型、接口模塊和自動化測試環境,組成了近地告警設備的測試環境;最后對告警模式1進行了驗證。驗證結果表明,提出的方法可以應用到近地告警設備的測試中去。
民航領域,在近地告警系統(GPWS)出現以后,顯著提高了飛機在起飛階段和進近著落階段的安全性,對減少CFIT的發生著關鍵作用。近地告警系統對飛機的飛行安全起到了很重要的作用,然而近地告警系統典型的提供商都是國外企業,核心技術對我國封鎖。因此,研制具有自主知識產權的近地告警系統意義重大。近地告警系統驗證的過程中,若直接采用試飛的方式,不但成本高,而且要考慮飛行安全,選擇合適的可觸發告警的地形等一系列因素。本文提供了一種近地告警系統的自動化測試方法,可在近地告警系統設備研制的各階段對告警算法和包線設計進行驗證,并可將設備接入測試環境實現半物理仿真驗證。
針對近地告警系統的驗證測試,需構建一套半物理仿真測試環境,接入EGPWS工程樣機,對其算法和告警模式、告警包線進行測試。如圖1所示,測試環境包括:
(1)飛行仿真激勵環境,使用Matlab/Simulink構建某型飛機的仿真模型,提供測試需要的激勵數據;
(2)自動化測試環境,具備測試用例編輯、執行、數據顯示記錄以及報告生成等功能;
(3)數據接口模塊,完成整個測試環境的數據傳輸,將工程樣機接入測試環境。
飛機仿真模型參照某型民用飛機,通過Simulink完成仿真模型的搭建。飛機仿真模型涵蓋了近地告警系統的各種告警模式需要的飛機構型。模型組成如圖2所示。

圖2 飛機仿真模型組成圖Fig.2 Composition diagram of aircraft simulation model
2.1.1 空氣動力學模型
空氣動力學模型仿真飛機所受到的空氣動力特性,采用氣動系數查表的方式進行建模。
空氣動力學模型包括以下的氣動效應:
(1)翼身組合體的氣動效應;
(2)操縱舵面偏轉引起的氣動效應;
(3)起落架收放引起的氣動效應;
(4)地面效應引起的氣動效應;
(5)側滑引起的氣動效應;
(6)不同大氣環境下的氣動效應。
以升力為例,計算方式如式(1)所示:

ρ
為大氣密度;V
為飛機速度;S
為機翼面積;C
為升力系數。2.1.2 飛機運動仿真模型
飛機運動仿真模型模擬飛機的運動軌跡。
飛行動力學的力和力矩方程如式(2)、式(3)所示:

m
為飛機質量,V
、V
、V
為飛機三個方向的速度,w
、w
、w
為角速度,F
、F
、F
為各自方向上的力。
w
、w
、w
為角速度,M
、M
、M
為各繞各自坐標軸的力矩,I
、I
、I
、I
為轉動慣量。2.1.3 動力系統模型
動力系統模型模擬飛機發動機包線范圍內的所有工作狀態,能正確模擬發動機在不同環境和飛行狀態下的操縱響應,并綜合大氣溫度、飛行高度、馬赫數等因素解算出發動機轉速、排氣溫度等狀態參數和發動機螺旋槳拉力、燃油流量等性能數據。
2.1.4 飛行控制系統和自動駕駛系統
飛行控制系統和自動駕駛系統的模型主要是為了完成飛機的基本控制,自動駕駛系統的高度保持模式、速度保持模式、升降速率保持模式等,可以輔助完成近地告警系統的自動測試。
2.1.5 傳感器及無線電導航模型
近地告警設備的運行需要從多種機載系統和傳感器等獲得必要的數據。具體包括:
(1)大氣數據系統模型;
(2)慣性基準系統模型;
(3)無線電高度表模型。
2.1.6 數據傳輸模型
數據傳輸模型使用C-MEX S-Function編寫的UDP接收和發送模塊,模塊可封裝為Simulink中的LIB庫。仿真模型通過UDP協議完成數據的接收與發送。
近地告警系統的驗證對時間的要求很嚴格,這就對仿真模型的實時性要求很高。本次仿真模型運行在Linux系統中,Linux系統實時性更加優秀。模型通過Simulink自帶的RTW編譯功能,將仿真模型編譯為在Linux系統下運行的可執行程序,這種方式可提高仿真模型的運行效率。編譯流程如圖3所示。

圖3 RTW編譯流程Fig.3 RTW compilation process
具體操作可采用Linux版本下的Matlab/Simulink進行建模,所有的建模過程和編譯過程均在Linux系統下進行,最終在Linux系統中的Simulink進行編譯,即可生成Linux系統下的可執行文件或so文件。
數據接口模塊提供Arinc429和離散量通信接口,用以接入近地告警設備,并將Arinc429信號和離散量信號轉換為以太網信號供系統使用,如圖4所示。

圖4 數據接口模塊示意圖Fig.4 Schematic diagram of data interface module
數據接口模塊使用一臺工控機,工控機上插入1塊429板卡和1塊離散量板卡,通過板卡與近地告警設備連接。通過數據協議轉換功能將近地告警設備發出的告警信號轉換為以太網信號,并發送給數據顯示與記錄模塊觸發告警顯示;將飛機仿真模型發出的飛機狀態參數轉換為Arinc429格式的數據發送給近地告警設備,近地告警設備接收參數進行告警邏輯運算。
自動化測試環境與Linux下位機上運行的飛機仿真模型通過以太網通訊連接,可通過用例編輯與執行模塊對飛機仿真模型中的參數進行修改,使其按照測試用例中設置的狀態飛行。
系的轉換矩陣如圖5所示。

圖5 自動測試環境實現原理Fig.5 Implementation principle of automatic test environment
2.4.1 用例編輯與執行
測試用例使用Python腳本語言進行開發,可以控制飛機仿真模型的運行,直接修改飛行仿真模型中的參數,如:自動駕駛系統的飛行模式,設置飛機的當前經緯度、高度、指示空速等。同時可以指定試驗結束的條件,并設置試驗次數,之后自動轉入下一次試驗。
用例編輯與執行模塊提供如下幾個核心函數:
(1)RtPy.BeginTest():腳本實驗開始,用在每個腳本代碼的開始;
(2)RtPy.OnceBegin():單次實驗開始,用在每單次實驗循環的開始;
(3)RtPy.SetArrayValue(name,index,value):設置變量名并賦值;
(4)RtPy.GetArrayValue(name,index):獲取對應變量的值;
(5)RtPy.canNextOnce():跳出循環的標志;
(6)RtPy.canStopTest():用于整個實驗循環內,作為結束腳本的標志。
2.4.2 數據顯示與記錄模塊
數據顯示與記錄模塊通過Qt開發,具有人機交互界面,提供數據動態監視和曲線繪制功能。主要提供如下功能:
(1)數據動態監視:可通過曲線或數字列表的形式實時監測飛機仿真模型和EGPWS設備輸出的數據;
(2)告警面板功能:模擬民機駕駛艙內的告警面板,提供各類告警抑制功能;
(3)曲線繪制功能:可設置曲線的橫縱坐標繪制X-Y圖或時間歷程曲線;
(4)告警包線繪制功能:可通過設置曲線的閾值,實現告警包線的繪制功能。對包線內的警戒區域和警告區域進行顏色區分,并可隨時修改;
(5)數據記錄功能:可將每次試驗的數據記錄下來,分析試驗過程中是否出現其他因素的影響;
(6)試驗報告功能:可根據提前設置好的文檔模板,自動加入試驗曲線、試驗名稱和試驗結論等;
(7)EGPWS視頻集成功能:可將EGPWS輸出的視頻信號采集,并集中顯示到軟件界面上;
(8)提供了可視化的告警燈功能:當告警觸發時,相應的告警燈會閃爍提示。
以近地告警系統告警模式1過快的下降速率為例,對HoneyWell某型EGPWS設備進行了測試驗證。參考其告警模式1的包線,在數據顯示與記錄模塊中提前繪制好包線,原包線如圖6所示。

圖6 某型EGPWS設備模式1告警包線圖Fig.6 Mode 1 alarm envelope diagram of EGPWS equipment
本次驗證設置飛機初始狀態如表1所示。

表1 飛機初始狀態參數表Tab.1 Aircraft initial state parameter table
測試用例中設置飛機位于空中,自動駕駛儀為下降率保持模式和速度保持模式,飛機以恒定的空速和下降率下降。通過數據顯示與記錄模塊監控飛機實時的無線電高度與下降率,并繪制包線,觀察飛機多次試驗的告警時間和與包線的交叉位置,來快速驗證設計的算法是否與試驗結果吻合。
如圖7所示,在數據顯示與記錄模塊中繪制告警包線,橫坐標為垂直速率,單位為英尺每分鐘;縱坐標為無線電高度,單位為英尺。

圖7 模式1告警包線測試圖Fig.7 Mode 1 alarm envelope test diagram
運行Linux系統下的飛行仿真模型,并執行用例腳本,可以看到坐標系中繪制出了飛機的VertSpeed-RA圖,當曲線與包線相交時即為告警觸發點,此時EGPWS設備也發出了告警音,并通過數據接口模塊發出了告警信號。我們記錄了曲線和包線相交的時刻和收到告警信號的時刻,通過對比發現誤差小于1%。誤差造成的原因是由于網絡延遲以及Arinc429板卡和離散量板卡的數據延遲。實驗結果表明:該方法測試出的告警響應基本與EGPWS設備的告警響應同步,可以用作EGPWS設備的告警算法驗證。
本文提供了一種基于飛行仿真模型激勵的自動化測試近地告警系統設備的方法,并通過對告警模式1的場景驗證,觸發了告警模式1的警戒和警告兩層告警。通過與真實的告警包線對比,兩者告警響應基本同步,并且告警點均落在了設計包線內,證明了該方法可用于近地告警設備的告警算法測試。在近地告警設備的研制的各個階段,均可采用此方法進行測試,可直接對告警算法進行數字化驗證,也可接入真實工程樣機進行算法和數據通訊的驗證。本方法為通用型的測試方法,后續可通過對告警包線的閾值修改,不斷迭代,進行多種類型告警模式和告警設備的測試。