时间:2024-07-28
闫世霖, 吴德伟, 王 伟, 戴传金, 朱浩男
(1.空军工程大学信息与导航学院,西安,710077;2.中国电子科技集团公司第二十研究所,西安,710068)
在定位导航系统的应用中,捷联惯性导航系统(strapdown inertial navigation system, SINS)[1]与全球导航卫星系统(global navigation satellite system, GNSS)[2-3]是当今最常用的两种定位系统。捷联惯性导航系统作为完全自主的导航系统,其具有不依赖外部信息以及数据更新率高的优点。但是,由于惯性导航系统的工作方式属于推算导航方式,其本身会产生累积误差,使其定位误差逐渐增大,因此惯性导航系统不适合长时间导航。全球导航卫星系统不存在累积误差,具备长时间高精度导航的能力,但GNSS需要至少有4颗具有良好几何结构的卫星能被GNSS天线直接观测到,才能够提供准确的位置和速度信息。由于可观测卫星的数量、多径效应和外部环境干扰的影响,导致GNSS是不稳定的[4-5]。
为了克服GNSS和SINS各自的缺陷,通常利用卡尔曼滤波将两者融合形成组合导航系统,而GNSS/SINS组合导航系统[6-8]也是当前应用最成功、最广泛、性能最优越的组合导航系统。然而,在实际应用时,会遇到特殊情况导致GNSS信号中断,此时,SINS的位置估计误差将无法利用Kalman滤波器进行调整,导航误差会迅速发散,因此,组合导航系统中GNSS信号失锁从而导致导航性能大幅度下降的问题也是目前组合导航系统亟需解决的问题。
人工神经网络[9-10](artificial neural network, ANN)可以通过有监督的训练来实现输入到输出非线性映射,用来模拟高度复杂和非线性的随机问题,并且在组合导航和惯导误差校正中取得了很好的效果[11-13]。
Yiqing Yao等[14]提出了一种新的融合算法,结合卡尔曼滤波和改进的多层感知器网络,通过数据训练在全球定位系统(global positioning system, GPS)信号中断时预测和估计伪GPS位置,从而保持了组合导航系统在GPS信号中断时的性能,之后又对人工智能模块的输入进行了简化,探讨了模型对惯导信息的依赖性。Mehdi Aslinezhad等[15]提出了一种GPS/INS融合算法在GPS中断时的误差补偿方法,首先采用鲁棒Kalman滤波器补偿INS观测误差,然后利用人工神经网络的融合方法来提供缺失位置信息,最终通过实验验证其方法使定位误差的均方根值降低了5%左右,输出位置估计误差至少降低了67%。Yimin Zhou 等[16]将卡尔曼滤波和反向传播神经网络(back propagation neural network, BPNN)相结合,并通过实验证明该方法有效地解决了GPS干扰环境下精度低的问题。鲍泳林等[17]针对GPS失锁的问题采用了径向基神经网络(radial basis function neural network, RBFNN)辅助组合导航的方法,并证明了其可行性。陈光武等[18]提出了一种基于人工蜂群算法改进的RBFNN增强改进的自适应无迹卡尔曼滤波算法,并通过实验证明其方法能够抑制惯性误差的发散。白相文等[19]提出了Elman神经网络辅助的组合导航联邦滤波算法,并通过仿真实验证明了该算法可以在卫星信号失锁时有效抑制惯导误差的累积。
采用神经网络预测SINS的误差,其本质上是利用神经网络来学习SINS的误差规律,并且SINS当前的位置误差主要与SINS数据、末次误差、陀螺仪静态误差、加速度计静态误差、车辆动态和环境有关,而且位置误差与这些因素之间的关系是非线性的,难以建模[20]。而基于神经网络的人工智能技术可以映射这些关系。
然而现有的基于人工神经网络的方法大多都是基于一定时刻的惯导误差与相应的惯导输出相关联,没有考虑惯导系统过去值对误差的影响,而导航信息是一个时间序列,载体前一时刻和当前时刻的导航信息是密切相关的,因此对SINS误差的预测是一个时间序列预测的问题,这就需要神经网络的输出不应仅与当前时刻的输入有关,还应与之前的输入相关。基于此,本文使用循环神经网络(recurrent neural network, RNN)来辅助组合导航系统,它可以反映当前时刻的输出和之前的输入之间的关系,更加充分地利用数据样本进行训练,从而更加精确预测SINS的位置和速度误差,使得GNSS在长时间中断期间,组合导航系统拥有可靠的导航性能。
捷联惯性导航系统作为完全自主的导航系统,其工作时不依赖任何外部信息以及数据更新率高的特性,使其作为导航设备的首选,但是由于惯性导航系统的工作方式属于推算导航方式,其解算过程中会产生累积误差,并且随时间会逐渐增大。而解决这一问题便是采用现在广泛应用的组合导航技术,GNSS与SINS形成的组合导航系统可以避免惯导误差累积的缺点,从而提供高精度的导航信息。
GNSS/SINS松耦合组合导航即位置、速度模式的组合导航系统[20],其误差状态量均定义为SINS误差,共15维,其中包含9个SINS的基本导航参数误差以及6个惯性仪表的误差状态量,因此组合导航系统的状态方程可以表示为:
(1)
式中:X为系统的状态变量;F为系统传递矩阵;W为系统噪声矩阵。
采用SINS解算的位置和速度与GNSS测量得到的位置和速度之差,可以得到组合导航系统的量测方程为:
Z(t)=H(t)X(t)+V(t)
(2)
式中:Z为系统的量测矢量;H为测量矩阵;V为量测噪声矢量。
由上节可得,组合导航系统的状态方程和量测方程分别为:
(3)
将组合导航系统的状态方程和量测方程离散化可以表示为:
(4)
式中:Φk,k-1为系统从时间步长k-1到k的对应状态转移矩阵,闭环系统的卡尔曼滤波方程如下:
(5)
在GNSS信号可用时,可以利用GNSS与SINS形成的组合导航系统来校正惯导的误差,但是现实中经常会因为外部环境干扰等影响导致GNSS信号中断,此时组合导航系统会因为没有GNSS数据进行量测更新重新变为单一的惯性导航系统,同时导航精度也会迅速降低。
针对GNSS信号中断过程中,组合导航系统会因为惯导误差发散导致精度下降的问题,本文采用了循环神经网络来辅助组合导航系统,使其在GNSS信号中断时利用RNN的预测结果来修正SINS的导航偏差,从而提升组合导航系统的导航精度与可靠性。
传统的全连接神经网络(full connected neural networks, FCNN)只是单独的处理一个输入与输出的映射关系,没有将前一时刻输入和后一时刻的输入关联起来,在处理时间或空间上有前后关联的输入问题时会有些不足。与FCNN不同的是,循环神经网络(RNN)可以将当前的输入与之前信息相互关联。从网络结构上来看,RNN可以记忆前面节点的隐藏层信息,并利用之前的信息影响后面结点的输出。
如图1所示,将RNN模型按时间线展开,其中Xt、St、Ot分别为神经网络在t时刻的输入层、隐藏层和输出层,U和bU为输入层到隐藏层的权重矩阵和偏置向量,V和bV为隐藏层到输出层的权重矩阵和偏置向量;W为上一时刻的隐藏层到当前时刻隐藏层的权重矩阵。
图1 循环神经网络结构图
为了能够清晰地看到上一时刻的隐藏层对当前时刻的隐藏层的影响,以输入层4个神经元,隐藏层3个神经元,输出层2个神经元为例,将其模型从t时刻展开,如图2所示。
图2 循环神经网络在t时刻展开图
由RNN的结构图可得,该网络在t时刻接收到输入Xt之后,隐藏层的值为St,输出值为Ot。而最关键的是,St的值不仅仅取决于Xt,还取决于上一时刻隐藏层的输出,即St-1。因此RNN前向传播的计算方法可以表示为:
(6)
式中:g(·)和f(·)为输出层和隐藏层激活函数,选取的激活函数为tanh函数,即:
(7)
在计算过程中所需要的参数是共享的,并且当前时刻隐藏层的输出St的计算需要St-1,而St-1的计算又需要St-2,以此类推,RNN中某一时刻的状态对过去的状态都存在依赖。因此,循环神经网络能够很好地处理对过去样本数据具有依赖性的时序问题,可以达到更好的预测效果。
基于卡尔曼滤波器的GNSS/INS数据融合,由于其高性能和简单性,是满足主要导航要求的首选方法。但是如果GNSS信号中断,卡尔曼滤波器就无法获取量测信息,导航精度将会迅速降低。
循环神经网络辅助组合导航系统的工作原理就是在卫星信号可用时,利用神经网络训练SINS的误差模型,建立载体的导航信息与误差模型之间的关系;在卫星信号失锁时,利用训练好的神经网络来预测SINS的误差并修正SINS的输出,从而继续为载体提供可靠的导航信息。
RNN的学习过程分为2个阶段:第1阶段是神经网络通过学习算法进行训练;第2阶段是神经网络对输入数据进行预测,根据存储的知识估计输出。同样,系统的工作过程也分为两步,分别为GNSS信号可用时循环神经网络对SINS误差模型的训练过程和GNSS信号中断时循环神经网络对SINS误差的预测过程。RNN辅助组合导航系统的工作原理见图3。
图3 系统工作原理图
如图3所示,结合卡尔曼滤波器和循环神经网络,构建了RNN辅助的GNSS/SINS组合导航系统。当GNSS信号可用时,系统处于第1阶段,此时,卡尔曼滤波器对惯导和卫导进行信息融合,开关K处于闭合状态,利用卡尔曼滤波器的输出信息对惯导进行反馈校正,同时神经网络采集惯性传感元件的输出信息独立解算作为输入,并利用卡尔曼滤波器输出的导航信息作为期望输出进行训练。
当GNSS信号中断时,系统处于第2阶段,卡尔曼滤波器将失去观测量,无法获得准确的导航信息,也无法用于对惯导的校正。此时,GNSS信号的中断会使开关K断开,并且使神经网络转换为预测状态,神经网络依然采集惯性传感元件的输出信息独立解算作为输入,利用之前训练好的网络模型预测出较为准确的导航信息,并用来修正SINS的导航信息,从而提供准确的导航信息。
综上所述,在卫星导航信号正常时,系统通过学习输入与输出之间的关系对神经网络进行在线训练,采用反向传播算法对网络参数进行更新,从而使网络对导航信息产生自适应性;当卫星信号中断时,利用训练好的神经网络输出来补偿SINS的输出误差,从而在卫星中断情况下使系统依然能够维持组合导航的部分性能来运行。
根据上述组合导航系统模型对系统进行仿真,仿真数据来自采集的无人机飞行过程中的位置和速度信息数据,其飞行轨迹如图4所示,从而利用循环神经网络对其进行训练。
图4 飞行轨迹
采用机载组合导航系统的输出数据来验证RNN对卫星中断情况下组合导航系统误差发散的抑制效果。实验中无人机搭载的惯导的陀螺仪的常值漂移为0.05°/h,为了方便统计计算,数据的采样频率设定为1 Hz,即系统每1秒输出1组数据。
将无人机0~3 000 s的飞行数据作为训练数据,此时GNSS信号可用,SINS的输出与组合导航系统输出的数据作为循环神经网络的训练集对网络进行训练,在3 000~3 200 s时使GNSS信号中断,采用训练好的神经网络对SINS的输出误差进行校正,并将输出结果与组合导航系统的输出进行对比,从而判断其性能。
其仿真结果见图5,图中所示为3 000~3 200 s GNSS信号中断时,组合导航输出与RNN预测以及单独SINS输出得到导航信息对比,并且将组合导航输出的导航信息作为真实信息来进行对比验证。从图中可以看出,经过RNN对捷联惯导的导航误差预测校正后输出的导航信息,其导航误差有大幅度的改善,因此证明了该算法对于提升卫星失锁情况下组合导航系统的性能具有很大帮助。同时测得,该神经网络进行一次前向预测所用时间为15.625 ms,满足最低20 Hz的导航数据实时性需求,因此该算法能够达到导航所需的实时性要求,可以利用其实现实时的预测。
图5 3种方式输出的导航信息对比
为了进一步验证循环神经网络辅助组合导航系统的性能采用同样的数据用径向基神经网络来对惯导的误差进行预测,同样采用3 000 s数据使卫导信号处于可用的状态对RBFNN进行训练,之后卫导信号中断,对惯导系统的输出误差进行校正,其预测误差与RNN预测误差的对比结果见图6。
从图6中可以看出,经过RBFNN预测校正后输出的导航信息,其导航误差精度在80 s左右会迅速增大,之后网络预测的导航精度产生明显下降,而RNN的预测精度则会在200 s后逐渐衰减,二者相比,使用RNN辅助组合导航系统明显强于RBFNN的辅助效果。为了更鲜明地对RNN与RBFNN的预测精度进行对比,在卫星信号中断的80 s时间内,分别从平均值、标准差和均方根误差3个方面对纯惯导和RBFNN以及RNN辅助的3种情况进行了分析,其结果如表1所示。
表1 不同辅助情况下位置和速度误差的统计特性对比
从表1中可以更直观地看出,RBFNN以及RNN辅助的组合导航系统在卫导信号中断的情况下与没有神经网络辅助的组合导航系统相比较,在导航性能方面均有很大的提高,证明了神经网络在GNSS信号中断时校正SINS误差的可行性,并且通过实验数据进一步验证,RNN的预测效果要优于RBFNN,证实了采用循环神经网络辅助组合导航系统的优越性。
针对目前神经网络辅助组合导航系统过程中,仅仅处理某一时刻的输入与输出的映射关系,忽略了误差对SINS过去值的依赖性的问题,本文提出了利用RNN辅助SINS/GNSS导航定位的方法,可以分别基于当前和过去的导航信息进行训练,从而在GNSS信号中断时,循环神经网络可以预测得到更为准确的导航信息,并利用飞行试验数据对其进行了仿真验证。实验结果表明,采用RNN辅助组合导航系统在卫星信号中断时可以有效提升导航精度,其预测效果与径向基神经网络辅助的组合导航系统相比,导航精度的维持时间更长,位置和速度的均方根误差平均降低了39%,并且该算法满足导航所需的实时性要求,证明了本文提出的方法的可行性和有效性。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!