文 濤,王宏力,陸敬輝,詹巧林,高志勇
(1.第二炮兵工程學院304教研室,陜西西安 710025;2.空軍駐華北地區軍事代表室,北京 100086)
星敏感器是一種以恒星作為測量對象的高精度飛行姿態測量裝置,因其具有指向精度高、無姿態積累誤差、快速的故障診斷能力和智能化受到了人們的越來越多的重視[1]。星敏感器的基本原理是通過光學系統將瞬間視場內的若干顆恒星成像于其圖像傳感器上,通過數據處理單元對星圖進行星圖預處理、星圖識別、姿態計算等處理,獲得星敏感器瞬時視軸指向信息,然后根據星敏感器在航天器上的安裝位置,經過一定的坐標轉換,最終給出航天器本體坐標系的方位信息[2]。其中,星圖識別是星敏感器工作的關鍵,其算法的優劣直接關系到星敏感器的性能。
用星敏感器進行恒星定姿的星圖識別算法很多,歸納起來主要有三角形算法、主星對算法、柵格算法、多邊形角距算法、奇異值分解算法、神經網絡法和遺傳算法等,但真正能夠應用于工程實際的并不多,比較可靠的仍然是三角形算法[3~5]。三角形算法的核心思想是將由觀測星構成的三角形模式唯一地與導航星表中的相同構型的三角形模式進行匹配。這種方法實現起來比較簡單,也比較形象、直觀,但是,三角形算法的特征模式維數較低,在獲取星模式特征的過程中如果測量誤差較大,較多的冗余匹配會導致識別成功率迅速降低[6]。因此,本文提出一種改進的三角形算法,能夠很好地克服三角形算法的缺點,實現全天自主星圖識別。
三角形有多個幾何形狀特征,如邊長、對角、高、面積、周長等,這些特征具有直觀性強、比例、平移、旋轉不變性等特點。但它們所提供的信息不夠完全,不能由這一類特征唯一地恢復原三角形。如果能充分利用這類特征量則可以限定三角形匹配在某一個范圍內,而不需像傳統的三角形算法那樣對三條邊在眾多角距數據中進行逐一匹配,從而提高匹配識別的效率[7]。三角形外接圓半徑正是這一類幾何形狀特征。
如圖1所示的△ABC,其外接圓圓心為O,外接圓半徑為R,三邊邊長分別為c,a,b,由三角形的正弦定理和余弦定理得

由三角函數sin2A+cos2A=1得

顯然,對于一個三角形,其外接圓半徑R值是唯一的,但是一個R值可能對應多個三角形,即三角形與R值是一對多的關系。從式(3)可以看出,由半徑R和另外兩條邊可以唯一確定另外一條邊,也就是R和兩條邊可以唯一確定一個三角形。如果在進行星圖識別時,首先對R值進行匹配,將得到具有同一R值的三角形集合,然后在該集合內進行邊長的匹配,從而縮小匹配的范圍,提高匹配識別的速度。

圖1 三角形外接圓半徑的計算Fig 1 Computation of triangle circumcircle raduis
導航星數據庫是裝載于星敏感器上存儲器中的用于與觀測星比照的數據,它是星敏感器進行星圖識別和姿態計算的唯一依據[8]。導航星數據庫是同星圖識別方法相對應的,不同的識別方法要求構造不同的導航星數據庫。導航星數據庫一般包括導航星表和導航星特征庫兩部分。
導航星表來自于基本星表,由于基本星表中信息量大,如果把所有的恒星都作為識別對象,在星圖識別過程中會產生龐大的計算量、占用較多的存儲空間,而且由于干擾因素的增多,會大大地提高失配的概率。因此,在利用基本星表建立導航星表之前,必須對基本星表進行篩選,得到真正的用來匹配的導航星。本文采用的基本星表為SKYMAP2000,去除雙星、變星和自行過大的星,提取角距大于1°、星等在0~6.0的星作為導航星,共計3163顆,存儲導航星星號、赤經、赤緯、視星等信息。
導航星特征庫中存儲的是用于進行星圖識別的識別特征,它的存儲內容,存儲方式和讀取方式都將影響星圖識別的速度和成功率[9]。
假設視場內有星Si(i=1,2,3,4,5),其中,星S1距視場中心最近,角距d12≤d13≤d14≤d15,定義星點1為主星,星點Sj(j=2,3,4,5)為第j-1 鄰星,以邊S1S2為公共邊的3個三角形S1S2S3,S1S2S4,S1S2S5為特征三角形,分別作每個特征三角形的外接圓,顯然這些外接圓的圓心均位于公共邊S1S2的中垂線上。定義每個特征三角形的外接圓半徑為特征半徑,依次記為R1,R2,R3,如圖2所示。

