张心宇, 刘 源,*, 宋佳凝
(1. 中山大学天琴中心, 广东 珠海 519082; 2. 中山大学物理与天文学院, 广东 珠海 519082)
近年来随着国内外航天技术的发展,空间任务、空间系统均日趋复杂化,这对卫星在轨的智能性、自主性提出了越来越高的要求。为了提升卫星的在轨自主性,使其具备较强的在轨自主任务规划与任务协同能力,则卫星至少需要具备中短期的在轨自主轨道预报能力。而现有轨道预报方法主要存在预报精度低与计算量大的缺陷[1-4]。
目前传统轨道预测方法主要是基于物理建模,一般有两种思路[1]。一种是数值法[2],从初始状态开始,利用状态变化的导数逐步积分,从而得到后来任意时刻的状态。利用数值法进行高精度轨道预报不仅需要对卫星几何信息、地心引力,大气阻力、太阳辐射压力等方面有精细的模型,更会消耗巨大的计算成本和时间成本。另一种是解析法[3],根据影响轨道运动的主要摄动力得出卫星运动的解析表达式,通过求解析解对卫星轨道进行预报。解析法的优势在于计算速度极快,运行时只占用少量的计算资源。但是由于各种摄动力的精确模型十分复杂,准确求解出解析解极其困难,只能对摄动模型进行一定程度上的简化,得到精度较低的近似解,更多被应用在数量巨大、预报精度要求低的空间碎片预报上。因此,无论是数值法与解析法均难以满足卫星平台自主高精度轨道预报的需求[4]。神经网络作为一种机器学习算法,能够在不进行具体建模的基础上对复杂规律进行学习,掌握其输入输出函数的内在联系。同时,神经网络在进行训练时计算量较大,但是完成训练后利用其进行计算时计算量则较小,注入卫星后能够比现在主流的四阶Runge-Kutta数值法与解析法方法更适用于星上的计算环境[4]。
Peng等利用人工神经网络学习传统方法预测卫星轨道的历史误差,显著提升了卫星预测精度[5]。除了神经网络,他们还利用支持向量机(support vector machine, SVM)[6-8]以及高斯过程(Gaussian process, GP)[9]两种机器学习算法对传统方法的历史预测误差进行学习,并将3种机器学习算法的结果进行了详细的对比[10]与缺陷分析[11]。类似的还有Li等人提出的一种基于机器学习的单站稀疏跟踪数据改进低轨空间碎片轨道预测的方法[12]。文献[13]提出基于补偿波形调整的导航卫星轨道预报方法,采用补偿波形调整的神经网络优化模型后,预报弧长为8 d、15 d、30 d时,改进率分别提高了2.3%、6.7%、10%。曹磊[14]以全球定位系统(global positioning system, GPS)导航卫星为对象,分别采用反向传播(back propagation, BP)网络和深度神经网络对预报误差进行建模并进行了预报,结果表明基于深度神经网混合模型的方法对于GPS导航卫星的预报精度有较大程度的改进。Yang在没有物理建模的情况下,直接利用长短期记忆(long short-term memory, LSTM)学习卫星轨道变化规律,并用萤火虫算法加以改进,一天预报精度达到了百米量级[15]。文献[16]提出将优化的LSTM网络直接应用在卫星轨道数据上,将预报20 d的误差由之前最大值的300 km降低到5 km以下。文献[15-16]利用了LSTM神经网络,但都没有利用到任何动力学模型,直接利用预报轨道作为训练样本,而且除了轨道坐标数据没有引入任何特征,因此导致神经网络输出量的动态范围过大,预报精度仍有进一步提升的空间。同时,之前提出的基于神经网络的轨道预报方法都需要长达几百天训练的数据,限制了模型应用的灵活性。针对上述不足,本文提出一种新的轨道预报算法,在SGP4(simplified general perturbations)解析法轨道预报模型的基础上,利用LSTM神经网络以位置、速度、加速度作为特征,对SGP4轨道预报历史误差进行学习,通过预测并修正未来SGP4轨道预报误差,改进动力学模型的短期轨道预报精度。
北美防空司令部(North American Aerospace Defense Command, NORAD)提供的TLE(two-line mean element)是目前最为完整的地球轨道空间目标的轨道数据,SGP4/SDP4(simplified deep-space perturbation)模型[17]是NORAD提供的配合 TLE 使用的解析轨道预报模型,能够快速计算出任何时刻卫星的状态。由于模型计算效率较高,预报精度尚可,因此被广泛应用[18]。SGP4/SDP4算法对于近地目标预报3 d位置误差小于40 km;对半同步轨道预报30 d和同步轨道预报15 d,预报误差小于40 km;椭圆轨道目标预报1 d位置误差小于20 km[19]。
TLE+SGP4预报误差主要由两部分组成[20]。第一部分是TLE轨道根数的误差,是由监视网的测量误差与定轨中拟合算法误差共同引起的[21]。NORAD并没有提供更详细关于TLE误差的说明,在没有更高精度测量数据的情况下,这部分误差是无法消除的。第二部分是SGP4模型的误差,主要由采用不精确的大气阻力模型与低阶的地球引力场模型导致[22]。SGP4模型为了确保较快的运算速度,采用了简化的摄动力模型。其大气模型只考虑了大气阻尼的长期影响,采用大气密度随高度变化的指数大气密度模型。模型中气动阻力项B*为归一化的大气阻力系数[23]:
(1)
式中:
(2)
ρo为大气密度参考值;B为弹道系数;Cd为无量纲的气动阻力系数;A/m为卫星面质比。B*是利用历史数据将其与其他轨道根数一同进行解算,获得平均化的计算初值,在SGP4外推过程一直为不变项,这必然会引起预报的较大误差[24]。
同时SGP4使用的地球引力模型只考虑了J2、J3、J4带谐项的影响,并未考虑J22田谐项的影响。对于典型的102量级(归一化量纲)的预报,由忽略田谐项产生的误差可以达到百米级甚至千米级[25]。本文希望通过学习历史误差数据的变化规律,提前预测TLE+SGP4的预报误差,从而提高短期轨道预报精度。
时间序列是一组按照时间先后顺序排列且内部关联的数据。通过对历史时间序列的分析,能在一定统计意义上对未来进行短期预测。地心惯性坐标系(earth center inertial coordinates, ECI)表示的卫星X、Y、Z三轴的位置误差数据,也可以被认为是3组连续的时间序列。
表1 Ajisai卫星相关参数
以Ajisai卫星为例,其相关参数如表1所示,该卫星的TLE数据每天会发布1~3个,使用SGP4模型对TLE数据进行预报,采用前一天最后一次发布的TLE根数进行外推可以通过SGP4模型对后一天做出精度最高的预报,最大预报误差的量级在600 m,所以本文主要讨论对外推一天的预报误差进行修正。作为标准的高精度的轨道数据选择国际激光测距服务(international laser ranging service,ILRS)提供的CPF(consolidated prediction format)星历文件[26],可以从CDDIS(crustal dynamics data information system)或者EUROLAS数据中心得到。对于Ajisai卫星,每天更新的CPF星历文件提供5 d的轨道数据,精度可以达到2 m以内[27],满足本文训练神经网络需要的精度。一个特定的CPF文件包括未来3 d与过去两天共5 d的精确轨道预测,步长为4 min,并以国际地面参考系表示。由于真实情况下未来时刻的精密数据是未知的,所以选择连续多个CPF文件的第二天数据连接起来作为实验的精确星历。由连续7 d的CPF星历与SGP4预报得到的X轴、Y轴、Z轴3组原始误差时间序列数据,如图1所示。本文将对图中数据之后一天的SGP4+TLE预报误差序列进行修正。
在循环神经网络的基础上,提出的LSTM网络[28-29]采用巧妙的门设计,避开了梯度爆炸和长期依赖问题[30]。由于每一次循环都用到了前一次循环的信息,每一个输出状态都受到了之前状态的影响,所以,LSTM网络能够更好地记住长期的规律,并广泛应用于时间序列预测的问题,也适用于处理卫星轨道数据的误差关系[15]。
本文采用的LSTM网络结构如图2所示,在t时刻,一层网络由上下两条信息流构成。从Ct-1到Ct的信息流表示细胞状态的传递,整条线路通过3个门控结构与下面的一条信息流线性交互。门控结构让信息进行选择式通过,流入上方Ct-1到Ct的信息流对细胞状态进行删除或者添加信息。门控结构中σ激活函数层与tanh激活函数层,分别可以将输入转化到(0,1)之间与(-1,1)之间,生成输入数据的权重,从而对输入数据进行筛选。每一层LSTM网络中有3个门结构来控制细胞状态。
(1) 遗忘门
遗忘门的表达式如下所示:
ft=σ(Wf·[ht-1,xt]+bf)
(3)
σ层通过上一时刻隐藏状态ht-1与t时刻输入xt得到一个0到1之间的值,作为上一层细胞状态被遗忘的概率,视为Ct-1记忆的衰减系数,记作ft。
(2) 输入门
it=σ[Wi(ht-1,xt)+bi]
(4)
(5)
(6)
式中:*表示卷积。
(3) 输出门
ot=σ[Wo(ht-1,xt)+bo]
(7)
ht=ot*tanh(Ct)
(8)
输出门通过式(7)和式(8)更新当前时刻隐藏层输出的值即ht,同时也是t时刻的隐藏状态。
式(3)~式(8)中Wζ与bξ,ζ∈{f,i,c,o},ξ∈{f,i,c,o}分别表示输出的权重和偏置矩阵,也是在训练中需要学习的参数。由于每一次循环都用到了前一次循环的信息Ct-1与ht-1,每一个输出状态都受到了之前状态的影响,所以LSTM具有记忆长期历史信息的能力。本文的网络模型主要由两个LSTM层以及一个线性全连接层组成。
网络训练过程,可以看作是不断调整参数以使损失函数最小化的过程。假设样本量为N,通过网络正向传播得到输出y*,而期望输出为y,则可以给出均方差损失函数:
(9)
但是仅使用这样的损失函数最终很可能导致过拟合问题,即对训练集数据效果很好,而对实际的测试集数据效果很差。因此,本文采用了带正则化项的均方差损失函数,即
(10)
式中:ω为网络中各项参数;λ为正则化项的权重。
区别于之前论文方法仅基于位置误差数据,本文的LSTM网络模型引入位置误差、速度预测值与加速度预测值数据,实现从多个特征对原始序列数据进行分析预测,提高信息的维度。其中目标的位置速度预测值与加速度预测值数据依靠前一天的TLE数据配合SGP4模型得到。
数据的预处理主要包括轨道残差数据的完整性和归一化步骤。时间序列数据的完整性,用于确保每一时刻监测值的有效性,是开展后续研究工作的前提。CPF星历提供4 min间隔的高精度数据,如果需要更高密度的轨道数据,根据官方文件[26],通过十点基线拉格朗日插值器可以在CPF文件覆盖的任意时刻获得卫星的状态,并且选取两个点中间时刻插值精度最高。数据的归一化处理用于消除位置、速度、加速度数据不同量纲之间的影响,本文使用归一化函数如下:
(11)
式中:Xorigin、min、max分别表示原始数据、训练数据中最小值与最大值;Xm为归一化后的值,处理后的数据将被限制在[0,1]范围内,保证网络训练过程能够快速收敛。
根据卫星3个轴的历史轨道误差数据建立模型预测轨道预报误差,首先需要设计合理的数据集。由于3个轴的数据集结构相同,此处以ECI坐标系下X轴从UTC(universal time coordinated) 2020-04-06的00:00:00 到UTC 2020-04-13的24:00:00连续8 d数据设计训练数据集与测试数据集,Y、Z轴的数据集构造工作不再赘述。
训练数据集的结构如图3所示。固定时间长度的真实历史误差数据作为训练数据依次输入进LSTM网络,然后前向传播对输入序列的后一个时刻的误差做出一步预测,最后通过预测值与真实误差进行反向传播更新网络的权值。一组输入时间序列与下一步预测的结果构成一步训练数据。图3中每一步的训练数据结构如图4所示。
t0时刻LSTM网络通过输出步长为n,由预报误差、历史速度预报值与历史加速度预报值构成的向量大小为3n的输入时间序列,进行前向传播对下一个时间点t0+1即4 min后的预报误差进行一步预测,得到t0+1时刻的预报误差预测值VarP(t0+1)。而t0+1时刻的真实预报误差Var1(t0+1)作为参考值,通过计算出预测值VarP(t0+1)的交叉熵损失函数进行反向传播,对LSTM网络的权重矩阵与偏置进行更新。完成一步训练后,输入序列与预测序列会向后一个时间点移动,直到完成整个训练集数据。
使用3个独立的LSTM网络对训练数据分别进行300次训练,图5展示了训练后的3个LSTM网络在所有3个轴的训练数据上的性能,反映了模型对解析法轨道预报误差的学习能力。
原位杂交结果显示,在结肠癌组织中,miR-454-3p的表达水平显著高于正常结肠组织。我们对原位杂交结果进行统计分析,分别取了5个高倍视野,计算了miR-454-3p阳性细胞数占总细胞数的比例,结果显示,结肠癌组织中的miR-454-3p表达水平显著高于正常结肠组织中的表达水平组间差异显著(P<0.05,图1)。
通过图5的残余误差可以看出,LSTM在X轴训练数据上的最大残余误差已经下降到30 m左右;在Y轴训练数据上的最大残余误差已经下降到60 m左右;在Z轴训练数据上的最大残余误差已经下降到60 m左右。
以上分析表明,LSTM网络可以较好地学习到训练集上SGP4预报误差的变化规律。为了验证LSTM网络对未来轨道预报误差的修正能力,本文着重讨论SGP4+TLE外推一天的轨道预报误差修正,将训练后的LSTM网络应用在测试数据集上。
测试数据集的结构与图3训练数据结构类似,都是单步预测,整个预测过程不进行反向传播,仅执行前向传播过程。在t0时刻预测t0+1时刻误差的公式为
VarP(t0+1)=LSTM{{Var1(t0),Var2(t0),Var3(t0)},
{Var1(t0+1),Var2(t0+1),Var3(t0+1)},…,
{Var1(t0-n+1),Var2(t0-n+1),Var3(t0-n+1)},
{Var1(t0-n),Var2(t0-n),Var3(t0-n)}}
(12)
其中,LSTM函数表示神经网络整个前向传播得到预测输出的过程。
但是,由于未来时刻的SGP4模型真实预报误差未知,因此UTC 2020-04-13的00:00:00以后时刻的真实预报误差Var1是不可知的,而速度预报值Var2与加速度预报值Var3可以通过SGP4模型得到。UTC 2020-04-13的00:00:00预测点之后的误差数据,需要通过LSTM的预测数据填充作为输入数据,详细预测流程如图6所示。t0时刻LSTM网络通过输出步长为n,向量大小为3n的输入时间序列,对下一个时间点t0+1即4 min后的预报误差进行一步预测。预测公式即为式(12)。通过网络前向传播得到t0+1时刻的预报误差预测值VarP(t0+1)。完成一次预报后,输入序列窗口会后移动一个步长。同时,输入中的未知参数Var1(t0+1)会由上一次预测值VarP(t0+1)填补。
VarP(t0+2)=LSTM{{VarP(t0+1),Var2(t0+1),
Var3(t0+1)},…,{Var1(t0-n+2),Var2(t0-n+2),
Var3(t0-n+2)},{Var1(t0-n+1),Var2(t0-n+1),
Var3(t0-n+1)}}
(13)
为了评估神经网络对预报误差的修正能力,本文使用残差率Pml(ξ)来量化LSTM神经网络对误差的修正能力,数学表达式如下:
(14)
定义式(14)为修正后残差绝对值之和与原始误差绝对值之和的比值。其中n是测试数据的大小,下标ξ∈{x,y,z}表示误差的不同分量。Pml(ξ)值越小,表示经过训练的LSTM模型的性能越好。
实验选择UTC 2020-04-06的00:00:00 到UTC 2020-04-12的24:00:00每4 min一组数据,共7 d 2 520组数据作为训练数据(训练集上的残差如图5所示);选择UTC2020-04-13的00:00:00到UTC 2020-04-13的24:00:00每4 min一组数据,共360组数据作为测试数据。
通过训练好的3个独立的LSTM神经网络对卫星UTC 2020-04-13的00:00:00以后400 min、800 min和1 d的SGP4轨道预报误差进行预测。在图7中,展示了3个经过训练的LSTM模型在测试数据上的对误差预测性能,红色线为SGP4预报的真实误差,蓝色线为LSTM模型预测的预报误差。图7分别为对X、Y、Z轴进行时长400 min、800 min和1 440 min(即一天)的预测结果。对于不同预测时长,相应最优的LSTM网络的输入步长与神经网络的神经元个数也不同,这部分会在下一节进行详细说明。从图7可以看出,经过训练的LSTM模型可以较好地对ECI坐标系下3个轴的SGP4预报误差进行预测。
在图8中分别为对X、Y、Z轴进行了400 min、800 min、1 440 min(即一天)预测后的残余误差。X轴最大误差分别下降到了50 m、75 m与100 m左右;Y轴最大误差分别下降到了50 m、75 m与100 m左右;Z轴最大误差分别下降到了50 m、75 m与100 m左右。
表2展示了在独立进行10次训练与预测并对实验结果取均值的情况下,模型对不同时长误差(网络参数取值不一定是最优值)修正后的残差率Pml(ξ)。结果表明,采用LSTM模型的修正方法可以大幅提高基于动力学方法的轨道预报精度。对X轴进行400 min、800 min、1 440 min的预报Pml(x)分别为10.26%、11.96%、16.87%。对Y轴进行400 min、800 min、1 440 min的预报Pml(y)分别为9.52%、13.25%、17.66%。对Z轴进行400 min、800 min、1 440 min的预报Pml(z)分别为9.30%、12.36%、19.58%。随着预测时长的增加,测试数据的性能开始下降,这是可以预期的,因为训练后的LSTM模型会使用预测的误差值对后续的输入序列中未知的Var1进行填补,导致误差的迭代,从而使网络性能下降。同时,预测步长与输入序列步长的增加导致数据集样本数量减少,同样会导致性能下降。扩大训练数据的数量通常可以提升模型性能,但是考虑到TLE数据与精密轨道文件每天都会更新的情况,以及尽量减少计算成本与时间成本的需求。在取舍下,本文选择7的数据大小,需要的训练集大小远远小于文献[5-8]需要的100~250 d的训练数据集。
表2 LSTM模型对不同时长误差的预测能力
为了研究预报时长与输入序列步长对模型性能的影响,本文以X轴数据为例,通过UTC 2020-04-06的00:00:00 到UTC 2020-04-12的24:00:00共7天2 520组数据作为训练数据对LSTM神经网络进行训练并对卫星UTC 2020-04-13的00:00:00以后连续7 d即10 080 min的SGP4轨道预报的X轴误差进行修正。
同时,通过改变输入序列的步长研究输入序列长度对LSTM模型性能影响。输入序列步长即图3与图6中输入窗口的长度,决定每次输入进LSTM网络中的数据大小。本文使用相同的X轴训练集数据,同时分别选择不同输入序列长度的输入对相同结构的LSTM网络进行训练,最后对UTC 2020-04-13的00:00:00以后连续7天数据进行误差修正。上述实验轨道预报修正后的残余误差如图9所示,其中输入序列步长分别为270、360、450。
通过图9这3组的预测残差可以看出,随着预测时间增长模型修正后的残余误差逐渐增大。这是由于输入窗口已经完全离开真实历史误差区域,输入序列全部由之前的预测值填补,预测的误差会进一步迭代,导致模型预测能力随着误差的累积降低,残差率Pml(ξ)增大。同时输入序列步长的增加可以提升模型的预测能力,当长度为270、360、450时,其Pml(ξ)分别为43.13%、30.45%与28.79%。
在表3中具体展示了不同输入序列步长对残差率Pml(x)的影响结果,可以看出模型性能随着步长增加提升,印证了上述结论。
表3 不同输入序列步长对残差率Pml(x)的影响
为了解决现有的在轨自主高精度短期轨道预报精度较低、计算量较大的问题,本文给出了利用LSTM神经网络对SGP4轨道预报进行修正的模型。将7 d的历史轨道误差、速度与加速度数据作为训练的样本,通过训练3个独立的LSTM网络,对后一天的轨道数据误差进行预测。经过预测值修正后ECI坐标系下3个轴的预报精度基本达100 m量级,残余误差Pml(ξ)下降到小于20%。同时,给出了预测一周的残余误差随时间的变化趋势以及输入序列步长对残差率Pml(x)的影响。
本研究表明,通过对历史误差规律进行学习并用以预测未来,能够在原始动力学模型的基础上大幅提高卫星轨道的预报精度。其预报精度基本满足卫星自主轨道预报、地面测控需求的精度,同时又有训练数据集更小、无需数值积分,适用于星上计算环境等优点,因此在应用上有着一定的参考价值。