鄭 丹
(中國(guó)酒泉衛(wèi)星發(fā)射中心 技術(shù)部,蘭州 732750)
隨著國(guó)內(nèi)商業(yè)航天的快速發(fā)展,各種新型飛行器(商業(yè)火箭、重復(fù)使用運(yùn)載器)逐漸進(jìn)入發(fā)射場(chǎng)開(kāi)展驗(yàn)證性飛行試驗(yàn)。這些試驗(yàn)具有技術(shù)狀態(tài)新、試驗(yàn)風(fēng)險(xiǎn)高、飛行次數(shù)少等特點(diǎn)。飛行試驗(yàn)出現(xiàn)故障后,需要在發(fā)射場(chǎng)根據(jù)遙測(cè)數(shù)據(jù)開(kāi)展故障分析工作。
由于新型飛行試驗(yàn)的規(guī)劃次數(shù)較少(通常1到2次),研制單位通常不開(kāi)發(fā)相應(yīng)的遙測(cè)參數(shù)可視化軟件,飛行試驗(yàn)出現(xiàn)故障后,使用MATLAB、Origin等商業(yè)軟件分析遙測(cè)數(shù)據(jù),由于需要逐個(gè)繪制遙測(cè)參數(shù),故障分析工作的效率較低。
遙測(cè)參數(shù)的可視化程度對(duì)故障分析工作的效率具有重要影響[1-2],隨著計(jì)算機(jī)可視化技術(shù)的發(fā)展,國(guó)內(nèi)外開(kāi)展了大量遙測(cè)參數(shù)可視化的研究工作,不僅實(shí)現(xiàn)了飛行器彈道和姿態(tài)的三維實(shí)時(shí)演示功能[3-6],還實(shí)現(xiàn)了關(guān)鍵遙測(cè)參數(shù)的三維矢量顯示方法[7-9],能夠直觀地輔助試驗(yàn)指揮人員判斷飛行狀態(tài)。這些軟件通常針對(duì)重大或者成熟的型號(hào)開(kāi)發(fā),具有功能強(qiáng)大、開(kāi)發(fā)周期長(zhǎng)、型號(hào)專(zhuān)用等特點(diǎn)。如果發(fā)射場(chǎng)針對(duì)每種新型飛行器都開(kāi)發(fā)相應(yīng)的遙測(cè)數(shù)據(jù)可視化軟件,則需要耗費(fèi)大量時(shí)間和經(jīng)費(fèi),也沒(méi)有必要:一是由于這些新型飛行試驗(yàn)規(guī)劃次數(shù)少,一般僅進(jìn)行1次至2次;二是隨著發(fā)射場(chǎng)試驗(yàn)任務(wù)逐年增多,分配到每個(gè)任務(wù)的時(shí)間和人力有限;三是新型飛行試驗(yàn)缺少歷史數(shù)據(jù),各種基于歷史數(shù)據(jù)的智能故障分析方法[10-13]無(wú)法應(yīng)用。因此,有必要開(kāi)發(fā)一款型號(hào)通用、準(zhǔn)備工作少的遙測(cè)參數(shù)可視化分析軟件,提高發(fā)射場(chǎng)對(duì)新型飛行試驗(yàn)的故障分析效率。
以往的遙測(cè)數(shù)據(jù)分析軟件通常使用服務(wù)器-客戶端模式,部署于固定場(chǎng)所的特定設(shè)備,限制了故障分析的人數(shù)和工作地點(diǎn)。隨著計(jì)算機(jī)硬件技術(shù)的提高,飛行器的三維動(dòng)態(tài)繪制可以在筆記本電腦中完成,因此開(kāi)發(fā)基于筆記本電腦的通用故障分析平臺(tái),可以隨時(shí)隨地開(kāi)展故障分析工作,提高故障分析工作的靈活性。
本文針對(duì)故障分析工作的通用性和便捷性需求,使用VC++6.0,應(yīng)用敏捷軟件開(kāi)發(fā)技術(shù),開(kāi)發(fā)了遙測(cè)參數(shù)可視化軟件。文中詳細(xì)介紹了軟件的需求分析、總體設(shè)計(jì)、關(guān)鍵技術(shù)、使用方法和應(yīng)用情況。
在故障分析時(shí),通常需要重點(diǎn)分析故障時(shí)段的遙測(cè)值,一般的遙測(cè)參數(shù)可視化平臺(tái)通常繪制全部飛行時(shí)段的遙測(cè)曲線,故障分析人員需要逐個(gè)定位每個(gè)遙測(cè)參數(shù)的故障時(shí)刻,然后才能對(duì)比分析,降低了故障分析工作的效率。因此,平臺(tái)需要根據(jù)飛行時(shí)間逐步繪制遙測(cè)曲線的功能,以及把遙測(cè)參數(shù)直接繪制到指定時(shí)刻的功能。
飛行過(guò)程的三維動(dòng)態(tài)演示能夠直觀顯示飛行器的彈道和姿態(tài),有利于故障分析工作。具體功能包括:
1.2.1 讀取和繪制飛行器三維模型文件
由于飛行器三維模型文件由不同的研制單位提供,通常格式不同,為滿足平臺(tái)的通用性,平臺(tái)需要讀取和繪制多種格式的三維模型文件的功能[15-17]。典型格式包括igs格式、3ds格式、stl格式、stp格式等。
1.2.2 三維視景的旋轉(zhuǎn)、縮放和平移功能
具有三維視景的旋轉(zhuǎn)、縮放和平移等功能,且具有相應(yīng)的快捷鍵。
1.2.3 飛行器模型的在線放大縮小功能
平臺(tái)不僅可以在動(dòng)態(tài)演示前設(shè)置飛行器的大小,還可以在動(dòng)態(tài)飛行演示過(guò)程時(shí),在保持背景不變的情況下,通過(guò)快捷鍵在線放大和縮小飛行器仿真模型,便于實(shí)時(shí)查看飛行器的姿態(tài)和彈道。
1.2.4 動(dòng)態(tài)演示時(shí)間控制功能
飛行器彈道姿態(tài)的三維動(dòng)態(tài)繪制具有“重放”、“前進(jìn)”、“快進(jìn)”、“步前”、“暫停”、“步退”、“快退”、“后退”、“終點(diǎn)”、“GoTo(指定飛行時(shí)刻)”等時(shí)間控制功能,并且具有動(dòng)態(tài)演示時(shí)間步長(zhǎng)和速度的設(shè)置功能。能夠通過(guò)反復(fù)播放故障時(shí)段,有利于故障分析工作。
1.2.5 彈道姿態(tài)的坐標(biāo)系轉(zhuǎn)換功能
平臺(tái)在發(fā)射坐標(biāo)系下繪制飛行器的彈道和姿態(tài)。而遙測(cè)數(shù)據(jù)中通常包含GNSS位置和速度信息,因此,平臺(tái)需要把GNSS位置和速度轉(zhuǎn)換到發(fā)射坐標(biāo)系下的功能,以及姿態(tài)角的坐標(biāo)系轉(zhuǎn)換功能[14]。為了在平面地圖上繪制彈下點(diǎn)軌跡,平臺(tái)同時(shí)需要計(jì)算飛行器彈下點(diǎn)經(jīng)緯度的功能。
1.2.6 圖片和視頻保存功能
為便于故障交流和匯報(bào),平臺(tái)能夠把動(dòng)態(tài)演示過(guò)程保存為視頻(AVI格式或者GIF格式),或者圖片(bmp格式)。
一般的遙測(cè)參數(shù)可視化平臺(tái)中,飛行過(guò)程三維演示和遙測(cè)曲線繪制通常在不同的顯示頁(yè)面內(nèi),在故障分析時(shí),需要不斷切換頁(yè)面,為便于故障分析工作,平臺(tái)需要在同一頁(yè)面內(nèi)動(dòng)態(tài)演示飛行過(guò)程和動(dòng)態(tài)繪制關(guān)鍵遙測(cè)曲線。通過(guò)平臺(tái)的動(dòng)態(tài)演示時(shí)間控制功能(前進(jìn)、后退、暫停、單步、指定時(shí)刻等)同時(shí)控制飛行器彈道姿態(tài)的三維動(dòng)態(tài)演示和關(guān)鍵遙測(cè)曲線繪制,實(shí)現(xiàn)自動(dòng)定位到指定時(shí)刻的彈道姿態(tài)和遙測(cè)數(shù)據(jù)的功能,無(wú)需人工定位,提高故障分析工作的效率。
為了實(shí)現(xiàn)平臺(tái)的通用性,平臺(tái)的全部界面與飛行器型號(hào)無(wú)關(guān)。但是,不同的飛行器需要?jiǎng)討B(tài)演示的關(guān)鍵遙測(cè)參數(shù)并不相同。因此,平臺(tái)采用定制文件的方式實(shí)現(xiàn)不同型號(hào)的差異性。只需把動(dòng)態(tài)繪制的關(guān)鍵遙測(cè)參數(shù)信息輸入到平臺(tái)的定制文件中,平臺(tái)在啟動(dòng)時(shí)自動(dòng)讀入定制文件,然后自動(dòng)設(shè)置動(dòng)態(tài)演示界面。
一次飛行試驗(yàn)的遙測(cè)參數(shù)通常具有數(shù)百個(gè),其中一些關(guān)鍵的遙測(cè)參數(shù)(姿態(tài)參數(shù)、發(fā)動(dòng)機(jī)參數(shù)、電池電壓、氣瓶貯箱壓力等)能夠直接反應(yīng)飛行試驗(yàn)故障的原因。在平臺(tái)初始運(yùn)行時(shí),沒(méi)有必要對(duì)全部遙測(cè)參數(shù)實(shí)現(xiàn)動(dòng)態(tài)繪制功能,僅對(duì)關(guān)鍵遙測(cè)參數(shù)實(shí)現(xiàn)動(dòng)態(tài)繪制功能即可,剩余的遙測(cè)參數(shù),可以在平臺(tái)運(yùn)行時(shí),根據(jù)故障分析的需求由故障分析人員實(shí)時(shí)添加。既可以在當(dāng)前視圖內(nèi)添加,以方便與視圖中現(xiàn)有的遙測(cè)參數(shù)進(jìn)行對(duì)比,也可以添加新的視圖,然后在新視圖中添加遙測(cè)參數(shù),也可以添加新的動(dòng)態(tài)演示界面,然后在新界面的任意視圖中添加遙測(cè)參數(shù)。并且在平臺(tái)關(guān)閉時(shí),可以保存遙測(cè)參數(shù)的添加結(jié)果到定制文件中,以便平臺(tái)下次啟動(dòng)時(shí),自動(dòng)按新設(shè)置顯示界面。
一般的數(shù)據(jù)分析顯示軟件,在添加遙測(cè)參數(shù)后,刪除遙測(cè)參數(shù)并不方便,有的甚至需要修改程序。在故障分析時(shí),可能需要在遙測(cè)曲線視圖中,隨時(shí)添加或者刪除遙測(cè)參數(shù),并能快速地來(lái)回切換。因此,平臺(tái)需要在視圖中添加或者刪除遙測(cè)參數(shù)的多步后退和前進(jìn)功能,提高故障分析工作的效率。并且,通過(guò)快捷鍵“Ctrl+Z”后退到上一步顯示結(jié)果,通過(guò)“Ctrl+Y”前進(jìn)到下一步顯示結(jié)果。
動(dòng)態(tài)演示飛行器彈道和姿態(tài)需要飛行器的位置、速度、姿態(tài)角遙測(cè)參數(shù)信息。因此,平臺(tái)的定制文件包含9個(gè)遙測(cè)參數(shù)(位置、速度、姿態(tài)角各3個(gè))即可保證平臺(tái)初始運(yùn)行,其余的遙測(cè)參數(shù),可以在平臺(tái)運(yùn)行時(shí)由故障分析人員按需添加。該功能可以顯著減少平臺(tái)的準(zhǔn)備工作:在新型號(hào)任務(wù)準(zhǔn)備過(guò)程中,平臺(tái)的定制文件僅包含9個(gè)遙測(cè)參數(shù)即可。
平臺(tái)的定制文件采用Excel工作簿,給出了動(dòng)態(tài)繪制關(guān)鍵遙測(cè)參數(shù)的全部信息。定制文件不僅可以通過(guò)Excel編輯器直接輸入,也可以利用平臺(tái)的動(dòng)態(tài)演示遙測(cè)參數(shù)的實(shí)時(shí)添加和保存功能自動(dòng)生成,提高了定制文件的準(zhǔn)備效率。
在故障分析時(shí),需要隨時(shí)能夠查看和分析全部遙測(cè)參數(shù),因此,平臺(tái)需要提供全部遙測(cè)參數(shù)的快速分析顯示功能,以對(duì)話框的形式,可以隨時(shí)打開(kāi)或者關(guān)閉。
具體功能包括:
1)遙測(cè)參數(shù)的快速讀取和繪制功能。
基于筆記本電腦的有限性能,實(shí)現(xiàn)大數(shù)據(jù)量遙測(cè)參數(shù)的快速讀取和繪制。
2)多列遙測(cè)值的文件預(yù)處理功能。
平臺(tái)讀入和繪制遙測(cè)文件的格式默認(rèn)為2列數(shù)據(jù)的txt文件,其中第1列為采樣時(shí)間,第2列為遙測(cè)值。但是在遙測(cè)數(shù)據(jù)預(yù)處理過(guò)程中,有時(shí)提供的遙測(cè)文件具有多列遙測(cè)值。因此,平臺(tái)需要把多列遙測(cè)值的txt文件,自動(dòng)拆分成多個(gè)具有1列遙測(cè)值的文件的功能。
3)十六進(jìn)制遙測(cè)值的文件預(yù)處理功能。
在飛行試驗(yàn)中,有時(shí)為了節(jié)省遙測(cè)通道,將多個(gè)狀態(tài)量為0或者1的遙測(cè)值合并為1個(gè)十六進(jìn)制遙測(cè)值。因此,平臺(tái)需要把具有十六進(jìn)制遙測(cè)值文件,自動(dòng)拆分成多個(gè)取值為0或者1的遙測(cè)文件的功能。
4)圖像保存功能。