圖2 特征三角形與特征半徑的構造Fig 2 Construction of characteristic triangle and characteristic radius
特征三角形是本文星圖識別算法的基本識別幾何結構,故導航星特征庫中必須存儲特征三角形的基本特征信息—頂點和邊長。由于星敏感器視場只能覆蓋天球很小一部分,而且一般只需要識別出5顆星就能達到很高的姿態確定精度,太多的星并不能明顯提高姿態確定精度,反而會增加識別的時間[10]。所以,對于每顆主星,如果視場內的鄰星數等于3顆,則選取所有的鄰星構成2個特征三角形,如果視場內的鄰星數大于3顆,則只需在視場內選取4顆距其最近的鄰星構成3個特征三角形,只存儲特征半徑R和特征三角形的兩條邊,這樣做雖然降低了導航星特征庫的完備性,但卻大大減小了導航星特征庫的存儲容量。為了便于搜索,R是按照升序的方式進行排列的。特征三角形數據庫結構如表1所示,鄰星1為該主星的第1鄰星,鄰星2為另顆鄰星,主星與鄰星1的角距為角距1,主星與另顆鄰星的角距為角距2。

表1 特征三角形數據庫存儲結構Tab 1 Storage structure of the characteristic triangle database
首先,對所有R值進行匹配,將得到具有相同R值的三角形集合,然后在該集合內進行角距的匹配,再通過三角形的組合,將具有公共邊的導航星三角形作為識別結果,最后對識別結果進行驗證,以保證識別的準確性,具體過程如下:
1)當星敏感器拍攝到觀測星圖后,首先判斷觀測星圖中是否存在3顆或3顆以上的觀測星,如果觀測星少于3顆,由于無法構成三角形,因而不能識別;
2)如果觀測星數是3顆,則以距星敏感器視軸最近的星為主星,以基于導航星數據庫的編號原則對鄰星和角距進行編號,解算出R值,搜索滿足R值誤差門限和角距誤差門限的三角形,如果有唯一的三角形,轉(4),否則,識別失敗;
3)如果觀測星數是3顆以上,則以距星敏感器視軸最近的星為主星,以基于導航星數據庫的原則選擇鄰星及對鄰星和角距進行編號,解算出全部R值,依次對R值進行搜索,將滿足R值誤差門限的結果保存到T1中,然后對T1進行角距匹配,方法為:角距1對角距1,角距2對角距2,將滿足角距誤差門限的三角形保存到T2中,最后對T2進行三角形的組合,選取具有公共邊的三角形作為識別結果,如果識別結果唯一,轉(4),否則,識別失敗;
4)根據識別的導航星計算出星敏感器的粗姿態,然后生成參考星圖,與觀測星圖進行比較,如果兩幅星圖分布一致,則表明識別成功,觀測星與導航星一一對應。
為了評價算法的性能,使用 AMD Athlon2800+1.81 GHz的微機,在Windows xp環境下利用Matlab7.0進行仿真研究。采用蒙特—卡羅法,從全天隨機抽取1000個視軸進行仿真。實驗中,在星點上人為加上了不同方差的高斯噪聲作為位置噪聲,對比同等條件下與傳統三角形算法識別結果的差異。仿真實驗參數設置為:視場FOV為15°圓視場、鏡頭焦距為51.5919mm、CCD面陣為1024×1024、每個像元尺寸為 23.1 μm ×23.1 μm。
識別率方面,仿真結果如圖3所示,當位置誤差超過1個像素時,傳統三角形算法識別率迅速降低,而本文算法下降速度較慢,當位置誤差為2個像素時,傳統三角形算法識別成功率降為71%左右,而本文算法仍高于97.42%。識別率的提高主要是因為本文算法通過引入一條公共邊,采用了類似多邊形方法進行識別。

