王文龍,張少博,陳海峰
(西安航天動力試驗技術研究所,陜西 西安710100)
液體火箭發動機試車的目的之一,是為了獲取發動機的各類參數,因為這些數據是驗證發動機設計理論、研究發動機工作狀態和評價發動機工作性能的重要依據。
液體火箭發動機的每次試驗都會產生大量不同類型的發動機推力、流量、壓力、溫度、振動、位移等參數數據。目前使用不同的處理軟件分別進行處理,處理效率低,同時數據采集保存的原始數據大多為二進制碼,試車后需要將大量的二進制數據轉換為特定的格式進行處理分析,并生成數據分析報告。由于需要讀取大量系數文件和傳感器零位、大氣壓力值、校驗斜率、密度等輔助文件,對二進制文件進行后續處理,其過程比較繁瑣,數據量較大。針對上述問題,開發一套處理模塊清晰連貫、功能明確、運行效率較高的試車數據處理軟件,滿足當前繁重的試驗任務是十分必要的。
綜合數據采集系統是根據液體火箭發動機地面試車技術特點及多類型參數測量與數據處理技術要求而設計的,系統可測量應變、壓力、溫度、位移、時統、階段、相位等多類型的信號,并可承擔各種不同型號試驗的采集任務。綜合數據采集系統原理如圖1所示:

圖1 綜合數據采集系統原理圖Fig.1 Principle diagramofsynthetic data acquisition system
建立以數據庫為基礎的試驗數據綜合分析系統,是滿足試驗數據利用的必要條件。可以將試驗數據與其他試驗相關的文檔和管理信息緊密聯系,大大提高數據管理效率,改變現有數據處理系統存在的處理類型單一、處理錯誤多、速度慢等缺點,同時滿足試驗數據的快速處理要求,并能夠進行綜合分析利用。綜合數據采集系統對編寫數據處理軟件提出了較高要求,因為參數類型多、數據量大,處理、分析、計算等方法不同,在實際編寫中要求處理軟件具有較高效率和較強功能。數據處理軟件是將所有參數信息、采集數據按照數據報告的要求獲得數據結果的軟件。通過處理軟件,可以觀察采集到的毫伏數、參數值,可以分段、分時刻進行數據處理,同時,可以求得不同時間段的最大值、最小值和平均值,可以將掉點、異常的參數進行置空、置零處理或者修正。
隨著計算機技術的飛速發展,火箭發動機研制試驗領域也越來越多地使用計算機技術,計算機軟件便逐漸成為試驗系統中獨立的、舉足輕重的一個關鍵環節,甚至在一定程度上決定著試驗的成敗。在試驗的整個過程中,軟件的正確性、可靠性、安全性對試驗的成敗起關鍵作用。隨著測量系統向著集成化、模塊化方向的不斷發展,測量軟件便逐漸形成試驗系統中一個舉足輕重的環節。
現有測量系統數據采集、處理軟件大多以VB6.0軟件編程語言為基礎,為了實現與其他采集系統的有效集成,軟件架構采用VB6.0軟件開發平臺。通過與關系型數據庫ACCESS進行交互處理,并按數據處理要求編寫數據處理算法,調用NI采集系統二進制源文件,數據處理后輸出數據報告文件。
軟件的底層輸入是NI采集硬件采集得到的二進制DAT數據文件和TIM時間文件,軟件信息交互通過ACCESS信息設置數據庫進行設置和調用,輸出所要求的數據報告文件。
數據處理軟件的目標是將采集系統采集的二進制原碼轉換為便于分析的相應數據格式,并按要求進行數據處理、分析,最后輸出數據報告文件。軟件的整體架構如圖2所示。

圖2 試車數據處理軟件組成結構圖Fig.2 Configuration ofdata processingsoftware for test
該綜合數據處理軟件整個處理功能模塊整體性強、功能明確、運行效率較高。根據軟件功能要求,軟件流程依次為文件處理、數據處理、報告輸出三個部分。在文件處理模塊,主要進行系數文件的讀取,信息設置、信息驗證工作;在數據處理模塊,進行時間源文件、數據源文件的調用、計算、處理;報告輸出模塊是按照輸出要求進行數據報告打印、存儲、顯示等輸出工作。軟件流程如圖3所示。

