田兆鋒,閆楚良
(北京飛機強度研究所,北京100083)
飛機載荷譜實測是將飛機在使用過程中的狀態參數、載荷參數等進行信息采集和記錄,為飛機全機試驗、結構可靠性設計提供試驗數據與科學依據[1-2].飛機載荷譜實測數據類型復雜,對于不同的機型,采集參數不同,數據結構也不相同,使得飛機載荷譜數據資源比較難以組織和管理[3-6].隨著測試需求的不斷提高和測試設備的迅速發展,在飛機載荷譜實測試驗中,飛行架次不斷增長,實測數據量急劇增加,以某預警機245個飛行架次為例,原始采集數據和數據統計處理中的過程數據達到了6 TB的級別,完全可以劃歸為大數據,這對于數據有效性驗證、機動動作判別和后期數據統計分析帶來了極大的困難,并且技術人員會花費大量時間.
視景仿真系統是數據可視化技術的進一步發展,數據可視化是運用計算機圖形學、圖像處理技術和虛擬現實將數據轉化為圖形或者場景并進行交互處理的理論、方法和技術[7].視景仿真技術是綜合了數據可視化、網絡通訊和數據傳輸、模型仿真等多項高新技術發展而來的,在此基礎上形成的視景仿真系統為航空工業、軍事模擬等領域提供一種低成本、高安全性的數據分析和驗證方式[8-10].通過視景仿真系統為使用者建立基于數據驅動的虛擬環境,從而使各種設計方案或者試驗數據得到虛擬實現和驗證,并可以反復修改,為設計者提供決策支持,可大幅度地降低設計成本和工作量,這一技術優勢無疑會使視景仿真技術在軍事領域得到更為廣泛的應用.
目前,國外對視景仿真的研究主要集中在以下兩個方面:①構建通用的虛擬視景仿真應用開發平臺,能讓非專業人士開發出高水平的視景仿真應用;②重視在視景仿真中的技術細節部分,如場景管理、實體物理建模等.國內的虛擬視景仿真領域面臨的主要問題是針對特定的視景仿真要獨立編寫程序來實現,未能形成通用的平臺來適應不同場景的虛擬視景仿真,對開發人員的專業素質要求比較高,項目開發周期長[11].
在飛機載荷譜實測飛行試驗中,通常需要進行幾百架次的飛行,同步采集大量的實測數據,以往判斷飛行數據是否有效、飛機瞬時受載狀態和任務段劃分主要通過觀察關鍵參數的飛行曲線,其直觀性不足并且容易出現判斷錯誤[12].
本文提出了基于數據雙緩沖和繪圖雙緩沖的方法,通過構建的飛行實測數據視景仿真系統連接實測數據庫和模型數據庫的方式,實現了TB級別的實測數據可視化分析與有效性驗證,為準確判讀數據有效性和任務段識別提供了直觀的決策依據,并且該系統可以自動匹配不同機型的數據和模型,具有良好的兼容性和適應性.
該視景仿真系統根據飛機載荷譜實測試驗特殊性和視景系統本身特點,提出了具體的要求,本文闡述的視景系統的設計和關鍵技術主要解決以下問題:①如何統一不同測試機型的實測數據結構:不同測試機型因測試要求不同形成的實測數據結構不同;②如何利用數據雙緩沖將實測數據庫中大量的實測數據作為仿真驅動數據并兼顧系統效率;③如何將復雜的飛機模型解析并自動匹配實測數據;④如何利用繪圖雙緩沖解決視景仿真系統實時圖像閃爍問題.
如圖1所示,該系統結構主要由數據源、視景仿真數據庫和視景生成子系統組成.數據源主要包括兩部分:一部分是由飛機載荷譜實測改裝過程中加裝的傳感器或者機載計算機總線信號,實時按照一定的規范傳送到計算機而形成的實時數據流;另一部分是完成一定飛行架次后由數據采集設備提取的實測數據,經校驗有效后發布到載荷譜實測數據庫中.視景仿真數據庫由實測數據庫、地形地貌數據庫和飛行器模型數據庫構成,其中飛行器模型數據和實測數據庫相關聯,可以自動匹配飛行器模型與該機型的實測數據.視景生成子系統利用數據源驅動飛行器模型,經過數據雙緩沖和繪圖雙緩沖優化生成實測數據視景實時傳送給用戶端.

