李艷麗,鄭建華,2,高東,2
(1. 中國科學(xué)院 國家空間科學(xué)中心,北京 100190;2. 中國科學(xué)院大學(xué),北京 100049)
脈沖星由于其穩(wěn)定的自轉(zhuǎn)周期和脈沖輻射頻率,被譽(yù)為自然界最穩(wěn)定的天文時鐘[1],是深空飛行器的天然導(dǎo)航信標(biāo)。由于脈沖星旋轉(zhuǎn)速度極快且可從磁極發(fā)出高密度光束,具備顛覆現(xiàn)有導(dǎo)航解決方案的潛力,并且脈沖星可覆蓋從低地球軌道直至行星際的整個宇宙空間,所以,X射線脈沖星導(dǎo)航是實現(xiàn)整個太陽系及以遠(yuǎn)空間飛行的最理想導(dǎo)航技術(shù)[2]。自1967年第一顆脈沖星被發(fā)現(xiàn)以來,人們對脈沖星的特性進(jìn)行了研究,根據(jù)其特性將其應(yīng)用于導(dǎo)航系統(tǒng)中的研究一直沒中斷。
1974年,美國噴氣推進(jìn)實驗室(Jet Propulsion Laboratory,JPL)的Downs博士提出基于脈沖星射電信號的星際航天器自主軌道確定方法的研究開創(chuàng)了脈沖星導(dǎo)航技術(shù)研究的先河。2004年,美國國防高級研究計劃局(Defense Advanced Research Projects Agency,DARPA)率先提出了“基于X射線源的自主導(dǎo)航定位驗證(X-ray Source-based Navigation for Autonomous Position Determination)”計劃,目標(biāo)是建立一個能夠提供定軌精度10 m、定時精度1 ns、姿態(tài)測量精度3″的脈沖星網(wǎng)絡(luò),以滿足高端精度自主導(dǎo)航應(yīng)用需求。
由于脈沖星自身的物理特性、X射線光子的特殊性以及空間背景噪聲的復(fù)雜性,實際工程化應(yīng)用的脈沖星導(dǎo)航探測極為復(fù)雜,探測器對有效探測面積、探測效率、時間分辨率、能量分辨、使用壽命、制造工藝、搭載可行性等因素提出了較高要求[3]。國內(nèi)基于X射線脈沖星導(dǎo)航的研究起步較晚,且搭載的空間X射線探測器主要用于空間環(huán)境探測。對X射線脈沖星的研究偏重于算法理論研究。
航天五院帥平等主要針對X射線脈沖星導(dǎo)航時間模型轉(zhuǎn)換、X射線脈沖星軌道力學(xué)以及濾波算法等問題進(jìn)行了研究,中科院國家授時中心的楊廷高重點研究了X射線脈沖星TOA(Time of Arrival)的空間測量方法和算法,中國科學(xué)院國家空間中心的鄧新坪等研究了以真實脈沖輪廓光子TOA為輸入的全鏈路的X射線脈沖星自主導(dǎo)航[4]。喬黎等提出了基于X射線脈沖星導(dǎo)航的硬件組成和系統(tǒng)結(jié)構(gòu)。2016年,我國發(fā)射了世界首顆脈沖星導(dǎo)航專用試驗衛(wèi)星(X-ray Pulsar-based Navigation-1,XPNAV-1)[5],但其工作主要是X射線脈沖星的探測,并未實現(xiàn)X射線脈沖星導(dǎo)航的目標(biāo)。目前,實現(xiàn)X射線脈沖星導(dǎo)航的原理樣機(jī)均采用FPGA(Field Programmable Gate Array)實現(xiàn)。
本文提出基于FPGA + DSP(Digital Signal Processing)的嵌入式平臺實現(xiàn)X射線脈沖星自主導(dǎo)航,能夠滿足星載設(shè)備小型化、高分辨率和高處理速率的要求。為將來X射線脈沖星深空導(dǎo)航的實現(xiàn)做準(zhǔn)備。X射線脈沖星自主導(dǎo)航當(dāng)前的任務(wù)是實現(xiàn)星際的自主導(dǎo)航和通信,而在將來,X射線脈沖星自主導(dǎo)航將是深空探測任務(wù)的關(guān)鍵技術(shù)和DNS(Domain Name System)的重要部分[6]。
脈沖星是一類位于銀河系中且高速旋轉(zhuǎn)的中子星,此類中子星在旋轉(zhuǎn)過程中會向外輻射電磁波。毫秒脈沖星是指周期低于20 ms的脈沖星,毫秒脈沖星具有非常穩(wěn)定的自旋周期,其頻率穩(wěn)定性可以與原子鐘相媲美,是脈沖星導(dǎo)航的理想?yún)⒖荚碵7]。
X射線脈沖星導(dǎo)航系統(tǒng)的基本觀測量是航天器與太陽系質(zhì)心(Solar System Barycenter,SSB)處的脈沖到達(dá)時間TOA之差[8]。X射線脈沖星在高速自轉(zhuǎn)運(yùn)動的同時,向外輻射X射線,利用深空探測器上安裝的X射線探測儀和星載原子鐘,能夠探測并記錄X射線光子到達(dá)探測器的時間,經(jīng)轉(zhuǎn)換可得出脈沖到達(dá)太陽系質(zhì)心的時間(觀測TOA)。通過計算脈沖星計時預(yù)報模型可以得到同一個脈沖信號到達(dá)太陽系質(zhì)心的時間(預(yù)報TOA)。這兩個脈沖到達(dá)時間之差δt反映了航天器的位置偏差,即預(yù)估位置和真實位置r偏差,在探測器到脈沖星的方向上cδt=n?δr(c是光速,n是脈沖星位置矢量),從多個脈沖星方向上獲取測量信息,同時利用航天器的軌道動力學(xué)模型,通過導(dǎo)航濾波算法即可得到航天器的估計位置,導(dǎo)航原理如圖1所示。
圖1 X射線脈沖星導(dǎo)航原理Fig. 1 The principle of the navigation based on X-ray Pulsar
探測器相對于太陽質(zhì)心的位置和速度分別為r=[x,y,z]T和= [x,y,z]T,則定義系統(tǒng)狀態(tài)量為
進(jìn)而得到狀態(tài)方程為
對于上式的非線性系統(tǒng),定義
將非線性系統(tǒng)變換為如下線性形式
其中:δxj為真實狀態(tài)與估計狀態(tài)之間的偏差;Φj|j-1為狀態(tài)轉(zhuǎn)移矩陣。
通常濾波過程中,濾波周期較短,則狀態(tài)轉(zhuǎn)移矩陣為
其中:T=tj-tj-1為濾波周期。
X射線脈沖星的計時預(yù)報模型為
脈沖到達(dá)航天器的時間同脈沖到達(dá)太陽系質(zhì)心時間的轉(zhuǎn)換方程為
其中:tSSB為脈沖到達(dá)太陽系質(zhì)心的時間;tSC為脈沖到達(dá)航天器的時間;n為太陽系質(zhì)心慣性坐標(biāo)系中脈沖星位置方向的單位矢量;rm為航天器在地球質(zhì)心J2000.0慣性坐標(biāo)系中的位置矢量;為地球在太陽系質(zhì)心慣性坐標(biāo)系中的位置矢量;c為光速;D0為太陽系質(zhì)心坐標(biāo)系原點到脈沖星的距離;b和b分別為太陽系質(zhì)心在太陽系質(zhì)心J2000.0慣性坐標(biāo)系中的位置矢量及其模;μs為太陽引力常數(shù)。
X射線脈沖星導(dǎo)航中最基本的觀測量為預(yù)報的TOA和測量的TOA之間的插值(TOA殘差),即
X射線脈沖星導(dǎo)航的測量方程為
其中:hix,hiy,hiz分別為第i顆脈沖星的測量方程對x,y,z的偏導(dǎo)數(shù);i為脈沖星個數(shù);w(k)為脈沖星導(dǎo)航的測量噪聲。
X射線脈沖星自主導(dǎo)航系統(tǒng)主要包括:X射線探測器、星載原子鐘、導(dǎo)航計算機(jī)等。X射線探測器用于探測X射線光子,星載原子鐘用于計算光子到達(dá)航天器的時間,導(dǎo)航計算機(jī)則根據(jù)光子到達(dá)時間,通過一系列解算,得出航天器的位置和速度等信息。本文設(shè)計的X射線脈沖星導(dǎo)航系統(tǒng)原理樣機(jī)將光子數(shù)據(jù)存儲于上位機(jī)中,系統(tǒng)上電后,導(dǎo)航處理器將光子數(shù)據(jù)從上位機(jī)讀入到導(dǎo)航處理器中,接收到導(dǎo)航指令后,導(dǎo)航處理器對光子到達(dá)時間進(jìn)行時間轉(zhuǎn)化、脈沖折疊與辨識、導(dǎo)航解算,最后實現(xiàn)導(dǎo)航結(jié)果輸出。
X射線脈沖星自主導(dǎo)航處理器原理樣機(jī)的硬件平臺采用模塊化設(shè)計,可分為數(shù)據(jù)收發(fā)模塊、邏輯控制模塊、導(dǎo)航處理模塊和電源模塊。其中,數(shù)據(jù)收發(fā)模塊主要由RS422組成,邏輯控制模塊主要由FPGA組成,導(dǎo)航處理模塊主要由TI公司的DSP組成。
根據(jù)X射線脈沖星自主導(dǎo)航系統(tǒng)的需求,本系統(tǒng)選取TI公司32/64位浮點DSP C6727B作為核心處理器,該處理器的CPU處理速度為350 MHz,且提供了32位的EMIF接口,SDRAM的速率為133 MHz,滿足X射線脈沖星導(dǎo)航系統(tǒng)高精度、高速率、大存儲的要求。FPGA選取ACTEL公司的A3PE600作為控制芯片,A3PE600含有60萬邏輯門、108 kb的RAM、1 kb的ROM、6個集成PLL的CCC,能夠?qū)崿F(xiàn)X射線脈沖星自主導(dǎo)航系統(tǒng)的控制和數(shù)據(jù)存儲功能。處理器對FPGA擴(kuò)展了1 G的SDRAM外部存儲空間,即采用兩片512 Mb的SDRAM用地址串聯(lián)的方式得到1 Gb的存儲空間。系統(tǒng)與外部的通信通過RS422接口實現(xiàn),即光子數(shù)據(jù)以115 200 bps的速率從上位機(jī)通過RS422接口傳輸?shù)綄?dǎo)航系統(tǒng)中。硬件框圖如圖2所示。
圖2 X射線脈沖星自主導(dǎo)航半物理仿真系統(tǒng)硬件框圖Fig. 2 The hardware block diagram of semi-physical simulation system of X-ray pulsar navigation
導(dǎo)航處理器上電后,F(xiàn)PGA控制RS422接收上位機(jī)中的光子到達(dá)時間數(shù)據(jù),并將接收到的數(shù)據(jù)暫存在SDRAM中,當(dāng)系統(tǒng)發(fā)出導(dǎo)航指令后,F(xiàn)PGA將SDR AM中的數(shù)據(jù)通過EMIF總線傳輸?shù)紻SP中,在DSP中完成對光子到達(dá)時間的時間轉(zhuǎn)換、脈沖折疊、脈沖輪廓互相關(guān)處理等運(yùn)算,得到導(dǎo)航結(jié)果,并將導(dǎo)航結(jié)果傳入FPGA,F(xiàn)PGA再通過RS422傳回上位機(jī)進(jìn)行導(dǎo)航結(jié)果的顯示。
X射線脈沖星導(dǎo)航系統(tǒng)的軟件設(shè)計包括FPGA程序和DSP程序。其中,F(xiàn)PGA程序主要是時序控制及邏輯控制,包括時鐘復(fù)位模塊、SDRAM模塊、數(shù)據(jù)交換模塊、RS422收發(fā)模塊等。DSP程序主要是導(dǎo)航算法程序,包括基本參數(shù)數(shù)據(jù)庫、脈沖星模型數(shù)據(jù)庫、TOA轉(zhuǎn)換、脈沖輪廓折疊、脈沖輪廓互相關(guān)處理、最小二乘濾波等。FPGA的程序流程圖如圖3所示。
圖3 FPGA程序流程圖Fig. 3 The flowchart of FPGA program
光子數(shù)據(jù)從上位機(jī)通過RS422接收模塊以115 200 bps的速率被讀入到FPGA中。數(shù)據(jù)在接收模塊中將接收到的8 bit的光子數(shù)據(jù)組合成16 bit的數(shù)據(jù)后將其存入到SDRAM中以備用。當(dāng)所有的光子數(shù)據(jù)都寫入到SDRAM中后,F(xiàn)PGA發(fā)送一個中斷指令給DSP,DSP開始導(dǎo)航程序。DSP啟動后,首先通過初始化程序?qū)lash中的配置程序加載到DSP中。當(dāng)接收到FPGA的導(dǎo)航指令時,DSP通過EMIF接口將存儲在SDRAM中的光子數(shù)據(jù)讀入到DSP中,并對光子到達(dá)時間轉(zhuǎn)換、軌道預(yù)報、脈沖折疊、脈沖輪廓互相關(guān)處理、星歷插值以及最小二乘濾波等數(shù)值運(yùn)算,最終得到導(dǎo)航結(jié)果。得到導(dǎo)航結(jié)果后再通過EMIF接口將數(shù)據(jù)傳入FPGA,并從RS422發(fā)送模塊將導(dǎo)航結(jié)果顯示到上位機(jī)中。
本系統(tǒng)對FPGA擴(kuò)展了兩個512 M的SDRAM芯片即MT48LC32M16A2,滿足了大量光子數(shù)據(jù)的存儲。SDRAM的存儲單元是按照行和列進(jìn)行尋址的,在進(jìn)行尋址時,首先要確定一個BANK,然后再在這個BANK中選擇相應(yīng)的行和列進(jìn)行尋址。在系統(tǒng)上電100~200 us后,需要通過初始化來配置SDRAM的工作模式,初始化首先通過Precharge指令完成對所有BANK的預(yù)充,然后執(zhí)行自動刷新指令,最后對模式寄存器進(jìn)行配置。本系統(tǒng)中的模式寄存器配置為突發(fā)讀/寫,CAS延時為3個clk,突發(fā)傳輸方式為按照順序傳輸,突發(fā)長度為1的配置模式。
SDRAM的讀寫控制頂層模塊程序如下:
SDRAM的讀寫控制模塊其RTL級框圖如圖4所示。
圖4 SDRAM讀寫控制模塊的RTL級框圖Fig. 4 The RTL block of SDRAM control module
數(shù)據(jù)交換模塊,主要是通過DSP的EMIF接口實現(xiàn)光子數(shù)據(jù)、導(dǎo)航結(jié)果、脈沖星輪廓等數(shù)據(jù)在DSP與FP GA之間的數(shù)據(jù)傳輸。FPGA采用EMIF的EM_CS[2]空間,并將其設(shè)計為16位的異步接口。其頂層模塊設(shè)計如下。
數(shù)據(jù)交換模塊的RTL級框圖如圖5所示。
圖5 數(shù)據(jù)交換模塊的RTL級框圖Fig. 5 The RTL block of data exchange module
導(dǎo)航算法主要在DSP中實現(xiàn),DSP主程序流程圖如圖6所示。系統(tǒng)上電后,DSP首先對PLL、GPIO以及外部中斷進(jìn)行初始化。當(dāng)接收到導(dǎo)航指令后,開始導(dǎo)航,DSP開始讀取SDRAM中的光子數(shù)據(jù),并通過導(dǎo)航解算將光子到達(dá)航天器的時間轉(zhuǎn)換為航天器的位置速度信息。
圖6 DSP主程序流程圖Fig. 6 The flowchart of DSP main program
DSP的Flash中需配置導(dǎo)航的基本參數(shù)數(shù)據(jù)庫和4顆脈沖星模型數(shù)據(jù)庫,包括脈沖星輪廓模型、脈沖星計時模型、脈沖星星歷參數(shù)、脈沖星特征參數(shù)。即將所有的參數(shù)根據(jù)數(shù)據(jù)大小存放于Flash的相應(yīng)地址處并給出首地址,在需要使用某個數(shù)據(jù)時將其讀出即可。
X射線脈沖星自主導(dǎo)航半物理仿真系統(tǒng)如圖7所示。半物理仿真系統(tǒng)由上位機(jī)和導(dǎo)航原理樣機(jī)組成,上位機(jī)用于模擬光子探測器,實時產(chǎn)生X射線脈沖星的光子數(shù)據(jù);導(dǎo)航原理樣機(jī)對光子數(shù)據(jù)進(jìn)行實時接收,并進(jìn)行導(dǎo)航運(yùn)算。
圖7 X射線脈沖星導(dǎo)航半物理仿真系統(tǒng)Fig. 7 The semi-physical simulation system of the X-ray pulsar navigation
本系統(tǒng)中的光子數(shù)據(jù)是以真實的X射線脈沖星輻射流量、脈沖輪廓等為基準(zhǔn),仿真生成X射線光子到達(dá)時間。
半物理仿真系統(tǒng)選取4顆毫秒脈沖星作為導(dǎo)航所用的脈沖星組合,4顆脈沖星分別為J0437-4715、J1824-2452A、J1939 + 2134、J2124-3358,其基本信息如表1所示。從左到右第1、第2列分別為脈沖星的J2000和B1950名稱,第3列為脈沖周期,第4列、第5列分別為脈沖星的赤經(jīng)(Right Ascension)和赤緯(Declination,DEC),第6、7、8列分別為脈沖星單位位置矢量P在x,y,z方向上的投影[9]。
X射線脈沖星導(dǎo)航解算的處理過程如圖8所示。X射線光子進(jìn)入X射線探測器并被其感知的同時,星上時鐘會給出對應(yīng)的固有時光子到達(dá)時間(TOA),在將固有時光子TOA轉(zhuǎn)換為坐標(biāo)時光子TOA的基礎(chǔ)上,可進(jìn)行脈沖折疊以給出測量脈沖輪廓;通過將測量脈沖輪廓與標(biāo)準(zhǔn)脈沖輪廓進(jìn)行互相關(guān)處理,可以獲得測量脈沖輪廓相對于標(biāo)準(zhǔn)脈沖輪廓的相位平移;相位平移與折疊參考?xì)v元相加即為測量TOA;測量TOA與基于TOA模型的預(yù)報TOA之間的差值被定義為TOA殘差,TOA殘差含有航天器位置與速度誤差信息;通過對TOA殘差進(jìn)行濾波處理,可對航天器進(jìn)行導(dǎo)航。利用批處理的最小二乘算法作為導(dǎo)航濾波器,結(jié)合軌道動力學(xué)模型,得到航天器的位置和速度。
表1 4顆脈沖星基本信息Table 1 The basic parameters of pulsars
圖8 X射線脈沖星自主導(dǎo)航處理過程Fig. 8 The autonomous navigation process of X-ray pulsars
本仿真系統(tǒng)假定每10天即每864 000 s進(jìn)行一次導(dǎo)航,共進(jìn)行12次導(dǎo)航,每次導(dǎo)航中對每顆脈沖星進(jìn)行10次觀測。設(shè)探測器面積為1 m2,探測器時間分辨率為1 × 10–5s,背景輻射流量為4.40 × 10–15erg/s/cm2,星歷文件為DE405,軌道數(shù)據(jù)是基于STK模擬的火星探測軌道數(shù)據(jù)。系統(tǒng)仿真的初始條件如圖9(紅色框中)所示。X射線脈沖星導(dǎo)航的位置誤差和速度誤差如圖10所示。
圖9 仿真系統(tǒng)初始條件Fig. 9 The initial condition of simulation system
圖10 位置誤差和速度誤差Fig. 10 Position error and velocity error
由仿真結(jié)果可知,本導(dǎo)航算法的位置誤差優(yōu)于10 km,速度誤差優(yōu)于1 km/s,滿足深空導(dǎo)航系統(tǒng)速度和位置的精度要求。通過仿真發(fā)現(xiàn),導(dǎo)航算法還有一定的優(yōu)化空間,可以進(jìn)一步提高導(dǎo)航效率。
本文設(shè)計了基于DSP + FPGA平臺的脈沖星導(dǎo)航系統(tǒng)。模擬了X射線脈沖星自主導(dǎo)航系統(tǒng)接收光子數(shù)據(jù)并存儲、傳輸以及進(jìn)行導(dǎo)航解算的整個自主導(dǎo)航流程,最終得到位置和速度信息,且仿真結(jié)果表明該導(dǎo)航系統(tǒng)的位置精度優(yōu)于10 km,速度精度優(yōu)于1 km/s,并在FPGA + DSP平臺上驗證了X射線脈沖星自主導(dǎo)航系統(tǒng)的有效性。