圖3 數據處理軟件流程圖Fig.3 Flowchart ofdata processingsoftware
處理軟件首先要實現對參數配置信息的調用、采集數據的讀取、校驗結果的讀取、零位數據的讀取功能,這些信息都存放于ACCESS數據庫的不同表中,利用VB接口函數選擇相應表中所需要的數據讀入。在對數據的預處理過程中,重要的一步就是對各種應變、壓力、溫度、位移的校驗斜率的處理,處理方法采用最小二乘法。
為了達到綜合數據處理的目的,其試車數據處理軟件設計要綜合考慮各測量參數,通過分析各類型參數處理計算方法,編寫相應的處理算法,使處理軟件能廣泛地應用于試車的各類參數。對于應變、推力、壓力參數的校驗主要是通過加載三遍六檔應變值,采集系統采集電壓值,用最小二乘法擬合曲線,求出應變-電壓關系系數,保證S2在0 3%以內。否則應查找原因重新校驗。而后根據校驗出來的斜率值,結合校驗零位和實際采集到的電壓值,計算出相應的實際測量物理量數值。數據處理的最終結果是以三種方式提供的,分別是1:1毫伏數、初算、復算。1:1毫伏數:毫伏數就是將系統采集的二進制原碼轉換為十進制碼,按照時間序列輸出。初算:使用1:1計算出的結果減去零位記錄值后乘以校準斜率,得出該傳感器的設計物理量值;復算:過渡段計算方法與初算相同,平穩段計算時通過選擇處理區間、報告文件、時間區間、處理步長、處理狀態進行數據處理,最終輸出數據報告通常選用這種處理方式。數據處理軟件實現了各類參數的處理算法。通過在綜合采集系統界面中配置參數信息,選擇相應參數類型,讀取校驗結果、零位數據,可實現各種不同參數的數據處理。這些信息都存放于ACCESS數據庫的不同表中,利用VB接口函數選擇相應表中所需要的數據讀入。
在上述分析的基礎上,實現對二進制原碼的讀取,進而進行不同段(過渡段、平穩段)和不同的計算方式(毫伏數、初算、復算)的數據處理、打印功能。軟件功能模塊見圖4。

圖4 軟件功能模塊Fig.4 Function modules ofsoftware
在圖4中,數據處理軟件通過轉換算法對綜合數據采集系統采集的二進制文件進行原碼轉換,并對采集系統參數配置進行校驗。數據處理采用1:1毫伏數、初算、復算三種供選擇算法,最后按照要求輸出數據報告文件。
軟件開發過程中使用先進的開發框架理念,通過封裝數據處理算法,使用模塊化編程模式,采用關系型數據庫存放調用數據,并進行了軟件的可行性評審、軟件架構調試、軟件測試等,實現了多線程技術和MFC開發實時采集、二進制大規模源數據的讀取、各類參數處理算法實現、基于VB的ACCESS數據庫應用以及軟件的容錯性設計五個關鍵技術,使得軟件的處理速度、可靠性、操作性得到提高。同時,功能模塊獨立設計,模塊之間耦合度低,可以減少模塊間的相互依賴。有利于系統功能的擴充,減少系統設計變更時對系統修改的工作。
數據主要來自大型試驗后采集的原始二進制文件數據和處理后的文本文件以及早期試車紙質試驗數據。試驗數據通過軟件轉換成統一的文件格式,并且通過軟件接口導入至關系數據庫中。為了提高數據錄入速度,提高數據庫對試車數據標準化、統一化、一致性要求,對表層成果數據的錄入采用三種方式:
1)對零散的數據采用手工錄入方式;
2)對批量的excel格式的數據入庫采用固定格式上傳;
3) 用戶可以通過提供的模板格式上傳,也可以自定義模板上傳。
試車中高速采集的數據量規模很大,如何有效、快速的提取大規模二進制源數據進行數據轉換、讀取、顯示是數據處理軟件開發的一大難點。通常,原始數據文件是將一個采集點的所有參數作為一個數據包順序存入。因此,在讀取時,首先要確定所讀參數的位置,位置的確定根據參數排序、所占字節數等信息確定,確定了參數位置后,采用VB提供的數據文件讀取函數,按照固定字節數讀取所需數據。
由于在數據文件中數據和時間文件是分開存放的,在進行數據處理時,需要將數據文件與時間文件進行對應處理。通過各種方式對比,最終選擇了按照采集點數來確定時間位置的方法,如:使用1 000點/秒的采樣速率情況下,數據文件的采集點數達到1 000時,也正好是時間文件到達1秒的時間點。采集軟件中對這種對應關系編寫了驗證算法,通過驗證算法可以對這種對應關系進行識別,確保數據文件和時間文件對應處理完全正確。
在數據讀取中,為了提高讀取速度,采用以下幾個原則:1)時間文件和數據文件分別讀取,減小文件選擇時間;2)按照數據序列格式逐字節讀取,減小字節搜索時間;3)采用最近原則取數,減小循環次數。
為了實現讀取算法的調試和減少系統修改的復雜度,對二進制大規模源數據的讀取算法,采用封裝的模式,方便程序調用。通過此種模式,可以方便算法內部的修改調整,而不影響整個處理程序的結構。
試車數據基本都以Word、txt這些格式在系統中存在,但是數據格式不盡相同,為利用既有數據,試車數據庫系統提供了格式轉換功能,把異種格式的數據轉換為基礎數據子系統通用的存儲格式,從而使原有這些試車數據文件可以被試車數據庫所訪問和利用。為了減少對原有數據文件的應用改動,可以按照應用的數據格式要求進行轉換,制定轉換格式功能,該功能可以靈活定義異種數據格式同試車數據庫系統存儲數據格式間的對應關系,根據需求對數據源進行取舍,調整數據間的對應關系。建立這種從數據源格式到目標數據格式的映射關系是進行數據轉換的基礎。根據上一步制定的轉換格式,相應子系統自動進行數據格式的轉換,同時生成轉換結果報告。使用者可以根據報告對轉換后的數據進行審核,審核通過后提交這批數據。
該模塊主要用于在試車準備過程中所產生的各種數據表格的日常維護與管理,這些表格包括:試車大綱、傳感器校驗和安裝表格、參數通道表格、采集設備系數文件表格以及信息記錄表格等。
通過上述介紹的數據處理算法,編制相應的參數處理軟件模塊,以便在處理數據時,通過選擇不同參數設置來處理不同類型的參數,進而生成相應的數據處理結果文件和顯示圖表。
報表生成功能可以對試車過程中的各種數據表格進行分類管理,以報表的試車代號和試車參數為檢索條件,從數據庫服務器中提取出歷次試車所有相關數據,經過計算、統計、匯總,分析形成規范的數據報告報表。為了精細地控制打印效果、節省打印成本,系統提供打印預覽和打印設置等打印控制。
在試車數據處理、分析軟件設計中,廣泛應用關系型庫ACCESS進行匯總、對比、繪圖等,并且ACCESS數據庫具有較強的通用性,使用靈活方便。在建立ACCESS數據庫時,充分考慮數據交互的效率。設計的數據庫整體架構見圖5。