圖1 飛機載荷譜實測數據視景仿真系統結構Fig.1 Structure of visual simulation system of aircrafts’load spectrum measured data
飛機載荷譜實測數據的主要對象是通過機載數據記錄設備所記錄下來的各種實測參數的脈沖編碼調制(PCM,Pulse Code Modulation)編碼數據流或者PCAP(Packet Capture)格式網絡數據包,由于不同機型測試的參數數量、類型都不相同,因此,其記錄的數據格式和數據結構各不相同.同時根據測試目的的不同,各種不同的參數使用不同的采樣頻率來進行記錄.如:飛機飛行參數等數據,采樣率32 Hz;機翼載荷變信號,采樣率64 Hz;飛機起落架載荷數據,256 Hz;振動信號,采樣率6144 Hz等,給同步記錄和后期處理數百甚至上千物理通道的飛行實測數據帶來極大困難.通常處理不同數據結構的實測數據文件有兩種方式:一種方式是針對不同的測試機型開發不同版本的數據處理軟件,此種方式開發的軟件無通用性,每個不同的機型都需要大量的軟件開發重構工作,但是不用考慮軟件兼容性;另一種方式是針對不同的機型編寫適用的數據接口,但會大大增加軟件的復雜程度,代碼調試和維護困難,而且新增機型測試項目仍然需要加入新的接口程序.飛機載荷譜實測過程中,測試方案和參數會不斷變化和調整,無論采取上述任何一種方式,都不能有效解決不同測試項目的數據結構不統一的問題.
本文為克服上述困難提出了邏輯數據通道的概念,建立了不同數據結構的實測數據統一模型.邏輯數據通道將每個實測參數定義為一個數據通道,所有的實測參數是同步采集的.以PCM數據流為例,采集的實測數據經過模擬信號離散化轉換為數字信號(如圖2所示),數據采集系統以PCM數據幀的形式,串行化發送到接收設備或者保存到記錄設備.針對不同采樣率的特性,經過數字化的PCM數據幀按照以下存儲策略行程物理通道文件:①以二進制格式保存數據.②將PCM數據幀解碼,按采樣率將參數進行分組,將相同采樣率的參數存儲到同一個物理文件,如圖3所示,按照n種采樣率,形成n個數據文件.如果采樣率為nHz,那么每秒鐘的數據由n幀組成,每一幀由二進制形式存放的m個參數數值構成.③對每個物理文件,都具有成為具有簡單行格式的規則化的數據文件,有利于高效率的尋址和隨機讀寫.④不同文件之間,存在確定的幀時間同步關系.

圖2 PCM數據幀量化過程Fig.2 Digitization process of PCM data frame

圖3 數據文件構成Fig.3 Data file structure
根據以上存儲策略,每個飛行起落的實測數據通常由多個文件組成,文件擴展名以采樣率為標識,如A.32,A.64等形式,不同的文件可以有不同的采樣頻率,但應滿足整數倍數關系.通過對物理文件的分析和抽象,可以將物理文件轉化成為單一的邏輯數據文件(如圖4所示).通過邏輯數據通道完全屏蔽了物理數據通道的差異,對于用戶而言,飛行實測數據完全由不同采樣率組的數據文件組成.

圖4 物理通道轉為邏輯數據通道Fig.4 Conversion of physical channel to logical data channel
在數據層中,邏輯數據通道的建立完全屏蔽了不同數據結構的物理上的差異,其實現方式依賴于載荷譜數據庫系統的開發環境,視景仿真系統使用Visual C++的開發平臺,邏輯數據通道可由數據結構體定義,方式如下:


