李春陽,張廷華,田磊源
(1.航天工程大學,北京 101416;2.96945 部隊,河北 保定 072653)
隨著航天技術(shù)的不斷發(fā)展進步,各個國家的航天活動逐漸增加,對于空間優(yōu)勢的爭奪日漸激烈,空間目標監(jiān)視日益重要??臻g目標監(jiān)視是爭奪空間優(yōu)勢的前提,隨著航天活動的增多,軌道預報對于掌握空間目標的位置與運動特性十分重要。軌道預報是指利用軌道根數(shù)計算航天器未來預期時間的運行軌道,對于航天任務(wù)分析、空間目標碰撞預警等具有重要作用[1]。
STK(Satellite Tool Kit)是由美國分析圖形公司(Analytical Graphics,Inc.,AGI)開發(fā)的用于航天領(lǐng)域仿真設(shè)計的商業(yè)化分析軟件,其具有成熟的三維顯示模塊、鏈路分析模塊、通信分析模塊、接近分析模塊、覆蓋分析模塊、高分辨率數(shù)字地圖等功能,但其獲取的數(shù)據(jù)類型非常繁雜,價格比較昂貴,且存在技術(shù)封鎖,用戶無法控制源代碼。STK 能夠?qū)崿F(xiàn)對衛(wèi)星、飛機、艦船、車輛以及地面觀測站及其傳感器等各系統(tǒng)的建模和仿真分析,有可視化窗口,提供多種三維數(shù)據(jù)模型,具有完備的、可在線更新的數(shù)據(jù)庫,可實現(xiàn)實時的數(shù)字/半實物仿真,具有強大的交互式圖文輸出能力[2-6]。
Matlab GUI 是可視化的軟件顯示平臺,通過STK與Matlab 的聯(lián)合仿真,根據(jù)功能需求設(shè)計進行程序書寫,設(shè)計布局合理、功能清晰,具有形象生動的衛(wèi)星目標軌道預報用戶界面,可實現(xiàn)仿真功能以及信息的高效利用。
STK 的Connect 模塊為第三方應(yīng)用程序提供了擴展接口,可以與Matlab 聯(lián)合仿真,實現(xiàn)第三方應(yīng)用程序向STK 發(fā)送指令并接收STK 數(shù)據(jù),完成信息交互。STK 將通信過程封裝成動態(tài)鏈接庫,用戶只需調(diào)用相應(yīng)的函數(shù)即可實現(xiàn)與STK 的信息傳遞,同時,仿真連接著STK 和STK/VO,可以實時觀察事件[7-9]。
STK 軟件本身的數(shù)據(jù)處理能力較弱,Matlab 是由美國MathWorks 公司出品的科學計算常用的系統(tǒng)軟件,通過兩個軟件聯(lián)合仿真分析可以取長補短。利用STK 與Matlab 聯(lián)合仿真需要對兩個軟件進行互聯(lián)設(shè)置,在正確安裝STK 與Matlab 后,在Matlab 中刷新路徑,獲取配置文件。
在進行STK 與Matlab 連接時,分別打開兩個軟件,在Matlab 中執(zhí)行如下命令:
stkInit;%建立初始連接
若出現(xiàn)以下提示,則表示互聯(lián)成功:“警告:ConnectHost:setting default connection to localhost:5001
警告:mexConnect:Connecting to localhost:5001”。
STK 與Matlab 最多可同時創(chuàng)建兩個連接,因此每次實時數(shù)據(jù)傳遞且在通信完成后,通常需要及時關(guān)閉連接,以免下次運行重新建立時連接個數(shù)過多而出現(xiàn)錯誤連接。
在STK 軟件中為每個行星都定義了相對應(yīng)的坐標系,這些坐標系的原點都在中心天體的質(zhì)心上,而每個天體的坐標系不同[10]。J2000 地心慣性坐標系是慣性坐標系,基于牛頓力學的衛(wèi)星動力學和運動學方程在該坐標系描述,以地心為中心度量的其他天體運動參數(shù)也在該坐標系下描述[11]。
在衛(wèi)星目標參數(shù)設(shè)置時同時確定空間坐標系統(tǒng)的選擇,其函數(shù)為:
其中,objPath 代表對象名稱,propagator 代表傳播函數(shù),coordSystem 代表坐標系名稱,tStart 和tStop代表仿真的開始和結(jié)束時間,dt 代表時間步長,semimajorAxis、eccentricity、inclination、argOfPerigree、RAAN、meanAnomaly 為衛(wèi)星軌道六根數(shù)。
設(shè)置觀測站位置信息函數(shù)為:
其中,acPath 代表對象路徑,llaPos 為觀測站的位置信息,包括地理經(jīng)度、緯度以及水平高度。在觀測站添加傳感器,根據(jù)實際觀測系統(tǒng)設(shè)置傳感器,因此設(shè)置傳感器類型為矩形傳感器。
在測控資源的調(diào)度過程中,測站對目標的跟蹤預報為調(diào)度制定者提供基礎(chǔ)數(shù)據(jù),這些數(shù)據(jù)顯示了測站對衛(wèi)星的觀測時間段內(nèi)的時間窗口、方位角、仰角和距離等相關(guān)信息[12-13]。用戶獲取衛(wèi)星的過境報告,需要利用STK 的Access 功能建立空間目標與地面站間的聯(lián)接關(guān)系。訪問分析工具Access 是STK 的核心分析工具,可以用于計算任何對象之間的可視狀態(tài),即一個對象是否可以看到另一個對象,計算對象之間滿足要求的時間間隔。為滿足衛(wèi)星過境數(shù)據(jù)需求,基于Access 分析工具可實現(xiàn)測站對衛(wèi)星的可視狀態(tài)分析。
利用Matlab GUI 對用戶界面進行設(shè)計,在界面添加相應(yīng)的組件按鈕,并利用ActiveX 實現(xiàn)仿真場景的可視化顯示。主界面主要分為左右兩側(cè),左側(cè)主要進行觀測時間、位置坐標等參數(shù)輸入,右側(cè)為可視化顯示窗口,供用戶實時查看事件響應(yīng)。子界面與主界面沿用同樣設(shè)計風格,界面功能主要包括獲取目標TLE 文件、計算目標過境預報以及獲取目標天文坐標,其中主界面用于多目標可見性分析,子界面用于單目標可見性分析。
兩行軌道數(shù)據(jù)(Two-Line Element,TLE) 是由北美空防司令部發(fā)布的空間目標(包括人造衛(wèi)星、航天器、飛行體和火箭碎片)的運行狀態(tài)數(shù)據(jù),以開普勒軌道參數(shù)之間的數(shù)學關(guān)系確定空間目標的時間、坐標、方位、速度等各項參數(shù),具有極高的精度[16]。
TLE 兩行星歷文件參數(shù)較少但能夠保證精度,因此利用Space-Track 網(wǎng)站、CelesTrak 網(wǎng)站以及Heavens-Above 網(wǎng)站查詢選取在軌衛(wèi)星、空間站等空間目標軌道的兩行軌道根數(shù),以此作為空間目標庫的數(shù)據(jù)。目前空間目標庫有歷年來各國發(fā)射的各類衛(wèi)星、空間站等包含星鏈衛(wèi)星在內(nèi)的空間目標800余個,且以TLE 星歷文件的格式存儲。
仿真通過Matlab 指令函數(shù)控制STK 執(zhí)行命令,建立新場景及新的對象,包括衛(wèi)星、觀測站以及傳感器。利用界面輸入觀測時間、觀測地點、傳感器參數(shù)以及衛(wèi)星軌道預報器類型參數(shù)等信息。仿真實現(xiàn)流程如圖1 所示。
圖1 衛(wèi)星過境預報仿真流程
用戶界面功能函數(shù)指令通過Connect 模塊的協(xié)議路徑產(chǎn)生相關(guān)信息以及接收各種診斷信息的反饋,以消息的形式反饋給用戶,主要利用函數(shù)AgUtMsg()和AgUtMsgSetMsgFunc()進行運作。其中,AgUtMsg()用于傳遞消息,而AgUtMsgSetMsgFunc()是用于更改消息處理函數(shù)。利用模塊內(nèi)部AgCon ProcessSTKCmd()函數(shù)向STK 發(fā)送指令,建立新場景及新的對象,包括衛(wèi)星、觀測站以及傳感器等對象。根據(jù)界面用戶輸入信息,分別對相應(yīng)的目標實現(xiàn)參數(shù)設(shè)置[15]。
在仿真過程中,首先設(shè)置預期觀測時間和地點,設(shè)置傳感器參數(shù),若用戶需要選擇在預期時間、預期地點內(nèi)可觀測的已知空間合作目標時,可直接調(diào)用空間目標庫中衛(wèi)星軌道信息,通過計算獲取在預設(shè)參數(shù)條件下空間目標的可見性結(jié)果。當空間目標庫中所有目標在當前參數(shù)條件下不能被觀測到時,重新返回設(shè)置相關(guān)參數(shù),進行再次仿真計算;當空間目標庫中目標在當前參數(shù)條件下可以被觀測到時,在可見衛(wèi)星中選擇需要觀測的目標,通過仿真計算進行可見性分析。若用戶需要自行設(shè)置軌道信息,則可選擇調(diào)用外部TLE 文件,或者直接輸入軌道要素,即軌道半長軸、偏心率、軌道傾角、近地點幅角、升交點赤經(jīng)以及真近點進行仿真計算。當有多顆衛(wèi)星時,利用主界面功能對衛(wèi)星進行可見性分析,從中篩選一顆可見過境衛(wèi)星進行仿真跟蹤,實現(xiàn)過境預報。
在衛(wèi)星過境預報界面進行操作,運行程序可以觀察到三維仿真顯示圖,利用Matlab 抓取STK 數(shù)據(jù),其相對應(yīng)函數(shù)為:
其中,objPath 代表對象的路徑,objPath 代表分析目標的路徑,rptStyle 代表所需獲取報告的類型。
獲取兩行星歷文件的方式有兩種,一種為單點式,即選取仿真時間內(nèi)的某一個時間點,獲取兩行星歷文件;另一種為軌跡采樣式,即是在全時段內(nèi)獲取兩行星歷文件。單點式獲取星歷誤差較大,因此選擇第二種方式,以獲取精度較高的星歷文件用于軌道預報分析。過境預報是指通過衛(wèi)星軌道預報,計算出衛(wèi)星在未來某一段時間內(nèi)通過預定區(qū)域的弧獲取過境數(shù)據(jù),使用函數(shù)如下:
其中,accObjPath 代表分析目標的路徑。該報告包括過境時間、方位角以及高度角,部分報告如圖2 所示。以衛(wèi)星00733 為仿真對象,與STK 仿真數(shù)據(jù)、國家天文臺的軌道預報軟件獲取數(shù)據(jù)進行對比,如圖3、4 所示。
圖2 衛(wèi)星過境預報部分數(shù)據(jù)截取
圖3 過境預報功能與STK誤差對比
從圖3 與圖4 可以看出,三種軟件仿真數(shù)據(jù)的差值在角秒量級,精確度較高,且主要誤差為角度與弧度之間轉(zhuǎn)換無效位造成。利用STK/Matlab 聯(lián)合仿真的過境數(shù)據(jù)可以用于引導觀測設(shè)備實現(xiàn)精確觀測,縮小目標搜索空域范圍,減小目標捕獲時間,實現(xiàn)快速尋找目標進行跟蹤觀測的目的。
圖4 過境預報功能與國家天文臺軟件誤差對比
文中利用基于STK/Matlab 聯(lián)合平臺實現(xiàn)觀測站對衛(wèi)星的跟蹤預報,實現(xiàn)對仿真過程的可視化顯示。通過仿真以及計算分析,快速準確地獲取衛(wèi)星目標過境預報數(shù)據(jù)以及可見時間窗口,為進行實際空間目標觀測跟蹤奠定數(shù)據(jù)基礎(chǔ)。該設(shè)計充分利用聯(lián)合平臺的優(yōu)勢,利用Matlab GUI 將該功能軟件化,避免了STK 源代碼無法更改的問題,可以將該功能集成到其他軟件系統(tǒng)中,充分實現(xiàn)有限信息的充分利用。