李紳 楊國學(xué) 寇會鋼
摘要:針對導(dǎo)航衛(wèi)星測試數(shù)據(jù)處理量較大,重復(fù)性工作較多,人工處理耗時較長、過程易錯等問題,開發(fā)了基于Matlab/GUI的導(dǎo)航衛(wèi)星測試數(shù)據(jù)分析處理系統(tǒng),實(shí)現(xiàn)了連續(xù)處理多組上下行測試數(shù)據(jù)以及自動生成報表等功能,極大地減少了測試數(shù)據(jù)的處理時間,提高了分析數(shù)據(jù)的效率,減輕了測試人員的工作量。從界面設(shè)計、回調(diào)函數(shù)設(shè)計、系統(tǒng)處理流程等方面詳細(xì)介紹了系統(tǒng)開發(fā)的過程,并對試驗(yàn)數(shù)據(jù)進(jìn)行分析處理與驗(yàn)證。結(jié)果表明,該系統(tǒng)實(shí)現(xiàn)了上下行測試數(shù)據(jù)特征值的計算與繪圖,并生成了Word報表,系統(tǒng)可靠、高效、簡便,數(shù)據(jù)處理精度保持與原始數(shù)據(jù)一致。
關(guān)鍵詞:導(dǎo)航衛(wèi)星;MATLAB GUI;測試數(shù)據(jù);生成報表
中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? 文章編號:1009-3044(2018)31-0232-03
在我國北斗導(dǎo)航衛(wèi)星全球系統(tǒng)建設(shè)中,導(dǎo)航衛(wèi)星在整星出廠前及發(fā)射入軌后都需要嚴(yán)格的測試工作,只有各個階段的測試結(jié)果合格,導(dǎo)航衛(wèi)星才能正式運(yùn)行。隨著北斗導(dǎo)航衛(wèi)星全球系統(tǒng)的建設(shè),導(dǎo)航衛(wèi)星的測試工作也越來越多,由此產(chǎn)生了大量的測試數(shù)據(jù),如何快速有效地分析處理這些測試數(shù)據(jù),是擺在測試人員面前一個亟待解決的問題。因?yàn)椴僮髁鞒虖?fù)雜、分析結(jié)果易錯、處理等待時間長等原因,通常的人工分析處理方式的效率很難滿足需求。因此,開發(fā)一款可以分析處理測試數(shù)據(jù)并能自動生成報表的軟件有著重要的意義。
本文以某導(dǎo)航衛(wèi)星在軌測試試驗(yàn)為背景,結(jié)合Matlab工具,利用Matlab高效率的矩陣運(yùn)算特點(diǎn)縮短數(shù)據(jù)處理時間;利用Matlab圖形用戶界面開發(fā)環(huán)境GUIDE實(shí)現(xiàn)用戶界面功能;通過對主界面中按鈕回調(diào)函數(shù)的設(shè)計實(shí)現(xiàn)數(shù)據(jù)讀取、計算,自動生成數(shù)據(jù)圖像及表格報表。簡化了操作流程,縮短了處理時間,并通過試驗(yàn)數(shù)據(jù)驗(yàn)證了軟件功能及其可靠性。
1 GUI簡介
圖形用戶界面GUI( Graphical User Interface) 是指利用圖形控件來顯示計算機(jī)操作的用戶界面,簡而言之,就是實(shí)現(xiàn)人機(jī)交互功能的界面。MATLAB GUI 具有易于開發(fā)、開發(fā)周期短的優(yōu)點(diǎn)。GUIDE 是Matlab 圖形用戶接口開發(fā)環(huán)境的簡稱,可方便地建立圖形窗口、文本框、按鈕、菜單等圖形對象,實(shí)現(xiàn)GUI編程和圖形界面的布局。
2 系統(tǒng)設(shè)計
2.1 界面設(shè)計
使用GUIDE 設(shè)計系統(tǒng)主界面,如圖1所示,所有操作功能均設(shè)計在一個界面。
在界面的上方可以選擇上下行測試文件所在的目錄以及要寫入的WORD文檔報告模板。如果沒有WORD模板,可點(diǎn)擊界面上的按鈕“生成報告模板”來生成一個WORD模板。在界面的中間可以輸入配置參數(shù),包括“上行測距精度擬合階數(shù)”、“原始數(shù)據(jù)起始刪除點(diǎn)數(shù)”和“原始數(shù)據(jù)末尾刪除點(diǎn)數(shù)”,其中,“上行測距精度擬合階數(shù)”只作為上行測試處理回調(diào)函數(shù)的輸入?yún)?shù),“原始數(shù)據(jù)起始刪除點(diǎn)數(shù)”“原始數(shù)據(jù)末尾刪除點(diǎn)數(shù)”可作為上行測試處理回調(diào)函數(shù)和下行測試處理回調(diào)函數(shù)的輸入?yún)?shù)。在界面的下方有按鈕“上行測試處理”“下行測試處理”,用于控制處理上行測試數(shù)據(jù)和下行測試數(shù)據(jù)。分別點(diǎn)擊這兩個按鈕,系統(tǒng)可讀取上述目錄下的上行測試文件和下行測試文件,通過回調(diào)函數(shù)對測試文件進(jìn)行處理,并將處理結(jié)果寫入WORD文檔中。
2.2 控件回調(diào)函數(shù)設(shè)計
回調(diào)函數(shù)設(shè)計部分包括上行測試處理回調(diào)函數(shù)設(shè)計和下行測試處理回調(diào)函數(shù)設(shè)計。
2.2.1 上行測試處理回調(diào)函數(shù)
上行測試處理回調(diào)函數(shù)用于處理導(dǎo)航衛(wèi)星接收測試設(shè)備上行信號時產(chǎn)生的測試數(shù)據(jù),測試數(shù)據(jù)通過S遙測下傳給地面遙測接收機(jī)。數(shù)據(jù)處理的過程主要包含以下步驟:
1. 讀取目錄下的上行測試數(shù)據(jù),含通道A和通道B測試數(shù)據(jù);
2. 計算每個支路時延測量值的測距精度;
3. 計算每個支路時延測量值的變化量;
4. 計算每個支路時延測量值的擬合值,擬合階數(shù)在系統(tǒng)主界面中輸入,階數(shù)越高,數(shù)據(jù)處理精度越高;
5. 計算時延測量值與擬合值的差值序列,并計算該差值序列的均方差;
6. 將時延測量值、時延測量值的變化量、時延測量值與擬合值的差值序列分別繪圖;
7. 將上述數(shù)據(jù)處理結(jié)果與圖片輸出到Word文檔中。
2.2.2 下行測試處理回調(diào)函數(shù)
下行測試處理回調(diào)函數(shù)用于處理測試設(shè)備接收導(dǎo)航衛(wèi)星下行信號的測試數(shù)據(jù)。數(shù)據(jù)處理的過程主要包含以下步驟:
1. 讀取目錄下的下行測試數(shù)據(jù),含B1B2B3測試數(shù)據(jù);
2. 計算每個支路時延測量值的最大值、最小值與平均值;
3. 計算每個支路的時延測量值變化量和時延測量值二次變化量;
4. 計算每個支路的時延測量值百點(diǎn)平均;
5. 計算每個支路時延測量值百點(diǎn)平均的最大值與最小值;
6. 計算每個支路電平測量值的最大值、最小值與平均值;
7. 將每個支路的時延測量值、時延測量值變化量、時延測量值二次變化量、時延測量值百點(diǎn)平均與電平測量值繪圖;
8. 將上述數(shù)據(jù)處理結(jié)果與圖片輸出到Word文檔中。
2.3 生成Word報告
由于導(dǎo)航衛(wèi)星的測試數(shù)據(jù)格式相同,處理結(jié)果的數(shù)據(jù)格式也一樣,需要將大量格式相同的數(shù)據(jù)生成Word報告,因此,Word報告的自動生成功能就顯得十分必要了。一個Word報告的生成共需要經(jīng)過Word文檔的創(chuàng)建、文字的插入、表格的創(chuàng)建與插入、圖片的插入等操作。
Matlab調(diào)用Word組件實(shí)現(xiàn)Word文檔的創(chuàng)建編輯,利用activeserver 函數(shù)將Word COM組件創(chuàng)建為服務(wù)器。使用get 函數(shù)獲得某個COM 服務(wù)器的屬性,再使用set 函數(shù)設(shè)置該屬性,比如光標(biāo)位置。通過改變光標(biāo)的位置來控制輸入內(nèi)容的位置,對于文字內(nèi)容可以設(shè)置字體、大小、段落格式,對于表格可以設(shè)置表格大小、邊框樣式、寬度和虛實(shí),打印輸出圖片。系統(tǒng)自動生成WORD報告流程圖如圖2所示。
3 系統(tǒng)處理流程圖
本文通過GUIDE 完成了GUI 的界面設(shè)計和編程設(shè)計,最終設(shè)計開發(fā)了導(dǎo)航衛(wèi)星測試數(shù)據(jù)分析處理系統(tǒng)。在系統(tǒng)主界面上操作可以完成衛(wèi)星測試數(shù)據(jù)的分析處理,并把處理結(jié)果輸出到Word文檔。系統(tǒng)處理流程圖如圖3所示。
4 案例分析
應(yīng)用本系統(tǒng)對某導(dǎo)航衛(wèi)星在軌測試的試驗(yàn)數(shù)據(jù)進(jìn)行分析處理,以驗(yàn)證系統(tǒng)的可靠性。隨機(jī)選取某段時間運(yùn)行數(shù)據(jù)進(jìn)行驗(yàn)證,在處理數(shù)據(jù)過程中以及處理數(shù)據(jù)完成后,在主界面上都會提示,增加系統(tǒng)使用的體驗(yàn)性。
試驗(yàn)數(shù)據(jù)分為上行測試數(shù)據(jù)和下行測試數(shù)據(jù),上行測試數(shù)據(jù)包含通道A、通道B兩個通道的測距數(shù)據(jù),下行測試數(shù)據(jù)包含B1、B2、B3三個頻點(diǎn)的測距數(shù)據(jù)、電平測試數(shù)據(jù)等。
本系統(tǒng)處理后的數(shù)據(jù),能夠計算出上行時延測量值的測距精度、下行時延測量值的最大值最小值、下行時延測量值百點(diǎn)平均的最大值最小值等數(shù)值,也能夠生成上行時延測量數(shù)據(jù)圖、時延測量值與時延擬合值的差值圖、下行時延測量數(shù)據(jù)圖、下行時延測量值百點(diǎn)平均數(shù)據(jù)圖、下行電平測量數(shù)據(jù)圖等繪圖,并將數(shù)值結(jié)果與圖片插入Word報表。表1為下行數(shù)據(jù)處理結(jié)果記錄表,記錄了下行各支路時延測量值和電平測量值的最大值、最小值和波動值。圖4為寫入Word報表的上行通道A時延測量數(shù)據(jù)圖,含通道A時延測量原始數(shù)據(jù)圖和通道A時延測量值變化量數(shù)據(jù)圖,圖5為寫入Word報表的下行B1Ap支路時延測量值百點(diǎn)平均數(shù)據(jù)圖,時延測量值的變化是由衛(wèi)星的運(yùn)動帶來的,一定程度上體現(xiàn)了衛(wèi)星的運(yùn)動軌跡。采用本系統(tǒng)進(jìn)行數(shù)據(jù)處理并生成報表的時間大約為10秒,速度快、圖片精良、統(tǒng)計結(jié)果準(zhǔn)確,在實(shí)現(xiàn)要求的同時提升了用戶體驗(yàn)性。而如果采用人工處理的方式,則至少需要15分鐘。
5 結(jié)束語
基于MATLAB /GUI開發(fā)的導(dǎo)航衛(wèi)星測試數(shù)據(jù)分析處理系統(tǒng),充分發(fā)揮了MATLAB在數(shù)據(jù)處理中的優(yōu)勢,系統(tǒng)主界面層次分明,操作簡單,可以連續(xù)處理多組上下行測試數(shù)據(jù),大大減輕了重復(fù)性的工作,減少了測試人員處理數(shù)據(jù)的時間,提高分析處理的效率及準(zhǔn)確性,自動生成報表功能可以一鍵生成所有特征量的處理結(jié)果和圖形,生成WORD報告,獲得直觀的分析結(jié)果。通過對某導(dǎo)航衛(wèi)星在軌測試的試驗(yàn)數(shù)據(jù)進(jìn)行分析,結(jié)果表明,本系統(tǒng)是導(dǎo)航衛(wèi)星測試數(shù)據(jù)分析處理的有效工具,系統(tǒng)可靠、高效。
參考文獻(xiàn):
[1] 張立國.基于Matlab/GUI的地鐵車輛試驗(yàn)數(shù)據(jù)分析系統(tǒng)[J].城市軌道交通研究,2016(12):53-55.
[2] 楊海蓮,王紅梅.基于Matlab/GUI的延遲發(fā)光數(shù)據(jù)處理平臺的設(shè)計與實(shí)現(xiàn)[J].德州學(xué)院學(xué)報,2015,31(4):43-46.
[3] 秦浩,李同春.基于Matlab/GUI的水電工程安全監(jiān)測數(shù)據(jù)處理界面設(shè)計[J].水利水電技術(shù),2016,47(4):70-74.
[4]? 孫劍.一種基于MATLAB的Word報告自動生成方法[J].科技廣場,2017(1):32-35.
[5]? 王琳,劉偉建.基于Matlab/GUI的汽車動力性試驗(yàn)數(shù)據(jù)分析軟件設(shè)計[J].汽車實(shí)用技術(shù),2017(12):197-201.
[6]? 李彥,甄丹. 基于Matlab GUI的色域平臺設(shè)計與開發(fā)[J].電視技術(shù),2017,41(3):22-27.