淡 鵬,何曉松,王 丹
(1.宇航動力學國家重點實驗室,陜西西安 710043;2.西安衛星測控中心,陜西西安 710043)
航天器外測測軌數據[1-2]是一類重要的飛行跟蹤數據,在很多任務的軌道確定計算中是不可缺少的測量量。
隨著航天器發射及在軌數量的日益增多,地面測控系統對大數據量、多星并行下的強實時[3]、自動化外測數據處理的要求不斷提高。
航天器飛行過程中用于軌道測量的外測數據主要包含以下幾類:1)地面雷達及微波統一測控系統[4-5]的測量數據:測量元素主要有測距、測角(方位角、仰角)、距離變化率(有時又稱測速)等多類參數,以及深空設備[6]的距離和、距離和變化率等數據;2)光學設備測角數據;3)中繼衛星四程測距[7]數據;4)甚長基線干涉測量數據[8](Very Long Baseline Interferometry,VLBI);5)星間外測測量數據等。
這些不同類別的外測數據在實際的傳輸格式(測量設備與處理中心之間的傳輸規定)、測量量等方面均存在著較大差異。合理地設計外測數據處理軟件的架構,并進行并行化處理等就成為多任務、大數據量下外測處理軟件設計的重要內容。同時,由于外測數據的實時處理過程有著明顯區別于事后處理的一些特點,因而需要建立與實時處理要求相適應的各類算法。
針對這些問題,本文建立了一種強實時性的處理框架,并對其關鍵處理算法進行了闡述。
航天器外測數據實時處理軟件需要對火箭發射、軌道轉移與在軌運行、再入返回或天體著陸等多種不同場景下的各種類型外測測量數據進行處理,這就對外測實時處理軟件的設計與實現提出了較高要求。
航天器外測數據實時處理軟件具有以下特點:
1)強實時性:出于對航天器飛行狀態監視的需要,外測實時處理軟件需要在短時間內快速完成觀測數據的處理工作。
2)高可靠性:外測實時處理軟件必須有強可靠性[9],不能因某些數據的異常等問題導致軟件的非正常退出,從而影響其他數據的處理。
3)大數據量:軟件可能同時要處理多個航天器、多臺設備的1 s多幀的測量數據,必須具備大數據量處理能力。
4)長期自動化運行:外測數據實時處理軟件常常需要服務于航天器整個壽命過程,需要其具有較高的適應能力和自動化運行能力。
5)數據處理差異性:外測數據包含測距、測角、測速,及其他多種類型的測量元素,這些元素的處理要求有著較大差異。
航天器外測數據實時處理的主要內容有:
1)數據接收與解算:實時接收各種類型外測測量數據,按照對應數據的傳輸格式及處理方法進行數值解算。
2)數據檢擇:主要進行數據的設備狀態碼檢驗、合理性檢驗[10]與野值剔除[11]等。
3)測距解模糊:當跟蹤目標距離超出設備的最大無模糊距離時,需要利用衛星星歷或軌道數據等對距離量進行解模糊[12]處理,以得到正確的值。
4)數據修正:完成地面設備距離零值修正、測角軸系誤差修正、衛星應答機零值修正等。
5)時標修正:根據測量數據時標對應的時刻對測距、測角、測速進行空間傳播時延修正,測速數據還包含積分時間修正,以及深空三向測距的鐘差[13]修正等。
6)電波折射修正:電波在目標和測控站之間傳播時,由于穿過大氣層的不均勻介質,使電波傳播路徑發生彎曲,而且是非勻速的傳播,使得觀測量出現折射誤差。大氣折射效應對無線電波的角度、距離、速度等測量值都會帶來誤差,電波折射修正主要完成此類修正處理,它包含了對流層[14]、電離層[15]等多類型的修正處理。
7)數據平滑處理:測量數據幀頻較大時,有時需要利用多幀數據平滑處理出單幀數據,達到減少數據量的目的。
8)拼幀處理:有些應用場合需要將測距、測角、測速等不在同一幀的數據拼接成一幀數據(例如有的定位算法需要將火箭跟蹤的測距與測角數據一起使用來計算出其位置信息)。
9)數據記錄與發送:將處理后的結果按規定接口發送給其他軟件,并完成必要的數據記錄。
外測數據實時處理軟件具有數據量大、類型復雜、實時性及可靠性要求高等特點,同時不同類型的數據在處理內容上有較大差異,為此本文將綜合采用多線程與多進程相結合的方式實現并行化的設計與處理。
為簡化軟件開發,以及方便后期的維護和擴展,將處理軟件劃分為公共服務層、基礎實現層、處理部件層、應用層等多個不同層級,如圖1所示。

