張 劉,張家坤,呂雪瑩,范國偉,章家保,滿益云
(1.吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院·長春·130061; 2.錢學(xué)森空間技術(shù)實驗室·北京·100094)
星敏感器是一種以恒星為參照系,以星空為工作對象的高精度空間姿態(tài)敏感器[1],具有定位精度高、質(zhì)量小、功耗低、高度自主,并且無姿態(tài)累積誤差等優(yōu)點[2]。但星敏感器在工作過程中會受到像平面主點、主距、傾斜與旋轉(zhuǎn)等多種誤差源的影響,這些誤差的耦合將使得星敏感器的在軌標(biāo)定工作變得極其困難,如何提高星敏感器的標(biāo)定精度成為科研人員的研究熱點。
國外關(guān)于星敏感器在軌標(biāo)定技術(shù)的研究起步較早,1981年,Shuster M D和Oh S D開創(chuàng)性地研究了敏感器安裝誤差的標(biāo)定,打破了星敏感器標(biāo)定只能在地面完成的壁壘[1]。2001年,Ju[3]提出基于星對角距的恒星檢校方法,該方法采用星對角距的正弦相等的原理對星敏感器的內(nèi)參數(shù)進行了檢校[4],有效地提高了星敏感器的標(biāo)定精度。2013年~2014年,Pal M[5-6]提出了兩種方法。第一種方法為自主標(biāo)定法,利用多幅星圖中的星點坐標(biāo)信息進行標(biāo)定,第二種方法基于最小二乘法,利用赤經(jīng)赤緯星點信息對姿態(tài)和相機參數(shù)同時估計[1]。2015年,Zhou[7]利用最優(yōu)化理論對星敏感器光學(xué)畸變和光學(xué)參數(shù)進行了多步標(biāo)定,其方法精度相較于最初的Samaan方法有很大提升。
國內(nèi)關(guān)于星敏感器在軌標(biāo)定技術(shù)的研究起步晚于國外,但近年來發(fā)展迅速。2008年,袁彥紅等[8]由最小二乘最優(yōu)估計法在軌標(biāo)定星敏感器星像點偏移和光學(xué)透鏡焦距變化,以最小二乘最優(yōu)估值為量測, 用卡爾曼濾波算法設(shè)計了星敏感器在軌自主標(biāo)定模型,結(jié)果表明,該方法可準(zhǔn)確標(biāo)定星敏感器星像點偏移和透鏡焦距變化。2010年王躍鋼等[9]提出了捷聯(lián)慣導(dǎo)/星敏感器組合系統(tǒng)中對陀螺儀和星敏感器進行在軌自標(biāo)定的方法,仿真結(jié)果表明,基于卡爾曼濾波的在軌自標(biāo)定方法能夠標(biāo)定出85%以上的陀螺儀隨機常值漂移和95%以上的星敏感器安裝誤差。2014年,魏新國等提出了針對星敏感器的內(nèi)外參數(shù)標(biāo)定法,其研究表明該方法可有效提高定姿精度[10]。2019年崔航等[11]通過繞陀螺儀三個敏感軸方向的姿態(tài)激勵實現(xiàn)對陀螺儀工具誤差以及初始對準(zhǔn)誤差和星慣安裝誤差的在線標(biāo)定,通過對慣性器件測量結(jié)果的修正,抑制導(dǎo)航誤差。仿真結(jié)果表明,在線標(biāo)定方法可以實現(xiàn)對上述誤差參數(shù)的在線標(biāo)定,具有一定的工程實用價值。
本文提出一種基于粒子群算法的星敏感器在軌標(biāo)定方法,與傳統(tǒng)標(biāo)定方法的優(yōu)勢在于它不需用陀螺對星敏感器進行標(biāo)定,而是直接利用星敏感器像平面的坐標(biāo)來進行標(biāo)定,減少了陀螺所帶來的誤差,有效地提高了標(biāo)定精度。
星敏感器成像的理想模型是小孔成像模型[12],在天球中,恒星發(fā)出的平行光通過星敏感器的光學(xué)鏡頭在其像平面上呈現(xiàn)一個光斑。星敏感器的成像模型如圖1所示:
圖1 星敏感器理想成像模型Fig.1 Ideal imaging model of star sensor
(1)
(2)
恒星在天球坐標(biāo)系上的赤經(jīng)赤緯為(α,δ),恒星在天球坐標(biāo)系下的參考矢量ri為:
(3)
當(dāng)星敏感器無誤差時,恒星在星敏感器坐標(biāo)系中的星光矢量為:
(4)
星敏感器在工作過程中會產(chǎn)生諸多誤差,主要分為像平面主點誤差、旋轉(zhuǎn)誤差、傾斜誤差與主距誤差,這些誤差會使星光矢量投影在CCD像平面中的坐標(biāo)發(fā)生誤差,進而影響星敏感器的測量精度。當(dāng)星敏感器存在誤差時,星光在星敏感器坐標(biāo)系中的矢量為:
Wi=
(5)
其中(x0,y0,f0)為(xi,yi,fi)經(jīng)過星敏感器綜合誤差產(chǎn)生的偏移量。
當(dāng)星敏感器含有主點、主距、傾斜與旋轉(zhuǎn)四種誤差時成像模型如下所示[13]:
(6)
(7)
(8)
其中:(x?,y?,z?)為真實像點在無誤差星敏感器坐標(biāo)系下的坐標(biāo),η為星敏感器像平面傾斜的角度,設(shè)像平面繞單位矢量(a,b,0)傾斜,ψ為星敏感器像平面旋轉(zhuǎn)的角度,(x0,y0)為主點的偏移量,(x,y)為含有誤差的像平面的坐標(biāo),(xnew,ynew)為校正后像點坐標(biāo)。
校正后的觀測矢量為:
(9)
已知觀測矢量bi與參考矢量ri,通過Quest算法可以計算出星敏感器三軸姿態(tài)角θ(俯仰角)、φ(滾轉(zhuǎn)角)、ψ(偏航角)計算精度可由式(10)求得。
(10)
幾乎所有基于矢量觀測的姿態(tài)確定問題都可以歸結(jié)為Wahba問題。在1965年,Wahba提出利用矢量觀測信息確定航天器的姿態(tài)問題,其核心是求解行列式為+1的最優(yōu)正交矩陣,構(gòu)造損失函數(shù)[14]
(11)
其中ai為非負(fù)的權(quán)重系數(shù),ri是相應(yīng)的參考系中的單位矢量。利用矩陣跡的輪換不變性,整理式(11)可得:
將姿態(tài)矩陣A寫成四元數(shù)形式:
將上式代入得:tr(ABT)=tr(BTA)
(12)
式(12)可進一步轉(zhuǎn)化為:
Kqopt=λmaxqopt
(13)
由式(13)可知,最優(yōu)四元數(shù)可以表示為:
(14)
λmax可由方程(15)通過牛頓迭代法求出:
λ4+(κ+ξ)λ2-μλ+(κξ+μσ-d)=0
(15)
其中:κ=(tr(B))2-tr(adj(S)),ξ=(tr(B))2+ZTZ,μ=det(S)+ZTSZ,d=ZTS2Z,σ=tr(B)。
vil=wvil+c1r1(pil-xil)+c2r2(pgl-xil)
(15)
xil=xil+vil
(16)
式(15)中w是權(quán)重系數(shù),c1,c2為加速常數(shù),r1,r2為[0,1]內(nèi)的隨機值,式(15)中vil與xil分別是第i個粒子第l維的速度與位置。pil表示第i個粒子的個體極值中第l維的值,pgl表示全局最優(yōu)值中第l維的值。另外,考慮到粒子速度應(yīng)在合理范圍內(nèi),分別可設(shè)定速度上限Vmax和速度下限-Vmax。在公式(15)中的第1部分為粒子“舊”速度部分;第2部分是“認(rèn)知”部分,表示粒子自身的思考;第3部分為“社會”部分,表示粒子之間的信息共享與合作[16]。
(1)已知在含有誤差的情況下星光在星敏感器像平面上的坐標(biāo)為(xi,yi),i=1,2,3(以3顆星為例)。估計星敏感器含有誤差的像點坐標(biāo)與無誤差時像點坐標(biāo)差值的范圍,設(shè)置相應(yīng)參數(shù)并初始化種群。
(2)通過初始化的種群對(xi,yi)進行誤差補償,得到新的像點坐標(biāo)(x′i,y′i),i=1,2,3,在此基礎(chǔ)上得出校正過后的觀測矢量b′i,帶入Quest算法得出三軸姿態(tài)角。將解算出的姿態(tài)角帶入目標(biāo)函數(shù)F中,計算F的值。目標(biāo)函數(shù)為:
(17)
其中:θ′、φ′、ψ′為矯正后的姿態(tài)角,θ、φ、ψ為沒有誤差時的姿態(tài)角。
(3)分別將粒子當(dāng)前的F與自身最優(yōu)值和全局最優(yōu)值進行比較,如果粒子當(dāng)前值的F比自身最優(yōu)值更優(yōu),則粒子當(dāng)前值替代成為新的自身最優(yōu)值,類似的,粒子當(dāng)前值的F比全局最優(yōu)值更優(yōu),則粒子當(dāng)前值替代成為新的全局最優(yōu)值。按照公式(15)和公式(16)更新粒子的位置和速度,產(chǎn)生新的種群。
(4)若F小于給定精度或達到最大迭代次數(shù),則程序停止,得出F的最小值,此時的(x′i,y′i)為在此誤差范圍內(nèi),最接近無誤差的像點坐標(biāo)。
(5)根據(jù)含誤差的觀測矢量與校正后的觀測矢量求出誤差像平面與虛擬像平面的姿態(tài)矩陣。
令天球坐標(biāo)系X軸、Y軸、Z軸均旋轉(zhuǎn)60°與星敏坐標(biāo)系重合,則無誤差時參考矢量bi為:
給星敏感器加表1所示誤差:
表1 誤差分布
含有誤差后的觀測矢量b′i為:
此時的三軸姿態(tài)角為:
θ=60.008333972371750φ=60.001596402881255ψ=59.996040471943220
利用粒子群優(yōu)化算法進行標(biāo)定得出歐拉角,連續(xù)運行5次,結(jié)果如表2所示:
表2 標(biāo)定結(jié)果
由表2可知,當(dāng)星敏感器坐標(biāo)系與天球坐標(biāo)系之間的三軸姿態(tài)角均為60°,標(biāo)定精度達到10-10角秒量級,且程序運行穩(wěn)定。
五次標(biāo)定過程中,星敏感器誤差像平面與虛擬像平面之間的姿態(tài)矩陣分別為:
令天球坐標(biāo)系X軸、Y軸、Z軸均旋轉(zhuǎn)45°與星敏坐標(biāo)系重合,給星敏感器加表3所示誤差:
表3 誤差分布
利用粒子群優(yōu)化算法進行標(biāo)定得出歐拉角,連續(xù)運行5次,結(jié)果如表4所示:
表4 標(biāo)定結(jié)果
由表4可知,當(dāng)星敏感器坐標(biāo)系與天球坐標(biāo)系之間的三軸姿態(tài)角均為45°,標(biāo)定精度達到10-10角秒量級,且程序運行穩(wěn)定。
五次標(biāo)定過程中,星敏感器誤差像平面與虛擬像平面之間的姿態(tài)矩陣分別為:
綜上所述,當(dāng)星敏感器坐標(biāo)系與天球坐標(biāo)系之間的三軸姿態(tài)角為不同角度時,均可精確標(biāo)定三軸姿態(tài)角,精度可達10-10角秒。
提高星敏感器在軌標(biāo)定的精度是當(dāng)下的研究熱點,本文針對這一問題提出了一種基于粒子群算法的星敏感器在軌標(biāo)定方法,同時詳細(xì)闡述了該標(biāo)定流程。經(jīng)仿真可知,該方法提高了星敏感器的標(biāo)定的精度,精度可達10-10角秒,具有較大的工程實用價值。但本文未考慮其它誤差源,比如星敏感器鏡頭畸變、溫度等。因此后續(xù)將研究關(guān)于鏡頭畸變與溫度對星敏感器標(biāo)定精度的影響。