圖2 面向故障分析的遙測(cè)參數(shù)可視化平臺(tái)的活動(dòng)圖
能夠把顯示結(jié)果保存為bmp圖片,或者自動(dòng)保存到word文件中。
飛行器的飛行過(guò)程通常分為若干關(guān)鍵階段,為方便故障分析人員掌握飛行情況,平臺(tái)需要在遙測(cè)曲線上自動(dòng)標(biāo)注關(guān)鍵時(shí)段。由于不同飛行器的關(guān)鍵階段劃分并不相同,為了保證平臺(tái)的通用性,關(guān)鍵時(shí)刻及其標(biāo)識(shí)字母,以txt文件的形式,由平臺(tái)在啟動(dòng)時(shí)自動(dòng)讀入,并在繪制遙測(cè)曲線時(shí)自動(dòng)標(biāo)注。
商業(yè)數(shù)據(jù)分析軟件通常具有圖像放大功能。例如Matlab軟件,通過(guò)快捷鍵“Ctrl+Z”和“Ctrl+Y”,實(shí)現(xiàn)了圖像放大的多步后退和前進(jìn)功能。在遙測(cè)數(shù)據(jù)分析時(shí),圖像放大的多步后退和前進(jìn)功能是必要的基礎(chǔ)功能。
遙測(cè)參數(shù)分析時(shí),往往需要計(jì)算極值點(diǎn)和階躍點(diǎn),因此,平臺(tái)需要自動(dòng)計(jì)算當(dāng)前顯示區(qū)域內(nèi)的極值點(diǎn)和階躍點(diǎn)的功能,并且在圖像縮放時(shí),自動(dòng)更新計(jì)算結(jié)果。
平臺(tái)具有兩個(gè)主要功能:
1)飛行器彈道姿態(tài)與關(guān)鍵遙測(cè)參數(shù)的動(dòng)態(tài)聯(lián)合演示功能;
2)全部遙測(cè)參數(shù)的快速分析顯示功能。
平臺(tái)的用例圖如圖1所示。平臺(tái)的用戶分為故障分析人員和平臺(tái)維護(hù)人員。故障分析人員使用全部功能;平臺(tái)維護(hù)人員僅需使用動(dòng)態(tài)聯(lián)合演示功能,利用遙測(cè)參數(shù)的實(shí)時(shí)添加功能完成定制文件的自動(dòng)生成,或者直接在Excel編輯器中編輯定制文件。

