陳詠梅
(中國商飛民用飛機試飛中心,上海201323)
試飛數(shù)據(jù)實時監(jiān)控系統(tǒng)作為民機試飛過程中的重要決策性支持系統(tǒng),主要功能是利用可視化控件實時顯示試飛數(shù)據(jù),反應(yīng)飛機當(dāng)前的試飛狀態(tài)、試驗效果等信息,為指揮人員、保障人員、飛機設(shè)計人員等提供決策依據(jù)。因此,構(gòu)建實時性能卓越、功能豐富的試飛數(shù)據(jù)實時監(jiān)控系統(tǒng)對于增強試飛安全、改進試飛方法策略、提高試飛效率等具有重要意義。
在當(dāng)前試飛模式下,國內(nèi)的主流試飛機構(gòu)往往采用Labview、DataView、VC++等環(huán)境開發(fā)實時監(jiān)控程序,在試飛過程中顯示試飛數(shù)據(jù),而不能進行復(fù)雜分析和處理[5],對于試驗點有效性的確認以及飛機安全性狀態(tài)的判斷需要技術(shù)人員進行二次解析、分析,這一重復(fù)性步驟降低了試飛效率,不利于縮短試飛周期。
本文立足于民機試飛模式,從試飛安全監(jiān)控、實時分析等兩個角度,基于數(shù)據(jù)、邏輯、顯示三層架構(gòu),利用 WPF(Windows Presentation Foundation)技術(shù)設(shè)計了試飛數(shù)據(jù)監(jiān)控系統(tǒng)。該系統(tǒng)采用多線程同步技術(shù)在傳統(tǒng)監(jiān)控形式上集成了數(shù)據(jù)實時存儲、實時分析、實時回放、信息標(biāo)記與共享等功能,系統(tǒng)特點包括:
1)應(yīng)用WPF技術(shù)能夠逼真的模擬PFD、MFD等機載畫面;
2)三層架構(gòu)易于系統(tǒng)維護;
3)業(yè)務(wù)邏輯、運算、分析與顯示相互獨立,實時性能得到較大提高。
試飛數(shù)據(jù)實時監(jiān)控系統(tǒng)采用數(shù)據(jù)層、業(yè)務(wù)邏輯層與顯示層的三層結(jié)構(gòu),其原理如圖1所示。
在數(shù)據(jù)層,試飛參數(shù)通過網(wǎng)絡(luò)接口傳入實時數(shù)據(jù)服務(wù)器,由實時數(shù)據(jù)服務(wù)器經(jīng)數(shù)據(jù)解析、封裝,然后以UDP廣播的方式發(fā)送至監(jiān)控終端和應(yīng)用服務(wù)器。應(yīng)用服務(wù)器作為應(yīng)用層主要設(shè)備,常駐運行數(shù)據(jù)備份緩存、同步、標(biāo)記與共享、告警、實時分析等服務(wù)線程,同時與監(jiān)控終端之間建立面向連接的TCP協(xié)議,以響應(yīng)監(jiān)控終端請求完成數(shù)據(jù)實時回放、分析等功能。主要服務(wù)功能如下:
1)備份緩存服務(wù):負責(zé)接收數(shù)據(jù)層發(fā)送的數(shù)據(jù),并將數(shù)據(jù)以二進制流的格式寫進數(shù)據(jù)文件以作備份,以響應(yīng)監(jiān)控終端的請求數(shù)據(jù)回放的請求。
2)同步服務(wù):負責(zé)實現(xiàn)監(jiān)控終端數(shù)據(jù)的實時回放功能,同步服務(wù)為每一臺接入系統(tǒng)的監(jiān)控終端建立10 min~15 min的數(shù)據(jù)緩沖池,當(dāng)接收到監(jiān)控終端的回放請求時,同步服務(wù)根據(jù)監(jiān)控終端的請求時刻從緩沖池中選擇相應(yīng)時長的試飛數(shù)據(jù)、封裝后傳輸至監(jiān)控終端,若請求時刻不在緩沖池中,則同步服務(wù)會從備份二進制文件中讀取相應(yīng)的數(shù)據(jù)發(fā)送給監(jiān)控終端進行回放。
3)實時分析:負責(zé)對試飛數(shù)據(jù)進行實時分析,并將分析結(jié)果發(fā)送給監(jiān)控終端進行實時顯示;
4)告警服務(wù):負責(zé)調(diào)用告警事件對試飛數(shù)據(jù)進行告警判斷,同時間結(jié)果發(fā)送給實時監(jiān)控終端。
表示層為運行于實時監(jiān)控終端的監(jiān)控畫面程序,采用WPF技術(shù),利用C#編程語言編輯開發(fā),數(shù)據(jù)的顯示方式包括動態(tài)曲線、雙態(tài)燈、數(shù)值顯示、虛擬儀表、刷新列表。
實時監(jiān)控程序通過各類顯示控件實時刷新數(shù)據(jù),包括前臺UI和參數(shù)驅(qū)動兩個部分。監(jiān)控程序的前臺UI基于WPF中的XAML語言[4],采用其矢量圖繪制引擎實現(xiàn),本系統(tǒng)主要顯示數(shù)據(jù)的趨勢、具體數(shù)值、參數(shù)狀態(tài)等,由繪制的曲線繪制框、條圖儀、虛擬儀表、數(shù)值顯示框以及結(jié)合 Grid、StackPanel、DockPanel等布局控件組成,其結(jié)構(gòu)如圖2所示:
利用多線程和DataBinding可實現(xiàn)參數(shù)與現(xiàn)實控件的綁定與驅(qū)動。處理原則如下:
1)數(shù)據(jù)顯示刷新率不大于60 Hz采用 Data Binding:利用數(shù)據(jù)驅(qū)動顯示控件的依賴屬性實現(xiàn),其模型如圖3所示。
圖2 前臺UI和參數(shù)驅(qū)動
圖3 WPF數(shù)據(jù)驅(qū)動模型
程序語言可描述為:DisplayControl.SetBinding(DependencyProperty dp, Bindingbase binding),其中:
(1) DisplayControl——顯示控件,作為 Binding目標(biāo);
(2) DependencyProperty——以 DependObject為宿主的依賴屬性,借助其SetValue及GetValue方法進行讀取和寫入;
(3)Bindingbase——用以聲明Binding的數(shù)據(jù)源。
2)數(shù)據(jù)顯示刷新率大于60Hz或曲線動態(tài)繪制采用多線程,利用委托統(tǒng)一主輔線程顯示數(shù)據(jù),流程如圖4所示。
圖4 多線程顯示
如前所述,數(shù)據(jù)備份緩存及同步服務(wù)主要是利用數(shù)據(jù)文件及內(nèi)存實時存儲數(shù)據(jù),以作為實時回放的數(shù)據(jù)源,實現(xiàn)流程如圖5所示。
首先從數(shù)據(jù)緩沖區(qū)中提取數(shù)據(jù),并判斷數(shù)據(jù)數(shù)組長度;當(dāng)獲取的數(shù)據(jù)長度大于0(即緩沖區(qū)中有數(shù)據(jù))時,提取數(shù)據(jù)字節(jié)數(shù)組;最后將提取的字節(jié)寫入數(shù)據(jù)存儲文件。
實時回放是指在試飛數(shù)據(jù)實時監(jiān)控的過程中監(jiān)控人員可對歷史數(shù)據(jù)進行實時回看,以檢查數(shù)據(jù)有效性和飛行異常,回放過程與實時監(jiān)控鏈路相對獨立,回放結(jié)束后可切換至實時監(jiān)控狀態(tài)。根據(jù)實際需求,本系統(tǒng)支持5 min~10 min以及全時間歷程的數(shù)據(jù)回放。系統(tǒng)工作時,應(yīng)用服務(wù)器偵聽實時監(jiān)控終端的回放請求,根據(jù)回放時間刻度從內(nèi)存數(shù)據(jù)文件中提取歷史數(shù)據(jù)完成回放,其工作流程如圖6所示。
本系統(tǒng)基于實際試飛需求,集成了快速傅里葉變化(FFT)和數(shù)字濾波等典型數(shù)據(jù)分析方法,同時對實時分析狀態(tài)下的系統(tǒng)性能進行了分析。
2.4.1 快速傅里葉變換(FFT)
對于復(fù)數(shù)序列 x0,x1,...,xn-1,其離散傅里葉變換可以表示為:
式中:
2.4.2 數(shù)字濾波
本系統(tǒng)采用Buttertworth數(shù)字濾波器,主要涉及參數(shù)包括濾波器階數(shù)和截止頻率,可通過式(4)計算得出[2]。
式中:
ωc—— 截止頻率;
N——濾波器階數(shù);
ωs—— 阻帶邊界頻率;
Rs—— 阻帶衰減(dB)。
實時分析過程利用多線程技術(shù)實現(xiàn),應(yīng)用服務(wù)器根據(jù)實時監(jiān)控終端請求完成數(shù)據(jù)計算過程,同時將計算結(jié)果發(fā)送給訂閱的實時監(jiān)控終端,實現(xiàn)流程如圖7所示。
圖7 數(shù)據(jù)實時分析流程
試驗數(shù)據(jù)源為仿真數(shù)據(jù)源,采用UDP廣播通信方式,每隔100ms發(fā)出200個參數(shù),應(yīng)用層格式協(xié)議如圖8所示。
圖8 基于UDP的應(yīng)用層協(xié)議格式
其中:
連接字符為“&”;標(biāo)識字符為參數(shù)名稱;分隔字符為“,”;結(jié)束字符為“#”。
因此,應(yīng)用層數(shù)據(jù)可表示為 “12:23:59:242&Time,7.6284&Param1,…,4.6790&Param200#”。實時監(jiān)控程序與應(yīng)用服務(wù)器在收到數(shù)據(jù)后,首先將Byte數(shù)組按照約定編碼格式(即Unicode)轉(zhuǎn)換成字符串[3],然后以分隔符(“,”)將字符串拆分為參數(shù)數(shù)組,最后對該數(shù)組進行輪循,針對每一項按照連接字符(“&”)拆分并根據(jù)參數(shù)標(biāo)識符定位、綁定參數(shù)。實時監(jiān)控程序運行狀態(tài)如圖9所示。
圖9 實時監(jiān)控程序運行狀態(tài)
試驗中用于實時分析的參數(shù)由三個正弦信號復(fù)合而成,頻率分別為 0.5、1、1.5,幅值為 10、5、15,如式(5)所示:
分析結(jié)果如圖10所示,表1為原始信號,表2為濾波后幅值為15的正弦信號,表3、表4分別是原始信號及濾波后信號的FFT分析結(jié)果。根據(jù)式(6)、(7)計算信號頻率成分及對應(yīng)幅值。
式中:
f——信號頻率;
n——數(shù)據(jù)量;
fs——FFT計算后的頻率;
N——FFT幅頻譜數(shù)據(jù)點數(shù),這里取值512;
A——信號幅值;
Af——FFT計算后的幅值。
圖10 數(shù)據(jù)實時分析結(jié)果
根據(jù)FFT分析出的雙邊幅頻譜可見,F(xiàn)FT分析過程準(zhǔn)確地識別了信號中的頻率成分。系統(tǒng)延時可利用同步狀態(tài)下的絕對時間差計算Δt=|t1-t2|=77ms,其中t1是接收數(shù)據(jù)的絕對時間,t2是完成處理后的絕對時間。
本文數(shù)據(jù)層、業(yè)務(wù)邏輯層、表示層三層架構(gòu),采用WPF技術(shù)設(shè)計了試飛數(shù)據(jù)實時監(jiān)控系統(tǒng)。通過試驗,系統(tǒng)模擬了試飛狀態(tài),以UDP/IP為傳輸協(xié)議,在保證系統(tǒng)實時性能的前提下,合理的調(diào)配任務(wù)線程實現(xiàn)了在實時監(jiān)控過程中對試飛數(shù)據(jù)的實時存儲、備份、分析和回放等功能,為試飛數(shù)據(jù)監(jiān)控模式技術(shù)創(chuàng)新提供了新的參考依據(jù)。