茍斌, 程詠梅, 趙明艷, 王會賓, 劉成元
(1.西北工業(yè)大學(xué) 自動化學(xué)院, 陜西 西安 710129; 2.盲信號處理國家級重點實驗室, 四川 成都 610041)
天文導(dǎo)航系統(tǒng)利用導(dǎo)航星圖像與導(dǎo)航星測量信息估計載體相對天球坐標(biāo)系的姿態(tài)[1]。其中,快速、準(zhǔn)確地識別導(dǎo)航星圖是獲取高精度姿態(tài)量測的保障[2-4]。由于恒星在天球坐標(biāo)系的不均勻分布,以及載體滾轉(zhuǎn)軸姿態(tài)精度與導(dǎo)航星間的平均分離角關(guān)系。單視場星敏感器的星圖識別成功率與載體姿態(tài)解算精度都不及多視場星敏感器[5]。
傳統(tǒng)多視場星敏感器的視場內(nèi)星圖識別方法需要構(gòu)造導(dǎo)航星空間匹配特征,但多視場內(nèi)的導(dǎo)航星分布會導(dǎo)致匹配特征過于復(fù)雜與龐大[6];視場間星圖識別方法則利用多視場的重疊區(qū)域融合多幅星圖為一副星圖后再進行識別,而多視場星敏感器多采用小視場相機,視場間的重疊區(qū)域有限。對此,文獻[7]提出了先視場內(nèi)識別,再視場間識別的多視場星圖識別策略。利用電子指南針估計星敏感器視軸指向,構(gòu)建局部識別數(shù)據(jù)庫縮小視場間導(dǎo)航星匹配范圍。但電子指南針的低精度、三角形星圖算法抗星點質(zhì)心定位誤差效果差、視場間星圖匹配復(fù)雜等因素均對算法識別率和識別時間帶來影響。
為了提高三視場星敏感器的星圖識別效率與識別正確率,本文以三個6°×6°視場的正交三視場星敏感器為研究對象,改進先視場內(nèi)識別,再視場間識別的星圖識別策略,提出三視場星敏感器的多級星圖識別算法。針對傳統(tǒng)識別星圖方法的缺陷,將單一可調(diào)參數(shù)的廣義回歸神經(jīng)網(wǎng)絡(luò)(generalized regression neural network,GRNN)引入視場內(nèi)導(dǎo)航星識別[8];利用星庫中存儲的星間角距檢驗上一步的識別結(jié)果,以正確識別的導(dǎo)航星估計3個視軸指向以輔助未識別與識別錯誤的視場完成校正;最終以正確識別的導(dǎo)航星信息估計飛行器姿態(tài)。
模擬的三視場星敏感器采用視場正交安裝方式,如圖1所示。本文模擬了三視場星敏感器在天球坐標(biāo)系內(nèi)的1 000組隨機姿態(tài)作為實驗樣本,利用Smithsonian Astrophysical Observatory(SAO)[9]星表中6.5星等以下的6 970顆導(dǎo)航星信息模擬星圖。針對每組樣本,統(tǒng)計各視場從2°×2°到12°×12°變化過程中可捕獲的導(dǎo)航星數(shù),結(jié)果如圖2所示。
圖2表明,在1 000組6°×6°三視場星圖樣本中,3個視場捕獲少于3顆星的概率分別為0.7%,1%,及0.5%,但不存在3個視場同時捕獲少于3顆導(dǎo)航星的情況。為此,本文提出多視場星敏感器多級星圖識別算法:第一階段利用單一可調(diào)參數(shù)的GRNN算法進行視場內(nèi)星圖識別;第二階段以星庫中存儲的星間角距信息檢驗導(dǎo)航星識別結(jié)果,僅當(dāng)3個視場均被正確識別時進行飛行器姿態(tài)估計,否則利用已正確識別的導(dǎo)航星估計星敏感器3個視軸指向;第三階段利用視軸指向輔助未識別與識別錯誤的導(dǎo)航星完成視場間識別與校正。
圖2 視場變化下的導(dǎo)航星數(shù)統(tǒng)計
1) 特征向量建立
為了提高導(dǎo)航星識別正確率,提升星圖識別效率,本文構(gòu)建了以P值向量為識別特征的神經(jīng)網(wǎng)絡(luò)類星圖識別算法[10]。單一網(wǎng)絡(luò)輸入的P值向量可以確保星圖識別網(wǎng)絡(luò)復(fù)雜度最小化[11]。
Pi=xdi-1+ydi-2+zdi-3=ΩTdi
(1)
Pi的方差D(P)越大,投影軸上的投影點離散程度最好。因此,最佳投影軸求解式為
(2)
(3)
最大特征根λ對應(yīng)的特征向量即為最佳投影軸。通過對6 970顆導(dǎo)航星的測試得到最佳投影軸為[0.397 0.580 0.711]T。每顆導(dǎo)航星根據(jù)公式(1)可求出對應(yīng)的P值向量,對該導(dǎo)航星進行編號,并將其P值與三邊星角距信息一起存儲在導(dǎo)航星庫內(nèi)。
2) GRNN星圖識別網(wǎng)絡(luò)
引入單一可調(diào)參數(shù)的GRNN算法進行視場內(nèi)星圖識別[8],在保證星圖識別正確率與識別效率的同時解決傳統(tǒng)神經(jīng)網(wǎng)絡(luò)星圖識別算法過度依賴網(wǎng)絡(luò)參數(shù)的問題。GRNN網(wǎng)絡(luò)由輸入層、隱層、輸出層三部分組成。隱層的基函數(shù)常采用高斯函數(shù)對輸入信號在局部產(chǎn)生響應(yīng)。不同于傳統(tǒng)神經(jīng)網(wǎng)絡(luò),GRNN的調(diào)節(jié)參數(shù)只有平滑因子ρ一項。
為了確定最優(yōu)ρ的選取,以上一節(jié)中3 000幅6°×6°三視場星圖為實驗樣本。在各導(dǎo)航星質(zhì)心定位信息中加入100組均值為0,標(biāo)準(zhǔn)差由0增至0.1像素的高斯誤差;每顆導(dǎo)航星以計算的100組P值向量特征作為網(wǎng)絡(luò)輸入,以13位二進制星號作為網(wǎng)絡(luò)輸出;其次,ρ以0.001為步長,由0.001增至0.03,并用留P法(leave-p-out,LPO)對網(wǎng)絡(luò)進行訓(xùn)練與測試,統(tǒng)計識別率e;最終,確定最大識別率平均值對應(yīng)的ρ為GRNN星圖識別網(wǎng)絡(luò)的平滑因子。
圖3 導(dǎo)航星識別率與ρ的關(guān)系
圖3表明,ρ過小會放大樣本間的差異,容易使含有不同噪聲的同一樣本被誤識別為不同樣本;ρ過大會增加不同樣本被誤識別為同一種樣本的概率。根據(jù)統(tǒng)計結(jié)果,本文選取最優(yōu)平滑因子ρ=0.01。
為了進一步提高識別正確率,首先對視場內(nèi)星圖識別結(jié)果進行檢測。計算圖中已識別導(dǎo)航星與其最近星、次近星間三邊星角距,并與導(dǎo)航星庫中記錄的標(biāo)準(zhǔn)三邊星角距進行比對。角距門限η滿足下式
?
(4)
式中,δ為星點的擴散半徑,?為單像素空間張角。
再利用上一節(jié)中已正確識別的單視場星點信息及星敏感器安裝矩陣估計3個視場的視軸指向
(5)
(6)
視軸指向誤差范圍最大值ξ由星敏感器的姿態(tài)估計誤差φe決定。根據(jù)歐拉位移定理[12],當(dāng)星敏感器視軸方向垂直于誤差歐拉軸時,姿態(tài)估計誤差對視軸指向誤差范圍的貢獻最大
(7)
式中,tr(Re)為姿態(tài)誤差旋轉(zhuǎn)矩陣Re的跡。單視場星敏感器解算的姿態(tài)中滾轉(zhuǎn)軸的精度遠(yuǎn)低于其余兩軸,本文主要考慮滾轉(zhuǎn)誤差旋轉(zhuǎn)矩陣對星敏感器的姿態(tài)估計誤差的影響,即
(8)
根據(jù)2.1節(jié)中1 000組6°×6°三視場樣本(3 000幅單視場星圖)解算的滾轉(zhuǎn)姿態(tài)均方根誤差的統(tǒng)計結(jié)果。當(dāng)星點質(zhì)心添加了標(biāo)準(zhǔn)差為0.07像素的位置誤差。滾轉(zhuǎn)姿態(tài)誤差θ為0.998°(1σ),最大視軸指向誤差范圍為ξ=φe=3°。
二次候選導(dǎo)航星確定條件如下
(9)
式中,RFOV為視場半徑;ustar為候選導(dǎo)航星方向矢量,與導(dǎo)航星的天文信息赤經(jīng)(right ascension,Ra)及赤緯(declination,Dec)有關(guān)
(10)
根據(jù)公式(9)確定符合條件的候選導(dǎo)航星,計算各候選導(dǎo)航星間在天球坐標(biāo)系下的空間星角距,并與各未識別導(dǎo)航星與已識別導(dǎo)航星在載體系下星角距逐一對比;將滿足星角距門限的候選導(dǎo)航星號作為未識別導(dǎo)航星的識別結(jié)果。
實驗仿真環(huán)境為Intel Core i5-6400 2.7GHz PC機;三視場星敏感器仿真視場為6°×6°,CCD面陣像素分辨率為512×512,像素尺寸8 μm×8 μm,焦距為39.078 mm;星敏感器拍攝的星圖是通過Matlab2016a軟件根據(jù)SAO星表中星等小于6.5的6 970顆恒星模擬生成。
本文模擬了1 000組星敏感器在天球坐標(biāo)系的隨機姿態(tài)作為實驗樣本。樣本中每幅星圖的星質(zhì)心定位誤差由1增至0.07個像素。圖4統(tǒng)計了本文算法、三角形匹配算法(全天球識別)[11]、P值向量算法[11]、RBF[2]以及BP[3]星圖識別算法在不同導(dǎo)航星質(zhì)心定位誤差下的識別率以及平均識別時間。其中,RBF、BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集與GRNN相同。
圖4 各識別方法性能對比
由圖4可以看出,神經(jīng)網(wǎng)絡(luò)類方法具有相似的星圖識別時間,且明顯優(yōu)于其他方法。但本文的GRNN星圖識別算法在網(wǎng)絡(luò)訓(xùn)練之初就考慮了星點位置誤差干擾,增加了網(wǎng)絡(luò)的容錯能力。當(dāng)星點位置誤差標(biāo)準(zhǔn)差為0.07像素時,本文算法在1 000組實驗樣本中有920組3個視場被同時正確識別。
進一步分析上一節(jié)中含0.07像素星點質(zhì)心定位誤差實驗樣本的識別結(jié)果。如圖5所示,1 000組實驗樣本中至少有1個視場被正確識別的概率為100%,只有2個或1個視場被正確識別的樣本組數(shù)為80,即135幅待識別星圖。
圖5 實驗樣品中各星圖內(nèi)導(dǎo)航星數(shù)統(tǒng)計
每組樣本利用已正確識別的導(dǎo)航星精確估計視軸指向,并建立局部導(dǎo)航星表進一步完成視場間星圖識別與校正。實驗結(jié)果表明,除了2幅內(nèi)無導(dǎo)航星的星圖外,本算法對20幅只包含有1或2顆導(dǎo)航星的星圖全部識別成功,對113幅包含3顆及以上導(dǎo)航星的誤識別星圖校正成功率達90.3%,該多級星圖識別算法使1 000組三視場實驗樣本的整體識別正確率提升至98.9%。
同時,本節(jié)還設(shè)計了1組與文獻[7]算法的對比實驗。實驗采用3.1節(jié)中的1 000次隨機天球指向作為實驗樣本,文獻[7]的視場內(nèi)星圖識別采用三角形匹配算法,用于視場間星圖識別的視軸指向信息由仿真的電子指南針設(shè)備提供(視軸服從均值為0°,標(biāo)準(zhǔn)差為2°(1σ)的高斯誤差)。在相同導(dǎo)航星質(zhì)心定位誤差條件下對比文獻[7]算法與本文算法對1 000組三視場實驗樣本的識別正確率和識別時間。
圖6 2種三視場星圖識別算法性能對比結(jié)果
由圖6a)可以看出,隨著導(dǎo)航星質(zhì)心定位誤差的增大,文獻[7]算法對實驗樣本的識別正確率也隨之下降,這是由于三角形匹配算法對星角距識別特征的變化較敏感。本文算法在訓(xùn)練星圖識別網(wǎng)絡(luò)時就充分考慮了導(dǎo)航星質(zhì)心定位誤差的影響,因此對樣本的識別結(jié)果優(yōu)于文獻[7]算法。此外,文獻[7]算法的平均識別時間為22.956 3 ms,其中視場內(nèi)星圖識別時間18.365 2 ms,視場間星圖識別時間4.591 1 ms。本文算法利用正確識別導(dǎo)航星估計的視軸指向極大限制了視場間星圖識別時導(dǎo)航星的搜索范圍。本文算法的平均識別時間為8.464 5 ms,其中視場內(nèi)星圖識別時間5.632 4 ms;識別結(jié)果檢測時間0.823 1 ms;視場間星圖識別與校正時間2.009 0 ms。
為了分析三視場星敏感器的定姿精度,本實驗將該算法應(yīng)用在軌高度500 km;軌道傾角45°;地理起始點為(0°N,122.119°E)的圓形衛(wèi)星軌道。星敏感器模擬器工作頻率為5 Hz。星圖中星點質(zhì)心提取精度為0.05像素[11]。本實驗對比分析了單視場星圖與三視場星圖的衛(wèi)星姿態(tài)估計差異。
表1 姿態(tài)誤差均方根誤差
由表1可以看出,3個單視場解算的姿態(tài)精度相似,視場角的限制,導(dǎo)致滾轉(zhuǎn)軸方向的姿態(tài)估計精度明顯低于俯仰和偏航軸方向。三視場星敏感器提供估計姿態(tài)的星點信息較多且空間分布更均勻,三軸姿態(tài)估計的精度也隨之提高。偏航、俯仰和滾轉(zhuǎn)姿態(tài)估計精度分別為1.205 8″,1.086 7″以及1.201 8″,其中滾轉(zhuǎn)軸姿態(tài)精度較3個單視場滾轉(zhuǎn)軸姿態(tài)精度分別提升了96.18%,96.19%及96.25%。
本文提出了一種面向三視場星敏感器多級星圖識別算法,第一階段利用神經(jīng)網(wǎng)絡(luò)進行視場內(nèi)星圖識別,第二階段以星庫中存儲的星間角距信息檢驗導(dǎo)航星識別結(jié)果,當(dāng)正確識別的視場數(shù)小于3時,利用已正確識別的導(dǎo)航星信息計算星敏感器的3個視軸指向;第三階段利用視軸指向輔助未識別與識別錯誤的導(dǎo)航星完成識別與校正。與文獻[7]相比,本算法的視場內(nèi)星圖識別魯棒性與識別時間具有明顯優(yōu)勢。當(dāng)星點質(zhì)心定位誤差標(biāo)準(zhǔn)差為0.07像素時,本文算法對實驗樣本的識別正確率仍保持98.9%,識別時間僅為8.464 5 ms。三視場星圖的高識別率與合理的星點分布也使得飛行器偏航、俯仰、滾轉(zhuǎn)姿態(tài)精度分別提升為1.205 8″,1.086 7″以及1.201 8″。