石龍龍 祁見忠 賀 蕓
1.中國科學院微小衛星創新研究院,上海 201203;2.上海微小衛星工程中心,上海 201203
衛星導航系統基于衛星的時間和位置信息實現精密授時、測距和導航定位服務。新一代北斗導航系統實現了基于星間鏈路自主定軌與時間同步功能的自主運行能力。長時間自主運行要求導航衛星保持時間系統的高穩定性和高準確度,期間一旦發生時頻系統異常,衛星將無法自主獲得時間信息,導致服務中斷[1]。
提出一種衛星平臺時間維持方法,在時頻系統故障時,由星載計算機利用平臺時間對時頻系統進行授時,獲得時間基準后,利用星間鏈路進行衛星時間恢復。但平臺時間準確度不高,無法達到時頻系統恢復所允許的時間誤差范圍[1]。
隨著衛星導航系統的發展,以原子鐘為基礎的載荷時統以及自主導航的時間同步研究得到關注。關于導航衛星平臺時間的研究集中在壓控晶振電壓的閉環控制,通過調整壓控晶振的電壓以達到調整晶振頻率的目的。本文提出一種軟硬件相結合的平臺時間管理方法,以導航任務處理機1PPS(1 Pulse Per Second)信號作為平臺時間的校準信號,利用軟件對平臺時間誤差進行自主標定和校準,維持平臺時間的高精度,在載荷時統故障時反向授時,保持星上時間系統的穩定性和準確度。相對于傳統硬件調整時鐘頻率的方法,本文采用自主標定和校正的方式,使用簡單,不依賴硬件電路,適用范圍不限于壓控晶振。
導航衛星時間系統分為載荷時間和平臺時間。衛星時頻系統是載荷時間的基準,其以星載原子鐘為時間源,載荷設備均以時頻系統為時間基準。平臺時間系統以星載計算機的實時時鐘單元晶振為時間源。導航衛星時間系統示意圖如圖1所示。

圖1 導航衛星時間系統
導航衛星時間系統的建立和維持包括時間源、時間起點、時間間隔以及時間信息等。導航任務處理機自主維持的北斗時為載荷時間起點,時間間隔為1s(1PPS)。載荷時間即衛星時間,是實現導航服務的基礎。
一般情況下,載荷與運控系統星地間同步通過發送指令和上注鐘差參數實現。平臺與測控系統的星地時間同步通過地面測控系統上注實現。獲得初始時間后,時頻系統產生時間基準,導航任務處理機以此產生1PPS。導航衛星載荷單機均以此為時間基準進行校正。平臺以星載計算機實時時鐘單元實現自主守時。由于晶振準確度遠低于原子鐘,可利用1PPS信號對平臺時間進行校準。
星載計算機實時時鐘單元采用恒溫晶振(OCXO)。晶振的實際震蕩頻率與標稱頻率發生偏移(頻率漂移)的程度稱為準確度。由晶振頻率漂移引起的頻率誤差在采樣間隔內的一次積分形成時鐘偏置誤差。準確度引起的偏差會給測量系統引入累積誤差。晶振頻率穩定度是指由晶振相位噪聲引起的頻率隨機變化,會給測量系統引入隨機誤差。星載計算機的恒溫晶振如表1所示。

表1 恒溫晶振性能指標
星載計算機晶振頻率與載荷原子鐘系統時標準頻率的不嚴格同步是產生平臺時間與載荷時間時鐘誤差的根本原因。由表1可知恒溫晶振頻率準確度為5×10-6,頻率穩定度達到5×10-8。星載氫原子鐘準確度為5×10-12,穩定度為7×10-15量級[2]。導航任務處理機產生的1PPS信號準確度可達8×10-9量級,穩定度為10-11量級。時鐘晶振無法直接作為載荷時間的備用時間基準。可以利用載荷時頻系統1PPS時間信號對平臺時間進行標定,用軟件對鐘差進行校正,提高星載計算機時間的精度,達到載荷時間系統可用的程度。
載荷時間系統產生1PPS信號,作為時間基準輸入到星載計算機,星載計算機利用1PPS信號進行平臺時間校準。載荷時間系統故障時,星載計算機利用產生的平臺時間1PPS信號輸出給載荷系統進行反向授時。平臺時間校準設計如圖2所示。

