張 偉,陳 鋒,馬軍強,劉 帥
(北京航天試驗技術(shù)研究所,北京100074)
軌/姿控發(fā)動機常用于星、箭等航天器或?qū)椀木_飛行彈道控制、軌道修正、姿態(tài)控制及機動目的。脈沖工作模式是實現(xiàn)精確軌道修正或精確姿態(tài)的基本方法。后效沖量是從發(fā)出關(guān)機指令開始,到燃燒室壓力 (簡稱燃壓)或推力下降到零這段時間內(nèi)產(chǎn)生的沖量 (分別稱為燃壓后效沖量和推力后效沖量)。脈沖工作模式下的后效沖量值直接影響導(dǎo)彈的命中精度或衛(wèi)星的入軌精度。快速而準(zhǔn)確地計算出地面高空模擬試驗中各種脈沖寬度下的后效沖量值及散布,對于評價軌/姿控發(fā)動機脈沖工作性能和設(shè)計空中點火程序具有重要意義。
軌/姿控發(fā)動機高空模擬試驗是發(fā)動機研制和鑒定過程中不可缺少的工作環(huán)節(jié),它為評估發(fā)動機性能提供大量可靠數(shù)據(jù)。目前液體火箭發(fā)動機試驗通常采用Pacific6000數(shù)據(jù)采集系統(tǒng)用于試驗參數(shù)測量。由于軌/姿控試驗的特殊性,一次試驗將產(chǎn)生4~20 GB的二進制原始試驗數(shù)據(jù),處理時間很長。雖然國內(nèi)引進多套Pacific6000用于火箭發(fā)動機試驗,但對大量脈沖數(shù)據(jù)如何快速連續(xù)按條件分段計算的研究未見報道。本文以后效沖量的連續(xù)計算過程為研究對象,將網(wǎng)絡(luò)腳本語言的解釋執(zhí)行思想引入處理過程,提出了數(shù)據(jù)流式算法,能夠快速準(zhǔn)確地實現(xiàn)一個脈沖程序中所有脈沖后效沖量的計算和統(tǒng)計,并開發(fā)了相應(yīng)的工程軟件在試驗中使用,時效性能顯著。隨著液體火箭發(fā)動機試驗技術(shù)的發(fā)展,各類試驗的數(shù)據(jù)量將逐漸增長,此快速技術(shù)具有良好的工程應(yīng)用意義。
算法過程以燃壓后效沖量的計算為例進行說明。燃壓后效沖量定義為燃壓對時間的積分歷程??刂葡到y(tǒng)發(fā)出關(guān)機指令后,發(fā)動機按照程序關(guān)機,由于各種因素,推進劑主閥關(guān)閉后,燃壓和推力要經(jīng)過一段時間后才下降到零,此過程中燃壓的衰減特性如示意圖1所示。
圖1 關(guān)機過程燃壓衰減特性示意圖Fig.1 Attenuation curve of pcduring shutdown process
燃壓后效沖量的解析表達(dá)式:
式中:Iaft為沖量,N·s;ts為關(guān)機指令發(fā)出時刻,s;tt為燃壓為零時刻,s;At為發(fā)動機喉部面積,常量,m2;pc為燃燒室壓強,MPa。
燃壓后效沖量計算的基本要求:運用公式(1)計算一個脈沖程序中所有脈沖點火對應(yīng)的燃壓后效沖量,并給出同等脈沖寬度下燃壓后效沖量的數(shù)學(xué)期望及方差。積分時間起點為關(guān)機指令發(fā)出時刻;積分終點為燃壓降至為零時刻,當(dāng)燃壓尚未降為零而后續(xù)脈沖點火已經(jīng)開始時,積分終點為后續(xù)脈沖開機時刻;定義開機時刻為閥電流上升到額定值70%的時刻,定義關(guān)機時刻為閥電流降低到額定值70%的時刻。
為考核軌/姿控發(fā)動機的脈沖工作性能和得到各種脈沖工況下的后效沖量,需要進行高空模擬試驗。高空模擬試驗技術(shù)非常復(fù)雜,除具有一般液體火箭發(fā)動機試驗的特點外(過程不可逆,成本費用高,具高度危險性,測量參數(shù)多且精度高等),還具有其獨有特點,如工藝系統(tǒng)復(fù)雜,試驗工況復(fù)雜,發(fā)動機啟動及關(guān)閉頻繁,數(shù)據(jù)量大,數(shù)據(jù)處理要求多,復(fù)雜度高且工作量大等。
Pacific6000數(shù)據(jù)采集系統(tǒng)在設(shè)計和制造上有獨到之處,它抗干擾能力強、精度高且可靈活組裝和擴展,適合于遠(yuǎn)距離小信號測量,已作為一種標(biāo)準(zhǔn)儀器被廣泛使用。其數(shù)據(jù)采集原理如下:不同類型傳感器的輸出信號被送入模擬量 (數(shù)字量)通道模板后,被放大、濾波、采樣/保持,在經(jīng)過A/D轉(zhuǎn)換為數(shù)字信號,數(shù)字信號被送入數(shù)字化數(shù)據(jù)選擇器 (Digital Data Selector,DDS),經(jīng)DDS選擇后存入兩個并行緩存器FIFO和RING,再經(jīng)高速IEEE-488.2(PCI-GPIB) 接口送入計算機,進行顯示、處理和存儲等。
理解原始數(shù)據(jù)文件結(jié)構(gòu)是進行正確解碼的前提條件。Pacific6000單通道最高采樣率10 kS/s,通過軟件設(shè)置可以使不同通道以同樣或不同采樣率進行采樣,配置每一個掃描通道設(shè)置 (增益、濾波、采樣率、激勵及公式等)的表格稱為掃描表。Pacific6000按掃描表配置進行通道數(shù)據(jù)的掃描、A/D轉(zhuǎn)換和數(shù)據(jù)傳輸。最終數(shù)據(jù)以Raw格式的二進制文件形式存入計算機磁盤。
Raw格式文件由多個數(shù)據(jù)楨次序組成。每個數(shù)據(jù)楨包括一個16 bit的頭部和一組數(shù)據(jù)塊,數(shù)據(jù)楨的頭部保護Pacific6000的數(shù)據(jù)同步、報警和系統(tǒng)屏蔽位等信息。楨中的數(shù)據(jù)塊是掃描表中的通道在同一物理時刻的數(shù)字采樣值。楨中數(shù)據(jù)塊的內(nèi)容和掃描表的設(shè)置直接相關(guān)。如果掃描表中所有通道的采樣速率設(shè)置都相同,如表1所示,則Raw文件所有數(shù)據(jù)楨中文件塊的格式類似S97S98S99S100(Sn代表通道n在某個物理時刻的數(shù)字采樣值);如果各個通道的采樣速率不同,則楨中數(shù)據(jù)塊的內(nèi)容和采樣時刻相關(guān)。表1、表2和圖2為示例說明。
表1 掃描表配置例1Tab.1 Scan list setup (demo 1)
表2 掃描表配置例2Tab.2 Scan list setup (demo 2)
圖2 按表1和表2生成的Raw文件格式Fig.2 Raw file format generated according to Tab.1 and Tab.2
由脈沖高模試驗特點可知,在一個脈沖工作程序中,同寬度脈沖可能有數(shù)千個,總脈沖個數(shù)可能會有數(shù)萬個(某些軌/姿控發(fā)動機脈沖壽命可達(dá)30多萬次),而且此脈沖工作程序?qū)?yīng)的測量數(shù)據(jù)是可達(dá)數(shù)千兆字節(jié)的二進制原始數(shù)據(jù)。當(dāng)前常用的數(shù)據(jù)處理技術(shù)主要有兩種方式:①將原始數(shù)據(jù)文件一次性調(diào)入物理內(nèi)存,然后直接對內(nèi)存中的數(shù)據(jù)進行解碼、D/A轉(zhuǎn)換、工程值計算及誤差修正等操作 (這種方法在時間上非常高效,但太依賴物理內(nèi)存大小,只適合于原始數(shù)據(jù)文件較小的情況);②使用小緩存或不使用緩存,直接對硬盤上的文件進行I/O操作,計算在CPU中完成(此方式不依賴物理內(nèi)存大小,但I/O操作頻繁,且依賴于CPU的處理速率,適合于大文件操作但效率不高)。
為快速實現(xiàn)脈沖后效沖量的計算,當(dāng)前計算手段為:取脈沖前段、中段和后段的若干個脈沖進行逐個積分,然后再計算這些樣本點的數(shù)學(xué)期望與方差。此方法選取樣本點少,但是處理過程中人工參與較多,仍相對費時費力。從統(tǒng)計角度來看,以犧牲樣本點個數(shù)和統(tǒng)計精度來換取較快的統(tǒng)計速度,統(tǒng)計精度和統(tǒng)計速度之間的平衡難以把握,存在較大的處理方法缺陷。
數(shù)據(jù)流式處理算法的設(shè)計靈感來源于網(wǎng)絡(luò)腳本語言的設(shè)計思路。腳本語言的設(shè)計理念是邊解釋邊執(zhí)行,解釋完畢即執(zhí)行完畢,而不是傳統(tǒng)的類似C和Java等高級語言先解釋編譯最后執(zhí)行。
圖3 脈沖程序燃壓后效沖量快速算法主流程Fig.3 Main flow chart of fast algorithm for calculating pulse residual impulse in pulse working mode
數(shù)據(jù)流式處理算法的核心思想是將閥電流數(shù)據(jù)和燃壓數(shù)據(jù)作為同步流失的兩個數(shù)據(jù)流,兩個數(shù)據(jù)流從硬盤上經(jīng)內(nèi)存經(jīng)CPU同步流失,流失完畢即同步處理完畢。為加快流失速率,使用頁面置換算法和大緩沖技術(shù)。為在流失的同時進行處理,設(shè)置兩類標(biāo)志開關(guān)、脈沖信息器和沖量存放器。一類開關(guān)用于監(jiān)視閥電流數(shù)據(jù),另一類開關(guān)用于監(jiān)視燃壓數(shù)據(jù);脈沖信息器記錄脈沖寬度及個數(shù)等信息;沖量存放器用于存放各脈沖對應(yīng)沖量積分結(jié)果。該算法充分結(jié)合了常用數(shù)據(jù)處理技術(shù)的優(yōu)點,又同時避免了它們的缺陷。算法主流程如圖3所示。
算法的主要步驟是進行一系列初始化工作后,將文件按合適大小 (依據(jù)內(nèi)存情況)分段載入內(nèi)存。
針對文件的一維操作轉(zhuǎn)化為針對文件分段(又稱頁面)的二維操作;針對頁面進行基本處理操作后將閥電流數(shù)據(jù)和燃壓數(shù)據(jù)形成單獨的兩個同步數(shù)據(jù)流(可用下標(biāo)一致的兩個數(shù)組實現(xiàn)),當(dāng)閥電流開機時,觸發(fā)脈沖信息器(脈沖信息器記錄脈寬及同脈寬的個數(shù)信息),當(dāng)閥電流關(guān)機時,一個脈沖信息統(tǒng)計完成,更新脈沖信息器,同時開始一個沖量存放器的積分工作,當(dāng)閥電流再次開機或燃壓為零時,該次脈沖積分終止,更新沖量存放器。按上述過程不斷流失,數(shù)據(jù)全部流失完畢后,全部脈沖信息存放在脈沖信息器中,全部脈沖對應(yīng)的沖量信息存放在沖量存放器中,將文件及內(nèi)存全部釋放后,針對脈沖信息器和沖量存放器中的數(shù)據(jù)進行同類型脈沖的數(shù)學(xué)期望及方差計算,最后將結(jié)果打印輸出。
該算法充分體現(xiàn)了以空間換時間的思想,將針對磁盤文件的一維操作轉(zhuǎn)為針對磁盤和內(nèi)存的二維操作,并充分利用計算機硬件計算特性,形成流式處理,算法優(yōu)化了大數(shù)據(jù)文件的I/O操作效率,技巧性地運用監(jiān)視開關(guān)實現(xiàn)后效沖量計算。從算法主流程圖中可以看出,算法的時間復(fù)雜性主要體現(xiàn)在對磁盤文件分段的I/O操作上。假設(shè)原始數(shù)據(jù)文件為2 GB,當(dāng)前可用物理內(nèi)存為1 GB。如果直接進行磁盤操作,那么磁盤I/O和內(nèi)存I/O的次數(shù)各是2*1 024*1 024*1 024*1 024次,而本算法則需要進行8次磁盤I/O,每次磁盤I/O對應(yīng)的內(nèi)存I/O為256*1 024*1 024*1 024;磁盤I/O花費的時間主要是尋址時間,數(shù)據(jù)讀寫時間相對于尋址時間可忽略不計,假設(shè)每次磁盤I/O時間為1 μs,每次內(nèi)存I/O時間為0.05 μs,則單純進行一維磁盤I/O操作時間為2 210 s,而本算法的主要I/O操作時間為0.3 s;綜合考慮算法的CPU邏輯運算時間及其他操作時間,本方法約為原方法的1/23。算法的時間效能明顯。
在該算法具體實現(xiàn)時,需要合理配置文件分段信息,需要在物理內(nèi)存分配和CPU處理速率之間有個平衡,把可用物理內(nèi)存全部利用起來并不一定能提高軟件效率,一般而言,分段文件大小為可用物理內(nèi)存的1/4時,軟件效率比較理想。因算法中有內(nèi)存分配和磁盤一次性讀寫大量數(shù)據(jù)的操作要求,相應(yīng)的算法實現(xiàn)語言必須提供這些操作的支持,典型語言有C、C++及Java等,在VC++6.0環(huán)境下,軟件主體設(shè)計流程見圖4。
圖4 軟件主體架構(gòu)Fig.4 Main architecture of software
該算法及軟件經(jīng)評審論證后,被用于軌/姿控發(fā)動機高空模擬試驗中脈沖后效沖量的計算,經(jīng)多次試驗實踐,發(fā)現(xiàn)該流式處理算法相較于舊有的處理手段,數(shù)據(jù)處理的時間性能有了很大提升,同臺計算機上同一操作員處理100個7 ms脈寬的脈沖,平均處理時間可由約36 min縮短到0.8 min,時效性能顯著。
軌/姿控發(fā)動機脈沖工作程序下后效沖量的數(shù)據(jù)流式處理算法和相應(yīng)的工程軟件,在高空模擬試驗中使用,表現(xiàn)出良好的效果,滿足了數(shù)據(jù)處理的時效性要求,為及時分析和評價發(fā)動機脈沖工作性能提供了大量數(shù)據(jù)。
[1]劉國球,任漢芬,朱寧昌,等.液體火箭發(fā)動機原理[M].北京:中國宇航出版社,2005.
[2][美]薩頓G P,比布拉茲O.火箭發(fā)動機基礎(chǔ)[M].洪鑫,張寶炯,譯.北京:科學(xué)出版社,2003.
[3]張迎新,雷道振,陳勝,等.非電量測量技術(shù)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2002.
[4]美國太平洋公司.Pacific Instrument[M].美國:太平洋公司,2000.
[5]楊思鋒,劉魯,陳鋒.基于數(shù)據(jù)挖掘技術(shù)的液體火箭發(fā)動機試驗數(shù)據(jù)分析和處理[J].宇航計測技術(shù),2010,30(6):57-61.
[6]清漢工作室.Visual C++6.0數(shù)據(jù)庫與網(wǎng)絡(luò)開發(fā)實例[M].北京:機械工業(yè)出版社,2000.
[7]常增坡,唐柏森.離子束濺射薄膜壓力傳感器的動態(tài)特性[J].傳感器技術(shù),2001,20(6):15-17.
[8]吳文斗,周兵,張麗蓮,等.計算機測控系統(tǒng)中的可靠性技術(shù)[J].云南大學(xué)學(xué)報:2006,28(S2):132-135.
[9]李正軍.計算機測控系統(tǒng)的設(shè)計與應(yīng)用[M].北京:機械工業(yè)出版社,2004.