張志方, 林瀚崢, 李公軍
1. 北京控制工程研究所, 北京 100094
2. 空間智能控制技術(shù)全國重點實驗室, 北京 100094
對于配置了星敏感器和陀螺的衛(wèi)星,普遍采用基于星敏感器和陀螺的卡爾曼濾波方法確定衛(wèi)星姿態(tài)[1].文獻[2]將一種自適應(yīng)強跟蹤濾波算法應(yīng)用于衛(wèi)星姿態(tài)確定中,兼顧精度和魯棒性.文獻[3]設(shè)計了基于無跡卡爾曼濾波的星敏感器和陀螺組合定姿算法,提高了定姿精度.文獻[2-3]以及文獻[4-12]中濾波方法的增益矩陣及誤差方差矩陣需要實時遞推計算,其計算量均較大.
定常增益卡爾曼濾波(constant gain Kalman filtering,CGKF)是用常值增益矩陣代替卡爾曼濾波增益矩陣的遞推計算,不需要實時計算誤差方差矩陣以及濾波增益矩陣,大幅減小了計算量,適合星載計算機在軌實時計算,文獻[13-15]對此進行了論述,文獻[13]給出了定常增益卡爾曼濾波器的設(shè)計方法,并給出了觀測方程的具體形式.從定常增益矩陣的求解可知,它與星敏感器的安裝矩陣相關(guān),而且分為單星敏定姿和雙星敏定姿兩種形式,不同的星敏感器參與定姿時均需要設(shè)計相應(yīng)的定常增益矩陣,對于配置3個或3個以下星敏感器的衛(wèi)星,定常增益矩陣個數(shù)及濾波器的復(fù)雜度尚可接受,對于配置更多星敏感器的大型航天器,則存在濾波器定常增益矩陣過多、系統(tǒng)復(fù)雜的問題.
本文在簡化濾波器設(shè)計、減少定常增益矩陣方面進行了研究,提出了一種基于虛擬星敏感器的姿態(tài)確定方法,統(tǒng)一了濾波器定常增益矩陣,節(jié)省了星載計算機資源對工程應(yīng)用具有重要意義.
(1)
由衛(wèi)星的姿態(tài)運動學(xué)方程可以建立如下狀態(tài)估計誤差方程:
(2)
式中,F(t)為狀態(tài)轉(zhuǎn)移矩陣,w(t)為系統(tǒng)噪聲.在時間區(qū)間[tk-1,tk]上,離散化的狀態(tài)方程為
ΔXk=Φk/k-1ΔXk-1+Wk-1
(3)
式中,Φk/k-1為tk-1時刻至tk時刻的一步轉(zhuǎn)移陣,Wk-1為系統(tǒng)激勵噪聲序列(零均值的白噪聲隨機序列).
濾波器觀測方程為
ΔZk=HkΔXk+Vk
(4)
狀態(tài)一步預(yù)測
(5)
狀態(tài)估計
(6)
濾波增益矩陣計算
(7)
一步預(yù)測均方誤差
(8)
估計均方誤差
Pk=(I-KkHk)Pk/k-1
(9)
式中,Qk為系統(tǒng)噪聲序列的方差陣,Rk為量測噪聲序列的方差陣.按文獻[13]設(shè)計觀測方程,采用單星敏感器定姿時,量測陣H為
(10)
采用兩個星敏感器定姿時,量測陣H為
(11)
式中,XB、YB、ZB、XB,A、YB,A、XB,B和YB,B為星敏感器的安裝矢量,Hk、Qk和Rk為常值矩陣,穩(wěn)態(tài)飛行時Φk/k-1也近似為常值,矩陣Pk在穩(wěn)態(tài)時收斂于定常矩陣P0,濾波增益矩陣Kk在穩(wěn)態(tài)時也將收斂于定常矩陣K0.由以上確定出的定常增益矩陣K0不需要實時計算,省去了計算矩陣Pk/k-1、Pk及Kk,既節(jié)省了計算時間,又保證了濾波系統(tǒng)的穩(wěn)定性,定常增益卡爾曼濾波廣泛應(yīng)用于星敏感器和陀螺的姿態(tài)確定系統(tǒng)中.
從式(7)、(10)和(11)可以看出,增益矩陣K與量測陣H相關(guān),而量測陣H與星敏感器安裝矩陣相關(guān),即采用不同的星敏感器定姿時定常增益矩陣不同.以配置3個星敏感器的衛(wèi)星為例,對地定向時需要6個定常增益矩陣,使用的定姿星敏分別對應(yīng)星敏1、星敏2、星敏3、星敏1和2、星敏1和3及星敏2和3.如果衛(wèi)星還設(shè)計了慣性定向飛行模式,由于此時的Φk/k-1不同,因此還需要再增加6個定常增益矩陣.對于常規(guī)衛(wèi)星,一般配置2~3個星敏,定常增益矩陣一般不超過12個,數(shù)量尚可接受,但對于由多個艙段組成的大型航天器,星敏感器總數(shù)可能多達10個,定常增益矩陣的個數(shù)N最多有110個.
(12)
其中k為星敏個數(shù),每一個定常增益矩陣都是6行4列的矩陣,110個增益矩陣一共有2 640個參數(shù),每個參數(shù)都有可能需要在軌修改,這對星載計算機有限的存儲、計算資源來說無疑是巨大的負(fù)擔(dān),因此需要尋找簡便的方法來實現(xiàn)多星敏感器定姿,減少常增益矩陣,簡化濾波器設(shè)計,本文提出一種基于虛擬星敏感器的濾波方法來解決該問題.
由上節(jié)分析可知,導(dǎo)致定常增益矩陣過多的原因是量測陣H與星敏感器的安裝矩陣相關(guān),而不同的星敏感器的安裝矩陣不同.基于虛擬星敏定姿的核心思想是構(gòu)造虛擬星敏,該虛擬星敏的安裝矩陣固定且唯一,為計算簡便,虛擬星敏的測量系與衛(wèi)星本體系重合,虛擬星敏的光軸矢量與星體X軸平行,橫軸矢量與星體的X軸平行,安裝矩陣為單位陣.基于虛擬星敏定姿的定常增益矩陣與星敏感器的實際安裝矩陣無關(guān),與固定且唯一的虛擬星敏安裝矩陣相關(guān).當(dāng)衛(wèi)星有對地定向飛行和慣性定向飛行兩種模式時,定常增益矩陣僅為兩個.
基于虛擬星敏定姿分為3步:1)星敏感器數(shù)據(jù)預(yù)處理,將所有星敏的測量數(shù)據(jù)統(tǒng)一到當(dāng)前星時;2)統(tǒng)一測量基準(zhǔn),完成星敏感器相對基準(zhǔn)標(biāo)定[17-20];3)構(gòu)造虛擬星敏的輸出數(shù)據(jù),基于虛擬星敏定姿.
對所有有效的星敏感器測量數(shù)據(jù)進行預(yù)處理,將測量數(shù)據(jù)的時間補齊,進行時間滯后補償、光行差補償?shù)?將各星敏感器的測量數(shù)據(jù)統(tǒng)一轉(zhuǎn)換到當(dāng)前星時下的輸出,方便后續(xù)使用統(tǒng)一時間基準(zhǔn)的輸出數(shù)據(jù).下面給出一種計算量小的時間滯后補償及光行差補償算法.
若星敏感器i的輸出為四元素q,記
q=[q1q2q3q4]T
其中q4為標(biāo)量.若星敏感器i的輸出為光軸矢量ZI,m和橫軸矢量XI,m,則由光軸矢量和橫軸矢量轉(zhuǎn)換得到四元素q,計算過程如下:
首先計算星敏感器i測量系相對慣性系的方向余弦矩陣
(13)
再由CSI得到四元素q.
由四元素q及星體姿態(tài)角速度ωS進行時間補償計算
(14)
根據(jù)衛(wèi)星姿態(tài)運動學(xué)方程有
(15)
其中,
(16)
(17)
(18)
(19)
記光行差補償量γ=[γxγyγz]T
(20)
式中,vx、vy和vz為衛(wèi)星在赤道慣性系的速度,c為常值299 792.458.光行差補償計算公式如下(同時完成歸一化和正交化):
光軸矢量補償及歸一化
橫軸矢量補償及歸一化
叉乘求Y矢量并歸一化
叉乘求橫軸矢量并歸一化
為了統(tǒng)一星敏感器的測量基準(zhǔn),以下給出一種適合星載計算機在軌實時計算的星敏感器相對基準(zhǔn)標(biāo)定方法,其標(biāo)定原理為:根據(jù)同一時刻,各個星敏感器的輸出數(shù)據(jù)和安裝矩陣確定的衛(wèi)星本體相對慣性系的姿態(tài)矩陣相等,由此等式以一個星敏感器的理論安裝矩陣修正另一個星敏感器的理論安裝矩陣.
在進行星敏感器相對基準(zhǔn)標(biāo)定之前,先按上節(jié)所述完成星敏感器測量數(shù)據(jù)的時間滯后補償和光行差補償,并完成光軸矢量和橫軸矢量的正交化和歸一化.下面以星敏感器1為標(biāo)定基準(zhǔn),進行星敏感器2的相對基準(zhǔn)在軌標(biāo)定算法描述.
由星敏感器的光軸矢量和橫軸矢量,得到星敏感器1當(dāng)前星時(t時刻)的輸出CS1I和星敏感器2當(dāng)前星時的輸出CS2I
(21)
設(shè)星敏感器2的理論安裝矩陣與以星敏感器1為基準(zhǔn)進行標(biāo)定后的安裝矩陣之間誤差矩陣為CΔ,記標(biāo)定后的星敏感器2的安裝矩陣為CS2B,且
根據(jù)星敏感器2的t時刻的輸出CS2I和星敏感器2標(biāo)定后的安裝矩陣CS2B,可得t時刻星體相對慣性系的姿態(tài)矩陣
(22)
由于相同測量基準(zhǔn)得到的同一時刻的星體相對慣性系姿態(tài)矩陣相等,即C1BI=C2BI,則有
(23)
由此可得
(24)
一般標(biāo)定誤差角為小量,記標(biāo)定誤差角為δx、δy和δz,3-1-2轉(zhuǎn)序下CΔ近似為
(25)
由式(24)和(25)可反解得到標(biāo)定誤差角δx、δy和δz,考慮到星敏感器測量噪聲的影響,對標(biāo)定誤差角δx、δy和δz進行濾波,濾波形式如下:
(26)
(27)
式中,RZ、RX和RY分別表示繞星體Z軸、X軸和Y軸旋轉(zhuǎn)所得的方向余弦矩陣,CΔ2為星敏2的安裝誤差矩陣.
以星敏感器1為基準(zhǔn),標(biāo)定后的星敏感器2的安裝矩陣為
(28)
同理以星敏感器1為基準(zhǔn)標(biāo)定其他星敏,得到其他星敏標(biāo)定后的安裝矩陣.
通過相對基準(zhǔn)標(biāo)定,實現(xiàn)所有星敏感器的測量基準(zhǔn)統(tǒng)一.一般選擇結(jié)構(gòu)穩(wěn)定性較好的星敏感器作為基準(zhǔn)星敏,其他星敏感器以它為基準(zhǔn)進行標(biāo)定.
為了簡化計算,將虛擬星敏感器的測量系設(shè)計為與衛(wèi)星本體系重合,即虛擬星敏感器的安裝陣為單位陣.
虛擬星敏感器的構(gòu)造分為基于單星敏感器構(gòu)造和基于雙星敏感器構(gòu)造兩種方式:
(1)基于單星敏感器輸出構(gòu)造虛擬星敏輸出
(29)
結(jié)合星敏感器的安裝矩陣CSB(已經(jīng)過相對基準(zhǔn)標(biāo)定后的安裝矩陣),可得由此星敏感器計算得到的本體系相對慣性系的姿態(tài)矩陣
(30)
記
則由單星敏輸出數(shù)據(jù)構(gòu)造的虛擬星敏的光軸矢量和橫軸矢量分別為ZIV和XIV.
(2)基于雙星敏感器輸出構(gòu)造虛擬星敏輸出
光軸矢量叉乘求橫軸矢量并歸一化
光軸矢量與橫軸矢量叉乘求Y矢量并歸一化
ZIA、XIA和YIA即為由星敏1和星敏2的光軸矢量構(gòu)造出來的轉(zhuǎn)換星敏的輸出,則該星敏的測量系相對慣性系的姿態(tài)矩陣為
(31)
(32)
可得轉(zhuǎn)換星敏的安裝矩陣為
(33)
由轉(zhuǎn)換星敏的輸出以及安裝矩陣可得本體系相對慣性系的姿態(tài)矩陣
(34)
同理可得由雙星敏輸出數(shù)據(jù)構(gòu)造的虛擬星敏的光軸矢量ZIV和橫軸矢量XIV.
不論是使用單星敏的輸出數(shù)據(jù)還是雙星敏的輸出數(shù)據(jù),得到的虛擬星敏的光軸矢量ZIV和橫軸矢量XIV僅一套,虛擬星敏的安裝矩陣為單位陣,且固定不變,因此只需設(shè)計基于單星敏的定常增益卡爾曼濾波,不再需要設(shè)計基于雙星敏的定常增益卡爾曼濾波,具體設(shè)計方法參見文獻[13],可得到基于虛擬星敏的卡爾曼濾波穩(wěn)態(tài)定常增益矩陣.
由于虛擬星敏感器的安裝矩陣唯一,進行濾波器設(shè)計時僅與該安裝矩陣相關(guān),大幅簡化了多星敏感器濾波修正邏輯,簡化了濾波器設(shè)計,降低了軟件的復(fù)雜度,提高了系統(tǒng)的可靠性.
與常規(guī)的定常增益卡爾曼濾波方法相比,單星敏定姿時使用的均為該星敏的光軸矢量和橫軸矢量,雙星敏定姿時使用的均為兩個星敏的光軸矢量,從信息利用角度來看,兩種方法沒有本質(zhì)的區(qū)別.本文所述的方法對星敏感器的個數(shù)沒有限制,同樣適用于配置3個以下星敏感器的衛(wèi)星.
針對某衛(wèi)星進行星敏感器及陀螺的姿態(tài)確定仿真驗證,包括相對基準(zhǔn)標(biāo)定、采用常規(guī)的CGKF方法進行姿態(tài)確定、基于虛擬星敏定姿.仿真中星敏感器光軸測量誤差為5″,橫軸測量誤差為35″.
(1)星敏相對基準(zhǔn)標(biāo)定
以星敏感器1為基準(zhǔn),標(biāo)定星敏感器2的安裝誤差.設(shè)置星敏感器2的安裝誤差角x為0.05°,安裝誤差角y為0.1°,安裝誤差角z為-0.1°.仿真結(jié)果表明,20 min內(nèi)三軸安裝誤差即達到穩(wěn)態(tài),收斂到真值,如圖1所示.
圖1 星敏感器相對基準(zhǔn)標(biāo)定誤差角Fig.1 Star sensor calibration error angle relative to reference
由以上仿真可以看出,使用CGKF時,三軸定姿誤差均小于0.002°,且雙星敏定姿與單星敏定姿切換過程平滑,無明顯姿態(tài)波動.
(2)常規(guī)的CGKF定姿
使用CGKF方法,使用單星敏(星敏2)定姿時,定姿誤差如圖2所示,使用CGKF,使用雙星敏(星敏1和星敏2)定姿時,定姿誤差如圖3所示.
圖2 單星敏定姿誤差(CGKF)Fig.2 Attitude determination error using single star sensor(CGKF)
圖3 雙星敏定姿誤差(CGKF)Fig.3 Attitude determination error using dual star sensors(CGKF)
使用CGKF方法,由雙星敏(星敏1和星敏2)定姿切換到單星敏定姿(星敏1),12 000 s時刻切換,定姿誤差如圖4所示.
圖4 星敏切換期間定姿誤差(CGKF)Fig.4 Attitude determination error during the switching period of star sensors(CGKF)
(3)基于虛擬星敏定姿
基于虛擬星敏定姿,使用統(tǒng)一的濾波增益矩陣.使用單星敏(星敏2)定姿,定姿誤差如圖5所示.
圖5 單星敏定姿誤差(基于虛擬星敏定姿)Fig.5 Attitude determination error using single star sensor (attitude determination based on virtual star sensor)
基于虛擬星敏定姿,使用雙星敏(星敏1和星敏2)定姿,定姿誤差如圖6所示.
圖6 雙星敏定姿誤差(基于虛擬星敏定姿)Fig.6 Attitude determination error using dual star sensors(attitude determination based on virtual star sensor)
基于虛擬星敏定姿,由雙星敏(星敏1和星敏2)定姿切換到單星敏定姿(星敏1),12 000 s時刻切換定姿星敏,定姿誤差如圖7所示.
圖7 星敏切換期間定姿誤差(基于虛擬星敏定姿)Fig.7 Attitude determination error during the switching period of star sensors (attitude determination based on virtual star sensor)
由以上仿真可以看出,基于虛擬星敏定姿時,三軸定姿誤差均小于0.002 2°,且雙星敏定姿與單星敏定姿切換過程平滑,無明顯姿態(tài)波動.
對比基于虛擬星敏定姿和常規(guī)的定常增益卡爾曼濾波兩種仿真結(jié)果,在單星敏定姿、雙星敏定姿以及定姿星敏切換過程中,兩種方法定姿誤差相當(dāng),均能達到10″以內(nèi),滿足使用需求,仿真結(jié)果驗證了基于虛擬星敏定姿方法的有效性.
本文針對配置多個星敏感器的衛(wèi)星,采用CGKF方法進行姿態(tài)確定時定常增益矩陣過多的問題,提出了一種基于虛擬星敏感器的姿態(tài)確定方法.給出了一種計算量小、適合星載計算機在軌實時計算的星敏感器時間滯后補償及相對基準(zhǔn)標(biāo)定算法,將虛擬星敏感器的測量系設(shè)計為與衛(wèi)星本體系重合,基于單星敏/雙星敏的輸出數(shù)據(jù)構(gòu)造虛擬星敏感器的輸出數(shù)據(jù),設(shè)計統(tǒng)一的濾波器定常增益矩陣進行姿態(tài)確定.通過數(shù)學(xué)仿真對比了本方法與常規(guī)的CGKF方法的姿態(tài)確定精度,兩者相當(dāng).本方法統(tǒng)一了濾波器定常增益矩陣,簡化了濾波器設(shè)計,節(jié)省了大量的星載計算機資源,不僅適用于配置多個星敏感器的衛(wèi)星,同樣適用于配置3個以下星敏感器的衛(wèi)星,具有重要的工程應(yīng)用價值.