李春陽,張廷華,田磊源
(1.航天工程大學,北京 101416;2.96945 部隊,河北 保定 072653)
隨著航天技術的不斷發展進步,各個國家的航天活動逐漸增加,對于空間優勢的爭奪日漸激烈,空間目標監視日益重要??臻g目標監視是爭奪空間優勢的前提,隨著航天活動的增多,軌道預報對于掌握空間目標的位置與運動特性十分重要。軌道預報是指利用軌道根數計算航天器未來預期時間的運行軌道,對于航天任務分析、空間目標碰撞預警等具有重要作用[1]。
STK(Satellite Tool Kit)是由美國分析圖形公司(Analytical Graphics,Inc.,AGI)開發的用于航天領域仿真設計的商業化分析軟件,其具有成熟的三維顯示模塊、鏈路分析模塊、通信分析模塊、接近分析模塊、覆蓋分析模塊、高分辨率數字地圖等功能,但其獲取的數據類型非常繁雜,價格比較昂貴,且存在技術封鎖,用戶無法控制源代碼。STK 能夠實現對衛星、飛機、艦船、車輛以及地面觀測站及其傳感器等各系統的建模和仿真分析,有可視化窗口,提供多種三維數據模型,具有完備的、可在線更新的數據庫,可實現實時的數字/半實物仿真,具有強大的交互式圖文輸出能力[2-6]。
Matlab GUI 是可視化的軟件顯示平臺,通過STK與Matlab 的聯合仿真,根據功能需求設計進行程序書寫,設計布局合理、功能清晰,具有形象生動的衛星目標軌道預報用戶界面,可實現仿真功能以及信息的高效利用。
STK 的Connect 模塊為第三方應用程序提供了擴展接口,可以與Matlab 聯合仿真,實現第三方應用程序向STK 發送指令并接收STK 數據,完成信息交互。STK 將通信過程封裝成動態鏈接庫,用戶只需調用相應的函數即可實現與STK 的信息傳遞,同時,仿真連接著STK 和STK/VO,可以實時觀察事件[7-9]。
STK 軟件本身的數據處理能力較弱,Matlab 是由美國MathWorks 公司出品的科學計算常用的系統軟件,通過兩個軟件聯合仿真分析可以取長補短。利用STK 與Matlab 聯合仿真需要對兩個軟件進行互聯設置,在正確安裝STK 與Matlab 后,在Matlab 中刷新路徑,獲取配置文件。
在進行STK 與Matlab 連接時,分別打開兩個軟件,在Matlab 中執行如下命令:
stkInit;%建立初始連接
若出現以下提示,則表示互聯成功:“警告:ConnectHost:setting default connection to localhost:5001
警告:mexConnect:Connecting to localhost:5001”。
STK 與Matlab 最多可同時創建兩個連接,因此每次實時數據傳遞且在通信完成后,通常需要及時關閉連接,以免下次運行重新建立時連接個數過多而出現錯誤連接。
在STK 軟件中為每個行星都定義了相對應的坐標系,這些坐標系的原點都在中心天體的質心上,而每個天體的坐標系不同[10]。J2000 地心慣性坐標系是慣性坐標系,基于牛頓力學的衛星動力學和運動學方程在該坐標系描述,以地心為中心度量的其他天體運動參數也在該坐標系下描述[11]。
在衛星目標參數設置時同時確定空間坐標系統的選擇,其函數為:

其中,objPath 代表對象名稱,propagator 代表傳播函數,coordSystem 代表坐標系名稱,tStart 和tStop代表仿真的開始和結束時間,dt 代表時間步長,semimajorAxis、eccentricity、inclination、argOfPerigree、RAAN、meanAnomaly 為衛星軌道六根數。
設置觀測站位置信息函數為:

其中,acPath 代表對象路徑,llaPos 為觀測站的位置信息,包括地理經度、緯度以及水平高度。在觀測站添加傳感器,根據實際觀測系統設置傳感器,因此設置傳感器類型為矩形傳感器。
在測控資源的調度過程中,測站對目標的跟蹤預報為調度制定者提供基礎數據,這些數據顯示了測站對衛星的觀測時間段內的時間窗口、方位角、仰角和距離等相關信息[12-13]。用戶獲取衛星的過境報告,需要利用STK 的Access 功能建立空間目標與地面站間的聯接關系。訪問分析工具Access 是STK 的核心分析工具,可以用于計算任何對象之間的可視狀態,即一個對象是否可以看到另一個對象,計算對象之間滿足要求的時間間隔。為滿足衛星過境數據需求,基于Access 分析工具可實現測站對衛星的可視狀態分析。
利用Matlab GUI 對用戶界面進行設計,在界面添加相應的組件按鈕,并利用ActiveX 實現仿真場景的可視化顯示。主界面主要分為左右兩側,左側主要進行觀測時間、位置坐標等參數輸入,右側為可視化顯示窗口,供用戶實時查看事件響應。子界面與主界面沿用同樣設計風格,界面功能主要包括獲取目標TLE 文件、計算目標過境預報以及獲取目標天文坐標,其中主界面用于多目標可見性分析,子界面用于單目標可見性分析。
兩行軌道數據(Two-Line Element,TLE) 是由北美空防司令部發布的空間目標(包括人造衛星、航天器、飛行體和火箭碎片)的運行狀態數據,以開普勒軌道參數之間的數學關系確定空間目標的時間、坐標、方位、速度等各項參數,具有極高的精度[16]。
TLE 兩行星歷文件參數較少但能夠保證精度,因此利用Space-Track 網站、CelesTrak 網站以及Heavens-Above 網站查詢選取在軌衛星、空間站等空間目標軌道的兩行軌道根數,以此作為空間目標庫的數據。目前空間目標庫有歷年來各國發射的各類衛星、空間站等包含星鏈衛星在內的空間目標800余個,且以TLE 星歷文件的格式存儲。
仿真通過Matlab 指令函數控制STK 執行命令,建立新場景及新的對象,包括衛星、觀測站以及傳感器。利用界面輸入觀測時間、觀測地點、傳感器參數以及衛星軌道預報器類型參數等信息。仿真實現流程如圖1 所示。

圖1 衛星過境預報仿真流程
用戶界面功能函數指令通過Connect 模塊的協議路徑產生相關信息以及接收各種診斷信息的反饋,以消息的形式反饋給用戶,主要利用函數AgUtMsg()和AgUtMsgSetMsgFunc()進行運作。其中,AgUtMsg()用于傳遞消息,而AgUtMsgSetMsgFunc()是用于更改消息處理函數。利用模塊內部AgCon ProcessSTKCmd()函數向STK 發送指令,建立新場景及新的對象,包括衛星、觀測站以及傳感器等對象。根據界面用戶輸入信息,分別對相應的目標實現參數設置[15]。
在仿真過程中,首先設置預期觀測時間和地點,設置傳感器參數,若用戶需要選擇在預期時間、預期地點內可觀測的已知空間合作目標時,可直接調用空間目標庫中衛星軌道信息,通過計算獲取在預設參數條件下空間目標的可見性結果。當空間目標庫中所有目標在當前參數條件下不能被觀測到時,重新返回設置相關參數,進行再次仿真計算;當空間目標庫中目標在當前參數條件下可以被觀測到時,在可見衛星中選擇需要觀測的目標,通過仿真計算進行可見性分析。若用戶需要自行設置軌道信息,則可選擇調用外部TLE 文件,或者直接輸入軌道要素,即軌道半長軸、偏心率、軌道傾角、近地點幅角、升交點赤經以及真近點進行仿真計算。當有多顆衛星時,利用主界面功能對衛星進行可見性分析,從中篩選一顆可見過境衛星進行仿真跟蹤,實現過境預報。
在衛星過境預報界面進行操作,運行程序可以觀察到三維仿真顯示圖,利用Matlab 抓取STK 數據,其相對應函數為:

其中,objPath 代表對象的路徑,objPath 代表分析目標的路徑,rptStyle 代表所需獲取報告的類型。
獲取兩行星歷文件的方式有兩種,一種為單點式,即選取仿真時間內的某一個時間點,獲取兩行星歷文件;另一種為軌跡采樣式,即是在全時段內獲取兩行星歷文件。單點式獲取星歷誤差較大,因此選擇第二種方式,以獲取精度較高的星歷文件用于軌道預報分析。過境預報是指通過衛星軌道預報,計算出衛星在未來某一段時間內通過預定區域的弧獲取過境數據,使用函數如下:

其中,accObjPath 代表分析目標的路徑。該報告包括過境時間、方位角以及高度角,部分報告如圖2 所示。以衛星00733 為仿真對象,與STK 仿真數據、國家天文臺的軌道預報軟件獲取數據進行對比,如圖3、4 所示。

圖2 衛星過境預報部分數據截取

圖3 過境預報功能與STK誤差對比
從圖3 與圖4 可以看出,三種軟件仿真數據的差值在角秒量級,精確度較高,且主要誤差為角度與弧度之間轉換無效位造成。利用STK/Matlab 聯合仿真的過境數據可以用于引導觀測設備實現精確觀測,縮小目標搜索空域范圍,減小目標捕獲時間,實現快速尋找目標進行跟蹤觀測的目的。

圖4 過境預報功能與國家天文臺軟件誤差對比
文中利用基于STK/Matlab 聯合平臺實現觀測站對衛星的跟蹤預報,實現對仿真過程的可視化顯示。通過仿真以及計算分析,快速準確地獲取衛星目標過境預報數據以及可見時間窗口,為進行實際空間目標觀測跟蹤奠定數據基礎。該設計充分利用聯合平臺的優勢,利用Matlab GUI 將該功能軟件化,避免了STK 源代碼無法更改的問題,可以將該功能集成到其他軟件系統中,充分實現有限信息的充分利用。