圖1 面向故障分析的遙測(cè)參數(shù)可視化平臺(tái)的用例圖
平臺(tái)的UML活動(dòng)圖(unified modeling language)如圖2所示。

圖3 平臺(tái)的動(dòng)態(tài)演示界面(“電壓”頁(yè)面)
2.2.1 彈道姿態(tài)與關(guān)鍵遙測(cè)參數(shù)的聯(lián)合動(dòng)態(tài)演示界面
平臺(tái)的動(dòng)態(tài)演示界面由多個(gè)頁(yè)面組成,每個(gè)頁(yè)面由菜單、工具欄、3個(gè)飛行彈道視圖和10個(gè)遙測(cè)曲線視圖組成,如圖3所示。
圖3的上方以3種方式顯示飛行器的彈道姿態(tài):
1)飛行器在發(fā)射坐標(biāo)系下的位置和速度曲線;
2)飛行器的三維彈道和姿態(tài);
3)平面地圖上的彈下點(diǎn)軌跡。
圖3下方的10個(gè)視圖能夠按照飛行時(shí)間動(dòng)態(tài)繪制遙測(cè)參數(shù)。每個(gè)視圖具有左坐標(biāo)系和右坐標(biāo)系,每個(gè)坐標(biāo)系至多能夠繪制10個(gè)遙測(cè)參數(shù)。
圖3的任意視圖都可以雙擊后全屏放大,如圖5所示。
平臺(tái)的多個(gè)頁(yè)面通過(guò)工具欄上的按鈕(“主頁(yè)面”、“姿控”、“氣壓”、“電壓”、“電流”等)進(jìn)行切換。頁(yè)面切換時(shí),圖3上方的3個(gè)視圖保持不變,下方的10個(gè)遙測(cè)曲線視圖進(jìn)行切換。點(diǎn)擊“+”按鈕,可以多次隨時(shí)增加新的空白頁(yè)面,空白頁(yè)面具有10個(gè)空白的遙測(cè)曲線視圖,如圖6所示,可以用來(lái)添加新的動(dòng)態(tài)繪制遙測(cè)參數(shù)。
通過(guò)工具欄按鈕(“重放”、“前進(jìn)”、“快進(jìn)”、“步前”、“暫停”、“步退”、“快退”、“后退”、“終點(diǎn)”、“GoTo”),實(shí)現(xiàn)動(dòng)態(tài)演示過(guò)程的控制。通過(guò)工具欄的“定時(shí)器”按鈕,可以設(shè)置動(dòng)態(tài)演示的時(shí)間步長(zhǎng)和速度。
2.2.2 全部遙測(cè)數(shù)據(jù)的快速分析顯示界面
全部遙測(cè)數(shù)據(jù)的分析顯示功界面采用對(duì)話框,如圖4所示。在圖4的“關(guān)鍵時(shí)序遙測(cè)參數(shù)值”區(qū)域,平臺(tái)自動(dòng)插值計(jì)算關(guān)鍵時(shí)刻(級(jí)間分離、發(fā)動(dòng)機(jī)點(diǎn)火、關(guān)機(jī)等時(shí)刻)的遙測(cè)值,并在右側(cè)繪制的遙測(cè)曲線上自動(dòng)標(biāo)識(shí)關(guān)鍵時(shí)刻。可以通過(guò)對(duì)話框的“保存關(guān)鍵時(shí)刻參數(shù)值”按鈕,把計(jì)算結(jié)果保存到txt文件中。

