摘 要: 為解決飛行試驗(yàn)測(cè)試系統(tǒng)跨代升級(jí),網(wǎng)絡(luò)化測(cè)試系統(tǒng)采集記錄的海量iNET試飛數(shù)據(jù)高效處理難題,該文介紹傳統(tǒng)的試飛數(shù)據(jù)處理軟件設(shè)計(jì)思路及結(jié)構(gòu)。針對(duì)新形勢(shì)下飛行試驗(yàn)采集的海量iNET網(wǎng)絡(luò)數(shù)據(jù)的高效處理難題,分析iNET網(wǎng)絡(luò)數(shù)據(jù)的特點(diǎn)及制約飛行試驗(yàn)海量試飛數(shù)據(jù)高效分析處理的因素;提出預(yù)留緩存的試飛數(shù)據(jù)處理新思路及實(shí)現(xiàn)技術(shù),實(shí)現(xiàn)飛行試驗(yàn)海量試飛iNET數(shù)據(jù)的高效分析及處理;最后在某試驗(yàn)機(jī)飛行試驗(yàn)中對(duì)采集的海量iNET試飛數(shù)據(jù)進(jìn)行分析處理。試驗(yàn)表明使用這些算法的數(shù)據(jù)處理軟件的處理效率滿足了飛行試驗(yàn)海量iNET數(shù)據(jù)處理需求。
關(guān)鍵詞: 飛行試驗(yàn); 數(shù)據(jù)處理軟件; 預(yù)留緩存; 并行處理
中圖分類號(hào): TN926?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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)代飛機(jī)設(shè)計(jì)及飛行試驗(yàn)技術(shù)的發(fā)展,飛行試驗(yàn)網(wǎng)絡(luò)化測(cè)試系統(tǒng)架構(gòu)技術(shù)應(yīng)用于最新的飛機(jī)測(cè)試系統(tǒng)上,試驗(yàn)機(jī)測(cè)試參數(shù)總量激增,飛行試驗(yàn)采集記錄的單架次網(wǎng)絡(luò)化測(cè)試iNET[1?2]數(shù)據(jù)總量高達(dá)到上百GB。同時(shí),試飛工程師所需的試驗(yàn)結(jié)果參數(shù)的總數(shù)增多和采樣率增大,分析處理的結(jié)果數(shù)據(jù)文件也隨之增大,根據(jù)試飛科目的不同,總的結(jié)果數(shù)據(jù)工程量文件有幾十GB不等。如何快速地對(duì)海量試驗(yàn)數(shù)據(jù)進(jìn)行高效分析處理,本文在處理方法上進(jìn)行優(yōu)化設(shè)計(jì),采用了多線程并行處理方法并設(shè)計(jì)了多科目統(tǒng)一處理技術(shù),取得了一定成效,但是在分析處理試驗(yàn)數(shù)據(jù)時(shí),將結(jié)果工程量文件進(jìn)行高效存儲(chǔ)成為制約海量試飛iNET數(shù)據(jù)處理效率的瓶頸,也是試飛數(shù)據(jù)高效處理的難點(diǎn)。在試飛海量數(shù)據(jù)處理中高效地存儲(chǔ)結(jié)果工程量就成為試飛數(shù)據(jù)高效處理必須解決的難題。
1 飛行試驗(yàn)數(shù)據(jù)處理流程
1.1 飛行試驗(yàn)數(shù)據(jù)處理
在先進(jìn)的測(cè)試系統(tǒng)架構(gòu)[3]下,飛行試驗(yàn)數(shù)據(jù)量激增是必然的趨勢(shì),在設(shè)計(jì)試飛數(shù)據(jù)處理軟件時(shí),必須要重視數(shù)據(jù)處理軟件的效率,以最快的速度將試飛工程師需要的試驗(yàn)結(jié)果工程量數(shù)據(jù)提取出來(lái)。測(cè)試系統(tǒng)記錄的是整個(gè)飛機(jī)的所有參數(shù),現(xiàn)代飛行試驗(yàn)采集的參數(shù)已經(jīng)高達(dá)上萬(wàn)個(gè),但是對(duì)單個(gè)飛行試驗(yàn)架次來(lái)說(shuō),僅需要當(dāng)前單個(gè)或者多個(gè)試驗(yàn)科目的參數(shù),按不同的采樣率,可能只需要幾千個(gè)測(cè)試參數(shù),這就需要試飛數(shù)據(jù)處理軟件能夠快速地從所有的參數(shù)中提取相應(yīng)的試驗(yàn)科目的工程量試驗(yàn)數(shù)據(jù)。
1.2 飛行試驗(yàn)數(shù)據(jù)處理流程
一般試飛數(shù)據(jù)處理軟件的結(jié)構(gòu)圖如圖1所示,讀入校線文件和分析需處理參數(shù)列表,每次處理只需要進(jìn)行一次即可,占用數(shù)據(jù)處理時(shí)間都不會(huì)多,讀入原始數(shù)據(jù)、分析原始數(shù)據(jù)、結(jié)果工程量寫(xiě)入硬盤(pán)是一個(gè)不停重復(fù)的過(guò)程,直到分析完整飛行試驗(yàn)原始數(shù)據(jù),這個(gè)過(guò)程是試飛數(shù)據(jù)處理軟件的核心部分。
1.3 傳統(tǒng)的飛行試驗(yàn)高效數(shù)據(jù)處理模式
在處理試飛數(shù)據(jù)時(shí),為了提高數(shù)據(jù)處理的效率,采用了并行處理技術(shù),如圖2所示,分析需處理參數(shù)列表后,啟動(dòng)多線程對(duì)試飛數(shù)據(jù)進(jìn)行讀取、分析并將結(jié)果數(shù)據(jù)工程量存儲(chǔ)寫(xiě)入。
普遍應(yīng)用于飛行試驗(yàn)數(shù)據(jù)處理的結(jié)果
數(shù)據(jù)存儲(chǔ)寫(xiě)技術(shù)有以下3種:fwrite()流式文件方式;write()句柄直接I/O文件操作;基于WINAPI和基于第三方庫(kù)的文件操作。這三種傳統(tǒng)的文件存儲(chǔ)寫(xiě)技術(shù)都是逐字節(jié)且嚴(yán)格按照文件指針順序的方式進(jìn)行文件的存儲(chǔ)寫(xiě)方式,在同一時(shí)刻只能被一個(gè)線程進(jìn)行操作。
分析傳統(tǒng)的并行處理流程可以看出,采用多線程并行處理和傳統(tǒng)的處理結(jié)果工程量存儲(chǔ)寫(xiě)技術(shù)時(shí),處理線程1處理完單元數(shù)據(jù)后,進(jìn)行試飛數(shù)據(jù)處理結(jié)果工程量存儲(chǔ)寫(xiě)操作前,必須得等到激活狀態(tài)下的處理線程2結(jié)果工程量存儲(chǔ)寫(xiě)操作結(jié)束之后,同樣,處理線程2進(jìn)行結(jié)果工程量存儲(chǔ)寫(xiě)之前,也需要等處理線程1結(jié)束存儲(chǔ)寫(xiě)操作,并且,對(duì)存儲(chǔ)結(jié)果工程量文件來(lái)說(shuō),時(shí)間序列必須是從小到大的。
2 飛行試驗(yàn)數(shù)據(jù)處理結(jié)果數(shù)據(jù)存儲(chǔ)寫(xiě)新思路
2.1 多線程并行存儲(chǔ)新模式
在PCM技術(shù)構(gòu)架[4?5]的測(cè)試系統(tǒng)時(shí)代,由于系統(tǒng)采集帶寬的限制,單架次試飛數(shù)據(jù)量一般不超過(guò)30 GB,隨著iNET技術(shù)構(gòu)架[6]應(yīng)用于飛行試驗(yàn)測(cè)試系統(tǒng),單架次試飛數(shù)據(jù)量激增,必須使數(shù)據(jù)處理效率更加高效。通過(guò)圖2可以看出,在傳統(tǒng)的多線程并行處理模式下,處理線程組夠快的情況下,將分析結(jié)果工程量寫(xiě)入硬盤(pán)這一步驟成為制約試飛海量iNET數(shù)據(jù)處理效率的瓶頸。如果對(duì)試飛iNET數(shù)據(jù)處理結(jié)果工程量存儲(chǔ)寫(xiě)也采用并行處理的方式,這樣可避免多分析處理線程的等待時(shí)間,快速存儲(chǔ)寫(xiě)入結(jié)果數(shù)據(jù),提高處理效率,如圖3所示。
2.2 試飛iNET數(shù)據(jù)處理預(yù)留緩存技術(shù)
在iNET數(shù)據(jù)處理工程量并行存儲(chǔ)寫(xiě)的新思路下,還必須解決多線程處理和多線程存儲(chǔ)并行處理難題,以及海量結(jié)果工程量數(shù)據(jù)同步存儲(chǔ)等難題,在此采用了預(yù)留緩存的試飛iNET數(shù)據(jù)并行處理技術(shù)來(lái)實(shí)現(xiàn)這一新的試飛數(shù)據(jù)處理方式。對(duì)于海量試飛iNET數(shù)據(jù)處理軟件而言,最理想的緩存情況是采用部分緩存技術(shù),結(jié)合數(shù)據(jù)分析模塊,應(yīng)用部分緩存和內(nèi)存映射技術(shù),設(shè)計(jì)試飛數(shù)據(jù)處理預(yù)留緩存技術(shù),即利用試飛iNET數(shù)據(jù)相關(guān)信息,預(yù)知未來(lái)的數(shù)據(jù)分析結(jié)果的工程量文件存放地址,對(duì)工程量存儲(chǔ)寫(xiě)地址情況進(jìn)行精準(zhǔn)預(yù)測(cè),達(dá)到一個(gè)盡可能好的緩存性能,同時(shí)結(jié)合多線程同步處理技術(shù),最終實(shí)現(xiàn)數(shù)據(jù)分析處理和結(jié)果數(shù)據(jù)工程量存儲(chǔ)寫(xiě)的同步處理,從而提高處理效率。
3 基于預(yù)留緩存的iNET數(shù)據(jù)處理關(guān)鍵技術(shù)
3.1 試飛iNET數(shù)據(jù)并行處理技術(shù)
為了提高iNET數(shù)據(jù)處理效率,采用了多線程并行處理技術(shù),如圖3所示,同時(shí)為了盡可能快地將大量處理線程處理的結(jié)果數(shù)據(jù)工程量存儲(chǔ)寫(xiě)入文件,采用了多線程并行存儲(chǔ)技術(shù)。針對(duì)試飛原始數(shù)據(jù)的讀取操作,處理線程1和處理線程2為一組,進(jìn)行同步分析。針對(duì)結(jié)果工程量文件存儲(chǔ)寫(xiě)操作,存儲(chǔ)線程1和存儲(chǔ)線程2為一組,進(jìn)行同步分析。同時(shí),處理線程組和存儲(chǔ)線程組按試飛數(shù)據(jù)的時(shí)間遞增序列進(jìn)行同步分析。
3.2 多線程并行緩存實(shí)現(xiàn)技術(shù)
通過(guò)第1.3節(jié)的分析可知,傳統(tǒng)的試飛數(shù)據(jù)文件寫(xiě)技術(shù)無(wú)法實(shí)現(xiàn)試飛數(shù)據(jù)處理的多線程并行存儲(chǔ),在多線程并行存儲(chǔ)中采用了內(nèi)存映射技術(shù),設(shè)計(jì)了預(yù)留緩存技術(shù),解決了傳統(tǒng)的試飛結(jié)果數(shù)據(jù)存儲(chǔ)技術(shù)只能逐字節(jié)寫(xiě)工程量的問(wèn)題,它可以實(shí)現(xiàn)結(jié)果數(shù)據(jù)按文件地址寫(xiě)入工程量文件,如圖4所示。
傳統(tǒng)的試飛結(jié)果存儲(chǔ)寫(xiě)技術(shù),線程“結(jié)果工程量文件寫(xiě)0”必須是第一個(gè)被寫(xiě)入硬盤(pán)的數(shù)據(jù),在這種情況下,即使線程“結(jié)果工程量文件寫(xiě)2”或者“結(jié)果工程量文件寫(xiě)1”先完成數(shù)據(jù)分析,也必須要得到“結(jié)果工程量文件寫(xiě)1”寫(xiě)完才可以進(jìn)行寫(xiě)操作,這樣在時(shí)序上每個(gè)線程必須要等到上一個(gè)線程結(jié)束才可以進(jìn)行,它們之間是串行關(guān)系,這樣就增加了線程的等待時(shí)間,致使整個(gè)進(jìn)程的效率降低。而采用預(yù)留緩存技術(shù),“結(jié)果工程量文件寫(xiě)2”的寫(xiě)操作,不需要等待“結(jié)果工程量文件寫(xiě)0”或者“結(jié)果工程量文件寫(xiě)1”結(jié)束,它們之間是并行關(guān)系,沒(méi)有必然的聯(lián)系,這樣便消除了線程的等待時(shí)間,提高了整個(gè)數(shù)據(jù)處理效率,多線程并行緩存實(shí)現(xiàn)如下:
(1) 分析本次處理參數(shù)的總數(shù)ParaSum、采樣率ParaCyl、處理的總時(shí)間TimeSum秒,以及必要的該次數(shù)據(jù)處理信息ParaInfoSize字節(jié),根據(jù)這些信息計(jì)算需創(chuàng)建的工程量文件的大小為:
ResFiSize=ParaSum*TimeSum*ParaCyl+ParaInfoSize
(2) 使用內(nèi)存映射技術(shù),創(chuàng)建ResFileSize字節(jié)大小的結(jié)果工程量文件;
(3) 寫(xiě)入該次數(shù)據(jù)處理信息;
(4) 處理線程組進(jìn)行數(shù)據(jù)處理,并將單元時(shí)間內(nèi)處理好的結(jié)果數(shù)據(jù)交給存儲(chǔ)線程組;
(5) 存儲(chǔ)線程組將結(jié)果數(shù)據(jù)寫(xiě)入工程量文件。
3.3 單元結(jié)果數(shù)據(jù)存儲(chǔ)地址算法
單元時(shí)間內(nèi)處理好的結(jié)果數(shù)據(jù)按文件地址存儲(chǔ)寫(xiě)入結(jié)果工程量文件,以1 s為一個(gè)處理單元,結(jié)合第3.2節(jié),起始時(shí)刻為T(mén)imeBeg秒,起始地址為AddrBeg在任意的TimeN秒時(shí)刻,它的存儲(chǔ)地址TimeNddr為:
TimeNddr=AddrBeg+(TimeN-TimeBeg) ParaSum*ParaCyl
當(dāng)存儲(chǔ)線程接收到單元時(shí)間的結(jié)果數(shù)據(jù)以及該數(shù)據(jù)的相關(guān)信息,按照該單元時(shí)間數(shù)據(jù)的起始時(shí)刻TimeN就可以知道結(jié)果數(shù)據(jù)的存放首地址為T(mén)imeNddr,即可將該數(shù)據(jù)存儲(chǔ)寫(xiě)入工程量文件。
4 飛行試驗(yàn)應(yīng)用與測(cè)試
應(yīng)用預(yù)留緩存及多線程并行處理技術(shù)開(kāi)發(fā)了iNET數(shù)據(jù)處理軟件,針對(duì)某試驗(yàn)機(jī)采用了網(wǎng)絡(luò)化測(cè)試系統(tǒng)采集的海量iNET數(shù)據(jù),該測(cè)試系統(tǒng)測(cè)試速率為50 Mb/s,單架次飛行試驗(yàn)[7?10]采集的網(wǎng)絡(luò)化iNET數(shù)據(jù)是傳統(tǒng)PCM架構(gòu)的數(shù)十倍,應(yīng)用該軟件對(duì)該iNET數(shù)據(jù)進(jìn)行分析,并計(jì)算試驗(yàn)機(jī)的飛行高度,其計(jì)算結(jié)果如圖5所示。
數(shù)據(jù)處理結(jié)果表明:采用基于預(yù)留緩存的海量iNET數(shù)據(jù)分析算法正確,數(shù)據(jù)結(jié)果處理準(zhǔn)確,同時(shí)使試飛iNET數(shù)據(jù)處理效率較之傳統(tǒng)的處理技術(shù)提高了2倍,滿足了試飛工程師對(duì)海量iNET數(shù)據(jù)高效處理的需求?;谝陨纤惴ㄩ_(kāi)發(fā)的飛行試驗(yàn)iNET試驗(yàn)數(shù)據(jù)分析軟件已在多個(gè)試驗(yàn)機(jī)試飛中推廣使用。
5 結(jié) 語(yǔ)
本文對(duì)試飛數(shù)據(jù)處理軟件設(shè)計(jì)的各個(gè)環(huán)節(jié)進(jìn)行了分析,介紹了傳統(tǒng)試飛數(shù)據(jù)處理軟件的存儲(chǔ)寫(xiě)技術(shù),研究了試飛iNET數(shù)據(jù)處理預(yù)留緩存技術(shù),提出并實(shí)現(xiàn)了試飛數(shù)據(jù)處理快速存儲(chǔ)寫(xiě)技術(shù),解決了傳統(tǒng)的試飛結(jié)果數(shù)據(jù)存儲(chǔ)寫(xiě)技術(shù)只能逐字節(jié)寫(xiě)工程量的問(wèn)題,實(shí)現(xiàn)了結(jié)果數(shù)據(jù)按文件地址寫(xiě)入工程量文件,并且這些方法已經(jīng)在飛行試驗(yàn)海量iNET數(shù)據(jù)處理軟件的設(shè)計(jì)過(guò)程中應(yīng)用,通過(guò)對(duì)飛行試驗(yàn)中采集的iNET數(shù)據(jù)進(jìn)行處理表明,該技術(shù)極大地提高了飛行試驗(yàn)海量iNET數(shù)據(jù)處理軟件的處理效率,滿足了現(xiàn)代飛機(jī)試飛海量iNET數(shù)據(jù)處理需求。
參考文獻(xiàn)
[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] 白效賢.試飛測(cè)試技術(shù)現(xiàn)狀與發(fā)展[J].測(cè)控技術(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] 劉明.新一代試飛測(cè)試系統(tǒng)架構(gòu)及其應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2014,22(6):1729?1731.
[7] 何紅麗,楊廷梧,左益宏,等.某型飛機(jī)模型失速/尾旋飛行試驗(yàn)技術(shù)[J].計(jì)算機(jī)工程,2009,35(23):232?233.
[8] 彭國(guó)金,劉嫚婷.非結(jié)構(gòu)化海量網(wǎng)絡(luò)數(shù)據(jù)處理技術(shù)研究[J].現(xiàn)代電子技術(shù),2011,34(14):121?123.
[9] 胡匯洋,李揚(yáng),許應(yīng)康.多試飛數(shù)據(jù)流文件的融合處理[J].現(xiàn)代電子技術(shù),2015,38(8):47?49.
[10] 徐武軍,侯玉宏,段亞.序貫概率比檢驗(yàn)法在導(dǎo)航精度試飛中的應(yīng)用[J].現(xiàn)代電子技術(shù),2014,37(11):124?128.