原始飛行數據由飛行實測數據服務器存儲,由于原始數據容量均為GB級別,考慮到視景仿真系統執行效率問題,基于載荷譜實測數據庫采用了數據雙緩沖技術訪問實測數據.數據雙緩沖的實現原理如下:
1)客戶端使用自定的數據傳輸協議訪問載荷譜數據庫獲得請求的機型數據.自定義數據傳輸協議格式為App:///服務器地址+目錄+數據文件,客戶端會自動監視此格式鏈接,一旦用戶請求此鏈接,客戶端軟件根據自定義協議鏈接格式進行解析得到真實的數據文件地址,取得數據文件進行處理.
2)為保證視景仿真系統的執行效率,視景仿真系統客戶端運行時,在內存開辟兩個緩沖區,緩沖區A用于存儲從載荷譜數據庫取得實測數據,緩沖區B用于存儲校驗后的緩沖區A的數據,如果數據出現無碼,則使用前一時刻的數據進行視景仿真,以減少由于GPS信號丟失等原因造成的數據誤碼現象.
飛機模型的運動是基于該機型飛行實測數據驅動的.飛機姿態含6自由度參數,根據飛行實測數據的航姿信息,在飛行動力學理論的基礎上模擬飛行航跡[13].為形成載荷-時間歷程的動態畫面,需在視景仿真系統窗口不斷刷新和繪制視圖.在未經任何優化的情況下,視圖會因為背景清除和繪制過程延遲而不斷閃爍.
雙緩沖的繪圖機制指的是在繪圖時除了在屏幕上有圖形進行顯示外,在內存中也有圖形在繪制[14-17].在屏幕上實現繪制圖形以前,OpenGL先分配兩個緩存區,在顯示前臺緩存中的圖像同時,后臺緩存繪制第2幅圖像.當后臺繪制完成后,后臺緩存中的圖像就顯示出來,此時原來的前臺緩存開始繪制第3幅圖像,通過不停地循環應用雙緩存,每一幀三維曲面只在繪制完成之后才顯示出來,所以觀察者可以看到每一幀繪制完成的三維場景,而不是場景的繪制過程,使得畫面看起來是連續的.
視景可視化系統主界面是飛行起落實測數據可視化視圖,用戶可以按照需要調節數據回放速度,支持最大320倍速的數據實時回放并可以隨時調節播放速率.系統采用多窗口視圖方式開發,不同可視化窗口之間通過消息驅動,以獲取用戶指令和數據交換.飛行歷程曲線視圖將發送自定義消息WM_FLIGHTSIMBARUPDATE給飛行模擬窗口,將航姿數據存入數組數據緩沖區,并將數據緩沖區的首地址作為用戶自定義窗口消息的參數發送給飛行可視化窗口.
視景可視化系統在數據初始化后后臺產生定時器,以30 Hz的頻率向飛行視景可視化窗口發出更新數據的系統消息,以驅動可視化視圖的進行數據更新.通過系統消息驅動方式,簡化數據邏輯,不同視圖之間通過系統消息通信,異步地進行飛行模擬窗口更新,增強了各模塊之間的獨立性,避免了飛機姿態數據變化時強制重繪可能導致的系統響應停頓的問題.
在飛機實測數據載荷譜數據庫基礎上,視景仿真系統客戶端采用ChtmlView模式內嵌載荷譜數據庫訪問控件,當運行視景仿真系統時,客戶端軟件自動訪問飛機實測數據載荷譜數據庫和飛機模型數據庫,并讀取客戶端軟件配置文件中[FlightSimModel]節點,該節點以 FlightSimModel=Key1.MS3D;Key2.MS3D;…;KeyN.MS3D 的格式定義了使用到的機型模型,其中Key1~KeyN為識別飛機機型的特征字,在某機型完成一個飛行架次,實測數據從機載數據采集器存儲介質轉換到計算機時,該特征字已經寫入對應的飛行實測數據,視景仿真系統通過該特征字自動匹配機型實測數據.
當視景仿真系統通過訪問實測數據載荷譜數據庫和模型數據庫取得指定飛行架次的實測數據后,通過解析實測數據頭特征字獲得需要的機型模型,用戶通過啟動飛行模擬窗口進入飛行歷程的可視化仿真,此時實測數據自動播放并實時驅動飛行模擬窗口更新,直至實測數據播放至結尾,從而實現整個飛行歷程的可視化再現,在此過程中,用戶可以通過鼠標滾輪調節數據播放速度和點擊數據曲線任意位置查看飛機飛行狀態,以節省數據播放時間.
以某型號飛機20110716A飛行架次數據為例,實測數據量10.6GB,在視景仿真系統配置文件中定義使用的飛機模型其格式如下:FlightSimModel=[Key].MS3D,其中[Key]為識別飛行實測數據的特征字,在向服務器發送的數據請求信息中包含了該關鍵字,服務器接受請求后,如果在該特征字描述的機型實測數據中發現了對應的飛行架次,便 以 APP:///服 務 器 地 址//數 據 目 錄//20110716A格式返回對應的該機型的實測數據文件,視景仿真系統首先生成實測數據輪廓,并從服務器端提取飛機航姿數據曲線,如圖5所示.通過視景仿真系統數據播放功能,實時解析實測數據,并以消息方式驅動實時更新數據,以獲得整個飛行實測歷程的可視化過程.圖6是根據對應航姿數據對整個飛行實測數據的可視化過程截圖.