圖4 全部遙測(cè)參數(shù)的快速分析顯示界面

圖5 遙測(cè)曲線視圖的全屏顯示

圖6 平臺(tái)自動(dòng)添加的空白頁(yè)面
平臺(tái)自動(dòng)計(jì)算當(dāng)前顯示區(qū)域內(nèi)的全部遙測(cè)參數(shù)的極大值、極小值和階躍值,并在繪制的遙測(cè)曲線上用“正方形”標(biāo)識(shí)極大值,“圓圈”標(biāo)識(shí)極小值,“三角形”標(biāo)識(shí)階躍值,如圖4所示,當(dāng)遙測(cè)參數(shù)沒(méi)有階躍點(diǎn)時(shí),忽略階躍點(diǎn)的顯示結(jié)果。
在圖4中可以設(shè)置野值剔除的閾值,平臺(tái)在讀入遙測(cè)參數(shù)時(shí)自動(dòng)剔除絕對(duì)值大于閾值的數(shù)據(jù)。
為了便于顯示遙測(cè)參數(shù),圖4給出了“乘以系數(shù)”編輯框,平臺(tái)在繪制遙測(cè)參數(shù)時(shí)自動(dòng)把遙測(cè)值乘以該系數(shù)。例如,如果需要把遙測(cè)參數(shù)從原始單位m轉(zhuǎn)換為km,則需把遙測(cè)值乘以0.001,此時(shí)在“乘以系數(shù)”編輯框內(nèi)填寫(xiě)“0.001”,或者直接點(diǎn)擊對(duì)話框的“0.001”按鈕;如果需要把遙測(cè)值從單位rad轉(zhuǎn)換為o,此時(shí)在“乘以系數(shù)”對(duì)話框內(nèi)填寫(xiě)為“180/π”,或者直接點(diǎn)擊“RToD”按鈕。
當(dāng)同時(shí)繪制多個(gè)遙測(cè)參數(shù)時(shí),若其數(shù)值區(qū)域互相重疊,則會(huì)產(chǎn)生判讀干擾,因此圖4提供了“加上系數(shù)”編輯框,能夠在繪制遙測(cè)曲線時(shí)自動(dòng)把遙測(cè)值加上相應(yīng)的數(shù)值。例如,當(dāng)視圖內(nèi)同時(shí)繪制3個(gè)遙測(cè)參數(shù)時(shí),若它們的數(shù)值范圍都為-1~1,則3條遙測(cè)曲線會(huì)出現(xiàn)重疊,為去掉干擾,可以把第2個(gè)遙測(cè)參數(shù)加上常值2,把第3個(gè)遙測(cè)參數(shù)加上常值4,則可以把3條遙測(cè)參數(shù)曲線分開(kāi)。
為了減少平臺(tái)的準(zhǔn)備工作,平臺(tái)根據(jù)定制文件自動(dòng)設(shè)置動(dòng)態(tài)演示界面。由于動(dòng)態(tài)演示界面具有多個(gè)頁(yè)面,而Excel工作簿具有多個(gè)工作表,因此定制文件使用Excel工作簿,如圖7所示。

