石 習,馮占林,趙會朋,秦曉珊
(中國電子科技集團公司 電子科學研究院,北京 100026)
低軌衛(wèi)星憑借重量小、成本低、通信時延低等優(yōu)勢,逐漸成為各國空間領(lǐng)域研究的熱潮。成百上千顆的衛(wèi)星按照預先設定的構(gòu)型,以組網(wǎng)的形式分布在不同軌道平面以及相位上,協(xié)同完成通信、導航、偵察遙感等任務。其中最具代表性的當屬“星鏈”低軌衛(wèi)星星座?!靶擎湣毙l(wèi)星軌道高度低、周期短、重訪率高,攜帶傳感器后可對全球主要地區(qū)進行24小時偵察監(jiān)視。軌道高度為550 km的“星鏈”衛(wèi)星能夠以最大44.85°的半張角對地探測,覆蓋半徑可達573.5 km。覆蓋分析是評估衛(wèi)星對地偵察監(jiān)視能力的基礎,計算方法主要有網(wǎng)格點法和基于幾何運算的方法。
常用來分析衛(wèi)星覆蓋性能的指標主要有:覆蓋時間、重訪時間、覆蓋面積以及N重覆蓋等等。覆蓋分析的經(jīng)典算法網(wǎng)格點法由Morrison,J.J于1973年首次提出[1]。該方法基于特定的規(guī)則將目標區(qū)域劃分為一系列網(wǎng)格,通過對網(wǎng)格點的覆蓋性能統(tǒng)計表述衛(wèi)星對區(qū)域的覆蓋性能。劃分規(guī)則決定著計算結(jié)果精度和計算量。文獻[2-4]分別對網(wǎng)格點法做出了改進?;趲缀芜\算的方法就是在經(jīng)緯度平面上利用多邊形交、并運算來計算覆蓋性能[5]。文獻[6-7]也通過多邊形計算覆蓋相關(guān)性能。
本文關(guān)注衛(wèi)星對地覆蓋性能中的覆蓋時間這一指標,也即衛(wèi)星對地面目標的可見時間窗口,需要計算衛(wèi)星在未來特定時間內(nèi)對于該目標的入境、出境時間。傳統(tǒng)的時間窗口計算方法主要是跟蹤傳播模型,該模型需要對衛(wèi)星位置連續(xù)采樣,即對衛(wèi)星進行軌道預報,并判斷當前位置衛(wèi)星與地面目標的可見關(guān)系,如果可見則記錄當前時刻,最后形成的可見時間段即為衛(wèi)星對地可見時間窗口。該模型采取固定步長的方式,當預報周期增加,此方法耗時嚴重。
針對覆蓋時間窗口傳統(tǒng)模型計算量大、所耗時間長的問題,解決方法大致可分以下幾種:
1)通過軌道過濾、數(shù)學模型簡化等近似方法。I.Ali等利用球面幾何計算了圓形低地球軌道衛(wèi)星對地面終端的可見性時間函數(shù),其迭代計算方法速度快,但算法精度較低且只能針對點目標區(qū)域[8]。李冬等通過大圓近似星下點軌跡,通過求解關(guān)于偏近點角的超越方程從而計算時間窗口[9]。該方法誤差主要來自于歲差,章動以及地球形狀等。Feuerstein P等首先過濾掉不可見的軌道周期,減少了星地鏈路可見性時間窗口的計算量[10]。宋志明等首先在不考慮地球自轉(zhuǎn)的情況下計算衛(wèi)星對地可見時間窗口,然后根據(jù)地球自轉(zhuǎn)特征迭代修正,從而得到整個周期內(nèi)的時間窗口[11]。該模型未加入地球非球形引力等其他攝動因素,且無法對區(qū)域目標進行計算。
2)通過分布式,實時服務、查詢方法。張瑋等將區(qū)域目標時間窗口計算分離成提前計算并編碼的預存儲階段和遍歷查詢的檢索獲取階段[12]。盧萬杰等提出了星地可見時間窗口計算的實時服務方法[13],首先通過地面目標區(qū)域與星下點的空間關(guān)系,從而決定是否計算當前時刻覆蓋。在此基礎上構(gòu)建時間窗口計算流程,根據(jù)系統(tǒng)CPU核數(shù)設置計算并行的任務數(shù),并基于Storm實現(xiàn)實時數(shù)據(jù)處理,保證了計算與服務的實時性。
3)通過動態(tài)設置步長的方法,即通過由粗略到精細的搜索方式。張眾等通過空間幾何關(guān)系把區(qū)域目標的邊界描述為圓弧,判定邊界是否相交;針對衛(wèi)星視場得出可見性的解析判斷條件,最后用二分搜索方法計算衛(wèi)星對區(qū)域目標可見窗口[14]。鄂智博等首先使用較大的步長,得到衛(wèi)星對地面點目標的低精度可見時間窗口,然后使用二分搜索方法得到精確窗口計算結(jié)果。對于區(qū)域目標而言,則通過統(tǒng)計邊界點的可見時間窗口的上下界得到[15]。汪榮峰等定義“預測距離”的概念[16],分別將衛(wèi)星與地下點距離和距離的一半作為預測距離,計算動態(tài)步長下衛(wèi)星對點目標區(qū)域的可見時間窗口,大大減少了采樣點數(shù)目,提高了效率。最后針對地面區(qū)域目標,給出預測距離的計算方法。
本文提出了一種基于經(jīng)緯度平面上多邊形距離的覆蓋時間窗口快速計算方法。算法流程是:以觀測矢量和地球的位置情況(包括相交、相切、不相交三種情況)計算衛(wèi)星對地球覆蓋邊界坐標,將其轉(zhuǎn)化為二維平面內(nèi)的點或多邊形,通過與目標區(qū)域多邊形位置關(guān)系判斷從而計算衛(wèi)星對目標區(qū)域的出、入境時間。在此基礎上,重新定義“預測距離”的概念,將多邊形的距離作為動態(tài)調(diào)整算法步長的依據(jù),避免了傳統(tǒng)跟蹤傳播模型采樣點多、計算慢的問題,實現(xiàn)了對地覆蓋時間窗口的快速計算。
衛(wèi)星攜帶傳感器后會對地形成一個探測區(qū)域,如圖1所示。傳統(tǒng)的基于球面三角形的覆蓋模型是一種探測區(qū)域的近似求解方法。如果要考慮傳感器的形狀、姿態(tài)以及半張角等因素,則可以使用觀測矢量模型[17]。使用觀測矢量模型進行覆蓋范圍邊界計算的步驟是:首先根據(jù)傳感器形狀設置傳感器邊界點個數(shù),建立衛(wèi)星對地觀測矢量,在地心固定坐標系下聯(lián)立觀測矢量和地球橢球方程,求解觀測矢量在地球表面的映射位置,從而實現(xiàn)覆蓋邊界計算。
圖1 衛(wèi)星對地覆蓋示意圖
對于觀測矢量和地球不相交的情況,需要計算相切時的觀測矢量和地球的交點位置,作為不相交情況下的衛(wèi)星對地覆蓋邊界,具體推導參考文獻[18]。在衛(wèi)星工具軟件STK中生成一顆衛(wèi)星,設置傳感器半張角、姿態(tài)角等參數(shù)后生成會對地球表面的覆蓋區(qū)域。利用衛(wèi)星對地覆蓋模型計算出的邊界點坐標生成STK中的AreaTarget對象(記作MyAreaTarget),從圖2中可以看出,兩區(qū)域幾乎重合。
圖2 對地覆蓋仿真二維圖
圖3 射線法示意圖
如果模型中傳感器邊界點個數(shù)較大,那么生成的覆蓋區(qū)域邊界點數(shù)目也會較多,手動添加邊界點經(jīng)緯度坐標至STK中的步驟就會愈加繁瑣。為了避免這種重復性軟件設置操作,接下來介紹將覆蓋模型得到的一系列點坐標生成STK中AreaTarget對象的簡單方法,具體通過STK提供的MATLAB接口發(fā)出控制指令實現(xiàn)。具體代碼如下。
代碼1:建立衛(wèi)星覆蓋區(qū)域
ui=actxGetRunningServer(‘STK11.application’);
root = ui.Personality2;
sc = root.CurrentScenario;
a=sc.Children.New(‘eAreaTarget’,‘MyAreaTarget’);
root.BeginUpdate();
boundary = {26.58 124.26
28.63 126.34
... ...
26.29 128.01
24.18 126.67;}
a.CommonTasks.SetAreaTypePattern(boundary);
root.EndUpdate();
求解空間目標在一定周期內(nèi)對目標區(qū)域覆蓋時間窗口的集合,是地面目標預警和干預的基礎。預報結(jié)果基于衛(wèi)星對地覆蓋范圍求解結(jié)果,計算衛(wèi)星對地面目標區(qū)域的可見性弧段,求解衛(wèi)星在一定時間內(nèi)經(jīng)過目標區(qū)域的時間,可以為空間預警和航天偵察規(guī)避提供數(shù)據(jù)信息。
衛(wèi)星是否攜帶傳感器以及傳感器的形狀和參數(shù)都會直接影響時間窗口的計算結(jié)果。計算過程中,對未攜帶傳感器或傳感器半張角為0的情況,衛(wèi)星對地的覆蓋為星下點,衛(wèi)星是否經(jīng)過目標區(qū)域,可以理解為經(jīng)緯度平面上星下點是否在目標區(qū)域之內(nèi),即判斷點和多邊形的平面位置關(guān)系。其他情況下,衛(wèi)星對地球表面形成一個覆蓋區(qū)域,此時需要判斷其與目標區(qū)域之間是否存在重疊。
2.1.1 點和多邊形位置關(guān)系判斷
點與多邊形的位置關(guān)系判斷有多種方法,本文使用射線法。
射線法的核心思想是:沿目標點任意方向做一條射線,通過射線與多邊形邊的交點數(shù)量判斷點是否包含在多邊形內(nèi)部。交點數(shù)量為奇數(shù)表示在多邊形內(nèi),偶數(shù)表示不在多邊形內(nèi)部。對于幾種特殊情況的規(guī)定與處理,可以參考文獻[19]。這里為簡化計算,取射線方向為Y軸負方向,此時射線法示意圖如下。
本文將多邊形邊界點作為內(nèi)部點處理。
此時的計算流程如圖4所示。
圖4 射線法計算流程圖
2.1.2 多邊形位置關(guān)系判斷
若覆蓋區(qū)域和目標區(qū)域有重合部分,則認為衛(wèi)星對目標區(qū)域進行了覆蓋,重合的情況應該包括相交和包含關(guān)系。對于相交情況,可以通過MATLAB的POLYXPOLY函數(shù)實現(xiàn),該函數(shù)返回平面笛卡爾坐標系中兩個多邊形的交點(注意這里的多邊形也可以是線段,說明可以滿足線陣式傳感器的情況)。這里利用該函數(shù)返回值是否為空作為兩個多邊形是否有交點的判斷依據(jù)。
將衛(wèi)星覆蓋區(qū)域抽象為二維坐標系下多邊形時,需要對以下兩種特殊情況進行處理:
當衛(wèi)星對地覆蓋區(qū)域包含極點時,需要添加極點作為多邊形頂點輔助生成覆蓋區(qū)域多邊形;當衛(wèi)星對地覆蓋區(qū)域穿過180°經(jīng)線時,需要添加180°經(jīng)線上的一系列點將覆蓋區(qū)域劃分為兩塊,分別生成兩個多邊形。此時需要分別對這兩個多邊形與目標區(qū)域多邊形進行位置關(guān)系判斷,可參考文獻[20]。
依據(jù)衛(wèi)星軌道預報結(jié)果和傳感器對地覆蓋計算結(jié)果,可以實現(xiàn)對衛(wèi)星是否經(jīng)過目標區(qū)域的出、入境時間。算法流程如圖5所示。
圖5 時間窗口計算流程圖
分析模型的誤差主要來自于衛(wèi)星對地覆蓋模型的計算結(jié)果,對于簡單圓錐形傳感器而言,由于實際覆蓋區(qū)域是一個圓形區(qū)域,因此可以通過增加多邊形的頂點數(shù)來減小覆蓋區(qū)域?qū)嶋H區(qū)域的誤差,從而降低最后算法時間窗口結(jié)果的誤差。
由觀測矢量模型可知,多邊形的頂點可以通過傳感器邊界點的個數(shù)進行修改。將模型中傳感器圓邊界點個數(shù)增加,此時對覆蓋區(qū)域的擬合效果更好,算法計算的時間窗口精度越高,但算法耗時也隨之增加。同時,固定步長1 s下,對衛(wèi)星位置的采樣點數(shù)目與計算周期成正比,算法時間耗時也隨之增加。因此,需要對計算時間進行優(yōu)化。
跟蹤傳播模型以一定步長連續(xù)計算預報周期內(nèi)衛(wèi)星對地覆蓋區(qū)域邊界點。當步長過大,衛(wèi)星位置采樣數(shù)量減少,相鄰采樣點對應覆蓋多邊形間隔越大,可能導致錯過某些時刻對于衛(wèi)星是否過境的判斷,造成衛(wèi)星過境預報的“漏警”,計算得到的出入境時間精度越低。當步長過小,容易造成整個預報周期內(nèi)很多“無意義”的計算和判斷。例如,一天內(nèi)“星鏈”對烏克蘭地區(qū)的單個覆蓋時間窗口通常在幾分鐘內(nèi),其他大部分時間內(nèi),衛(wèi)星覆蓋區(qū)域與目標區(qū)域沒有重合,甚至相距較遠。對一天時間的預報周期,如果按以1秒為步長的采樣方法,無疑會進行多次不必要的操作,導致算法計算量大、效率低。
衛(wèi)星對地時間窗口算法耗時與衛(wèi)星采樣點的個數(shù)呈正相關(guān)。因此,實際有意義的計算只發(fā)生在相交時間及相交邊界的領(lǐng)域。如何避免無意義的計算,使采樣時間盡快“收斂”到相交時刻附近,是本文研究的重點。
以編號為44238的“星鏈”衛(wèi)星為例,下載該衛(wèi)星某天的TLE數(shù)據(jù),解析出衛(wèi)星歷元時刻為7 Oct 2021 11:40:04.473(UTC),計算一天內(nèi)該衛(wèi)星對地面某目標區(qū)域的可見時間窗口。
將一段時間內(nèi)衛(wèi)星對地覆蓋區(qū)域的多邊形投影到二維平面上,截取部分時刻的覆蓋區(qū)域和目標區(qū)域多邊形位置關(guān)系如圖6和圖7。當覆蓋區(qū)域接近目標區(qū)域或者覆蓋區(qū)域與目標區(qū)域相交時,此時步長應該設置較小,避免漏掉其他相交時刻的判斷,導致過境時間精度低。
圖6 覆蓋區(qū)域與目標區(qū)域位置圖
圖7 覆蓋區(qū)域與目標區(qū)域位置圖(相距較遠)
某時刻衛(wèi)星覆蓋區(qū)域和目標區(qū)域相距較遠,位置關(guān)系如圖7所示。此時步長應該設置較大,避免很多不必要的計算與判斷,導致計算耗時嚴重。
至此,本文定義二維平面內(nèi)覆蓋區(qū)域和目標區(qū)域的預測距離為動態(tài)選取步長的因素,并做出如下定義:當兩區(qū)域有重合時,預測距離為0;當兩區(qū)域沒有重合時,預測距離為平面內(nèi)兩多邊形的最短距離。計算二維平面內(nèi)覆蓋區(qū)域和目標區(qū)域的瞬時預測距離的函數(shù)如下:
算法:多邊形預測距離
輸入:二維平面內(nèi)覆蓋多邊形、目標區(qū)域多邊形
輸出:覆蓋區(qū)域和目標區(qū)域的瞬時預測距離Pd
if(X與Y相交)
Pd=0
else
對X的第i條邊,計算各頂點Yj與該邊的最小距離Dj
對Y的第j條邊,計算X各頂點Xi與該邊的最小距離DjPd=min(Di,Dj)
end
計算上文兩種不相交情況下的多邊形預測距離,最短距離如圖8和圖9所示。
圖8 不相交情況最小距離示意圖(一)
圖9 不相交情況最小距離示意圖(二)
按照定義,此時預測距離分別為0.168 0和6.488 7。
選取預報周期內(nèi)一段時間(包含覆蓋時間),計算預測距離隨時間變化,結(jié)果如圖10所示,其中橫坐標表示距離預報起始時間(衛(wèi)星歷元時刻)過去的秒數(shù)。
圖10 預測距離隨時間變化圖(部分)
在該時間段內(nèi),隨著衛(wèi)星位置的變化,預測距離先由70下降至0后再次上升。由前文預測距離的定義可知,預測距離為0即表示覆蓋區(qū)域多邊形和目標區(qū)域多邊形有重合,也即衛(wèi)星對目標區(qū)域可見。
于是,計算衛(wèi)星出入境時間的問題轉(zhuǎn)化為預測距離的函數(shù)等于最小值的優(yōu)化問題。
由圖可見,在選取的這段時間內(nèi),預測距離下降呈現(xiàn)一定的規(guī)律性,梯度較為平穩(wěn)。
依據(jù)預測距離的變化率動態(tài)設置步長,其中步長最小取1秒,即當預測距離接近0時,衛(wèi)星采樣步長為1秒;預測距離較大時,衛(wèi)星采樣步長可達幾至幾十分鐘。
計算預報周期內(nèi)衛(wèi)星對地可見時間窗口,對比固定步長為1秒的算法,結(jié)果如表1所示。
表1 兩種方法計算結(jié)果對比
對比結(jié)果可知,兩種方法計算衛(wèi)星對地可見性時間窗口完全一致,動態(tài)設置步長后,參與覆蓋邊界計算、與目標區(qū)域相交判斷的采樣點數(shù)目由86 500個減少為457個。算法耗時與采樣點數(shù)目成正比,故動態(tài)設置步長后,相比于固定步長方法效率提升約99.5%。
衛(wèi)星對地可見時間窗口結(jié)果同時取決于衛(wèi)星軌道、傳感器參數(shù)和目標區(qū)域位置等因素。選取“星鏈”衛(wèi)星中軌道傾角更高的極地軌道衛(wèi)星,編號48 879,計算固定步長和動態(tài)設置步長兩種方法下衛(wèi)星對目標區(qū)域的可見時間窗口相關(guān)結(jié)果如表2所示。
表2 兩種方法計算結(jié)果對比(44 879)
對于極地軌道衛(wèi)星48 879而言,預報周期內(nèi)對地覆蓋時間較短,動態(tài)設置步長方法所采樣點數(shù)目更少,算法效率提升更高。
STK是個功能強大的仿真分析軟件,而且兼具場景、模型逼真的特點、在衛(wèi)星、導彈等領(lǐng)域應用廣泛。但軟件邏輯能力較差,無法通過編程實現(xiàn)循環(huán)計算、嵌套等復雜過程。通常情況下,航天應用場景規(guī)模龐大,需要進行手動重復性操作時便不再方便。為此,STK提供了編程接口便于其他應用程序調(diào)用STK,借助接口可以編程實現(xiàn)復雜任務的自動化實現(xiàn)。
為了驗證算法的準確性,可以和STK結(jié)果對比。利用STK創(chuàng)建仿真場景,導入100 顆“星鏈”衛(wèi)星的TLE數(shù)據(jù),并設置仿真周期為一天。
衛(wèi)星對地時間窗口算法的相關(guān)參數(shù)設置如下:傳感器邊界點數(shù)目設置為100,半錐角為44.85°,姿態(tài)角均為0。在STK中需要對每顆衛(wèi)星添加和算法相同參數(shù)的傳感器,這里依然使用STK提供的MATLAB接口編程實現(xiàn)。
本文在向STK導入衛(wèi)星對象時獲取添加路徑,通過創(chuàng)建constellation集合(記作MyConst)存放所有的傳感器,利用衛(wèi)星路徑和集合元素的簡單映射關(guān)系,循環(huán)為每個衛(wèi)星添加傳感器。以下是MATLAB實現(xiàn)的關(guān)鍵代碼。
代碼2:自動為衛(wèi)星添加傳感器
cs=root.CurrentScenario.Children.New(‘eConstellation’,‘MyConst’);
%創(chuàng)建星座集合
%循環(huán)給衛(wèi)星添加傳感器
for i=1:count
sat=root.GetObjectFromPath(char(satPaths(i)));%獲取衛(wèi)星路徑
Sen=sat.Children.New(‘eSensor’,‘Sen’);
Sen.CommonTasks.SetPatternSimpleConic(44.85,0.1);
cs.Objects.Add(Sensor.Path);%添加傳感器路徑
end
分析“星鏈”星座對區(qū)域的覆蓋性能需要使用STK的覆蓋模塊(STK/Coverage),分析對象主要是Coverage Definition,利用該模塊可以設置“覆蓋資源”(比如衛(wèi)星或者傳感器)、覆蓋區(qū)域(指定經(jīng)緯度區(qū)域或者全球)、覆蓋網(wǎng)格(Grid)以及各種約束條件。
覆蓋對象設置具體步驟如下:(1)在場景中添加Coverage Definition對象covDef;(2)設置Grid:本文使用Custom Regions自定義區(qū)域類型,關(guān)聯(lián)場景中建立好的AreaTarget,并設定Point Granularity(網(wǎng)格點間隔)為Lat/Lon=0.5°;(3)設置Assets(覆蓋資源):選擇預先建立的MyConst星座,添加至覆蓋資源。以下是MATLAB設置覆蓋對象的部分代碼。
代碼3:覆蓋對象設置
covDef=sc.Children.New(‘eCoverageDefinition’,‘CovDef’);
covDef.Grid.BoundsType=‘eBoundsCustomRegions’;
covGrid=covDef.Grid;
bounds=covGrid.Bounds;
bounds.AreaTargets.Add(‘AreaTarget/’MyAreaTarget);
Res=covGrid.Resolution;
Res.LatLon=.5;%網(wǎng)格點經(jīng)緯度大小
covDef.AssetList.Add(constellation.Path);
至此,100顆攜帶傳感器的“星鏈”衛(wèi)星覆蓋場景建立完畢。為了驗證本文衛(wèi)星對地時間窗口算法的準確性,將STK分析結(jié)果中的覆蓋起始時間和結(jié)束時間與算法結(jié)果中的入境時間和出境時間取差的絕對值作為誤差,如果某顆衛(wèi)星對目標區(qū)域不止有一個覆蓋時間窗口,則取多個窗口誤差的均值作為最終誤差,入境時間和出境時間的誤差結(jié)果如圖11和圖12所示。
圖11 入境時間誤差圖
圖12 出境時間誤差圖
從計算結(jié)果和誤差比較圖可以看出,本文算法獲得的時間窗口準確性較高,結(jié)果與STK仿真結(jié)果之間的誤差多在1 s以內(nèi)。
本章首先構(gòu)建了衛(wèi)星對地覆蓋模型,借助該模型可精確求解衛(wèi)星對地瞬時覆蓋區(qū)域的邊界點,并利用STK軟件驗證了模型的正確性。本文模型考慮了傳感器形狀、視場角和姿態(tài)角因素,適用于觀測矢量與地球表面相交、相切、不相交三種情況。
衛(wèi)星對地覆蓋模型計算衛(wèi)星當前位置下,傳感器對地球表面探測區(qū)域的覆蓋邊界點坐標。計算一段時間內(nèi)的覆蓋區(qū)域和衛(wèi)星對地可見時間窗口,需要對衛(wèi)星位置進行軌道預報,且最后結(jié)果誤差受軌道預報誤差的影響?!靶擎湣毙l(wèi)星軌道周期低于225分鐘,屬于低軌目標,與其TLE數(shù)據(jù)相適應的軌道預報模型是SGP4模型。對于不同軌道特征的衛(wèi)星應選擇相適應的軌道預報模型。對不同軌道高度衛(wèi)星的軌道預報模型以及模型誤差分析是本文后續(xù)計劃開展的工作。
其次,提出了一套計算衛(wèi)星對地目標區(qū)域可見性分析的方法,可以求解衛(wèi)星對目標區(qū)域的過境時間窗口,結(jié)果基于二維平面上點與多邊形或者多邊形與多邊形之間的位置關(guān)系,并且可通過改變傳感器邊界點的個數(shù)得到了不同精度的時間窗口計算結(jié)果。隨著預報時間的增長,按一定步長逐步采樣計算的方法耗時嚴重。最后,本文在相關(guān)研究的基礎上,將平面內(nèi)多邊形之間的距離作為對步長動態(tài)設置的依據(jù),在保證計算精度的同時提升了衛(wèi)星對地可見時間窗口算法的效率。對于步長設置過程的優(yōu)化方法,也是后續(xù)研究的方向和重點。