圖3 位置噪聲對識別率影響Fig 3 Effect of position noise on indetification rate
識別速度方面,采用本文算法所用的平均時間約為38.41 ms,而采用傳統三角形算法的平均識別時間為200 ms[11]。識別速度的提高主要是由于本算法通過匹配R值來識別視場內觀測星特征三角形,減少了待識別的三角形數量,縮小了角距匹配的范圍。
導航星數據庫容量方面,傳統的三角形算法的導航星數據庫約為2.42 MB[11],由導航星數據庫的構造原理可知,本文導航星數據庫共包含3 163顆導航星、9 488個導航星特征三角形。星號都是整型,占2 bytes,導航星的基本信息赤經、赤緯和星等為浮點型占4 bytes,特征半徑為整型占2 bytes,所以,整個導航星數據庫的容量為3 163×(2+3×4)+9488(3×2+2×4+2)=191.5 kB,遠小于傳統三角形算法的導航星數據庫容量。
本文提出的基于星三角形外接圓的星圖識別方法通過構造特征三角形,大大減少了待識別三角形的數量,減小了導航星數據庫容量,提高了識別速度。引入了特征半徑,極大地減小了角距匹配的范圍,進一步提高了識別速度。最后通過多三角形的組合,選取具有公共邊的導航星三角形作為識別結果,剔除了冗余識別和誤識別,從而提高了識別率。因此,本算法的實時性和魯棒性等方面較傳統三角形算法均得到明顯的提高,具有較好的應用價值。
[1]陸敬輝,王宏力,孫 淵,等.應用相近模式向量的助興星圖識別算法[J].紅外與激光工程,2011,40(1):164 -167.
[2]江萬壽,謝俊峰,龔健雅,等.一種基于星形的星圖識別算法[J].武漢大學學報:信息科學版,2008,33(1):12 -16.
[3]LamyR G,Bostel J,Mazari B.Star recognition algorithm for APS star tracker oriented triangles[J].Aerospace and Electronic Systerms Magazine,IEEE,2005,20(2):27 -31.
[4]Liebe C C.Star tracker for attitude determination[J].Aerospace and Electronics Systems Magazine,IEEE,1995,10(6):10 -16.
[5]孫曉雄,王宏力,陸敬輝.一種基于星三角形的星圖識別算法[J].傳感器與微系統,2009,28(12):8 -10.
[6]張 磊,何 昕,魏仲慧,等.三角形星圖識別算法的改進[J].光學精密工程,2010,18(2):458 -463.
[7]鄭 勝,吳偉仁,田金文,等.一種基于三角形幾何結構的星圖識別算法[J].光學技術,2004,30(1):70 -73.
[8]陸敬輝,王宏力,孫 淵,等.三角形內切圓的星圖識別算法[J].紅外與激光工程,2011,40(4):752 -756.
[9]呂春紅,周 軍,賀元軍,等.一種改進的快速星圖識別算法[J].計算機測量與控制,2010,18(6):1390 -1392.
[10]張 澤.SINS/CNS組合導航系統研究[D].哈爾濱:哈爾濱工業大學,2007.
[11]李立宏,林 濤,寧永臣,等.一種改進的全天自主三角形星圖識別算法[J].光學技術,2007,26(4):372 -374.