圖7 平臺(tái)的配置文件
平臺(tái)的每個(gè)頁(yè)面對(duì)應(yīng)Excel工作薄的一個(gè)工作表(Worksheet),因此頁(yè)面按鈕的名稱(chēng)即為工作表的名稱(chēng)。每個(gè)工作表的信息包括8列:遙測(cè)參數(shù)文件名稱(chēng)、圖題名稱(chēng)、標(biāo)簽名稱(chēng)、單位、乘以系數(shù)、加上系數(shù)、新建視圖、左坐標(biāo)軸,如圖7所示。各參數(shù)的作用如下:
1)平臺(tái)根據(jù)“遙測(cè)參數(shù)文件名稱(chēng)”讀入遙測(cè)參數(shù)文件;
2)平臺(tái)根據(jù)“圖題名稱(chēng)”設(shè)置遙測(cè)曲線視圖的名稱(chēng);
3)平臺(tái)根據(jù)“標(biāo)簽名稱(chēng)”設(shè)置遙測(cè)曲線的標(biāo)簽名稱(chēng);
4)平臺(tái)根據(jù)“單位”設(shè)置坐標(biāo)軸的單位名稱(chēng);
5)平臺(tái)根據(jù)“乘以系數(shù)”,把遙測(cè)值乘以相應(yīng)的常數(shù);
6)平臺(tái)根據(jù)“加上系數(shù)”,把遙測(cè)數(shù)值加上相應(yīng)的數(shù)值;
7)如果“新建視圖”為1,表明該遙測(cè)參數(shù)是視圖內(nèi)的第1個(gè)遙測(cè)參數(shù),平臺(tái)自動(dòng)新建一個(gè)視圖,然后繪制該遙測(cè)參數(shù),如果“新建視圖”為0,平臺(tái)將在當(dāng)前視圖中繼續(xù)繪制該遙測(cè)參數(shù)。因此從當(dāng)前1開(kāi)始直到下一個(gè)1之前的所有遙測(cè)參數(shù)都繪制在同一個(gè)視圖內(nèi),如圖7的虛線框?qū)?yīng)的區(qū)域所示(第7行和第8行);
8)如果“左坐標(biāo)軸”為1,平臺(tái)把遙測(cè)參數(shù)繪制在當(dāng)前視圖的左坐標(biāo)系中,如果為0,則繪制在右坐標(biāo)系中。因此該列中從當(dāng)前1開(kāi)始直到0之前的所有遙測(cè)參數(shù)都繪制在左坐標(biāo)系中,如圖7的實(shí)線框內(nèi)對(duì)應(yīng)的子區(qū)域所示(第7行)。
可以看出,平臺(tái)的配置文件不僅給出了遙測(cè)參數(shù)的具體信息,還給出了修正公式和繪制位置。
為了提高平臺(tái)的運(yùn)行效率,平臺(tái)只在初始運(yùn)行時(shí)讀入配置文件,把信息讀入到界面結(jié)構(gòu)類(lèi)中;在用戶切換頁(yè)面時(shí),平臺(tái)根據(jù)界面結(jié)構(gòu)類(lèi)自動(dòng)設(shè)置界面;在用戶實(shí)時(shí)添加遙測(cè)參數(shù)時(shí),把添加結(jié)果保存到界面結(jié)構(gòu)類(lèi)中;在平臺(tái)退出時(shí),再把界面結(jié)構(gòu)類(lèi)保存到Excel工作簿中。
對(duì)應(yīng)定制文件的工作簿、工作頁(yè)、域、子域,應(yīng)用面向?qū)ο笤O(shè)計(jì)思想[18-19],設(shè)計(jì)了界面結(jié)構(gòu)的C++類(lèi):動(dòng)態(tài)演示界面類(lèi)、頁(yè)面類(lèi)、視圖類(lèi)、坐標(biāo)系類(lèi),并使用MFC中的CMainFrame、CSplitterWnd、CView、CClientDC,實(shí)現(xiàn)了平臺(tái)的動(dòng)態(tài)演示界面,對(duì)應(yīng)關(guān)系如圖8所示。

