




摘 要: 為解決飛行試驗測試系統(tǒng)跨代升級,網(wǎng)絡化測試系統(tǒng)采集記錄的海量iNET試飛數(shù)據(jù)高效處理難題,該文介紹傳統(tǒng)的試飛數(shù)據(jù)處理軟件設(shè)計思路及結(jié)構(gòu)。針對新形勢下飛行試驗采集的海量iNET網(wǎng)絡數(shù)據(jù)的高效處理難題,分析iNET網(wǎng)絡數(shù)據(jù)的特點及制約飛行試驗海量試飛數(shù)據(jù)高效分析處理的因素;提出預留緩存的試飛數(shù)據(jù)處理新思路及實現(xiàn)技術(shù),實現(xiàn)飛行試驗海量試飛iNET數(shù)據(jù)的高效分析及處理;最后在某試驗機飛行試驗中對采集的海量iNET試飛數(shù)據(jù)進行分析處理。試驗表明使用這些算法的數(shù)據(jù)處理軟件的處理效率滿足了飛行試驗海量iNET數(shù)據(jù)處理需求。
關(guān)鍵詞: 飛行試驗; 數(shù)據(jù)處理軟件; 預留緩存; 并行處理
中圖分類號: TN926?34 文獻標識碼: A 文章編號: 1004?373X(2016)12?0048?03
Abstract: In order to realize the cross?generation upgrade of testing system for flight test and high?efficient processing of massive iNET data collected and recorded by networked test system, the design thought and structure of the traditional flight data processing software are introduced. According to the above problems under the new situation, the characteristics of iNET network data, and factors restricting the massive data efficient analysis and processing for flight test are analyzed. The new thought and implementation technology of flight test data processing based on reserved cache are proposed to realize the efficient analysis and processing of massive iNET data for flight test. This technology was tested in the flight test for a certain tester. The test results show that the processing efficiency of the data processing software using these algorithms can meet the requirements of massive iNET data processing for flight test.
Keywords: flight test; data processing software; reserved cache; parallel processing
隨著現(xiàn)代飛機設(shè)計及飛行試驗技術(shù)的發(fā)展,飛行試驗網(wǎng)絡化測試系統(tǒng)架構(gòu)技術(shù)應用于最新的飛機測試系統(tǒng)上,試驗機測試參數(shù)總量激增,飛行試驗采集記錄的單架次網(wǎng)絡化測試iNET[1?2]數(shù)據(jù)總量高達到上百GB。同時,試飛工程師所需的試驗結(jié)果參數(shù)的總數(shù)增多和采樣率增大,分析處理的結(jié)果數(shù)據(jù)文件也隨之增大,根據(jù)試飛科目的不同,總的結(jié)果數(shù)據(jù)工程量文件有幾十GB不等。如何快速地對海量試驗數(shù)據(jù)進行高效分析處理,本文在處理方法上進行優(yōu)化設(shè)計,采用了多線程并行處理方法并設(shè)計了多科目統(tǒng)一處理技術(shù),取得了一定成效,但是在分析處理試驗數(shù)據(jù)時,將結(jié)果工程量文件進行高效存儲成為制約海量試飛iNET數(shù)據(jù)處理效率的瓶頸,也是試飛數(shù)據(jù)高效處理的難點。在試飛海量數(shù)據(jù)處理中高效地存儲結(jié)果工程量就成為試飛數(shù)據(jù)高效處理必須解決的難題。
1 飛行試驗數(shù)據(jù)處理流程
1.1 飛行試驗數(shù)據(jù)處理
在先進的測試系統(tǒng)架構(gòu)[3]下,飛行試驗數(shù)據(jù)量激增是必然的趨勢,在設(shè)計試飛數(shù)據(jù)處理軟件時,必須要重視數(shù)據(jù)處理軟件的效率,以最快的速度將試飛工程師需要的試驗結(jié)果工程量數(shù)據(jù)提取出來。測試系統(tǒng)記錄的是整個飛機的所有參數(shù),現(xiàn)代飛行試驗采集的參數(shù)已經(jīng)高達上萬個,但是對單個飛行試驗架次來說,僅需要當前單個或者多個試驗科目的參數(shù),按不同的采樣率,可能只需要幾千個測試參數(shù),這就需要試飛數(shù)據(jù)處理軟件能夠快速地從所有的參數(shù)中提取相應的試驗科目的工程量試驗數(shù)據(jù)。
1.2 飛行試驗數(shù)據(jù)處理流程
一般試飛數(shù)據(jù)處理軟件的結(jié)構(gòu)圖如圖1所示,讀入校線文件和分析需處理參數(shù)列表,每次處理只需要進行一次即可,占用數(shù)據(jù)處理時間都不會多,讀入原始數(shù)據(jù)、分析原始數(shù)據(jù)、結(jié)果工程量寫入硬盤是一個不停重復的過程,直到分析完整飛行試驗原始數(shù)據(jù),這個過程是試飛數(shù)據(jù)處理軟件的核心部分。
1.3 傳統(tǒng)的飛行試驗高效數(shù)據(jù)處理模式
在處理試飛數(shù)據(jù)時,為了提高數(shù)據(jù)處理的效率,采用了并行處理技術(shù),如圖2所示,分析需處理參數(shù)列表后,啟動多線程對試飛數(shù)據(jù)進行讀取、分析并將結(jié)果數(shù)據(jù)工程量存儲寫入。
普遍應用于飛行試驗數(shù)據(jù)處理的結(jié)果
數(shù)據(jù)存儲寫技術(shù)有以下3種:fwrite()流式文件方式;write()句柄直接I/O文件操作;基于WINAPI和基于第三方庫的文件操作。這三種傳統(tǒng)的文件存儲寫技術(shù)都是逐字節(jié)且嚴格按照文件指針順序的方式進行文件的存儲寫方式,在同一時刻只能被一個線程進行操作。
分析傳統(tǒng)的并行處理流程可以看出,采用多線程并行處理和傳統(tǒng)的處理結(jié)果工程量存儲寫技術(shù)時,處理線程1處理完單元數(shù)據(jù)后,進行試飛數(shù)據(jù)處理結(jié)果工程量存儲寫操作前,必須得等到激活狀態(tài)下的處理線程2結(jié)果工程量存儲寫操作結(jié)束之后,同樣,處理線程2進行結(jié)果工程量存儲寫之前,也需要等處理線程1結(jié)束存儲寫操作,并且,對存儲結(jié)果工程量文件來說,時間序列必須是從小到大的。
2 飛行試驗數(shù)據(jù)處理結(jié)果數(shù)據(jù)存儲寫新思路
2.1 多線程并行存儲新模式
在PCM技術(shù)構(gòu)架[4?5]的測試系統(tǒng)時代,由于系統(tǒng)采集帶寬的限制,單架次試飛數(shù)據(jù)量一般不超過30 GB,隨著iNET技術(shù)構(gòu)架[6]應用于飛行試驗測試系統(tǒng),單架次試飛數(shù)據(jù)量激增,必須使數(shù)據(jù)處理效率更加高效。通過圖2可以看出,在傳統(tǒng)的多線程并行處理模式下,處理線程組夠快的情況下,將分析結(jié)果工程量寫入硬盤這一步驟成為制約試飛海量iNET數(shù)據(jù)處理效率的瓶頸。如果對試飛iNET數(shù)據(jù)處理結(jié)果工程量存儲寫也采用并行處理的方式,這樣可避免多分析處理線程的等待時間,快速存儲寫入結(jié)果數(shù)據(jù),提高處理效率,如圖3所示。
2.2 試飛iNET數(shù)據(jù)處理預留緩存技術(shù)
在iNET數(shù)據(jù)處理工程量并行存儲寫的新思路下,還必須解決多線程處理和多線程存儲并行處理難題,以及海量結(jié)果工程量數(shù)據(jù)同步存儲等難題,在此采用了預留緩存的試飛iNET數(shù)據(jù)并行處理技術(shù)來實現(xiàn)這一新的試飛數(shù)據(jù)處理方式。對于海量試飛iNET數(shù)據(jù)處理軟件而言,最理想的緩存情況是采用部分緩存技術(shù),結(jié)合數(shù)據(jù)分析模塊,應用部分緩存和內(nèi)存映射技術(shù),設(shè)計試飛數(shù)據(jù)處理預留緩存技術(shù),即利用試飛iNET數(shù)據(jù)相關(guān)信息,預知未來的數(shù)據(jù)分析結(jié)果的工程量文件存放地址,對工程量存儲寫地址情況進行精準預測,達到一個盡可能好的緩存性能,同時結(jié)合多線程同步處理技術(shù),最終實現(xiàn)數(shù)據(jù)分析處理和結(jié)果數(shù)據(jù)工程量存儲寫的同步處理,從而提高處理效率。
3 基于預留緩存的iNET數(shù)據(jù)處理關(guān)鍵技術(shù)
3.1 試飛iNET數(shù)據(jù)并行處理技術(shù)
為了提高iNET數(shù)據(jù)處理效率,采用了多線程并行處理技術(shù),如圖3所示,同時為了盡可能快地將大量處理線程處理的結(jié)果數(shù)據(jù)工程量存儲寫入文件,采用了多線程并行存儲技術(shù)。針對試飛原始數(shù)據(jù)的讀取操作,處理線程1和處理線程2為一組,進行同步分析。針對結(jié)果工程量文件存儲寫操作,存儲線程1和存儲線程2為一組,進行同步分析。同時,處理線程組和存儲線程組按試飛數(shù)據(jù)的時間遞增序列進行同步分析。
3.2 多線程并行緩存實現(xiàn)技術(shù)
通過第1.3節(jié)的分析可知,傳統(tǒng)的試飛數(shù)據(jù)文件寫技術(shù)無法實現(xiàn)試飛數(shù)據(jù)處理的多線程并行存儲,在多線程并行存儲中采用了內(nèi)存映射技術(shù),設(shè)計了預留緩存技術(shù),解決了傳統(tǒng)的試飛結(jié)果數(shù)據(jù)存儲技術(shù)只能逐字節(jié)寫工程量的問題,它可以實現(xiàn)結(jié)果數(shù)據(jù)按文件地址寫入工程量文件,如圖4所示。
傳統(tǒng)的試飛結(jié)果存儲寫技術(shù),線程“結(jié)果工程量文件寫0”必須是第一個被寫入硬盤的數(shù)據(jù),在這種情況下,即使線程“結(jié)果工程量文件寫2”或者“結(jié)果工程量文件寫1”先完成數(shù)據(jù)分析,也必須要得到“結(jié)果工程量文件寫1”寫完才可以進行寫操作,這樣在時序上每個線程必須要等到上一個線程結(jié)束才可以進行,它們之間是串行關(guān)系,這樣就增加了線程的等待時間,致使整個進程的效率降低。而采用預留緩存技術(shù),“結(jié)果工程量文件寫2”的寫操作,不需要等待“結(jié)果工程量文件寫0”或者“結(jié)果工程量文件寫1”結(jié)束,它們之間是并行關(guān)系,沒有必然的聯(lián)系,這樣便消除了線程的等待時間,提高了整個數(shù)據(jù)處理效率,多線程并行緩存實現(xiàn)如下:
(1) 分析本次處理參數(shù)的總數(shù)ParaSum、采樣率ParaCyl、處理的總時間TimeSum秒,以及必要的該次數(shù)據(jù)處理信息ParaInfoSize字節(jié),根據(jù)這些信息計算需創(chuàng)建的工程量文件的大小為:
ResFiSize=ParaSum*TimeSum*ParaCyl+ParaInfoSize
(2) 使用內(nèi)存映射技術(shù),創(chuàng)建ResFileSize字節(jié)大小的結(jié)果工程量文件;
(3) 寫入該次數(shù)據(jù)處理信息;
(4) 處理線程組進行數(shù)據(jù)處理,并將單元時間內(nèi)處理好的結(jié)果數(shù)據(jù)交給存儲線程組;
(5) 存儲線程組將結(jié)果數(shù)據(jù)寫入工程量文件。
3.3 單元結(jié)果數(shù)據(jù)存儲地址算法
單元時間內(nèi)處理好的結(jié)果數(shù)據(jù)按文件地址存儲寫入結(jié)果工程量文件,以1 s為一個處理單元,結(jié)合第3.2節(jié),起始時刻為TimeBeg秒,起始地址為AddrBeg在任意的TimeN秒時刻,它的存儲地址TimeNddr為:
TimeNddr=AddrBeg+(TimeN-TimeBeg) ParaSum*ParaCyl
當存儲線程接收到單元時間的結(jié)果數(shù)據(jù)以及該數(shù)據(jù)的相關(guān)信息,按照該單元時間數(shù)據(jù)的起始時刻TimeN就可以知道結(jié)果數(shù)據(jù)的存放首地址為TimeNddr,即可將該數(shù)據(jù)存儲寫入工程量文件。
4 飛行試驗應用與測試
應用預留緩存及多線程并行處理技術(shù)開發(fā)了iNET數(shù)據(jù)處理軟件,針對某試驗機采用了網(wǎng)絡化測試系統(tǒng)采集的海量iNET數(shù)據(jù),該測試系統(tǒng)測試速率為50 Mb/s,單架次飛行試驗[7?10]采集的網(wǎng)絡化iNET數(shù)據(jù)是傳統(tǒng)PCM架構(gòu)的數(shù)十倍,應用該軟件對該iNET數(shù)據(jù)進行分析,并計算試驗機的飛行高度,其計算結(jié)果如圖5所示。
數(shù)據(jù)處理結(jié)果表明:采用基于預留緩存的海量iNET數(shù)據(jù)分析算法正確,數(shù)據(jù)結(jié)果處理準確,同時使試飛iNET數(shù)據(jù)處理效率較之傳統(tǒng)的處理技術(shù)提高了2倍,滿足了試飛工程師對海量iNET數(shù)據(jù)高效處理的需求?;谝陨纤惴ㄩ_發(fā)的飛行試驗iNET試驗數(shù)據(jù)分析軟件已在多個試驗機試飛中推廣使用。
5 結(jié) 語
本文對試飛數(shù)據(jù)處理軟件設(shè)計的各個環(huán)節(jié)進行了分析,介紹了傳統(tǒng)試飛數(shù)據(jù)處理軟件的存儲寫技術(shù),研究了試飛iNET數(shù)據(jù)處理預留緩存技術(shù),提出并實現(xiàn)了試飛數(shù)據(jù)處理快速存儲寫技術(shù),解決了傳統(tǒng)的試飛結(jié)果數(shù)據(jù)存儲寫技術(shù)只能逐字節(jié)寫工程量的問題,實現(xiàn)了結(jié)果數(shù)據(jù)按文件地址寫入工程量文件,并且這些方法已經(jīng)在飛行試驗海量iNET數(shù)據(jù)處理軟件的設(shè)計過程中應用,通過對飛行試驗中采集的iNET數(shù)據(jù)進行處理表明,該技術(shù)極大地提高了飛行試驗海量iNET數(shù)據(jù)處理軟件的處理效率,滿足了現(xiàn)代飛機試飛海量iNET數(shù)據(jù)處理需求。
參考文獻
[1] Internet Thailand Public Company Limited. iNET system architecture (version 2007) [R]. Thailand: Internet Thailand Public Company Limited, 2007.
[2] Nikker. iNET?X summary [EB/OL]. [2010?10?11]. http://www.acracontrol.com.
[3] 白效賢.試飛測試技術(shù)現(xiàn)狀與發(fā)展[J].測控技術(shù),2004,23(10):1?2.
[4] 佚名.Kam:500數(shù)據(jù)采集系統(tǒng)[EB/OL].[2005?07?18].http://www.yorkinstrument.com.
[5] Range Commanders Council. Telemetry Standards: Part 1, Chapter 10: IRIG Standard 106?11 [S/OL]. [2011?06?03]. http://www.irig.org.
[6] 劉明.新一代試飛測試系統(tǒng)架構(gòu)及其應用[J].計算機測量與控制,2014,22(6):1729?1731.
[7] 何紅麗,楊廷梧,左益宏,等.某型飛機模型失速/尾旋飛行試驗技術(shù)[J].計算機工程,2009,35(23):232?233.
[8] 彭國金,劉嫚婷.非結(jié)構(gòu)化海量網(wǎng)絡數(shù)據(jù)處理技術(shù)研究[J].現(xiàn)代電子技術(shù),2011,34(14):121?123.
[9] 胡匯洋,李揚,許應康.多試飛數(shù)據(jù)流文件的融合處理[J].現(xiàn)代電子技術(shù),2015,38(8):47?49.
[10] 徐武軍,侯玉宏,段亞.序貫概率比檢驗法在導航精度試飛中的應用[J].現(xiàn)代電子技術(shù),2014,37(11):124?128.