圖5 飛行歷程曲線視圖Fig.5 Curve view of flight course

圖6 飛行視景可視化截圖Fig.6 Visualization screenshot of flight visual
本文利用數據雙緩沖和繪圖雙緩沖機制,建立了飛行實測數據視景仿真系統.系統利用邏輯數據通道的概念在服務器端以載荷譜數據庫為基礎,完全屏蔽了不同測試機型數據結構的差異,實現了異構數據源的統一,視景仿真系統客戶端內嵌瀏覽器加載飛行實測數據,通過繪圖雙緩沖機制創建了飛行實測數據可視化環境,自動匹配機型數據,完整地再現整個飛行歷程,經對實測數據進行仿真,結果表明:
1)該飛行實測數據視景仿真系統具有良好數據解析能力,目前完全滿足單個起落容量小于20 GB飛行歷程可視化性能需求,能夠批處理所有飛行起落數據.
2)通過某殲擊機和某型預警機飛行實測歷程可視化仿真和校驗,可作為飛機飛行歷程機動動作識別的可視化工具,提高了技術人員采用關鍵參數判別機動動作的準確性和效率.
3)在飛行實測大綱確定的前提下,通過飛行歷程可視化仿真系統可以檢驗飛行數據是否滿足大綱規定的技術要求,為數據有效性驗證和數據后期處理提供可視化平臺.
References)
[1] 閆楚良.飛機載荷譜實測技術與編制原理[M].北京:航空工業出版社,2010:5-6.Yan C L.Aircraft load spectrum measurement technique and compilation principle[M].Beijing:Aviation Industry Press,2010:5-6(in Chinese).
[2] 閆楚良,卓寧生,高鎮同.雨流法實時計數模型[J].北京航空航天大學學報,1998,24(5):623-624.Yan C L,Zhuo N S,Gao Z T.Model of rain-flow real-time counting method[J].Journal of Beijing University of Aeronautics and Astronautics,1998,24(5):623-624(in Chinese).
[3] Yan C L,Liu K G.Fatigue scatter factor of whole life and reliability of aircraft structure service life[J].Advanced Materials Research,2008,44-46:739-744.
[4] 閆楚良,劉克格.飛機結構經濟壽命設計與可靠性評定[M].北京:航空工業出版社,2010:248-249.Yan C L,Liu K G.Aircraft structure design and reliability evaluation of economic life[M].Beijing:Aviation Industry Press,2010:248-249(in Chinese).
[5] 閻楚良,高鎮同.飛機高置信度中值隨機疲勞載荷譜的編制原理[J].航空學報,2000,21(2):118-123.Yan C L,Gao Z T.Compilation theory of median stochastic fatigue load-spectrum with high confidence level for airplane[J].Acta Aeronautica et Astronautica Sinica,2000,21(2):118-123(in Chinese).
[6] 劉克格,閆楚良.飛機起落架載荷譜實測與編制方法[J].航空學報,2011,32(5):841-848.Liu K G,Yan C L.Load measurement and compilation of landing gear of airplane[J].Acta Aeronautica et Astronautica Sinica,2011,32(5):841-848(in Chinese).
[7] 周海燕,郭建忠,王家耀.知識發現與數據可視化技術淺析[J].信息工程大學學報,2002,3(4):78-80.Zhou H Y,Guo J Z,Wang J Y.Tentative study of knowledge discovery and data visualization techologies[J].Journal of Information Engineering University,2002,3(4):78-80(in Chinese).
[8] 鐘嘯,高穎,費益,等.基于VR的虛擬視景系統關鍵技術研究[J].計算機仿真,2008,25(11):233-237.Zhong X,Gao Y,Fei Y,et al.Research on virtual scene system based on openGVS[J].Computer Simulation,2008,25(11):233-237(in Chinese).
[9] 李春香.飛行數據可視化技術研究[J].中國安全科學學報,2009,19(1):166-171.Li C X.Research on the visualization technology of flight data[J].China Safety Science Journal,2009,19(1):166-171(in Chinese).
[10] 李德信,羅剛,應錦春.面向對象數據庫管理系統中內存的雙緩沖管理機制[J].機械與電子,2001(3):43-45.Li D X,Luo G,Ying J C.Double buffer management mechanism of memory for OODBMS[J].Machinery & Electronics,2001(3):43-45(in Chinese).
[11] 張亮.基于雙緩沖技術的VC++圖形刷新技術的原理和實現[J].福建電腦,2010,26(6):110-110.Zhang L.VC++graphical refresh technology and implementation based on the principle of double buffer technique[J].Fujian Computer,2010,26(6):110-110(in Chinese).
[12] 金志宏.大量數據處理時的高效率VC++編程方法[J].計算機光盤軟件與應用,2010(8):148-149.Jin Z H.Efficient method of VC++programming in large amounts of data processing[J].Computer CD Software and Applications,2010(8):148-149(in Chinese).
[13] 葉舸,田兆鋒,閆楚良.基于OpenGL的飛機飛行實測數據可視化研究[J].航空學報,2011,32(6):1050-1057.Ye G,Tian Z F,Yan C L.Flight-test data visualization of aircraft’s flight course based on openGL[J].Acta Aeronautica et Astronautica Sinica,2011,32(6):1050-1057(in Chinese).
[14] 尚游,陳巖濤.OpenGL圖形程序設計指南[M].北京:中國水利水電出版社,2001:7-8.Shang Y,Chen Y T.Open Graphics Library[M].Beijing:China Water& Power Press,2001:7-8(in Chinese).
[15] 劉曄,王斌,師丹,等.基于VC++的飛機模擬負載自動管理系統設計[J].軟件導刊,2010,9(10):136-139.Liu Y,Wang B,Shi D,et al.Design of automatic management system of aircraft load simulator based on VC++[J].Soft Ware Guide,2010,9(10):136-139(in Chinese).
[16] 張哲源,熊慶國,李文翔.基于雙緩沖技術解決游戲開發中畫面更新問題[J].信息技術,2011(8):17-19.Zhang Z Y,Xiong Q G,Li W X.Based on double buffering technology to solve game development in pictures updated problem[J].Information Technology,2011(8):17-19(in Chinese).
[17] 黃華,徐幼平,鄧志武.基于Flightgear模擬器的實時可視化飛行仿真系統[J].系統仿真學報,2007,19(19):4421-4423.Huang H,Xu Y P,Deng Z W.Real-time visual flight simulation system based on flightgear simulator[J].Journal of System Simulation,2007,19(19):4421-4423(in Chinese).