圖8 界面結(jié)構(gòu)類(lèi)的設(shè)計(jì)和實(shí)現(xiàn)
為了減少平臺(tái)的準(zhǔn)備工作,配置文件至少填寫(xiě)1個(gè)工作表,且至少填寫(xiě)9個(gè)遙測(cè)參數(shù)(包括位置、速度、姿態(tài)角各3個(gè)遙測(cè)參數(shù)),以保證飛行器三維彈道姿態(tài)的繪制。其余的遙測(cè)參數(shù),都可以在平臺(tái)使用時(shí)逐漸添加。共有3種添加方式:
1)在當(dāng)前視圖中,添加新的遙測(cè)參數(shù);
2)在空白視圖中,添加新的遙測(cè)參數(shù);
3)添加新的頁(yè)面,然后在任意空白視圖中,添加遙測(cè)參數(shù)。
添加方法為:在需要添加遙測(cè)參數(shù)的視圖上,點(diǎn)擊右鍵菜單,得到“添加演示參數(shù)”對(duì)話框,如圖9所示。

圖9 添加動(dòng)態(tài)演示參數(shù)的對(duì)話框
在圖9的文件列表框中選擇需要添加的遙測(cè)參數(shù),然后設(shè)置“圖題名稱(chēng)”、“標(biāo)簽名稱(chēng)”、“單位”、“加上常數(shù)”、“乘以系數(shù)”、“左坐標(biāo)軸”等信息,最后點(diǎn)擊“添加到動(dòng)態(tài)演示界面”按鈕。可以同時(shí)添加多個(gè)遙測(cè)參數(shù)。
如果當(dāng)前頁(yè)面的視圖已滿,則可以通過(guò)點(diǎn)擊工具欄上的“+”按鈕,隨時(shí)添加新的空白顯示頁(yè)面,如圖6所示。然后在任意空白視圖中添加遙測(cè)參數(shù),如圖10所示。