圖2 平臺時間校準設計圖
晶振頻率信號經時鐘芯片輸出10MHz時鐘信號。導航任務處理機1PPS信號輸出到星載計算機。該1PPS信號有2個作用:1)星載計算機利用該1PPS信號實時校正平臺時鐘,以作為實時平臺時鐘信號;2)以1PPS信號為時間基準,利用星載計算機內設置的FPGA計數器,統計一段時間內的時鐘芯片輸出的10MHz脈沖上升沿個數,統計晶振時鐘的誤差,用于計算生成平臺1PPS信號的參數。載荷1PPS信號實時校正平臺時鐘示意圖如圖3所示:

圖3 1PPS信號校正平臺時鐘示意圖
導航任務處理機1PPS信號采用RS-422差分電平,周期為1s,正脈沖形式,脈沖寬度大于20μs。利用授時指令等操作使平臺時間與衛星時間在整數秒級一致。開啟PPS校時指令后,星載計算機時鐘信號每秒與1PPS信號上升沿對齊,誤差部分(Δt)舍棄。實際上,1PPS校正的是平臺10MHz時鐘的脈沖個數。例如,某個1PPS時間內對應的10MHz脈沖數是9999900,那么剩余的100個直接舍棄,重新開始計時。
10MHz時鐘最小時間間隔為100ns,每進行一次計數操作,引入的系統誤差范圍為-100~100ns,而且不可控。由于FPGA硬件接口限制,星載計算機只能進行微秒級的校時動作,星載計算機每一次動作都要消耗時間,引入了隨機誤差。如果利用載荷1PPS每秒校正平臺時鐘得到鐘差Δt,用Δt作為參數生成下一秒的平臺1PPS信號,則無法消除或者減小上述誤差。通過選取一段較長時間統計載荷時間與平臺時間的鐘差的方法,可以把由時鐘最小間隔帶來的誤差平攤到更長時間,也可以減小由計算機校時操作引起的外部隨機誤差。導航任務處理機的1PPS信號相對于絕對時間的誤差服從正態分布,選擇一段時間內的1PPS信號作為基準亦可減小隨機誤差。綜合考慮FPGA的資源開銷、隨時間增長而減小誤差的邊際遞減效應,以及晶振溫度穩定度和老化率等因素,選取127s作為統計時長。
1.3.1 鐘差的統計
星載計算機以載荷1PPS信號為時間基準,統計127s時間內平臺時鐘的誤差,作為校正參數生成高精度的平臺1PPS信號,在衛星時頻系統故障時對其進行反向授時,維持衛星時間的穩定和準確度。具體操作方法是FPGA計數器以1PPS校時信號為基準,統計127個1PPS時間單元內10MHz時鐘晶振脈沖的個數,并將此結果輸出給處理器,作為軟件計算自主校時的參數。在處理器模塊接口中增加4個寄存器,分別為計數使能寄存器、賦初值寄存器、計數寄存器、統計次數寄存器。計數功能流程圖如圖4所示。