圖1 外測軟件的層次結構設計
公共服務層主要實現一些底層的公用服務,包括消息通信、日志服務、線程、數據及軌道動力學算法等,該層部件以動態鏈接庫的形式提供給上層軟件調用。其中,數據及軌道動力學算法庫實現了各類坐標系的轉換、軌道外推計算、時間轉換、測站觀測量計算、軌道攝動力計算、矢量及矩陣運算、插值算法、積分算法、方程組求解方法、數據擬合算法、數值統計算法等。
在公共服務層基礎上,外測處理基礎實現層完成了各類型外測數據的主要處理過程實現。由于不同地基設備、天基測量、移動測量設備的數據傳輸類型不一致、所包含的測量量不盡相同、處理要求不同,因而需要實現不同的處理過程。本基礎實現層即對每種不同類型的數據分別提供不同的算法及處理線程實現,以供外測處理部件層的各軟件調用。
處理部件層為實際的可執行軟件層。外測數據處理軟件系統在邏輯結構上劃分為數據分類處理軟件、數據補充處理軟件、VLBI 處理軟件、深空外測處理軟件等多個可執行部件。可根據處理需要為不同的航天器創建不同的部件執行映像,實現各航天器數據的并行處理。
數據分類處理軟件實時接收各類外測原始數據、航天器時間信息等,根據配置信息設置為各設備信源及數據類型的組合動態創建處理對象(各對象為一個處理線程,如圖2所示),并將外測原始數據分發給相應的處理對象進行分類處理。該軟件同時接收航時等公用信息,維護一個公用信息共享內存,以加鎖的方式供各處理線程并發訪問。

圖2 分類處理軟件線程示意圖
數據補充處理軟件實時接收測元不在同一幀的部分分類處理結果數據(有的數據類型處理完后可直接打包發送),進行拼幀處理及電波折射等修正后,將結果數據打包發送出去。
雷達及統一測控系統等普通類型外測觀測數據在各軟部件間的流動如圖3所示。

圖3 雷達數據處理流程
VLBI 處理、深空數據處理等其他類復雜類型數據的處理部件主要完成一些專用類型數據的處理工作。
應用層主要是各類外測數據實時處理結果的應用計算軟件,例如各類定位計算等。
對各類測量數據的處理方法庫實現了指定類型數據的解析、處理流程、打包發送、線程創建與運行等方法。同一類的或相似的測量數據只需設計一種處理方法庫,在調用軟件的配置信息中設置有各類測量數據與處理方法庫的映射關系,如其中一個記錄{type1,lib1.so;}就表示了類型type1與處理方法庫lib1.so之間的映射。
各種處理方法庫從統一的處理方法基類繼承,并重載必需的處理函數。
為了滿足不同的應用場合,軟件對雷達與統一測控設備的處理結果設計了兩類結果幀格式,一類是非拼幀格式,另一類是拼幀結果格式。
拼幀格式的結果幀包含的數據內容有:測量設備編碼、數據類型編碼、測距、方位角、仰角、測距變化率值、收端時標、數據時標、數據有效位、站址坐標等信息。
其中,使用了1 個字節的8 個比特位表示各個測量元素的有效性,如圖4所示。

