盧長(zhǎng)海,張夢(mèng)堃
(中國(guó)人民解放軍91550部隊(duì),遼寧 大連 116023)
遙測(cè)系統(tǒng)是航空、航天飛行器的重要組成部分,是飛行器不可缺少的重要分系統(tǒng)。在飛行試驗(yàn)的故障分析中,需要從遙測(cè)地面站獲取的遙測(cè)數(shù)據(jù)中查找故障原因,確定故障部位。
遙測(cè)地面站主要用于獲取目標(biāo)飛行器的遙測(cè)參數(shù)[1-2],經(jīng)遙測(cè)處理終端挑點(diǎn)處理后把關(guān)鍵遙測(cè)參數(shù)送指揮控制中心進(jìn)行實(shí)時(shí)顯示,為地面指揮人員實(shí)時(shí)掌握目標(biāo)飛行器的飛行狀態(tài)、飛行軌跡提供關(guān)鍵信息。由于飛行試驗(yàn)的不可逆、高消耗等特點(diǎn),快速、可靠地對(duì)飛行遙測(cè)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理對(duì)試驗(yàn)任務(wù)來(lái)說(shuō)至關(guān)重要,是確保飛行試驗(yàn)安全、縮短研制周期、保證飛行試驗(yàn)成功的重要手段。同時(shí),由于關(guān)鍵參數(shù)的實(shí)時(shí)解析,為裝備操作手提供了直觀的目標(biāo)飛行狀態(tài)和飛行軌跡,對(duì)丟失目標(biāo)后的重新捕獲奠定了基礎(chǔ)。
遙測(cè)地面站主要由天線和信道部分、遙測(cè)接收基帶和遙測(cè)解密預(yù)處理單元、GNSS外測(cè)分系統(tǒng)和對(duì)外數(shù)據(jù)交互和軌跡顯示監(jiān)控臺(tái)組成,如圖1所示。系統(tǒng)基于以太網(wǎng)轉(zhuǎn)發(fā)的PCM數(shù)據(jù)流進(jìn)行數(shù)據(jù)存盤、全幀數(shù)據(jù)顯示、挑路數(shù)據(jù)的顯示以及關(guān)鍵參數(shù)解析、參數(shù)閾值自動(dòng)判決、參數(shù)的列表顯示和曲線顯示等功能。GNSS分系統(tǒng)用于接收遙測(cè)分路的衛(wèi)星導(dǎo)航數(shù)據(jù),包括偽距、偽距變化率、載波相位等信息,經(jīng)差分解算完成目標(biāo)定位、測(cè)速信息。若含有遙測(cè)圖像信息,視頻原始數(shù)據(jù)流經(jīng)挑點(diǎn)送視頻解碼設(shè)備恢復(fù)出每秒25幀的模擬視頻信息。
圖1 實(shí)時(shí)處理系統(tǒng)的組成框圖
遙測(cè)地面站作為外場(chǎng)主要測(cè)控裝備,是測(cè)量數(shù)據(jù)的重要來(lái)源,其特點(diǎn)是處理和測(cè)量同時(shí)進(jìn)行,要求處理速度快、處理方法盡量簡(jiǎn)單。特別是特征點(diǎn)參數(shù)的判讀,目標(biāo)飛行狀態(tài)的顯示及艙內(nèi)、外視頻圖像的實(shí)時(shí)傳遞,為飛行指揮、控制提供決策支撐。
目前飛行器被測(cè)參數(shù)多達(dá)上千個(gè),參數(shù)種類繁多,遙測(cè)傳輸碼率普遍達(dá)到5~10 Mb/s,一個(gè)全幀大于16 KB,數(shù)據(jù)傳輸對(duì)裝備內(nèi)、外網(wǎng)傳輸造成一定的壓力,若根據(jù)實(shí)時(shí)傳遞周期50 ms,每?jī)蓚€(gè)全幀數(shù)據(jù)一包發(fā)送會(huì)造成丟包現(xiàn)象。為解決該問題,需要從軟硬件兩方面著手,硬件方面把遙測(cè)接收、傳輸、處理通過同一高性能網(wǎng)絡(luò)交換機(jī)來(lái)進(jìn)行數(shù)據(jù)交互;軟件方面在系統(tǒng)設(shè)計(jì)過程中要考慮避免軟件嵌套,采用事件機(jī)制、多線程處理、大包分片等處理流程。
為兼顧多種型號(hào)任務(wù)的實(shí)時(shí)處理需求,實(shí)時(shí)處理功能模塊要盡可能做到通用化,所以需采用模塊化設(shè)計(jì),使用統(tǒng)一的接口標(biāo)準(zhǔn),方便系統(tǒng)功能擴(kuò)展及二次開發(fā)。對(duì)各軟件通用功能需進(jìn)行統(tǒng)一設(shè)計(jì)、各功能模塊單獨(dú)封裝,功能模塊不進(jìn)行功能組合,采用獨(dú)立模塊、獨(dú)立功能方式設(shè)計(jì)[4]。軟件采用C/S架構(gòu),可單機(jī)應(yīng)用,也可實(shí)現(xiàn)基于網(wǎng)絡(luò)的處理服務(wù)及多客戶端顯示形式的分布式升級(jí)拓展。圖2所示為該遙測(cè)處理軟件結(jié)構(gòu)圖。
圖2 遙測(cè)處理軟件結(jié)構(gòu)
數(shù)據(jù)處理子系統(tǒng)配備數(shù)據(jù)分發(fā)子系統(tǒng),可將處理前或者處理后的參數(shù)/數(shù)據(jù)塊以點(diǎn)對(duì)點(diǎn)或者廣播的形式分發(fā),將部分參數(shù)分配給其他計(jì)算機(jī)處理,也有利于相關(guān)數(shù)據(jù)分配各個(gè)專業(yè)技術(shù)人員進(jìn)行獨(dú)立數(shù)據(jù)處理顯示。如果部分?jǐn)?shù)據(jù)需要用到用戶自己專業(yè)的數(shù)據(jù)處理系統(tǒng),通過此方法也可方便地實(shí)現(xiàn)對(duì)接。
遙測(cè)參數(shù)可分為事件參數(shù)、模擬參數(shù)和數(shù)字量參數(shù)三類。事件參數(shù)又稱為時(shí)間參數(shù),反映事件的發(fā)生及發(fā)生時(shí)刻。模擬參數(shù)習(xí)慣上分為緩變參數(shù)和速變參數(shù)。按國(guó)軍標(biāo)《遙測(cè)系統(tǒng)術(shù)語(yǔ)》(GJB727-89)的定義,緩變參數(shù)通常指信號(hào)變化頻率低于10 Hz的遙測(cè)參數(shù)[1-2]。速變參數(shù)一般可分為振動(dòng)參數(shù)、沖擊參數(shù)、脈動(dòng)壓力參數(shù)和噪聲參數(shù)等,其中振動(dòng)參數(shù)又包括低頻振動(dòng)、高頻振動(dòng)和POGO振動(dòng)參數(shù)[4]。數(shù)字量參數(shù)指數(shù)字化的信息,如計(jì)算機(jī)輸出的數(shù)據(jù)、圖像以及以頻率反映參數(shù)值的信號(hào)。
實(shí)時(shí)處理由于通信帶寬等條件限制,實(shí)時(shí)處理參數(shù)也受到一定限制,一般只對(duì)時(shí)間指令參數(shù)和計(jì)算機(jī)字等進(jìn)行處理,其他緩變參數(shù)只進(jìn)行挑點(diǎn)處理[5]。速變參數(shù)在數(shù)據(jù)實(shí)時(shí)處理中一般不做要求,因此本文不涉及速變參數(shù)處理。
時(shí)間指令參數(shù)是反映某一事件或控制指令是否發(fā)生及發(fā)生時(shí)刻的參數(shù),如火箭起飛觸點(diǎn)接通時(shí)間、耗盡關(guān)機(jī)信號(hào)時(shí)間及爆炸螺栓起爆時(shí)間等;另一個(gè)是控制系統(tǒng)發(fā)出控制命令時(shí)間,如發(fā)動(dòng)機(jī)點(diǎn)火指令時(shí)間、星箭分離指令時(shí)間和發(fā)動(dòng)機(jī)關(guān)機(jī)時(shí)間等。
指令參數(shù)通常有電平跳變類型指令、位控類型指令和數(shù)字量指令等表現(xiàn)形式。
遙測(cè)數(shù)據(jù)分路后,每路模擬量、幀計(jì)數(shù)等參數(shù)在任一時(shí)刻對(duì)應(yīng)的數(shù)值均為0~255之中的一個(gè)十進(jìn)制數(shù),將其稱為分層值,用X表示。
模擬量的計(jì)算公式為:Y=A1X+A0,其中Y為被測(cè)模擬量信號(hào),A1、A0為公式的系數(shù)。
數(shù)字量參數(shù)也叫計(jì)算機(jī)字[1],指采用數(shù)字計(jì)算機(jī)進(jìn)行制導(dǎo)計(jì)算的飛行器,在飛行中將彈上計(jì)算機(jī)計(jì)算的秒節(jié)點(diǎn)時(shí)間、特征點(diǎn)時(shí)刻、視速度、視位置、姿態(tài)角等結(jié)果,以一定速率經(jīng)數(shù)字變換器送給遙測(cè)系統(tǒng)。計(jì)算機(jī)字的處理一般按照專用遙測(cè)參數(shù)處理要求和方法進(jìn)行,通常按照字拼接、字識(shí)別、參數(shù)計(jì)算等幾個(gè)步驟進(jìn)行。
遙測(cè)實(shí)時(shí)處理軟件功能模塊組成框圖如圖3所示,包含遙測(cè)數(shù)據(jù)收發(fā)模塊,數(shù)據(jù)挑路處理模塊,模擬量、開關(guān)量、數(shù)字量處理模塊以及物理量恢復(fù)模塊等,根據(jù)實(shí)時(shí)任務(wù)特點(diǎn)進(jìn)行配置。
圖3 實(shí)時(shí)處理軟件功能模塊組成框圖
軟件采用多線程機(jī)制[6],遙測(cè)信息接收與數(shù)據(jù)處理、挑點(diǎn)發(fā)送分屬不同線程并行執(zhí)行。通過單寫多讀鎖機(jī)制來(lái)完成讀寫線程同步,接收端采用網(wǎng)絡(luò)事件機(jī)制來(lái)獲取網(wǎng)卡讀數(shù)據(jù)的網(wǎng)絡(luò)通知,發(fā)送端依據(jù)時(shí)碼板中斷信息發(fā)送處理后的挑點(diǎn)數(shù)據(jù)。這些手段的采用,保證了遙測(cè)挑點(diǎn)信息的快速處理與實(shí)時(shí)傳遞。關(guān)鍵代碼如下:
typedefstructSingleWriterMultiReaderGuard {
HANDLE hMutexNoWriter;
HANDLE hEventNoReaders;
HANDLE hSemNumReaders;
} SWMRG,*PSWMRG;
//讀寫鎖
c_SWMRG.SWMRGWaitToRead()
c_SWMRG.SWMRGDoneReading()
c_SWMRG.SWMRGWaitToWrite()
c_SWMRG.SWMRGDoneWriting()
//多線程處理
CWinThread* m_pRecvThread;
CWinThread* m_pSendThread;
CWinThread* m_pProcessThread;
CWinThread* m_pUIThread;
3.3.1 全幀數(shù)據(jù)整理
實(shí)時(shí)處理系統(tǒng)根據(jù)接收遙測(cè)全幀結(jié)構(gòu)來(lái)處理幀數(shù)據(jù),首先根據(jù)副幀同步碼(如0x146F)來(lái)確認(rèn)全幀結(jié)構(gòu)的第一個(gè)處理子幀。設(shè)子幀長(zhǎng)度為L(zhǎng)FSP,時(shí)碼長(zhǎng)度為L(zhǎng)T,讀取長(zhǎng)度為L(zhǎng)FSP+LT的數(shù)據(jù)進(jìn)行判斷,若搜索到同步碼,則標(biāo)識(shí)為1,若搜到同步碼反碼,則標(biāo)識(shí)為0。
子幀計(jì)數(shù)是子幀中專門用來(lái)計(jì)數(shù)的數(shù)據(jù)字,為循環(huán)計(jì)數(shù),通常分為高、低位或高、中、低位。以高、低位0~255 循環(huán)計(jì)數(shù)為例,幀計(jì)數(shù)低位SL取值從0開始至255 后歸零;幀計(jì)數(shù)高位SH取值從0開始,當(dāng)幀計(jì)數(shù)低位歸零一次后,SH遞增1。從圖形上看,幀計(jì)數(shù)低位呈現(xiàn)鋸齒狀,幀計(jì)數(shù)高位呈現(xiàn)臺(tái)階狀。聯(lián)合幀計(jì)數(shù)信息一是可以確認(rèn)全幀是否正常解密,二是可以明確是否為完整全幀。
3.3.2 挑點(diǎn)參數(shù)的處理
采用通用遙測(cè)挑點(diǎn)技術(shù),應(yīng)用軟件通過加載不同的遙測(cè)參數(shù)配置,可以方便地完成包括子幀、副幀和特殊副幀等不同挑路類型以及模擬量、數(shù)字量和開關(guān)量等不同數(shù)據(jù)類型的遙測(cè)參數(shù)挑路[7]。對(duì)于模擬量、開關(guān)量一般按副幀參數(shù)處理,在遙測(cè)幀的固定位置通過子幀波道號(hào)和副幀波道號(hào)挑點(diǎn),按分層值恢復(fù)物理量。在挑點(diǎn)過程中,首先讀取挑點(diǎn)配置文件信息,根據(jù)配置的幀結(jié)構(gòu)信息,確定主幀長(zhǎng)、副幀長(zhǎng)、主副幀的同步碼,先找到副幀同步碼組所在的子幀,判斷其下一個(gè)子幀同步碼是否為主幀同步碼,這樣得到一個(gè)全幀的第一子幀,按照幀結(jié)構(gòu)信息判斷是否是一個(gè)完整全幀。
視頻數(shù)據(jù)和部分特殊數(shù)字量信息大都占用多個(gè)遙測(cè)波道,經(jīng)挑路處理后通過網(wǎng)絡(luò)送圖像解碼器或?qū)S媒邮战K端進(jìn)行恢復(fù)處理,比如某些GNSS數(shù)據(jù)。
數(shù)字量參數(shù)處理情況比較復(fù)雜一些。首先,讀取挑點(diǎn)參數(shù)配置文件信息,除了幀結(jié)構(gòu)信息外,還需要知道幾種類型的數(shù)字量和每個(gè)數(shù)字量的長(zhǎng)度,以及分別所占的波道以及幀頭、幀尾信息和參數(shù)特征字。然后對(duì)全部波道按子幀波道進(jìn)行重新組幀,若遙測(cè)幀有連續(xù)多個(gè)填充信息,還需根據(jù)數(shù)據(jù)處理要求對(duì)遙測(cè)數(shù)據(jù)進(jìn)行預(yù)處理,去掉填充內(nèi)容,否則易造成挑出數(shù)字量信息位置錯(cuò)亂,若填充信息出現(xiàn)在幀頭里面,則會(huì)造成挑點(diǎn)數(shù)據(jù)無(wú)有效信息。經(jīng)過預(yù)處理后,再通過數(shù)字量包含的幀頭信息和數(shù)字量長(zhǎng)度,讀取一個(gè)完整的數(shù)字量幀,經(jīng)過對(duì)幀尾的檢驗(yàn)和全幀的校驗(yàn)和判斷,找到所需要的數(shù)字量幀,這樣就可以根據(jù)特征字信息對(duì)該幀進(jìn)行解析分解,分解處理流程如圖4所示。注意在解析過程中還要判斷是否有分幀信息、是否需要解密、傳輸是大端模式還是小端模式,這些都需要在飛行試驗(yàn)前進(jìn)行確認(rèn)。
圖4 數(shù)字量處理流程圖
系統(tǒng)建成后經(jīng)過在實(shí)驗(yàn)室模擬測(cè)試和遙測(cè)地面站測(cè)試,實(shí)時(shí)處理軟件主要功能滿足設(shè)計(jì)要求,在對(duì)外實(shí)時(shí)傳輸測(cè)試中,主要對(duì)軟件的健壯性、數(shù)據(jù)丟包率和傳輸時(shí)延進(jìn)行測(cè)試。在測(cè)試中發(fā)現(xiàn),若用數(shù)據(jù)時(shí)間作為對(duì)外傳輸狀態(tài)碼的判斷依據(jù),有發(fā)送狀態(tài)碼無(wú)效情況。經(jīng)問題排查,主要由下面兩方面原因引起:一是遙測(cè)基帶按全幀發(fā)送策略,發(fā)送之前需要全幀整理,因此網(wǎng)絡(luò)發(fā)送時(shí)間有隨機(jī)性,不完全按照幀頻信息發(fā)送,造成數(shù)據(jù)處理快于數(shù)據(jù)接收,在等待新數(shù)據(jù)包情況下,顯示遙測(cè)狀態(tài)為失鎖;二是由于實(shí)時(shí)傳輸數(shù)據(jù)類型多樣,有時(shí)該幀可能沒有有效數(shù)據(jù),這樣就造成狀態(tài)碼無(wú)效,但此時(shí)遙測(cè)鎖定正常,因此未能實(shí)時(shí)反映裝備狀態(tài)。在改進(jìn)版本中,在發(fā)送端采用接收數(shù)據(jù)包作為判斷依據(jù),若遙測(cè)數(shù)據(jù)處理終端未收到新的遙測(cè)數(shù)據(jù)包則繼續(xù)發(fā)送前一幀信息,若數(shù)據(jù)沒有更新,則需將發(fā)送狀態(tài)置無(wú)效。經(jīng)模擬測(cè)試和飛行試驗(yàn)驗(yàn)證,實(shí)時(shí)處理系統(tǒng)滿足實(shí)時(shí)性要求,丟包率和對(duì)外傳輸時(shí)延滿足網(wǎng)絡(luò)傳輸要求。數(shù)據(jù)處理軟件界面如圖5所示。
圖5 數(shù)據(jù)實(shí)時(shí)處理軟件部分界面
該遙測(cè)實(shí)時(shí)處理系統(tǒng)完成了關(guān)鍵參數(shù)的采集、處理、顯示、存儲(chǔ)及網(wǎng)絡(luò)收發(fā)等功能,為目標(biāo)飛行器提供實(shí)時(shí)監(jiān)控和顯示,并給出相應(yīng)的快速判決結(jié)果。實(shí)時(shí)處理系統(tǒng)把遙測(cè)解密后的明文數(shù)據(jù)按實(shí)時(shí)顯現(xiàn)要求,把模擬量、開關(guān)量、數(shù)字量、衛(wèi)星導(dǎo)航數(shù)據(jù)和視頻數(shù)據(jù)流等分路挑出,其中關(guān)鍵遙測(cè)參數(shù)和數(shù)字量信息經(jīng)重新組幀,按照約定信息格式通過網(wǎng)絡(luò)發(fā)送給指揮控制中心。目前該系統(tǒng)已在多個(gè)型號(hào)的飛行試驗(yàn)中得到驗(yàn)證,系統(tǒng)根據(jù)參數(shù)閾值自動(dòng)判決,在目標(biāo)發(fā)生故障隱患時(shí),可及時(shí)做出異常提醒,為決策提供依據(jù),縮短研制周期、保證飛行試驗(yàn)安全。