淡 鵬,張定波,王 丹,李萬山
(1.宇航動力學國家重點實驗室 軟件室,陜西 西安 710043;2.西安衛(wèi)星測控中心,陜西 西安 710043)
航天測控視景可視化技術為航天器在軌運行狀況提供了直觀的表達方式,在航天飛行任務中得到了越來越多的應用。而在眾多航天器中,三軸穩(wěn)定衛(wèi)星是數量較多的一類,因而此類航天器運行場景的可視化繪制就顯得尤為重要。而對其進行的可視化繪制中最基本的就是位置與姿態(tài)信息的呈現。而姿態(tài)數據相對位置信息而言,其形式眾多,變化多樣,實現較為復雜。文獻[1 ~6]對姿態(tài)數據繪制方法有一定涉及,但均較少給出了系統(tǒng)全面的介紹。為此,本文對三軸穩(wěn)定衛(wèi)星姿態(tài)信息各類常用表達方式及可視化建模技術進行了研究,并基于三維視景系統(tǒng)常用的OpenGL 圖形庫[7]對其繪制過程進行了可視化實現。
在三軸穩(wěn)定衛(wèi)星姿態(tài)可視化繪制實現中,常用的參考系有:地心固連系、J2000 地心慣性系[8]、質心軌道系、東南地坐標系及衛(wèi)星本體系等。
(1)質心軌道坐標系OXOYOZo:坐標原點位于衛(wèi)星質心,ZO軸指向地心,YO軸垂直于軌道面,指向軌道角速度的負方向,XO軸由右手法則確定。
(2)東南地坐標系OXEYSZD:坐標原點位于衛(wèi)星質心,ZD軸指向地心,XE軸在指向衛(wèi)星當地東,YS軸指向衛(wèi)星當地南。
(3)衛(wèi)星本體坐標系OXBYBZB:此坐標系與衛(wèi)星固連,原點為衛(wèi)星質心,XB在縱對稱面內指向衛(wèi)星頭部,ZB在縱對稱面內與XB垂直且指向地,YB由右手法則確定。
為了便于對衛(wèi)星運行整個場景中各類對象的繪制,在可視化實現中需要將一副場景內各個對象的模型構建和圖形繪制建立在統(tǒng)一的基準坐標系下。為此,本文采用地心固連系及J2000 地心慣性系作為可視化繪制的基準坐標系。在三維繪制中,對這兩個坐標系的變換可近似于只考慮恒星時角的區(qū)別,即相互變換時只需繞Z 軸旋轉一角度(格林尼治恒星時角[8])即可。
三軸穩(wěn)定衛(wèi)星姿態(tài)數據常使用衛(wèi)星本體系相對姿態(tài)參考系的3 個歐拉角表示。對此類姿態(tài)數據進行可視化繪制時,需通過兩次模型變換來完成,首先是可視化繪制的基準系(地固系或地心慣性系)到姿態(tài)參考系的旋轉變換(設變換矩陣為MER),其次是姿態(tài)參考系到衛(wèi)星本體系的旋轉變換(設變換矩陣為MRB)。完整的繪制基準坐標系到本體系變換矩陣為M=MRB·MER。
設當前時刻衛(wèi)星姿態(tài)3 個歐拉角為:俯仰角θ、偏航角Ψ、滾動角φ,則3-2-1 轉序下姿態(tài)參考系到本體系變換方法為:(1)繞z 軸旋轉Ψ。(2)繞y 軸旋轉θ。(3)繞x 軸旋轉φ。變換矩陣可用下式表示:MRB=RX(φ)RY(θ)RZ(Ψ)。
使用OpenGL 進行可視化繪制時,此變換用齊次坐標模型變換方法可表達為
需要說明的是,矩陣MRB2為使用OpenGL 繪制時采用的模型變換矩陣,與實際軌道姿態(tài)計算中進行的坐標變換的變換順序相反,具體可見文獻[9]中關于OpenGL 的視圖模型變換部分。即與變換矩陣MRB矩陣相乘順序不同。
具體可視化實現時,也可直接通過下面的OpenGL旋轉變換語句實現:
另外,需注意的是歐拉角姿態(tài)有多種轉序的定義,除了3-2-1 轉序外,常用的還有3-1-2 轉序等,變換時需根據所用歐拉角具體的轉序定義進行操作。當使用3-1-2 轉序時,變換矩陣MRB可表示為MRB=RY(θ)RX(φ)RZ(Ψ)。
對繪制基準坐標系到姿態(tài)參考系的變換,根據參考系的不同而有所區(qū)別。在三軸穩(wěn)定衛(wèi)星姿態(tài)計算中較多使用的姿態(tài)參考系有質心軌道坐標系和東南地坐標系等。
當衛(wèi)星姿態(tài)建立在質心軌道坐標系下時,姿態(tài)模型變換計算可通過下面兩種方法實現:
方法1 多次旋轉法。
若已知當前點的軌道根數a,e,i,Ω,ω,M(分別為半長軸、偏心率、傾角、升交點赤經、近地點幅角、偏近點角),則可由M 和e 計算出真近點角f[7],此時,地固系到姿態(tài)參考系變換方法為:(1)繞z 軸旋轉Ω-s(s 為當前時刻零度經線格林尼治恒星時角);(2)繞x軸旋轉i;(3)繞z 軸旋轉ω+f+π/2;(4)繞x 軸旋轉-π/2。變換過程可表示為
整個旋轉過程可用OpenGL 語句表達為
方法2 轉換矩陣法。
若已知衛(wèi)星當前J2000 慣性系位置rECI和速度,則根據質心軌道系的定義,可得到其三軸方向在J2000 慣性系下的方向矢量分別為
則J2000 地心慣性系到質心軌道坐標系的坐標變換矩陣為MER=[xo,yo,zo]T。此時,以地固系為基準系的姿態(tài)變換方法為:(1)繞z 軸旋轉-s(s 為恒星時角)將其變換成J2000 慣性系。(2)乘以變換矩陣M(需將其擴充為4×4 的齊次旋轉矩陣)。以地心慣性系為基準系時省略掉第一步變換即可。
變換過程用OpenGL 語句可表示為:
glRotatef(-s,0.0f,0.0f,1.0f);
glMultMatrixf(MER)
當衛(wèi)星姿態(tài)參考系建立在東南地坐標系下時,變換方法為:
方法1 多次旋轉法。根據三軸穩(wěn)定衛(wèi)星的位置坐標可計算出位置矢量的赤經α 和赤緯δ,則以J2000慣性系開始的姿態(tài)模型變換方法為(1)繞z 軸旋轉α;(2)繞y 軸旋轉-δ;(3)繞Z 軸旋轉π/2;(4)繞x 軸旋轉-π/2。用公式可表示為
方法2 轉換矩陣法。由位置矢量可得到東南地坐標系三軸在J2000 慣性系下方向矢量分別為
其中,z=(0 0 1)T則J2000 慣性系到東南地坐標系坐標變換矩陣為MER=[xE,yS,zD]T,此時進行繪制時,乘以變換矩陣MER即可。
由Hamilton 發(fā)明的四元數[10-11](Quaternio-n)是復數在四維實數空間的一個推廣,亦是衛(wèi)星姿態(tài)的一類重要的表示方法。
設一單位四元數為q=q0+q1i+q2j+q3k,其中q0為四元數的標部,q1、q2、q3為其矢部,則由該單位四元數確定的姿態(tài)轉換矩陣為
據此即可對姿態(tài)數據進行可視化繪制。
另一種方法是將四元數姿態(tài)轉換成歐拉軸角形式,設歐拉軸在參考系中的矢量為E,轉角為α,則四元數也可定義為
根據此定義公式,由四元數值可解算出單次旋轉的歐拉軸及轉角:轉角為α=2cos-1(q0)。當α≠0 時,有旋轉軸矢量為
由該旋轉軸及旋轉角度調用OpenGL 旋轉語句即可簡單地對四元數姿態(tài)進行可視化繪制。
除了常用的歐拉角、四元數表示形式外,常見的姿態(tài)描述方法還有歐拉軸/角式、方向余弦式等。
對歐拉軸/角姿態(tài)描述,其直接定義了旋轉軸及轉角,可直接調用OpenGL 的旋轉語句進行繪制。而對方向余弦表示,可給出兩個坐標系間的轉換矩陣[8],繼而調用OpenGL 的矩陣運算語句進行繪制。
三軸穩(wěn)定衛(wèi)星姿態(tài)可視化繪制的一種常用表達方式就是姿態(tài)球,其在深空探測等場合中有著廣泛應用。
姿態(tài)球一般定義在慣性系下,對于四元數或歐拉角姿態(tài),可由上述多次旋轉方法進行三軸指向的繪制。也可計算出慣性系到本體系的轉換矩陣M,進而得到衛(wèi)星三軸方向在慣性系下的方向矢量或各軸指向的赤經、赤緯,即可進行姿態(tài)球繪制。其中,x 軸矢量為X=M·[1 0 0]T;y 軸矢量為Y=M·[0 1 0]T;z 注矢量為Z=M·[0 0 1]T。
設x 軸單位矢量的3 個分量為X[0]、X[1]、X[2],則x 軸赤經為?=tan-1(X[1]/X[0]),赤緯為δ=sin-1(X[2]),y 軸、z 軸赤經赤緯計算方法與之相似。
當已知三軸穩(wěn)定衛(wèi)星的初始姿態(tài)以及本體系3 個軸的轉動角速度,對姿態(tài)變化過程進行可視化建模和繪制時,就需通過數值積分計算變化過程各點的姿態(tài)信息。設衛(wèi)星三軸轉動的角速度矢量為。
此姿態(tài)角速度通常由安裝在衛(wèi)星上的陀螺儀進行測量,其輸出值一般建立在慣性系下。
對于歐拉角姿態(tài)表示方式,3-2-1 轉序下的姿態(tài)運動學方程為其中,MRB為參考系到本體系轉換矩陣;ωR為參考系的轉動角速度[12],據此式對各時間點進行積分求解即可。
需注意的是,歐拉角運動方程在θ=90°時存在奇點,這將給計算過程帶來困難。
此運動方程無三角函數,不存在奇點問題,方程形式也較為簡單,因而相比歐拉角姿態(tài)運動方程,其使用更為廣泛。
使用VC 編程工具及OpenGL 三維圖形庫進行了三軸穩(wěn)定衛(wèi)星飛行過程的可視化繪制,所實現的原型軟件對姿態(tài)信息繪制效果如圖1 和圖2 所示。
圖1 衛(wèi)星姿態(tài)的可視化效果
圖2 姿態(tài)球繪制效果
本文對三軸穩(wěn)定衛(wèi)星姿態(tài)繪制與建模方法進行了系統(tǒng)地分析,給出了不同形式下的繪制方法,原型軟件的繪制結果表明所給出的方法是可行的。由于三軸穩(wěn)定衛(wèi)星姿態(tài)信息有多種表達方式,根據衛(wèi)星任務的特點,其姿態(tài)參考系選取也可能不同,具體可視化繪制中需靈活選用合適的繪制方法。
[1] 黃權,徐學軍.基于OpenGL 的衛(wèi)星跟蹤仿真[J].計算機技術與發(fā)展,2007,17(2):131-134.
[2] 柴毅,史晶晶,馮大龍.基于Vega 的航天發(fā)射場視景仿真系統(tǒng)實現[J].計算機仿真,2007,24(6):62-65.
[3] 戴雪峰,金連文.基于OpenGL 實現的火箭彈道及衛(wèi)星軌道三維可視化[J].測控技術,2006,25(1):17-19.
[4] 李英先,劉揚.基于STK 實現中繼衛(wèi)星業(yè)務運行可視化[J].信息與電子工程,2012,10(4):465-469.
[5] 張龍慧,宋楊,唐俊,等.基于OpenInventor 的衛(wèi)星姿態(tài)控制可視化仿真[J].計算機技術與發(fā)展,2009,19(11):214-217.
[6] 郭偉民,趙新國,曹延華.基于STK 的微小衛(wèi)星姿態(tài)控制可視化演示與驗證[J].系統(tǒng)仿真學報,2008,20(增刊):319-322.
[7] HONG Geyao.The realization of flight simulation system based on openGL[C].2010 Second International Conference on Information Technology and Computer Science,2010:198-201.
[8] 章仁為.衛(wèi)星軌道姿態(tài)動力學與控制[M].北京:北京航空航天大學出版社,1998.
[9] 徐波.OpenGL 編程指南[M].北京:機械工業(yè)出版社,2009.
[10]UJANG C A B C,TOOK C C,KAVCIC A,et al.A split quaternion nonlinear adaptive filter[C].IEEE International Conference on Acoustics,Speech,and Signal Processing,2009,5:1745-1748.
[11]SEBERRY J,FINLAYSON K,ADAMS S S.The theory of quaternion orthogonal designs[J].IEEE Transactions on Signal Processing,2008,56(1):256-265.
[12]劉林,胡松杰,王歆.航天動力學引論[M].南京:南京大學出版社,2006.