圖10 平臺(tái)自動(dòng)添加的空白頁(yè)面(添加遙測(cè)參數(shù)后)
為減少平臺(tái)的準(zhǔn)備工作,坐標(biāo)軸上的數(shù)字和格式都是自動(dòng)計(jì)算的。坐標(biāo)軸的自動(dòng)計(jì)算在商業(yè)繪圖軟件中是內(nèi)置功能,但是用C++語(yǔ)言開(kāi)發(fā)軟件,則需要實(shí)現(xiàn)該算法。坐標(biāo)軸的計(jì)算不僅要求正確還需滿足常規(guī)顯示慣例,例如數(shù)值最后的數(shù)字通常使用0、2、5等,坐標(biāo)軸的分段數(shù)通常大于3段且小于10段等。
本文通過(guò)循環(huán)算法實(shí)現(xiàn)坐標(biāo)軸格式的自動(dòng)計(jì)算,如圖11所示。首先根據(jù)遙測(cè)數(shù)值范圍計(jì)算坐標(biāo)軸的數(shù)據(jù)范圍,然后計(jì)算坐標(biāo)軸的分段數(shù),再計(jì)算坐標(biāo)軸上的數(shù)字,如果上述計(jì)算結(jié)果不滿足常規(guī)顯示慣例,則重新修改坐標(biāo)軸的數(shù)據(jù)范圍,再次計(jì)算,直到滿足為止。同時(shí),采用自動(dòng)測(cè)試方法,在每個(gè)坐標(biāo)軸繪制前,自動(dòng)測(cè)試坐標(biāo)軸上的全部數(shù)字是否正確,即判斷坐標(biāo)軸上的數(shù)值誤差是否小于1‰,如果滿足則正常顯示,否則程序報(bào)錯(cuò)。

圖11 坐標(biāo)軸格式的自動(dòng)計(jì)算過(guò)程
遙測(cè)曲線視圖實(shí)現(xiàn)了圖像放大、遙測(cè)參數(shù)添加刪除操作的后退或前進(jìn)50步的功能。應(yīng)用面向?qū)ο笤O(shè)計(jì)思想[18-19],設(shè)計(jì)了CFrameData類(lèi),包含了坐標(biāo)軸格式信息和遙測(cè)參數(shù)代號(hào),如表1所示。

表1 繪制格式的CFrameData類(lèi)
CFrameData類(lèi)的坐標(biāo)軸格式信息包含了坐標(biāo)軸上的分段數(shù)、每一段的細(xì)分段數(shù)、坐標(biāo)軸的最大值、最小值等信息,具體成員變量的含義見(jiàn)圖12。平臺(tái)在繪制遙測(cè)參數(shù)時(shí),首先計(jì)算坐標(biāo)軸信息,然后把計(jì)算結(jié)果保存到CFrameData類(lèi)中,最后根據(jù)CFrameData類(lèi)的坐標(biāo)軸格式信息繪制坐標(biāo)軸。

圖12 CFrameData類(lèi)的成員變量示意圖
CFrameData類(lèi)的遙測(cè)參數(shù)代號(hào)信息包含了當(dāng)前視圖中的全部遙測(cè)參數(shù)的代號(hào),存儲(chǔ)在最后1個(gè)成員變量m_enumFlyParam[10]數(shù)組中。
平臺(tái)通過(guò)1個(gè)雙向循環(huán)鏈表結(jié)構(gòu)實(shí)現(xiàn)了繪制操作的多步前進(jìn)和后退功能,如圖13所示。該鏈表由50個(gè)CFrameData節(jié)點(diǎn)組成,在后退時(shí)使用當(dāng)前節(jié)點(diǎn)的上一個(gè)CFrameData類(lèi)的信息直接繪制;在前進(jìn)時(shí)使用下一個(gè)CFrameData類(lèi)的信息直接繪制。CFrameData類(lèi)占據(jù)內(nèi)存量小,在前進(jìn)和后退時(shí),直接繪制無(wú)需計(jì)算,實(shí)現(xiàn)了繪制操作的快速前進(jìn)和后退功能。

