郝冠男,王凌云,李光茜,穆思達(dá)
(長春理工大學(xué) 光電工程學(xué)院,長春 130022)
星敏感器是在航天航空、軍事等任務(wù)中進(jìn)行航天器姿態(tài)測量的視覺傳感器,星敏感器的高精度姿態(tài)信息對航天器姿態(tài)精確控制有著十分重要的作用[1-2]。動態(tài)星模擬器是星敏感器地面測試的標(biāo)定設(shè)備,考慮到航天實驗經(jīng)費(fèi)的成本問題,星敏感器的調(diào)試由動態(tài)星模擬器實時模擬生成的星圖來完成[3]。
星敏感器在進(jìn)行航天器姿態(tài)測量時,需要將當(dāng)前視場中的恒星與導(dǎo)航星表進(jìn)行比較匹配,這一過程稱為星圖識別[4]。恒星在導(dǎo)航星表中的匹配效率決定了星圖識別的效率[5],為了在地面較理想地模擬星圖識別的過程,對于動態(tài)星模擬器星圖的刷新率有較高要求[6]。在全天星表識別時,若直接對整個導(dǎo)航星表進(jìn)行逐一檢索,其效率非常低,為加快導(dǎo)航星表的檢索速度,需要對導(dǎo)航星表的檢索算法進(jìn)行研究改進(jìn),以提高星模擬器的星圖刷新率[7]。
近年來航空航天事業(yè)及其技術(shù)高速發(fā)展,普通的遍歷星表搜索導(dǎo)航星的方法已經(jīng)滿足不了對動態(tài)星模擬器高刷新率的需求,故近年來有很多針對星圖視場分區(qū)算法的研究,主要分為兩類,一是天球均勻劃分方法,該類方法完全拋棄了天球的經(jīng)緯度信息,得到了天球表面的均勻劃分,這類方法劃分的子區(qū)較多,占用設(shè)備的存儲空間非常大,且檢索方式不夠直觀。主要有Ju等人[8]采用圓錐的方法,將天球表面分成11 000個區(qū)域,這種方法分成的圓錐體區(qū)域會互相重疊,會造成同一顆導(dǎo)航星出現(xiàn)在不同的圓錐體區(qū)域內(nèi)。李星等人[9]采用四棱錐分區(qū)的方法,將天球表面分成大約60 000個子區(qū),這種方法會使一個導(dǎo)航星可能出現(xiàn)在多個子分區(qū)內(nèi),會需要大量的存儲空間來進(jìn)行數(shù)據(jù)存儲;二是將全天星圖基于赤經(jīng)、赤緯來進(jìn)行空間劃分。比較經(jīng)典的赤經(jīng)赤緯劃分法主要有陳元枝等人[10]采用的球形矩陣分割的方法,將天球表面分成 800 個區(qū)域;Bone J W[11]采用赤緯帶法,這種方法對導(dǎo)航星進(jìn)行檢索時,可以直接搜索赤緯值;胡宜寧[12]將星表按赤經(jīng)、赤緯分割為等大劃12°×12°的450個子區(qū)。這些方法所使用的導(dǎo)航星數(shù)相對較少,而且比較適用于視場較小的星模擬器系統(tǒng)。
本文提出的外切圓形分區(qū)檢索導(dǎo)航星算法,是基于赤經(jīng)、赤緯來進(jìn)行空間劃分,利用相同的外切圓形將天球均勻劃分,應(yīng)用于星模擬器星圖顯示算法測試系統(tǒng)軟件上,提高了星圖刷新率,同時減少星圖軟件及數(shù)據(jù)庫的內(nèi)存占用。
星圖模擬算法是在一定的視場大小、星敏感器旋轉(zhuǎn)角度的條件下,找出以光軸為中心的視場范圍內(nèi)的恒星,根據(jù)坐標(biāo)變換得到所要模擬的星圖。
本文以史密斯天體物理觀測站(SAO)的星表作為原始星表,選取星表中視星等-2.0~7.0的15 914顆星作為導(dǎo)航星,將星點的經(jīng)緯信息存入對應(yīng)的分區(qū)內(nèi)并計算出其空間坐標(biāo)。通過軟件輸入光軸指向,確定視場所占子區(qū)并篩選導(dǎo)航星,最后在軟件界面上顯示星圖,圖1為算法系統(tǒng)的流程框圖。
圖1 算法系統(tǒng)流程框圖
初次用軟件加載SAO星表后對其進(jìn)行分區(qū),并將導(dǎo)航星數(shù)據(jù)儲存在對應(yīng)的子區(qū)分組內(nèi)。在某一星等時,視場中導(dǎo)航星數(shù)量隨著視場增大而增加[13],已知所用的星模擬器視場較大為20°×20°,考慮到減少導(dǎo)航星的篩選數(shù)量,盡量減少視軸所占子區(qū)個數(shù),保證視場可完全落在1個子區(qū)內(nèi),需取視場的對角線28°,考慮到姿態(tài)誤差偏移,故取外切圓直徑為30°,圓心為橫坐標(biāo)Xo=15n(n=1,3,5,…,23),縱坐標(biāo)Yo=15m(m=5,3,1,-1,-3,-5)的 72個外切圓進(jìn)行分區(qū),將 72個圓形分區(qū)O由從左到右、從上到下的順序編號為1~72號,每四個外切圓會形成一個由四個圓弧圍成的區(qū)域,稱之為H區(qū)域,每有一個圓形分區(qū)就會有一個H區(qū)域,規(guī)定H區(qū)域的編號為H=O+72,O為該H區(qū)域相鄰的左上方圓形分區(qū)編號。算法共將星圖分為144個區(qū),其中位于赤經(jīng)0°與 360°,赤緯+90°與-90°的H區(qū)域合為同一區(qū)域,如圖2所示。
圖2 外切圓星表分區(qū)示意圖
當(dāng)星模擬器接收到視軸指向坐標(biāo)的輸入值時,設(shè)視軸指向的赤經(jīng)、赤緯為(X,Y),判斷該點距離其最近圓心的距離L,若L≤15,則規(guī)定視軸落入該圓形分區(qū)O,若L>15,則規(guī)定視軸落入不規(guī)則分區(qū)H。當(dāng)光軸指向圓形分區(qū)O內(nèi)時,星模擬器視場可能占據(jù)1~7個分區(qū);若光軸指向H分區(qū)內(nèi)時,星模擬器視場可能占據(jù)4~6個分區(qū),具體如圖3所示。
圖 3(b)為圖3(a)在以圓形分區(qū)O為圓心建立直角坐標(biāo)系的第一象限的放大,其中由紅色曲線與藍(lán)色直線所圍成的區(qū)域之中的數(shù)字表示:當(dāng)視軸指向該區(qū)域時視場所占據(jù)的星圖分區(qū)個數(shù)。由于該分區(qū)算法的對稱性,其他三象限均與圖3軸對稱或中心對稱。圖3內(nèi)紅色曲線共有16條,曲線均為圓弧,在以圓形分區(qū)O為圓心建立直角坐標(biāo)系,16條圓弧的圓心均勻分布在其四個象限內(nèi),圖3內(nèi)已標(biāo)注的圓心在其第一象限紅色1、2、3、4號圓弧公式對應(yīng)如下:
其中,圓弧半徑R=15;R1=10;R2=20;(xi,yi)為離視軸坐標(biāo)最近的圓形分區(qū)O圓心坐標(biāo)。由于分區(qū)對稱性,在第二象限圓弧圓心坐標(biāo)為(xi-R1,yi+R1),(xi-R2,yi+R2),(xi-R1,yi+R2),(xi-R2,yi+R1),第三象限為(xi-R1,yi-R1),(xi-R2,yi-R2),(xi-R1,yi-R2),(xi-R2,yi-R1),第四象限為(xi+R1,yi-R1),(xi+R2,yi-R2),(xi+R1,yi-R2),(xi+R2,yi-R1)。全天球星點數(shù)據(jù)按照對應(yīng)的星圖分區(qū)存儲,當(dāng)視軸落入對應(yīng)區(qū)域時,即可快速調(diào)用相應(yīng)星圖分區(qū)數(shù)據(jù)。例如視軸落入圖2中25號分區(qū)的7號區(qū)域內(nèi),根據(jù)圖2、圖3判斷視場所占據(jù)所有的星圖分區(qū),需要索引的子區(qū)有13、14、25、26、85、96、97。
圖3 視場所占子區(qū)個數(shù)示意圖
星模擬器最終通過星圖顯示算法測試系統(tǒng)軟件顯示星圖,需要以天球坐標(biāo)系為基礎(chǔ)的星表中恒星的坐標(biāo),旋轉(zhuǎn)變換得到星敏感器坐標(biāo)系中坐標(biāo),通過投影變換為CCD成像面的平面坐標(biāo)[14]。以天球為基準(zhǔn)建立三維直角坐標(biāo)系,恒星在天球坐標(biāo)系下的位置為赤經(jīng)α和赤緯β,如圖4所示。
圖4 天球坐標(biāo)系
實際中星敏感器的光學(xué)坐標(biāo)中心和地球球心默認(rèn)為重合,按照X-Y-Z軸的順序?qū)⑻烨蜃鴺?biāo)系旋轉(zhuǎn)與星敏感器坐標(biāo)系重合,可以得出3×3的旋轉(zhuǎn)矩陣H,該方法為先繞X軸逆時針旋轉(zhuǎn)α得到Rx,再繞Y軸逆時針旋轉(zhuǎn)β得到Ry,最后繞Z軸逆時針旋轉(zhuǎn)γ得到Rz,對應(yīng)XYZ軸的旋轉(zhuǎn)矩陣如下:
圖4中恒星在天球坐標(biāo)系下的坐標(biāo)s(λ,θ)在天球空間直角坐標(biāo)系中的單位方向矢量[XsYsZs]T可以表示為:
則星敏感器坐標(biāo)系下的方向矢量[X1Y1Z1]T,可以用天球坐標(biāo)系下的方向矢量[XsYsZs]T表示,如下:
最后再將星敏感器坐標(biāo)系下的坐標(biāo)[X1Y1Z1]T轉(zhuǎn)化為液晶光閥上的坐標(biāo)(X,Y):
式中,n和m為液晶光閥每行和每列像素點個數(shù);R為視場角大小。
因為星空被視為球面,赤經(jīng)為0°和360°實際是重合的,若視軸落在邊界區(qū)域上則要考慮越界問題[15],但與查找子區(qū)步驟不同的是,導(dǎo)航星的查找,只考慮赤經(jīng)方向的越界,而不考慮赤緯方向上的[16]。查找到視場所在分區(qū)后,只需在分區(qū)內(nèi)篩選位于視場內(nèi)的導(dǎo)航星即可,設(shè)某星點在分區(qū)內(nèi)的坐標(biāo)為(xs,ys),視軸指向為(X,Y),則:
當(dāng)滿足上式時,即可判斷該星點在星模擬器視場內(nèi)可作為導(dǎo)航星。
首次載入星表時,星圖顯示算法測試系統(tǒng)軟件會自動對星表進(jìn)行處理并更新數(shù)據(jù)庫,將星表進(jìn)行分區(qū),計算出星表中所有導(dǎo)航星的空間坐標(biāo)并儲存,之后只需通過給出光軸的赤經(jīng)、赤緯坐標(biāo)即可快速檢索導(dǎo)航星并顯示,經(jīng)多次測試可算出平均刷新時間。軟件界面左側(cè)上方可顯示視軸指向,星圖生成星點數(shù)量和刷新時間,左側(cè)下方可顯示當(dāng)前顯示星圖中各個星點的赤經(jīng)、赤緯及星點個數(shù)。圖5為使用Visual Studio2015編寫的星圖顯示算法測試系統(tǒng)軟件界面。
圖5 星圖顯示算法測試系統(tǒng)軟件
使用積分計算出圖3各區(qū)面積可得到視場所占子區(qū)數(shù)量的概率,通過對含有15 914顆導(dǎo)航星的SAO星表進(jìn)行檢索,對1 000次星圖刷新的時間進(jìn)行統(tǒng)計,如表1所示,并附上視場所占子區(qū)個數(shù)時,對應(yīng)生成的星圖。
表1 視場所占子區(qū)個數(shù)與對應(yīng)刷新時間
圖6—圖12對應(yīng)表1中視場占據(jù)1~7個子區(qū)時所生成的星圖,圖13為使用經(jīng)典遍歷星表算法生成的星圖,圖14為星圖軟件Stellarium生成的星圖。使用經(jīng)典遍歷算法進(jìn)行1 000次生成模擬星圖的測試,得出平均檢索時間為78.45 ms。根據(jù)表1中數(shù)據(jù)可得視場所占子區(qū)越少時,所調(diào)用搜索子區(qū)就越少,星圖的刷新率就越快。算得整體平均檢索時間為9.43 ms,平均刷新率為106 Hz;當(dāng)視場占據(jù)子區(qū)個數(shù)小于6時,平均檢索時間達(dá)到8.81 ms,即有76%的概率星圖刷新率超過110 Hz,與不分區(qū)的星圖檢索時間對比縮短了近8倍;視場占據(jù)子區(qū)個數(shù)為6、7時,平均刷新時間為11.09 ms,平均刷新率為90 Hz,不會對系統(tǒng)整體的穩(wěn)定性產(chǎn)生較大影響。
圖6 (75.4465,16.0143)178顆星
圖7 (253.1012,-43.3765)170顆星
圖8 (199.6887,-42.9752)142顆星
圖9 (345.5706,58.6441)115顆星
圖10 (268.4118,57.1547)61顆星
圖11 (51.1319,-68.2899)45顆星
圖12 (24.5137,-75.0705)27顆星 算法生成
圖13 (24.5137,-75.0705)27顆星經(jīng)典遍歷星表算法生成
圖14 (24.5137,-75.0705)27顆星Stellarium星圖
圖12—圖14為視軸指向相同赤經(jīng)、赤緯時,由外切圓形分區(qū)檢索導(dǎo)航星算法、經(jīng)典遍歷星表算法與星圖軟件Stellarium所生成視場大小相同的對應(yīng)星圖,經(jīng)對比可以看出三幅星圖生成的模擬星圖星點位置一致,驗證了算法的準(zhǔn)確性。同時軟件本身與數(shù)據(jù)庫大小約為200 MB,比目前常用的多星點數(shù)據(jù)檢索算法存儲量有所減少。
本文通過提出了一種外切圓星表分區(qū)算法,將星表分為比星模擬器視場略大的圓形區(qū)域O,與不規(guī)則區(qū)域H共144個子區(qū),使用Visul Studio2015編寫出的星圖顯示測試系統(tǒng)軟件,載入15 941顆導(dǎo)航星的SAO星表,通過加載星表時處理數(shù)據(jù)庫,輸入視軸坐標(biāo)鎖定所需檢測子區(qū)及其個數(shù),刷新率達(dá)到110 Hz的概率有76%,總體的平均刷新率可達(dá)106 Hz,縮短了星圖刷新時間。通過在相同的視軸坐標(biāo)下,算法生成的星圖與經(jīng)典遍歷算法生成的星圖、Stellarium星圖軟件的星圖進(jìn)行對比,結(jié)果表明三幅星圖的星點位置相同,驗證了算法的準(zhǔn)確性。該算法的刷新速率與目前較先進(jìn)的高刷新率算法水平相近,且算法是基于20°×20°的視場提出的,理論上可以向下兼容更小的視場,具備了一定的通用性。處理的數(shù)據(jù)庫大小約為200 MB,達(dá)到了節(jié)省存儲空間的目的。