圖5 ACCESS數據庫關系圖Fig.5 Configuration ofACCESSdatabase
通過VB信息設置模塊實現處理信息數據庫與通用信息、系統信息、校驗信息、板卡信息的數據交互,將所有數據處理信息保存到數據處理信息數據庫。在數據處理模塊運行時,VB與ACCESS的數據交互僅與數據處理信息數據庫有關,而與其他邏輯算法結構無關,這樣就有效提高了數據處理程序的運行效率。
經過一段時間的調試與試車使用,證明新的綜合數據采集系統滿足設計指標,采集數據準確可靠,已作為試驗區緩應變數據測量的主系統,成為其他特殊信號、小信號測量的預備系統,也成為關鍵參數測量的主系統的有效備份和補充,提升了試驗區的測量系統能力。系統目前已多次成功應用于火箭發動機地面試驗的數據采集、處理、分析過程中,為試車提供了真實可信的數據結果報告,為新型號火箭發動機研制中所需要的新型測量系統的研發提供了有效的技術借鑒。
基于綜合數據采集系統的試車數據處理軟件實現了多參數類型、大規模數據的處理、報告輸出。經過實際試車使用,軟件運行良好,能夠對不同數據類型的數據按照處理要求進行處理,并生成相應的數據報告輸出。使液體火箭發動機試車數據報告處理質量和效率得到提升,為液體火箭發動機試車數據報告提供了可靠的軟件支持。
[1]潘小轟.Visual Basic6.0應用開發技術[M].北京:中國石化出版社,1999.
[2]張賢達.信號處理[M].北京:清華大學出版社,1995.
[3]劉文濤.Visual Basic+Access數據庫開發與實例[M].北京:清華大學出版社,2007.
[4]張后蘇,張湛,張浩.VISUAL BASIC語言實用教程[M].長沙:中南工業大學出版社,1995.
[5]王棟.Visual Basic程序設計實用教程[M].北京:清華大學出版社,2002.
[6]混平,趙政社,劉軍.水擊壓力高速采集系統研制[J].火箭推進,2008,34(4):59-63.
[7]趙萬明.液氧/煤油發動機試車主要參數測量方法研究[J].火箭推進,2006,32(5):55-59+68.
[8]郭霄峰,李耀華.液體火箭發動機試驗[M].北京:宇航出版社,1991.