圖13 存儲(chǔ)50步的繪制格式的循環(huán)鏈表
有的遙測(cè)參數(shù)的數(shù)據(jù)量較大(上千萬(wàn)行),如果使用筆記本電腦直接讀入和繪制全部數(shù)據(jù),則讀入和顯示速度較慢,為提高速度,平臺(tái)采用了逐級(jí)挑點(diǎn)讀入和繪制的方法。國(guó)內(nèi)外提出了較多有效的挑點(diǎn)方式[20],平臺(tái)根據(jù)遙測(cè)數(shù)據(jù)量的大小,把時(shí)間軸分成若干等段,然后在每段中挑選絕對(duì)值最大的點(diǎn)進(jìn)行讀入和繪制。當(dāng)圖像縮放時(shí),重新挑點(diǎn)繪制,實(shí)現(xiàn)了顯示速度快、細(xì)節(jié)無(wú)失真的效果。圖4給出了挑點(diǎn)過(guò)程的關(guān)鍵參數(shù)。
為提高顯示速度,地球三維模型的紋理實(shí)現(xiàn)了分層繪制技術(shù)。對(duì)于衛(wèi)星、軌道轉(zhuǎn)移飛行器等繞飛地球的飛行器,使用了低精度的全球紋理。對(duì)于導(dǎo)彈、火箭等飛行器,在彈下點(diǎn)附近的地球紋理使用了高精度的地圖紋理。在平臺(tái)初始顯示時(shí),繪制低精度紋理,然后在視圖逐漸放大過(guò)程中逐步繪制高精度紋理。
平臺(tái)運(yùn)行需要的文件包括:全部遙測(cè)數(shù)據(jù)的文件夾、飛行器三維外形數(shù)據(jù)文件、關(guān)鍵時(shí)刻及其標(biāo)識(shí)字母的txt文件、動(dòng)態(tài)演示界面定制文件。在平臺(tái)運(yùn)行前,把相關(guān)文件存放到指定位置。
雙擊平臺(tái)的可執(zhí)行文件,即可運(yùn)行平臺(tái)。平臺(tái)運(yùn)行后,點(diǎn)擊工具欄的“設(shè)置”按鈕,設(shè)置飛行器發(fā)射坐標(biāo)系的發(fā)射點(diǎn)經(jīng)緯度、高度等信息。然后點(diǎn)擊工具欄的“測(cè)試”按鈕,平臺(tái)自動(dòng)讀入4.1節(jié)的全部文件,并進(jìn)行彈道補(bǔ)充計(jì)算。
通過(guò)工具欄上的動(dòng)態(tài)演示控制按鈕,進(jìn)行彈道姿態(tài)與關(guān)鍵遙測(cè)參數(shù)的動(dòng)態(tài)聯(lián)合演示,開(kāi)展故障分析工作。
在平臺(tái)運(yùn)行時(shí),可以隨時(shí)打開(kāi)“飛行器遙測(cè)數(shù)據(jù)分析顯示界面”對(duì)話框,快速分析全部遙測(cè)數(shù)據(jù)。
在故障分析過(guò)程中,可以隨時(shí)通過(guò)右鍵菜單項(xiàng),保存圖片或者視頻。
平臺(tái)已應(yīng)用于2種不同型號(hào)的重復(fù)使用運(yùn)載器的飛行試驗(yàn)。通過(guò)動(dòng)態(tài)演示界面的定制和遙測(cè)參數(shù)動(dòng)態(tài)添加和保存功能,極大減少了平臺(tái)的準(zhǔn)備工作,使對(duì)新型飛行器的準(zhǔn)備時(shí)間縮短到2小時(shí)以內(nèi)。
本文針對(duì)發(fā)射場(chǎng)對(duì)各種新型飛行器故障分析的需求,設(shè)計(jì)了使用簡(jiǎn)單、部署方便、型號(hào)通用的遙測(cè)參數(shù)可視化平臺(tái)。不僅可以作為故障分析平臺(tái),也可以作為基于事后數(shù)據(jù)的飛行仿真平臺(tái),或者作為遙測(cè)參數(shù)快速分析顯示平臺(tái)。
平臺(tái)的飛行仿真具有一定的局限性:對(duì)于級(jí)間分離、舵面偏轉(zhuǎn)、大噴管擺動(dòng)、小噴管點(diǎn)火等關(guān)鍵動(dòng)作,因與飛行器型號(hào)相關(guān),受通用性約束而無(wú)法仿真,但是可以把本平臺(tái)作為基礎(chǔ)框架,開(kāi)發(fā)飛行器的專(zhuān)屬平臺(tái)。同時(shí),平臺(tái)對(duì)遙測(cè)數(shù)據(jù)的分析方法比較簡(jiǎn)單,后續(xù)需要持續(xù)補(bǔ)充新的分析方法,不斷提高故障分析工作的效率。