張?chǎng)尾ǎ瑥?冰
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)
在測(cè)控領(lǐng)域中,測(cè)角數(shù)據(jù)的準(zhǔn)確性直接決定著衛(wèi)星的定軌精度。各測(cè)控站在每次任務(wù)中直接將打有時(shí)標(biāo)的測(cè)角數(shù)據(jù)上報(bào)中心。為便于比對(duì)和數(shù)據(jù)分析,中心要求各測(cè)站上報(bào)的測(cè)角數(shù)據(jù)時(shí)標(biāo)必須是整點(diǎn)形式(通常取整50ms)。而各測(cè)站的整點(diǎn)測(cè)角數(shù)據(jù),大多是基于Windows中斷機(jī)制采集保存的。在實(shí)際工程中,計(jì)算機(jī)上運(yùn)行的各程序軟件都會(huì)不同程度地采用Windows中斷,這樣勢(shì)必會(huì)影響測(cè)角數(shù)據(jù)的時(shí)標(biāo)采集,偶爾會(huì)出現(xiàn)中斷丟失或時(shí)標(biāo)不整點(diǎn)的現(xiàn)象。盡管測(cè)角數(shù)據(jù)是真實(shí)的,但不便于中心進(jìn)行數(shù)據(jù)比對(duì)。因此,筆者試圖采用軟件修正的辦法對(duì)數(shù)據(jù)時(shí)標(biāo)點(diǎn)進(jìn)行修正,以提高數(shù)據(jù)的比對(duì)效率。
各設(shè)備在硬件中斷(50ms)中,都會(huì)通過(guò)時(shí)統(tǒng)卡讀取時(shí)統(tǒng)的系統(tǒng)時(shí)間,首先將包含年月日時(shí)分秒毫秒的時(shí)間轉(zhuǎn)換為毫秒,經(jīng)過(guò)與上一個(gè)周期記錄的時(shí)間進(jìn)行比對(duì),如果時(shí)間差為整50ms,則認(rèn)為正確時(shí)標(biāo),否則需要進(jìn)行時(shí)標(biāo)修正,并利用前幾點(diǎn)數(shù)據(jù)計(jì)算出修正后時(shí)標(biāo)對(duì)應(yīng)的數(shù)據(jù)點(diǎn)。對(duì)于算法中用的一些變量,定義如下:
T0:當(dāng)前的系統(tǒng)時(shí)間轉(zhuǎn)化為的毫秒數(shù);
T1:上一個(gè)周期系統(tǒng)時(shí)間轉(zhuǎn)換為的毫秒數(shù);
Δ:當(dāng)前時(shí)間與上一周期時(shí)間毫秒時(shí)間差(即:T0-T1);
bStart:基準(zhǔn)時(shí)間點(diǎn)選擇標(biāo)志;
M:毫秒時(shí)間差包含50ms的個(gè)數(shù)(即:Δ/50,除法結(jié)果的商);
N:毫秒時(shí)間差減去50ms倍數(shù)后的余數(shù)(即:Δ%50,除法結(jié)果的余數(shù));
A0:當(dāng)前周期內(nèi)的角度值;
A1:前一個(gè)周期內(nèi)的角度值;
A2:前兩個(gè)周期內(nèi)的角度值。
算法通過(guò)對(duì)時(shí)間間隔Δ進(jìn)行比較分析。重要前提,就是上一周期時(shí)間點(diǎn)必須是準(zhǔn)確的整50ms,否則無(wú)法保證后續(xù)時(shí)間修正的準(zhǔn)確性,其程序流程圖見(jiàn)圖1。程序初始化時(shí)各參數(shù)變量均為零,第一個(gè)判斷為了使軟件或時(shí)統(tǒng)設(shè)備在啟動(dòng)正常后進(jìn)入本流程,第二個(gè)判斷用于跳出對(duì)初始基準(zhǔn)時(shí)間點(diǎn)的選擇,第三個(gè)判斷是對(duì)初始基準(zhǔn)時(shí)間點(diǎn)T0的選擇。
圖1 時(shí)標(biāo)基準(zhǔn)點(diǎn)選擇流程圖
根據(jù)物理學(xué)中的速度相關(guān)公式,可以由前兩點(diǎn)的速度、距離信息遞推出下一點(diǎn)的距離信息。將式(1)~ (4)帶入(5)中,可推到得到式(6)。
經(jīng)過(guò)對(duì)大量數(shù)據(jù)記錄文件的分析,發(fā)現(xiàn)時(shí)標(biāo)數(shù)據(jù)的變化主要包含以下4種情況:
1)時(shí)間間隔Δ=0,即連續(xù)產(chǎn)生了2次中斷,采集到了相同的數(shù)據(jù),丟棄本周期內(nèi)采樣數(shù)據(jù);
2)時(shí)間間隔0<Δ<50,當(dāng)Δ>40時(shí)迭代遞推出下一個(gè)臨近整50ms時(shí)間點(diǎn)數(shù)據(jù),否則丟棄本周期內(nèi)采樣數(shù)據(jù),不做任何處理;
3)時(shí)間間隔Δ=50,正確的時(shí)間采樣數(shù)據(jù);
4)時(shí)間間隔Δ>50,即本中斷采樣時(shí)間滯后或出現(xiàn)中斷丟失的情況,需要計(jì)算出錯(cuò)過(guò)的整50ms的時(shí)標(biāo),并迭代遞推出該時(shí)標(biāo)點(diǎn)的數(shù)據(jù),對(duì)于Δ%50后的余數(shù),可采用情況2)中的相關(guān)處理方法。
結(jié)合以上4種現(xiàn)實(shí)情況的分析,可以得到具體的時(shí)標(biāo)修正算法流程圖,見(jiàn)圖2。針對(duì)需要修正的時(shí)間周期,由上一周期系統(tǒng)時(shí)間累加50ms得到當(dāng)前系統(tǒng)時(shí)間,并利用前幾個(gè)周期的數(shù)據(jù)點(diǎn)遞推得到當(dāng)前時(shí)間點(diǎn)數(shù)據(jù),同時(shí)依次更新前幾個(gè)周期內(nèi)的數(shù)據(jù)信息。
圖2 時(shí)標(biāo)修正算法流程圖
首先,得到未采用時(shí)標(biāo)修正算法的記錄文件中時(shí)間間隔Δ的相關(guān)數(shù)據(jù),見(jiàn)圖2。其中,時(shí)標(biāo)出現(xiàn)了很多跳點(diǎn),即非整50ms的時(shí)間點(diǎn)。當(dāng)采用了時(shí)標(biāo)修正算法后,可以得到效果圖3。圖中時(shí)間間隔始終為50ms,完全解決了時(shí)標(biāo)異常的問(wèn)題。同時(shí),上報(bào)的測(cè)角經(jīng)比對(duì),均滿(mǎn)足系統(tǒng)精度要求,也驗(yàn)證了數(shù)據(jù)迭代的正確性。
圖3 未采用時(shí)標(biāo)修正算法的時(shí)標(biāo)信息圖
圖4 采用時(shí)標(biāo)修正算法的時(shí)標(biāo)信息圖
經(jīng)過(guò)驗(yàn)證,該算法能夠完全消除上報(bào)數(shù)據(jù)中時(shí)標(biāo)異常的現(xiàn)象,并且已經(jīng)應(yīng)用在某9m測(cè)控天線中。經(jīng)過(guò)長(zhǎng)期運(yùn)行,時(shí)標(biāo)及測(cè)角的精度均滿(mǎn)足系統(tǒng)指標(biāo)要求。該算法簡(jiǎn)單,容易實(shí)施,節(jié)約了改造硬件的成本,極大地增強(qiáng)了系統(tǒng)的穩(wěn)定性和可靠性。
[1]申強(qiáng).一種在實(shí)時(shí)控制中數(shù)字濾波的算法[J].通訊與測(cè)控,2004,(3):10-13.
[2]徐孝凱.C++語(yǔ)言基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2003.