(中國飛行試驗研究院 測試所,西安 710089)
隨著信息化技術(shù)與我國民機產(chǎn)業(yè)振興計劃的全面開展,提高我國的民機適航審定能力刻不容緩??v觀歐美大飛機試飛過程,都非常重視機載實時處理系統(tǒng)在民機適航審定中的作用。未來大飛機采用了大量新技術(shù)、新材料,采用了新的試飛方法與測試技術(shù),使得大型運輸類飛機機上測試參數(shù)量驟增,參數(shù)量超一萬已成常態(tài)[1-3]。
ARJ21試驗機總的測試參數(shù)有8000多個,機載實時數(shù)據(jù)處理系統(tǒng)中涉及的有1500多個,原始數(shù)據(jù)傳輸占用的帶寬為10 Mb/s,共有兩路PCM數(shù)據(jù)和4路網(wǎng)絡數(shù)據(jù)。隨著測試規(guī)模的擴大和其它測試需求的變化,以前傳統(tǒng)的測試系統(tǒng)受到了沖擊,PCM也暴露出了一些自身的不足和缺陷,如受碼速率和板卡通道容量限制的通道容量問題和布線問題[4]。
C919大型客機測試參數(shù)超過兩萬個,試飛過程中留空時間平均四小時以上,單架次飛行數(shù)據(jù)超過100 GB,同一架次中多科目混合、分時段進行,傳統(tǒng)數(shù)據(jù)處理模式需2小時以上已無法滿足型號試飛數(shù)據(jù)處理任務進度要求。在C919大型飛機試飛任務中,對機載實時數(shù)據(jù)處理提出了較高的性能要求,現(xiàn)有機載實時系統(tǒng)架構(gòu)及設計已沒有如此大的性能提升空間,解決超大量數(shù)據(jù)實時處理問題的需求極為迫切。
歐美大飛機試飛過程中,非常重視機載實時處理系統(tǒng)的作用,如空客A380、波音公司B747、777等飛機試飛過程中使用了當時功能強大的“機載實時數(shù)據(jù)分析與監(jiān)視系統(tǒng)”,在試飛過程中可對關鍵參數(shù)實時監(jiān)視,同時實時完成50%~60%數(shù)據(jù)的分析處理。從上世紀80年代末開始,我國開始在運7飛機定型試飛任務中引入機載實時監(jiān)控,由于技術(shù)限制無法實現(xiàn)數(shù)據(jù)同步實時處理,這就導致在試飛過程中延緩了下一架次飛行決策的時間[5]。
圖1 某大型運輸機機載實時系統(tǒng)結(jié)構(gòu)圖
圖1所示為某大型運輸機機載實時系統(tǒng)結(jié)構(gòu)圖,系統(tǒng)實時接收來自機載采集系統(tǒng)核心交換機發(fā)出的網(wǎng)絡數(shù)據(jù)包,通過實時監(jiān)控系統(tǒng)服務器完成數(shù)據(jù)包解析、數(shù)據(jù)轉(zhuǎn)發(fā)。其中,數(shù)據(jù)存儲、參數(shù)快速處理、振動數(shù)據(jù)處理分別采用三臺嵌入式工控設備完成。系統(tǒng)實時服務器選用Windows操作系統(tǒng),實時性不能完全保證。系統(tǒng)網(wǎng)絡接收速率最高為50 MB/S,實時處理參數(shù)2000個,數(shù)據(jù)存儲量為256 GB。
為解決機載超大量數(shù)據(jù)快速處理難題,同時保障系統(tǒng)處理的實時性,提出C919機載實時系統(tǒng)性能指標為:實時數(shù)據(jù)接收速率110 MB/S,實時處理參數(shù)在采樣率為64時超過8000個,數(shù)據(jù)讀寫速率不小于500 MB/S。超大量數(shù)據(jù)的實時處理問題是該系統(tǒng)設計的重點,現(xiàn)有實時系統(tǒng)架構(gòu)及設計已沒有如此大的性能提升空間。
為了提高系統(tǒng)實時性、提高系統(tǒng)運行穩(wěn)定性,在經(jīng)過分析、論證和前期測試的基礎上,本次方案采用基于千兆以太網(wǎng)、VXWORKS實時操作系統(tǒng)。在對系統(tǒng)架構(gòu)重新設計,各部分功能整合后,通過軟件優(yōu)化升級并改進數(shù)據(jù)處理流程來進一步提高系統(tǒng)性能。
C919 機載實時處理系統(tǒng)架構(gòu)設計如圖2所示,系統(tǒng)采用C/S架構(gòu),綜合處理單元實時接收機載數(shù)據(jù)采集系統(tǒng)核心網(wǎng)絡交換機發(fā)出的iNET-X網(wǎng)絡數(shù)據(jù)包,實時完成網(wǎng)絡數(shù)據(jù)包接收、原始數(shù)據(jù)存盤、網(wǎng)絡數(shù)據(jù)實時處理、監(jiān)控參數(shù)過濾、關鍵參數(shù)快速分組處理及存盤等工作。監(jiān)控臺端實時監(jiān)控軟件對物理量數(shù)據(jù)以數(shù)字、曲線、儀表等可視化方式顯示。綜合處理單元輸出一路數(shù)據(jù)通過遙測發(fā)射至地面,供實時監(jiān)控用。
圖2 C919 機載實時處理系統(tǒng)結(jié)構(gòu)
不同于現(xiàn)有機載實時系統(tǒng)的分散數(shù)據(jù)處理模式,C919機載實時系統(tǒng)核心數(shù)據(jù)處理功能集中于一臺嵌入式計算機——綜合處理單元來完成。綜合處理單元模塊的數(shù)據(jù)處理性能對于整個系統(tǒng)性能起著決定性作用,該系統(tǒng)是典型的多核多任務系統(tǒng),根據(jù)項目中實時性任務特點選用了基于優(yōu)先級的可搶占式分級調(diào)度策略來提高系統(tǒng)吞吐量,提升整個系統(tǒng)數(shù)據(jù)實時處理效率。
表1 現(xiàn)有機載實時系統(tǒng)與C919技術(shù)指標對比
C919機載實時處理系統(tǒng)較現(xiàn)有機載實時系統(tǒng)提高了數(shù)據(jù)預處理參數(shù)量及監(jiān)控參數(shù)量,能夠更好地保障試飛任務的開展;數(shù)據(jù)預處理效率的提升,縮短了試飛任務進行到試飛數(shù)據(jù)分析的時間,可快速提供給課題人員分析決策,為提高試飛效率,縮短試飛周期提供了必要的技術(shù)支持;開展了一系列關鍵技術(shù)的研究,為未來試飛需求的進一步提升進行了必要的探索。
圖3所示為C919機載實時數(shù)據(jù)處理系統(tǒng)流程圖,機載實時數(shù)據(jù)處理軟件首先運行配置加載模塊,將所需配置信息和參數(shù)組信息存儲在緩存中,并對服務器進行初始化配置。創(chuàng)建數(shù)據(jù)流接收線程,服務器按照配置要求接收來自采集器發(fā)送的數(shù)據(jù)包,實現(xiàn)數(shù)據(jù)流參數(shù)提取、工程量轉(zhuǎn)換,轉(zhuǎn)換結(jié)果通過網(wǎng)絡發(fā)送給客戶端。機載實時數(shù)據(jù)處理軟件的關鍵技術(shù)在于合理調(diào)配各個功能模塊之間的資源,也即合理分配線程來實時的完成所有功能模塊。其中,機載數(shù)據(jù)實時處理為核心模塊,該模塊功能由綜合處理單元完成。
圖3 C919機載實時數(shù)據(jù)處理系統(tǒng)流程圖
圖4所示為綜合處理單元數(shù)據(jù)處理流程。綜合處理單元實時接收機載網(wǎng)絡核心交換機發(fā)來的INET-X網(wǎng)絡數(shù)據(jù),經(jīng)過實時采集按照IRIG標準第十章中網(wǎng)絡數(shù)據(jù)存儲格式要求進行原始數(shù)據(jù)存盤,同時進行網(wǎng)絡信息包分包解算,結(jié)合帶頭信息對數(shù)據(jù)進行實時處理,對照分組快速處理參數(shù)列表并按照各科目要求進行結(jié)果數(shù)據(jù)存盤,對照實時監(jiān)控參數(shù)列表對需要實時監(jiān)控的參數(shù)進行轉(zhuǎn)發(fā)。綜合處理單元可實時完成性能、操穩(wěn)、發(fā)動機、燃油、起落架、電源等多個科目的數(shù)據(jù)預處理任務,在飛行前通過機載測試信息管理軟件可對預處理任務進行調(diào)配。
圖4 綜合處理單元數(shù)據(jù)處理流程設計
由于網(wǎng)絡時延的隨機性,在對數(shù)據(jù)實時處理過程中首先要完成網(wǎng)絡數(shù)據(jù)包的時間對齊,該系統(tǒng)通過分析網(wǎng)絡數(shù)據(jù)包亂序規(guī)律,通過設置合理的環(huán)形緩存完成數(shù)據(jù)包的時間對齊。
由于課題人員所需結(jié)果參數(shù)總數(shù)及采樣率提高的原因,關鍵參數(shù)分組快速處理結(jié)果文件數(shù)據(jù)量激增,本項目引入了預留緩存的思想和方法來解決試飛預處理結(jié)果文件的快速寫問題。
2.2.1 多核多任務系統(tǒng)調(diào)度設計
多核多任務實時系統(tǒng)應用中,如何將線程分配到多個核,使得處理器資源得到最大程度利用,提高吞吐量,降低響應時間,對調(diào)度策略要進行一定的設計。本系統(tǒng)具有多個任務同時進行且都要求實時性極強的特點,對系統(tǒng)CPU資源調(diào)度存在很大考驗。鑒于C919機載實時處理系統(tǒng)在運行過程中,線程比較固定,結(jié)合該系統(tǒng)具體應用特點決定采用基于優(yōu)先級的可搶占式分級線程調(diào)度策略[6]。
其中實時業(yè)務優(yōu)先級依次為:網(wǎng)絡數(shù)據(jù)包接收、實時數(shù)據(jù)處理、原始數(shù)據(jù)存盤、快速分組處理參數(shù)存盤、監(jiān)控參數(shù)轉(zhuǎn)發(fā)。其中網(wǎng)絡數(shù)據(jù)包接收為最高優(yōu)先級可搶占任務;其它線程優(yōu)先級依次降低,均為不可搶占型任務。網(wǎng)絡數(shù)據(jù)包接收線程與實時數(shù)據(jù)處理線程要求實時性極強,且數(shù)據(jù)連續(xù)性強,分配于核2,核1運行操作系統(tǒng)中斷服務程序,其余線程也運行于核1。
實驗室測試過程中發(fā)現(xiàn)系統(tǒng)性能對于網(wǎng)絡數(shù)據(jù)包接收緩存大小較為敏感,分析原因為緩存過小可能會造成CPU在兩個核之間切換頻繁,帶來系統(tǒng)性能的下降,但是緩存過大可能會造成數(shù)據(jù)包丟失,經(jīng)過實驗室測試最終確定網(wǎng)絡數(shù)據(jù)包接收緩存為8 M。
2.2.2 網(wǎng)絡數(shù)據(jù)包時間對齊方法設計
機載網(wǎng)絡采集系統(tǒng)各個子系統(tǒng)采集設備型號多樣,數(shù)據(jù)包在從發(fā)送端到目的端時,網(wǎng)絡中要經(jīng)過若干個中間節(jié)點,節(jié)點與節(jié)點之間對包的傳輸會產(chǎn)生延時,由于包可能經(jīng)過不同的中間節(jié)點到達目的端,以及局域網(wǎng)本身的其它傳輸不確定性,從而總的延時不同,導致數(shù)據(jù)包到達的順序與期望的不同,產(chǎn)生了亂序。同一預處理結(jié)果文件中經(jīng)常包括機上各個系統(tǒng)的采集參數(shù),無時間相關性的數(shù)據(jù)預處理結(jié)果是無意義的,無法供課題人員進行進一步計算、分析,必須根據(jù)機上網(wǎng)絡數(shù)據(jù)特點設計針對性的時間對齊方法。
機載實時系統(tǒng)首先應用訪問控制列表技術(shù),以匹配KEY字的方式將與實時數(shù)據(jù)處理無關的信息包進行濾除,并將高采和低采數(shù)據(jù)包徹底分開,為后續(xù)快速時間對齊做好準備。
針對在線預處理的原理和實時性要求,考慮時間對齊關鍵點在于:找到時間亂序的規(guī)律,設置合理的處理緩存。分析造成數(shù)據(jù)包亂序的原因可以看出,亂序是有周期性變化規(guī)律的,緩存區(qū)大小設定與該規(guī)律有關。本項目中考慮首先對失序情況進行量化,然后結(jié)合收到數(shù)據(jù)包的長度來確定緩存區(qū)大小。
第一步:量化網(wǎng)絡數(shù)據(jù)包失序情況。
最大失序時間是指一個最大失序周期的時間,假設1 s內(nèi)接收到信息包的個數(shù)為N,它們的時間標簽分別為T1,T2,…,TN,進行如下計算:
ΔTi=Ti + 1-Ti(i= 1,2...,N-1)
比較每個ΔTi(i=1,2...,N-1),得到最大值ΔTmax,就是最大的逆序時間。亂序的規(guī)律就是以此逆序時間為周期,反復的出現(xiàn)的。
第二步:建立環(huán)形緩存區(qū)。
貴州畢節(jié)旅游資源豐富,織金洞、百里杜鵑聞名于世。打造彝族文化特色,深入挖掘民族元素,提供優(yōu)質(zhì)精品的服務,是酒店努力的運營方向。信步古城,濃郁的彝族特色迎面而來。紅、黃、黑為主基調(diào)的彝族建筑風格酒店就落座在山腰,層樓疊院、高脊飛檐、曲徑回廊,無處不彰顯彝族元素。不僅如此,恢復重建的慕俄格古城結(jié)合旅游地產(chǎn)概念,設計了沿街商鋪、小旅館、四合院、工坊式商業(yè)、集中式旅游體驗館、度假別墅、功能型旅游影視產(chǎn)業(yè)基地等類型的產(chǎn)品,滿足從普通游客、會務接待到各類型文化藝術(shù)界人士的需求。
求出滿足如下條件的最小值T以確定用于排序的緩沖區(qū)大小L:
1)T為T1,T2,…,Tn的公倍數(shù);
2)T>=ΔTmax;
3)Li(i=0,1,2...,N-1)為N個數(shù)據(jù)包長度;
L=T∕T1*L1+T∕T2*L2+…+T∕Tn*Ln。
申請環(huán)形緩存區(qū)L,對信息包進行排序,環(huán)形緩存是以最大逆序時間為周期來分塊的。
數(shù)據(jù)包在線快速時間對齊示例如下:
圖5 數(shù)據(jù)包在線快速時間對齊示例
2.2.3 海量數(shù)據(jù)快速存儲設計
首次將預留緩存的思想和方法引入到海量試飛數(shù)據(jù)工程量處理中,期望能夠為試飛數(shù)據(jù)的快速寫技術(shù)研究提供指導[7]。
C919測試參數(shù)總量激增,數(shù)據(jù)總量超100 GB,試飛工程師所需的試驗結(jié)果參數(shù)的采樣率增大和總數(shù)增多,分析處理的結(jié)果工程量文件也隨之增大。如何快速地對海量試驗數(shù)據(jù)進行分析處理,除了在處理方法上進行優(yōu)化設計外,在分析處理試驗數(shù)據(jù)時實現(xiàn)快速地將結(jié)果工程量文件寫入固態(tài)盤,是試飛數(shù)據(jù)處理的關鍵點和難點。
一般試飛數(shù)據(jù)處理軟件的結(jié)構(gòu)如圖6所示,首先讀入校線文件和分析需處理參數(shù)列表,隨后循環(huán)進行讀入原始數(shù)據(jù)、分析原始數(shù)據(jù)、結(jié)果工程量寫入固態(tài)盤,直到飛行結(jié)束,這個過程是機載數(shù)據(jù)實時處理系統(tǒng)中關鍵參數(shù)快速分組處理的核心部分。
圖6 關鍵參數(shù)快速分組處理軟件結(jié)構(gòu)圖
對于機載數(shù)據(jù)實時處理系統(tǒng)而言,最理想的緩存情況當然就是采用部分緩存技術(shù)[8],結(jié)合數(shù)據(jù)分析模塊,應用部分緩存設計預留機制,即利用試飛數(shù)據(jù)相關信息,預知未來的數(shù)據(jù)處理結(jié)果的存放地址,對工程量存盤情況進行預測,達到一個盡可能好的緩存性能。
如圖7所示,為了提高關鍵參數(shù)快速分組處理效率,采用多線程并行計算方式[9]。如果不采用可以預測結(jié)果工程量寫的地址的話,那么線程“結(jié)果工程量文件寫0”必須是第一個被寫入固態(tài)盤的數(shù)據(jù),在這種情況下,即使線程“結(jié)果工程量文件寫2”或者“結(jié)果工程量文件寫1”先來,也必須要得到“結(jié)果工程量文件寫1”寫完才可以進行寫操作,這樣每個線程必須要等到上一個線程結(jié)束才可以進行,他們之間是串行關系,這樣就增加了線程的等待時間,致使整個進程的效率降低。而采用預留緩存機制,“結(jié)果工程量文件寫2”的寫操作,不需要等待“結(jié)果工程量文件寫0”或者“結(jié)果工程量文件寫1”結(jié)束,他們之間是并行關系,沒有必然的聯(lián)系,消除了線程的等待時間,提高了關鍵參數(shù)快速分組處理的效率[10]。
圖7 預留緩存機制實現(xiàn)
C919綜合處理單元的研制為該系統(tǒng)設計的一個難點,既要解決速率為110 MB/S網(wǎng)絡數(shù)據(jù)的實時接收、處理,同時要實現(xiàn)6000個采樣率為64的關鍵參數(shù)分組快速預處理,并將處理結(jié)果進行存儲,繁重的處理任務對綜合處理單元的軟件設計要求都非常高。該項目采用了基于優(yōu)先級的可搶占式分級調(diào)度策略對多線程任務進行調(diào)度,數(shù)據(jù)接收速率、實時處理參數(shù)能力、核2使用率及丟包率是該系統(tǒng)的重要考察指標,其中該系統(tǒng)對丟包率容忍度為0,以下是實驗室測試結(jié)果。
表2 C919機載數(shù)據(jù)實時處理系統(tǒng)性能測試
從實驗數(shù)據(jù)可以看出,在參數(shù)采樣率變化情況下,會導致核2使用率迅速惡化。為了保證系統(tǒng)穩(wěn)定工作,建議在統(tǒng)一采樣率64次/秒情況下,快速處理參數(shù)不超過11 000個;在不同采樣32~1 024情況下,快速處理參數(shù)個數(shù)不超過5 000個,且高采參數(shù)(512次/秒,1 024次/秒)不宜超過250個 。
通過匹配KEY過濾了部分無用網(wǎng)絡數(shù)據(jù)包,解決了高速數(shù)據(jù)流丟包問題。通過網(wǎng)絡數(shù)據(jù)包在線快速時間對齊技術(shù),在飛行過程中邊飛行邊處理,為C919飛機關鍵測試參數(shù)快速分組處理做好前期數(shù)據(jù)準備,保障了飛行過程中多個科目數(shù)據(jù)的實時預處理。實驗室驗證采樣率為64時,實時處理參數(shù)可過萬,在參數(shù)采樣率不同時(32~1 024),處理參數(shù)量可達5 000個。目前實際應用中,快速分組預處理參數(shù)為2 200個,軟件運行中CPU占用率不高,實時處理任務性能還有部分提升空間。
C919機載數(shù)據(jù)實時處理系統(tǒng)選擇了VXWORKS操作系統(tǒng),對原有工作數(shù)據(jù)預處理模式進行了改進,對算法流程進行了設計提升。網(wǎng)絡數(shù)據(jù)實時接收處理能力從55 MB/S提升至110 MB/S,實時處理參數(shù)個數(shù)增多至過萬,完善了關鍵參數(shù)快速分組處理功能,可保障多個科目預處理結(jié)果輸出。該系統(tǒng)已成功保障C919飛機上海首飛工作,可供后續(xù)大飛機試飛機載數(shù)據(jù)實時處理系統(tǒng)搭建借鑒。未來該系統(tǒng)研究重點將放在數(shù)據(jù)預處理能力的進一步提升,以滿足未來超大量數(shù)據(jù)處理需求。