圖4 比特位示意圖
定義B0 位表示測距有效性;B1 位表示方位角有效性;B2 位表示仰角有效性;B3 位表示測距變化率的有效性;B4 位表示測距類型:單程測距、雙程測距等;B5 位表示測速類型:測距變化率、距離和變化率等;B6~B7位用于擴展其他測量元素的表示。B1~B3 比特位初始化賦值為0,當同時滿足下列條件時在處理結果中將對應比特位的值置為1(代表相應值有效):1)一幀測量數據中有相應的測量元素;2)測量元素的值在事先給定的值域范圍內;3)設備狀態碼校驗有效。
相對拼幀格式,非拼幀格式的結果中僅包含一種或幾種測量元素(測角幀一般同時包含方位角、仰角)。
中繼星四程距離和數據、VLBI時延、時延率,赤經、赤緯等其他類外測數據采用單獨的幀格式傳輸。
軟件以加鎖的方式維護了包括航天器的名稱、狀態信息、精密軌道等各類公用信息。
軟件單獨使用一個線程外推出每秒鐘的衛星星歷數據,并保存到緩沖區中,供各設備的處理線程解模糊時使用。當維護線程檢測到定軌結果更新時,清除緩沖區,重新存儲星歷數據。
深空數據處理部件需要適應距離和數據、雙向測量、三向測量等不同測距類型,適應單向、雙向、三向等深空測速數據,并完成必要的修正處理和拼幀處理等。
為便于應用層軟件使用,軟件內部定義了統一的深空數據輸出幀格式,其在主要測元量基礎上,增加了信號發端站坐標、發端時間、信號收端站坐標、收端時間,以及測元類型等信息。信號收端和發端的時標可通過迭代算法計算得出[10]。當收端站與發端站一致時,三向測量[10]即變為雙向測量。
同樣中繼四程測距處理軟件除必須的修正處理外,也需要加上跟蹤站坐標、中繼星當前瞬時坐標(經緯高等,由中繼星軌道外推獲得當前幀歷元處的坐標數據)等,同時利用各個中繼星的軌道外推結果完成測距的解模糊處理。VLBI測量數據處理軟件除必要的處理外,也需要增加其基線兩端站的瞬時坐標等。
外測實時處理軟件調度執行的一種傳統方式是通過測控計劃進行啟停管理,但由于一些近地衛星運行圈次和測站跟蹤計劃切換較為頻繁,而且多任務并行處理時各任務跟蹤測控方式也不盡相同,采用這種方式會為操作帶來諸多不便,且啟停時可能造成數據處理的中斷。
為解決這一問題,此處設計了“常駐運行”模式,即外測實時處理軟件啟動后將持續運行;同時軟件將衛星中與具體跟蹤弧段和測控事件有關的參數分離出來,通過共享內存方式來實時監視這些參數的變化,進而確定跟蹤弧段和跟蹤計劃是否變化。一旦發生變化,實時處理軟件執行相應的初始化操作,更新相關參數,創建有關設備測量數據的處理對象。
考慮到不同時段可能使用不同的設備進行航天器的跟蹤測量,故采用常駐模式運行時如果不能合理管理所生成的處理線程,可能造成某些線程成為“僵尸”線程。為此軟件在檢索到某個處理線程已經長時間不處理數據,會將其銷毀,以釋放相應的資源。
此種常駐運行模式支持跟蹤弧段和測控計劃的無縫切換,滿足了數據處理的連續性要求,在該模式下可實現處理軟件的“自動運行、無人職守”。
它的優點主要體現在以下幾個方面:
實現了衛星跟蹤測控中外測數據實時處理軟件的不間斷運行,在跟蹤弧段和跟蹤計劃切換時,數據實時處理工作不受影響,從而實現了“無縫”的切換,有效地避免了數據丟失等問題的發生。
該模式能夠保證在各類情況下實時數據處理的連續性,為事后采集數據進行軌道確定和各類飛控計算帶來了較大方便。
使用該模式后,軟件只在衛星環境建立過程中啟動一次,整個生命期間將持續運行,工作時不再需要受跟蹤計劃和跟蹤弧段約束。這在很大程度上簡化了相關的操作,顯著地提高了工作效率。
在該模式下,可根據環境需要進行靈活配置,滿足不同類型航天器的跟蹤測控需求,具有很強的適應性和靈活性。
測控設備的測量距離與其信號發射頻率是相關的。受精度限制,測控設備的可測距離(即最大無模糊距離)是有限的,當跟蹤目標超越最大無模糊距離時,就會產生一個求解真實距離的問題,此過程稱作測距解模糊。

