張宇軒, 王宏力, 何貽洋, 馮 磊, 肖永強(qiáng), 張鵬飛
(1.火箭軍工程大學(xué)導(dǎo)彈工程學(xué)院,西安 710000; 2.火箭軍指揮學(xué)院作戰(zhàn)實驗室,武漢 430000)
星敏感器是在恒星參照系下以星空為觀察對象的高精度姿態(tài)敏感器,因其高達(dá)角秒級的定姿精度而在衛(wèi)星等飛行器的姿態(tài)控制中被廣泛使用[1]。其中,光學(xué)誤差會對星敏感器的定姿精度造成嚴(yán)重影響,因此為保證星敏感器的定姿精度以及維護(hù)其工作的可靠性,必須要進(jìn)行星敏感器的光學(xué)誤差標(biāo)定[2]。
星敏感器光學(xué)誤差參數(shù)的標(biāo)定主要是針對焦距、主點和光學(xué)畸變等參數(shù)來進(jìn)行標(biāo)定,而兩步法因具有在估計主點和焦距的同時也標(biāo)定了光學(xué)畸變且標(biāo)定過程簡易快速的特點,成為了最常用的標(biāo)定方法[3]。但由于迭代初值的選擇對標(biāo)定結(jié)果的影響較大且該方法具有魯棒性差等缺點,極大地影響了兩步法的標(biāo)定精度,制約了兩步法的實用性[4]。因此,在詳細(xì)分析該兩步法存在的問題后,結(jié)合人工魚群算法(Artificial Fish Swarms Algorithm,AFSA)對兩步法的不足進(jìn)行優(yōu)化,以此提高該方法用于星敏感器光學(xué)誤差標(biāo)定的精度。
根據(jù)星敏感器的小孔成像模型,在考慮主點位置偏差但忽略星敏感器測量噪聲和光學(xué)畸變的情況下,第i(i=1,…,N)顆恒星對應(yīng)的單位測量矢量可表示為
(1)
式中:(xi,yi)為第i顆恒星在星敏感器成像平面坐標(biāo)系中的坐標(biāo);(Xc,Yc)為成像平面坐標(biāo)系主點的坐標(biāo)。
在天球坐標(biāo)系中,導(dǎo)航星i對應(yīng)赤經(jīng)和赤緯坐標(biāo)(αi,δi),在導(dǎo)航星表中與之對應(yīng)的星光矢量可表示為
(2)
理想情況下,測量的星光矢量ωi與ωj的夾角和導(dǎo)航星表中對應(yīng)的星光矢量νi與νj的夾角應(yīng)該是相等的,有如下關(guān)系
sinθi j=|νi×νj|=|ωi×ωj|。
(3)
相對于常用來進(jìn)行誤差標(biāo)定的星角距余弦值,在小角度計算時,正弦值有著比余弦值更敏感的感知,因此使用正弦值進(jìn)行計算將會得到更高的精度[5]。
考慮光學(xué)畸變并結(jié)合式(1)、式(3)可得
(4)
式中,
(5)
(δxi,δyi)為星點i(xi,yi)的光學(xué)畸變量,x′i=xi-δxi,y′i=yi-δyi。
(6)
由于一般星敏感器工作狀態(tài)下正常視場內(nèi)的導(dǎo)航星數(shù)目大于3,則可得到超定方程組
(7)
(8)
bk+1=bk+Δbk
(9)
光學(xué)畸變包括徑向畸變和切向畸變等[6]。徑向畸變引起的圖像點沿徑向變化且對星敏感器標(biāo)定影響較大,而其他畸變誤差源的影響非常小且可忽略[7]。因此,在考慮光學(xué)畸變時僅考慮徑向畸變引起的畸變量,取一階徑向畸變,得到光學(xué)畸變的近似式為
δx=q1xr2
(10)
δy=q1yr2
(11)
將式(10)、式(11)寫作如下形式
(12)
式中:(xqi,yqi)為實際星點位置;(xi,yi)為理想星點位置;q1為一階徑向畸變系數(shù)。
假設(shè)有m個星點,結(jié)合式(3)、式(12)可得
D·q1=d
(13)
對式(13)求解最小二乘法可得
q1=(DTD)-1DTd。
(14)
以上標(biāo)定原理用于星敏感器光學(xué)誤差參數(shù)估計,基于星角距正弦值建立的方程和兩步法迭代思想,操作如下:
該方法流程如圖1所示。
圖1 兩步法標(biāo)定流程圖Fig.1 Flow chart of two-step calibration
該光學(xué)誤差標(biāo)定方法利用正弦值建立觀測方程,對小角度變化十分敏感,因此,相比余弦值更有助于標(biāo)定精度的提高,并且通過不斷迭代以同時完成主點、焦距以及一階系數(shù)的標(biāo)定,符合實用的快速和一體化的要求。但由于該方法使用最小二乘法進(jìn)行估計,初值對標(biāo)定速度、精度甚至算法的魯棒性的影響都較大[8]。
為了克服兩步法的初值問題,結(jié)合AFSA算法對初值要求不高、具備較好的全局尋優(yōu)能力且能快速跳出局部最優(yōu)解的特點,引入AFSA算法來得到一個較優(yōu)的初值從而優(yōu)化兩步法的初值問題。
首先簡單介紹一下AFSA算法的各項參數(shù)。有總數(shù)為N的人工魚群,人工魚個體的狀態(tài)X=(x1,x2,…,xn)(xi(i=1,2,…,n)為尋優(yōu)的變量),人工魚移動的最大步長Sstep以及視野Vvis,嘗試次數(shù)Ttimes、擁擠度因子δ、人工魚個體i,j之間的距離di j=|xi-xj|,人工魚當(dāng)前所在位置食物濃度表示為Y=f(x)(Y為目標(biāo)函數(shù)值,又稱適應(yīng)度)、人工魚各種行為函數(shù)以及評價函數(shù),rand()是0~1之間的隨機(jī)數(shù)[9]。
人工魚群算法是一種基于模擬魚群行為的優(yōu)化算法,人工魚個體更新其狀態(tài)主要靠以下4種行為。
1) 覓食行為。覓食行為主要就是在尋優(yōu)過程中向著較優(yōu)方向進(jìn)行迭代,依靠人工魚Xi的虛擬視野(如圖2所示),在其視野內(nèi)隨機(jī)選擇一個狀態(tài)Xj
圖2 人工魚的視覺概念圖Fig.2 Visual concept map of artificial fish
Xj=Xi+rand()·Vvis
(15)
比較它們的適應(yīng)度函數(shù)值,如果發(fā)現(xiàn)Yj比Yi優(yōu),則人工魚Xi向Xj的方向移動一步,觸發(fā)前進(jìn)條件
(16)
否則在視野內(nèi)重新隨機(jī)選擇狀態(tài)Xj,判斷是否觸發(fā)前進(jìn)條件,若在Ttimes次后仍無觸發(fā)前進(jìn)條件,則觸發(fā)隨機(jī)移動條件,使Xi到達(dá)一個新的狀態(tài),即
Xnext=Xi+rand()·Sstep。
(17)
2) 聚群行為。人工魚Xi探索當(dāng)前視野內(nèi)(di j (18) 否則執(zhí)行覓食行為。 3) 追尾行為。追尾行為指的是人工魚向其視野區(qū)域內(nèi)最優(yōu)個體的方向移動的一種行為,人工魚Xi探索當(dāng)前視野內(nèi)(di j (19) 否則執(zhí)行覓食行為。 4) 隨機(jī)行為。隨機(jī)行為是覓食行為的一個缺省行為,表示人工魚Xi在虛擬視野內(nèi)會向食物更多的方向快速且隨機(jī)移動,到達(dá)狀態(tài)Xnext,即 Xnext=Xi+rand()·Vvis。 (20) AFSA算法求解較優(yōu)初值的過程如下所述。 1) 人工魚群的產(chǎn)生。 Q={X1,X2,…,XN} (21) 式中,人工魚Xi=(XciYcifi)T。 2) 計算目標(biāo)函數(shù)。 目標(biāo)函數(shù)實際上是用于評價優(yōu)劣的適應(yīng)度函數(shù),使得誤差補(bǔ)償后的星點實際坐標(biāo)(x′i,y′i)盡可能地接近理想坐標(biāo)(xi,yi)是星敏感器光學(xué)誤差標(biāo)定的目的,所以可以定義目標(biāo)函數(shù)為 (22) 式中,f(Xi)為人工魚Xi的適應(yīng)度。 3) 人工魚數(shù)據(jù)更新。 在初始化后經(jīng)過適應(yīng)度計算取得最優(yōu)人工魚的狀態(tài)并賦值給公告牌,對每條人工魚個體進(jìn)行行為評價,選擇應(yīng)執(zhí)行的行為(包括覓食行為fPrey()、聚群行為fSwarm()、追尾行為fFollow()、隨機(jī)行為fMove()),按照式(15)~(20)更新每條個體后生成新魚群,并使用評價函數(shù)fEvaluate()來評價所有個體,將優(yōu)于公告牌的狀態(tài)更新到公告牌上。 4) 算法終止條件。 當(dāng)公告牌上最優(yōu)解的適應(yīng)度函數(shù)小于給定精度,或者迭代次數(shù)Iite超過最大迭代次數(shù)IiteM時,算法終止。 人工魚群算法的流程如圖3所示。 圖3 人工魚群算法流程圖 仿真實驗所采用的星敏感器相關(guān)參數(shù)如表1所示。 表1 星敏感器性能指標(biāo)Table 1 Star sensor performance indexes 相關(guān)仿真參數(shù)會根據(jù)實際的星敏感器型號進(jìn)行針對性設(shè)計,星敏感器參數(shù)設(shè)置為:主點標(biāo)準(zhǔn)值Xc=1.00 mm,Yc=1.00 mm,焦距標(biāo)準(zhǔn)值f=43.56 m。根據(jù)經(jīng)驗得參考指標(biāo)如下:主點偏差在10個像素以內(nèi),這里取0.15 mm,則主點真實值為(1.15,1.15)(單位,mm);焦距偏差在0.02倍的理想焦距內(nèi),對應(yīng)焦距真實值為44.43 mm;選擇鏡頭一階畸變系數(shù)的真實值為q1=5×10-4。同時為消除光學(xué)畸變耦合對焦距標(biāo)定的影響,根據(jù)文獻(xiàn)[10]的結(jié)論,將星光入射角范圍限制在入射角閾值βmax內(nèi)。 首先需要驗證初值設(shè)置對兩步法標(biāo)定是否有較大影響,為此選擇真實值附近的20組初始值來進(jìn)行兩步法迭代,經(jīng)過40次的迭代輸出主點、焦距和一階畸變系數(shù)的標(biāo)定結(jié)果,通過對比仿真圖中數(shù)據(jù)的變化大小來判斷初值的不同對標(biāo)定結(jié)果產(chǎn)生的影響大小。仿真數(shù)據(jù)結(jié)果見圖4。 圖4 不同初值條件下兩步法標(biāo)定結(jié)果Fig.4 Calibration results of the two-step method under different initial conditions 由圖4可知:對于不同初始值輸入得到的標(biāo)定結(jié)果差別較大,表明對于星敏感器光學(xué)誤差標(biāo)定來說,兩步法在處理參數(shù)多且非線性耦合的光學(xué)誤差標(biāo)定問題上有著顯著缺點,易受初值設(shè)定影響,使得標(biāo)定結(jié)果不穩(wěn)定,且容易被困在局部最優(yōu)中無法得到更優(yōu)解,導(dǎo)致標(biāo)定的可靠性受到影響,魯棒性較差。 仿真驗證人工魚群算法計算初值后代入兩步法標(biāo)定中可以優(yōu)化兩步法的不足,在進(jìn)行仿真初始化時,將AFSA算法的最大迭代次數(shù)設(shè)置為300,人工魚的個體數(shù)量N=30、感知距離Vvis=25 mm、移動的最大步長Sstep=3 mm、覓食行為的嘗試最大次數(shù)Ttimes=50,人工魚群的擁擠度因子δ=27以及適應(yīng)度函數(shù)的精度閾值設(shè)置為10-3,當(dāng)公告牌上最優(yōu)人工魚對應(yīng)的適應(yīng)度函數(shù)值小于精度閾值,則迭代終止。仿真結(jié)果如圖5所示。 圖5 人工魚群算法計算光學(xué)誤差各參數(shù)初值結(jié)果Fig.5 Initial values of optical errors calculated byartificial fish swarm algorithm 由圖5可知,使用人工魚群算法計算用于代入兩步法的初值的結(jié)果在迭代91次左右之后趨于穩(wěn)定,得到的x軸主點參數(shù)初值是1.147 13 mm,y軸主點參數(shù)初值是1.148 85 mm,焦距初值為44.636 1 mm。對比仿真設(shè)置的對應(yīng)真實值(1.15 mm,1.15 mm,44.43 mm)發(fā)現(xiàn),使用人工魚群算法得到的值與真實值比較接近,甚至在精度要求一般的情況下可以作為光學(xué)誤差標(biāo)定的結(jié)果來輸出,由此可見,人工魚群算法的全局搜索能力能夠跳出局部最優(yōu),搜索出一組非常接近真實值的全局最優(yōu)解,從而作為初值代入兩步法中進(jìn)行標(biāo)定,進(jìn)而提升兩步法標(biāo)定的精度,增強(qiáng)其算法的魯棒性。 得到人工魚群算法計算出的初值后代入兩步法,得到仿真結(jié)果如圖6所示。 圖6 基于人工魚群算法的兩步法光學(xué)誤差各參數(shù)標(biāo)定結(jié)果 通過人工魚群算法提供初值的兩步法標(biāo)定的仿真結(jié)果如下:x軸主點位置的標(biāo)定結(jié)果為1.139 7 mm,y軸主點位置為1.123 8 mm,焦距的標(biāo)定結(jié)果為44.442 7 mm,一階畸變系數(shù)的標(biāo)定結(jié)果為3.983 8×10-4,標(biāo)定結(jié)果同實驗初始設(shè)置的真實值相比,x軸主點的標(biāo)定誤差是0.010 3 mm,y軸主點的標(biāo)定誤差是0.026 2 mm,焦距的標(biāo)定誤差為0.011 5 mm,一階畸變系數(shù)的標(biāo)定精度為1.016 2×10-4。 通過對比標(biāo)定結(jié)果可知,利用人工魚群算法的全局搜索能力來得到一個較優(yōu)解,并作為初值代入兩步法中彌補(bǔ)兩步法易受初值影響的不足,通過輸入一個較優(yōu)的初值并利用兩步法局部尋優(yōu)的特性,最終可計算得到具有較高精度的光學(xué)誤差參數(shù)的估計值。 本文以星敏感器的光學(xué)誤差對測量精度影響較大為起點,針對星敏感器光學(xué)誤差標(biāo)定方法中兩步法的不足,提出了一種利用人工魚群算法為兩步法提供初始輸入的改進(jìn)方法。改進(jìn)的兩步法利用了人工魚群算法對初值要求不高、具有全局尋優(yōu)能力、解算速度較快和魯棒性強(qiáng)的特點,還利用了兩步法本身局部尋優(yōu)能力強(qiáng)的特點,先使用人工魚群算法計算得到一個全局較優(yōu)的解,再用該解作為初值代入兩步法中,最終解算出標(biāo)定結(jié)果。由仿真結(jié)果可知,該方法可較穩(wěn)定地得到精度較高的標(biāo)定值,同時可得到x軸和y軸主點坐標(biāo)、焦距以及一階畸變系數(shù)這4個參數(shù)的估計,該方法不依賴昂貴的地面標(biāo)定設(shè)備,有著靈活的使用場景并且具備良好的可靠性。3 仿真實驗與結(jié)果分析
3.1 實驗條件設(shè)計
3.2 不同初值下的兩步法標(biāo)定仿真結(jié)果
3.3 基于AFSA算法優(yōu)化的兩步法標(biāo)定仿真
4 結(jié)論