李艳丽,郑建华,2,高东,2
(1. 中国科学院 国家空间科学中心,北京 100190;2. 中国科学院大学,北京 100049)
脉冲星由于其稳定的自转周期和脉冲辐射频率,被誉为自然界最稳定的天文时钟[1],是深空飞行器的天然导航信标。由于脉冲星旋转速度极快且可从磁极发出高密度光束,具备颠覆现有导航解决方案的潜力,并且脉冲星可覆盖从低地球轨道直至行星际的整个宇宙空间,所以,X射线脉冲星导航是实现整个太阳系及以远空间飞行的最理想导航技术[2]。自1967年第一颗脉冲星被发现以来,人们对脉冲星的特性进行了研究,根据其特性将其应用于导航系统中的研究一直没中断。
1974年,美国喷气推进实验室(Jet Propulsion Laboratory,JPL)的Downs博士提出基于脉冲星射电信号的星际航天器自主轨道确定方法的研究开创了脉冲星导航技术研究的先河。2004年,美国国防高级研究计划局(Defense Advanced Research Projects Agency,DARPA)率先提出了“基于X射线源的自主导航定位验证(X-ray Source-based Navigation for Autonomous Position Determination)”计划,目标是建立一个能够提供定轨精度10 m、定时精度1 ns、姿态测量精度3″的脉冲星网络,以满足高端精度自主导航应用需求。
由于脉冲星自身的物理特性、X射线光子的特殊性以及空间背景噪声的复杂性,实际工程化应用的脉冲星导航探测极为复杂,探测器对有效探测面积、探测效率、时间分辨率、能量分辨、使用寿命、制造工艺、搭载可行性等因素提出了较高要求[3]。国内基于X射线脉冲星导航的研究起步较晚,且搭载的空间X射线探测器主要用于空间环境探测。对X射线脉冲星的研究偏重于算法理论研究。
航天五院帅平等主要针对X射线脉冲星导航时间模型转换、X射线脉冲星轨道力学以及滤波算法等问题进行了研究,中科院国家授时中心的杨廷高重点研究了X射线脉冲星TOA(Time of Arrival)的空间测量方法和算法,中国科学院国家空间中心的邓新坪等研究了以真实脉冲轮廓光子TOA为输入的全链路的X射线脉冲星自主导航[4]。乔黎等提出了基于X射线脉冲星导航的硬件组成和系统结构。2016年,我国发射了世界首颗脉冲星导航专用试验卫星(X-ray Pulsar-based Navigation-1,XPNAV-1)[5],但其工作主要是X射线脉冲星的探测,并未实现X射线脉冲星导航的目标。目前,实现X射线脉冲星导航的原理样机均采用FPGA(Field Programmable Gate Array)实现。
本文提出基于FPGA + DSP(Digital Signal Processing)的嵌入式平台实现X射线脉冲星自主导航,能够满足星载设备小型化、高分辨率和高处理速率的要求。为将来X射线脉冲星深空导航的实现做准备。X射线脉冲星自主导航当前的任务是实现星际的自主导航和通信,而在将来,X射线脉冲星自主导航将是深空探测任务的关键技术和DNS(Domain Name System)的重要部分[6]。
脉冲星是一类位于银河系中且高速旋转的中子星,此类中子星在旋转过程中会向外辐射电磁波。毫秒脉冲星是指周期低于20 ms的脉冲星,毫秒脉冲星具有非常稳定的自旋周期,其频率稳定性可以与原子钟相媲美,是脉冲星导航的理想参考源[7]。
X射线脉冲星导航系统的基本观测量是航天器与太阳系质心(Solar System Barycenter,SSB)处的脉冲到达时间TOA之差[8]。X射线脉冲星在高速自转运动的同时,向外辐射X射线,利用深空探测器上安装的X射线探测仪和星载原子钟,能够探测并记录X射线光子到达探测器的时间,经转换可得出脉冲到达太阳系质心的时间(观测TOA)。通过计算脉冲星计时预报模型可以得到同一个脉冲信号到达太阳系质心的时间(预报TOA)。这两个脉冲到达时间之差δt反映了航天器的位置偏差,即预估位置和真实位置r偏差,在探测器到脉冲星的方向上cδt=n∙δr(c是光速,n是脉冲星位置矢量),从多个脉冲星方向上获取测量信息,同时利用航天器的轨道动力学模型,通过导航滤波算法即可得到航天器的估计位置,导航原理如图1所示。
图1 X射线脉冲星导航原理Fig. 1 The principle of the navigation based on X-ray Pulsar
探测器相对于太阳质心的位置和速度分别为r=[x,y,z]T和= [x,y,z]T,则定义系统状态量为
进而得到状态方程为
对于上式的非线性系统,定义
将非线性系统变换为如下线性形式
其中:δxj为真实状态与估计状态之间的偏差;Φj|j-1为状态转移矩阵。
通常滤波过程中,滤波周期较短,则状态转移矩阵为
其中:T=tj-tj-1为滤波周期。
X射线脉冲星的计时预报模型为
脉冲到达航天器的时间同脉冲到达太阳系质心时间的转换方程为
其中:tSSB为脉冲到达太阳系质心的时间;tSC为脉冲到达航天器的时间;n为太阳系质心惯性坐标系中脉冲星位置方向的单位矢量;rm为航天器在地球质心J2000.0惯性坐标系中的位置矢量;为地球在太阳系质心惯性坐标系中的位置矢量;c为光速;D0为太阳系质心坐标系原点到脉冲星的距离;b和b分别为太阳系质心在太阳系质心J2000.0惯性坐标系中的位置矢量及其模;μs为太阳引力常数。
X射线脉冲星导航中最基本的观测量为预报的TOA和测量的TOA之间的插值(TOA残差),即
X射线脉冲星导航的测量方程为
其中:hix,hiy,hiz分别为第i颗脉冲星的测量方程对x,y,z的偏导数;i为脉冲星个数;w(k)为脉冲星导航的测量噪声。
X射线脉冲星自主导航系统主要包括:X射线探测器、星载原子钟、导航计算机等。X射线探测器用于探测X射线光子,星载原子钟用于计算光子到达航天器的时间,导航计算机则根据光子到达时间,通过一系列解算,得出航天器的位置和速度等信息。本文设计的X射线脉冲星导航系统原理样机将光子数据存储于上位机中,系统上电后,导航处理器将光子数据从上位机读入到导航处理器中,接收到导航指令后,导航处理器对光子到达时间进行时间转化、脉冲折叠与辨识、导航解算,最后实现导航结果输出。
X射线脉冲星自主导航处理器原理样机的硬件平台采用模块化设计,可分为数据收发模块、逻辑控制模块、导航处理模块和电源模块。其中,数据收发模块主要由RS422组成,逻辑控制模块主要由FPGA组成,导航处理模块主要由TI公司的DSP组成。
根据X射线脉冲星自主导航系统的需求,本系统选取TI公司32/64位浮点DSP C6727B作为核心处理器,该处理器的CPU处理速度为350 MHz,且提供了32位的EMIF接口,SDRAM的速率为133 MHz,满足X射线脉冲星导航系统高精度、高速率、大存储的要求。FPGA选取ACTEL公司的A3PE600作为控制芯片,A3PE600含有60万逻辑门、108 kb的RAM、1 kb的ROM、6个集成PLL的CCC,能够实现X射线脉冲星自主导航系统的控制和数据存储功能。处理器对FPGA扩展了1 G的SDRAM外部存储空间,即采用两片512 Mb的SDRAM用地址串联的方式得到1 Gb的存储空间。系统与外部的通信通过RS422接口实现,即光子数据以115 200 bps的速率从上位机通过RS422接口传输到导航系统中。硬件框图如图2所示。
图2 X射线脉冲星自主导航半物理仿真系统硬件框图Fig. 2 The hardware block diagram of semi-physical simulation system of X-ray pulsar navigation
导航处理器上电后,FPGA控制RS422接收上位机中的光子到达时间数据,并将接收到的数据暂存在SDRAM中,当系统发出导航指令后,FPGA将SDR AM中的数据通过EMIF总线传输到DSP中,在DSP中完成对光子到达时间的时间转换、脉冲折叠、脉冲轮廓互相关处理等运算,得到导航结果,并将导航结果传入FPGA,FPGA再通过RS422传回上位机进行导航结果的显示。
X射线脉冲星导航系统的软件设计包括FPGA程序和DSP程序。其中,FPGA程序主要是时序控制及逻辑控制,包括时钟复位模块、SDRAM模块、数据交换模块、RS422收发模块等。DSP程序主要是导航算法程序,包括基本参数数据库、脉冲星模型数据库、TOA转换、脉冲轮廓折叠、脉冲轮廓互相关处理、最小二乘滤波等。FPGA的程序流程图如图3所示。
图3 FPGA程序流程图Fig. 3 The flowchart of FPGA program
光子数据从上位机通过RS422接收模块以115 200 bps的速率被读入到FPGA中。数据在接收模块中将接收到的8 bit的光子数据组合成16 bit的数据后将其存入到SDRAM中以备用。当所有的光子数据都写入到SDRAM中后,FPGA发送一个中断指令给DSP,DSP开始导航程序。DSP启动后,首先通过初始化程序将Flash中的配置程序加载到DSP中。当接收到FPGA的导航指令时,DSP通过EMIF接口将存储在SDRAM中的光子数据读入到DSP中,并对光子到达时间转换、轨道预报、脉冲折叠、脉冲轮廓互相关处理、星历插值以及最小二乘滤波等数值运算,最终得到导航结果。得到导航结果后再通过EMIF接口将数据传入FPGA,并从RS422发送模块将导航结果显示到上位机中。
本系统对FPGA扩展了两个512 M的SDRAM芯片即MT48LC32M16A2,满足了大量光子数据的存储。SDRAM的存储单元是按照行和列进行寻址的,在进行寻址时,首先要确定一个BANK,然后再在这个BANK中选择相应的行和列进行寻址。在系统上电100~200 us后,需要通过初始化来配置SDRAM的工作模式,初始化首先通过Precharge指令完成对所有BANK的预充,然后执行自动刷新指令,最后对模式寄存器进行配置。本系统中的模式寄存器配置为突发读/写,CAS延时为3个clk,突发传输方式为按照顺序传输,突发长度为1的配置模式。
SDRAM的读写控制顶层模块程序如下:
SDRAM的读写控制模块其RTL级框图如图4所示。
图4 SDRAM读写控制模块的RTL级框图Fig. 4 The RTL block of SDRAM control module
数据交换模块,主要是通过DSP的EMIF接口实现光子数据、导航结果、脉冲星轮廓等数据在DSP与FP GA之间的数据传输。FPGA采用EMIF的EM_CS[2]空间,并将其设计为16位的异步接口。其顶层模块设计如下。
数据交换模块的RTL级框图如图5所示。
图5 数据交换模块的RTL级框图Fig. 5 The RTL block of data exchange module
导航算法主要在DSP中实现,DSP主程序流程图如图6所示。系统上电后,DSP首先对PLL、GPIO以及外部中断进行初始化。当接收到导航指令后,开始导航,DSP开始读取SDRAM中的光子数据,并通过导航解算将光子到达航天器的时间转换为航天器的位置速度信息。
图6 DSP主程序流程图Fig. 6 The flowchart of DSP main program
DSP的Flash中需配置导航的基本参数数据库和4颗脉冲星模型数据库,包括脉冲星轮廓模型、脉冲星计时模型、脉冲星星历参数、脉冲星特征参数。即将所有的参数根据数据大小存放于Flash的相应地址处并给出首地址,在需要使用某个数据时将其读出即可。
X射线脉冲星自主导航半物理仿真系统如图7所示。半物理仿真系统由上位机和导航原理样机组成,上位机用于模拟光子探测器,实时产生X射线脉冲星的光子数据;导航原理样机对光子数据进行实时接收,并进行导航运算。
图7 X射线脉冲星导航半物理仿真系统Fig. 7 The semi-physical simulation system of the X-ray pulsar navigation
本系统中的光子数据是以真实的X射线脉冲星辐射流量、脉冲轮廓等为基准,仿真生成X射线光子到达时间。
半物理仿真系统选取4颗毫秒脉冲星作为导航所用的脉冲星组合,4颗脉冲星分别为J0437-4715、J1824-2452A、J1939 + 2134、J2124-3358,其基本信息如表1所示。从左到右第1、第2列分别为脉冲星的J2000和B1950名称,第3列为脉冲周期,第4列、第5列分别为脉冲星的赤经(Right Ascension)和赤纬(Declination,DEC),第6、7、8列分别为脉冲星单位位置矢量P在x,y,z方向上的投影[9]。
X射线脉冲星导航解算的处理过程如图8所示。X射线光子进入X射线探测器并被其感知的同时,星上时钟会给出对应的固有时光子到达时间(TOA),在将固有时光子TOA转换为坐标时光子TOA的基础上,可进行脉冲折叠以给出测量脉冲轮廓;通过将测量脉冲轮廓与标准脉冲轮廓进行互相关处理,可以获得测量脉冲轮廓相对于标准脉冲轮廓的相位平移;相位平移与折叠参考历元相加即为测量TOA;测量TOA与基于TOA模型的预报TOA之间的差值被定义为TOA残差,TOA残差含有航天器位置与速度误差信息;通过对TOA残差进行滤波处理,可对航天器进行导航。利用批处理的最小二乘算法作为导航滤波器,结合轨道动力学模型,得到航天器的位置和速度。
表1 4颗脉冲星基本信息Table 1 The basic parameters of pulsars
图8 X射线脉冲星自主导航处理过程Fig. 8 The autonomous navigation process of X-ray pulsars
本仿真系统假定每10天即每864 000 s进行一次导航,共进行12次导航,每次导航中对每颗脉冲星进行10次观测。设探测器面积为1 m2,探测器时间分辨率为1 × 10–5s,背景辐射流量为4.40 × 10–15erg/s/cm2,星历文件为DE405,轨道数据是基于STK模拟的火星探测轨道数据。系统仿真的初始条件如图9(红色框中)所示。X射线脉冲星导航的位置误差和速度误差如图10所示。
图9 仿真系统初始条件Fig. 9 The initial condition of simulation system
图10 位置误差和速度误差Fig. 10 Position error and velocity error
由仿真结果可知,本导航算法的位置误差优于10 km,速度误差优于1 km/s,满足深空导航系统速度和位置的精度要求。通过仿真发现,导航算法还有一定的优化空间,可以进一步提高导航效率。
本文设计了基于DSP + FPGA平台的脉冲星导航系统。模拟了X射线脉冲星自主导航系统接收光子数据并存储、传输以及进行导航解算的整个自主导航流程,最终得到位置和速度信息,且仿真结果表明该导航系统的位置精度优于10 km,速度精度优于1 km/s,并在FPGA + DSP平台上验证了X射线脉冲星自主导航系统的有效性。