整周數Nt計算時需要采用軌道或星歷數據外推出測量設備的理論測量值Rc,Nt的計算方法為:
其中,mod 表示取余數運算,int()表示取整運算。
考慮到長時間大范圍機動過程中,采用軌道外推整周數方法進行實時解模糊處理時,有時可能出現整周數計算錯誤的情況,為此,本文同時提供了另一種實時解模糊算法,即增量累加算法。
設t0,t1,…,tn時刻的設備距離數值依次為R0,R1,…,Rn(0 定義各點的增量值為 考慮到整周數的變化,將上述增量在此基礎上修訂為 定義增量累加值為 該方法受異常數據干擾后,僅影響當前數據的解模糊計算,而不會影響到后面的數據,因而穩定性較好。 增量累加法初始化時,先采用傳統方法連續計算幾點(如取10 點)的整周數,如果判斷出這些點的整周數相同,則選定該值為初始整周數,增量累加算法轉入正常運行狀態。 當數據中斷后,增量累加法需恢復初始狀態。 外測數據的測距、測角、測速等數據由于采集及預處理等方面的原因,其數據時標常常存在差異,實時處理中經常需要進行時標的插值對齊操作,工程上多采用多項式插值[17]、濾波平滑等方法進行時標的對齊處理。 插值處理時,需注意以下幾點:1)時標的跨天處理;2)方位角“過北”[17]的處理;3)角度插值的精度問題,如圖5所示“過頂”附近的插值,本軟件的解決方法之一是采用三角函數轉換測量后進行插值計算[17]。 圖5 “過頂”現象及插值誤差示意 方位角的“過北”和角度插值精度問題本質上都是由于測量角度在數值上的不連續性造成,為此,本軟件的解決方法是采用三角函數轉換測量后進行插值計算,最后反解出角度的方法。 如對某類角度序列{t1,a1}、{t2,a2}、{t3,a3}…,要插值t時刻的值,可利用角度的正弦函數與余弦函數的連續性來解決。具體地,先對{t1,sin(a1)}、{t2,sin(a2)}、{t3,sin(a3)}…序列插值出t時刻的值y1,再對{t1,cos(a1)}、{t2,cos(a2)}、{t3,cos(a3)}…序列插值出t時刻的值y2,則可計算出t時刻的角度值為y(t)=atan2(y1,y2),說明一下,此處的atan2 為C++語言中的反正切函數,表示值域在[-π,π]之間的反正切計算。 對某一類型數據的插值計算可采用多項式擬合的方法進行,為了達到較好的插值精度,本軟件計算時使用三次或二次多項式進行插值處理。 由于有些應用層計算軟件需要將測距、測角、測速等不同測量元素放在同一幀中,形成測元完備[16]的觀測數據,此時往往需要將各種不同類型數據拼接成測元完備的數據幀,此即拼幀處理。 拼幀處理可采用兩種合成準則: 1)數據完整性優先合成準則,即將幾種數據收集完成后,再拼幀輸出,優點是每幀數據都包含完整信息,缺點在于某一類數據中斷或延遲會導致整幀的中斷或延遲,實時性較差。 2)數據實時性優先合成原則,將實時性作為首要考慮因素,可直接將一種或幾種數據合成一幀,此方法的缺點是有些幀的信息可能不完整。 本軟件采用兼顧兩類合成準則的超時合成策略,預先設置一定的時間限制,在限定時間內采用數據完整性合成準則,超時時采用實時性優先合成準則。 拼幀時的處理算法為:為同一設備的每一類數據設置一個單獨的緩沖區(如圖6所示),當新數據到來后,先按時間順序插入相應的緩沖區中,然后遍歷一次緩沖區,查找時標相同的數據,拼幀完成后將相應數據彈出緩沖區。 圖6 數據拼接緩沖區示意圖 為防止緩沖區無限制增大及影響處理效率,軟件對各緩沖區的最大長度進行了限制(如最大保存10 s的數據)。 電磁波通過對流層時傳播速度將發生變化,路徑也將產生彎曲,此現象稱作對流層折射效應。在天頂方向,對流層引起的距離折射誤差可達2~3 m,在3°仰角時,可達30~40 m。對流層延遲包括干燥大氣附加延遲、濕潤大氣或水蒸氣效應影響等。 軟件提供了映射函數法[14]、球面分層模型[14]等算法來實現對流層折射效應的修正。 電磁波穿越電離層時,信號的路徑會發生彎曲,傳播速度變化,由此產生的偏差稱作電離層折射誤差[18-19]。電離層電子密度是求解電波路徑延遲的關鍵,它與地理位置、地方時、太陽輻射強度、季節等因素有關。電離層具有散射性、互補性、瞬息萬變等特點。 本軟件提供了基于電離層格網模型[18-19]、Klobuchar模型[18-19]等的電離層修正算法。 外測數據的測量幀頻可能較大,為了剔除數據中的野值或減少數據量,有時需要使用多點數據平滑算法計算出一點數據。此處采用基于多項式擬合和最小二乘估計的方法來實現多點平滑處理。 然后可繼續對樣本序列點的均值和方差σy進行統計,定義每一點的擬合殘差為εi=yi-f(ti),當時可認為該點在本次迭代計算中為不合理值,予以舍棄。進而使用余下的點重新進行多項式最小二乘擬合,然后再次對所有點進行3σ野值剔除(有些點在不同的多項式下可能不一定當成野值)。這樣經過多次反復迭代后,即可得到多點數據中心平滑后的值。 本文介紹了一種外測數據實時并行處理軟件的設計思路及其實時處理的關鍵算法,該軟件的主要特點如下: 1)聯合采用多進程加多線程的方式進行了并行化處理實現,便于多任務大數據量下的并行處理; 2)采用常駐模式實現了全過程自動化運行; 3)采用了多種強實時性算法適應各種不同場景下的數據處理需求; 4)所提出的基于增量累加的新型解模糊算法解決了大范圍機動過程中的解模糊難題。 應該看到,實時性要求下的外測數據處理軟件及處理算法有很多不同于事后處理的地方,下一步還需在精細化處理等方面進行不斷完善。3.2 基于三次多項式及三角函數轉換的插值算法

3.3 時間實時性和數據完整性優先準則下的多緩沖搜索拼幀算法

3.4 電波折射修正算法
3.5 基于最小二乘的多點數據平滑算法

4 結束語