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

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

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

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

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

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

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

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

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

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