圖4 FPGA計數器計數功能流程圖
如果1PPS校時信號為正脈沖,向配置寄存器寫‘0’,將內部信號初值配置為低電平;如果1PPS校時信號為負脈沖,則向配置寄存器寫‘1’,將內部信號初值配置為低電平。如果要停止統計脈沖個數,則只需向控制寄存器中寫‘0’,即可停止計數,并將所有計數器清零。
1.3.2 鐘差的校正
平臺時鐘的準確度可以保證其與1PPS時鐘信號的誤差值始終在同方向,則統計的總鐘差不會相互抵消,可以真實反映誤差情況。統計T1s至T127s共127s的平臺時間總誤差Δt總。實際操作中是以統計的10MHz平臺時鐘脈沖數與標稱頻率的誤差計算鐘差。誤差值包括了頻率準確度誤差、穩定度誤差、計數引起的系統誤差。其中穩定度誤差基本呈現正態分布,統計較長一段時間可以有效減小隨機誤差。
開啟自主校時指令后,按照上述方式每127s統計一次誤差值。把最近一次采集的誤差值存儲。當衛星時頻系統故障時,星載計算機連續3s采集不到導航任務處理機1PPS信號即把平臺1PPS信號輸出給導航任務處理機。
輸出給載荷的平臺1PPS需經過誤差校正,需要注意3點:1)誤差不能丟棄,需要完整的校正到輸出的1PPS中;2)由于FPGA硬件接口限制,星載計算機只能進行微秒級別的校正,故需要對每次校正的時間誤差參數進行調整;3)計算機每次進行校時動作需要消耗200ns時間,故每次校時需要將該時間開銷計入時鐘誤差內。具體的校正策略為:把最新的總時間誤差盡量完整的分攤到需要校正的127個平臺1PPS上,剩余的誤差累積到下一個127s總誤差中;每秒需要校正的時間參數為實際誤差最靠近的微秒級整數。詳細的校正步驟如下:
1)以載荷1PPS信號為時間基準,統計每127個1PPS信號時間內平臺10MHz時鐘晶振脈沖個數,依此計算平臺時間與載荷時間的總誤差Δt總;
2)需要校正時,星載計算機利用存儲的最新誤差值Δt總計算平臺127個1PPS每秒需要校正的時間參數;
3)計算第1s應調整的誤差值Δt1=(1×Δt總)/127,則取實際調整的參數Δt"1=[Δt1+0.2]μs,即取[Δt1+0.2]的整數部分,其中0.2 us為計算機操作需要消耗的時間。當Δt"1為0時即不調整。前2s應調整的總誤差值Δt2=(2×Δt總)/127,則取實際調整的參數Δt"2=[Δt2-Δt"1+0.2]μs,即前2s總的應調整的總誤差值Δt2減去第1s已經調整的Δt"1,再加上計算機操作時間0.2 us,取其整數部分即為第2s需要校正的誤差值;
4)前ns應調整的總誤差值Δtn=(n×Δt總)/127Z,則第ns實際調整的參數Δt"n=[Δtn-Δt"n-1+0.2]μs,即前ns總的應調整的誤差值Δtn減去前(n-1)s已經調整的Δt"n-1,再加上計算機操作時間0.2 μs,取其整數部分即為第ns需要校正的誤差值;
5)按照步驟4的方法逐秒調整平臺1PPS至第127個,若還有剩余的的時間誤差(Δt總-Δt"127)未調整,則累積到下一個127s 1PPS總誤差中繼續調整。
上述步驟中每次都要計算前n秒應調整的總誤差值Δtn=(n×Δt總)/127,并且不使用平均值計算的目的是為了計算中不丟失誤差值,即可以把誤差完整的調整到校時參數中,剩余誤差累積到下一個周期中同樣是為了不丟失誤差。平臺時間自主標定和校正流程如下圖所示:

圖5 平臺時間自主校正流程圖
地面試驗使用氫原子鐘作為時間頻率基準源,使用其輸出1PPS,其精度可達8×10-9量級,與導航任務處理機一致。與星載計算機10MHz時鐘晶振信號進行比對,統計一段時間后兩者產生的偏差,能夠計算出星載計算機每秒鐘的時鐘誤差值。在星載計算機開啟自主校時后再次進行比對試驗,統計一段時間的時鐘誤差值,計算每秒的時鐘誤差值。
試驗分別在低溫(-25℃)、高溫(60℃)、常溫(25℃)條件下進行。利用頻率計(SR620)記錄星載計算機晶振時鐘與原子鐘的鐘差,一段時間后再次記錄結束時的鐘差,計算出每秒平均鐘差。未進行自主標定和糾正的試驗數據如表2所示:

表2 未標定和糾正的平臺時間誤差
由上表可以看出,未進行時鐘校正平臺時間誤差的鐘差在395~655ns/s。標定和校正后的試驗數據如下表所示:

表3 標定和糾正后的平臺時間誤差
經過自主標定和校正后的時鐘鐘差范圍在0.397~0.604ns/s,由于導航任務處理機的1PPS準確度在10-9量級,可知平臺時間相比未校正前提高了約3個數量級,滿足30min誤差小于3μs的指標要求。由校正原理可知,該方法主要是校正了平臺時鐘的準確度誤差,也是主要誤差。穩定度誤差是隨機波動引起的誤差,增加統計時間可把誤差分散到更長的基數上以減少單位時間內誤差。技術系統誤差主要是硬件設計精度和軟件操作誤差,可在誤差統計中剔除,其對校正結果影響很小。
研究了提高導航衛星平臺時間的技術,針對導航衛星平臺時間精度較低的情況,提出了一種平臺時間維持方法。在衛星時間正常時利用載荷時間校正平臺時間;在衛星時間故障時,利用校正后的平臺時間維持衛星時間的穩定。經試驗驗證,采用該自主校時方法校正的平臺時間精度提高了3個數量級,驗證了增加統計時間、合理分攤誤差值以提高時鐘精度的正確性。與傳統的利用鐘差調整壓控晶振電壓以調節時鐘頻率的方法不同,本文采用軟硬件相結合的方法直接對時鐘誤差進行調整校正,為導航衛星平臺時間校正方法提供了經驗。該平臺時鐘校正方法已經應用于北斗三號工程8顆MEO衛星,經過地面試驗及在軌試驗驗證,該方法有效可行,有力保障了衛星時間的穩定性。后續可以調整鐘差統計時間,以找到誤差校正與資源開銷更好的平衡。