水下潜器在长时间航行过程中,由于惯性导航系统(inertial navigation system,INS)的位置误差随时间累积,需要定期校正或重调才能保证载体的定位精度。传统意义上的方法,如利用外部的天文导航信息、无线电导航信息、卫星导航信息等定期对INS的漂移进行校正要求潜器接近或浮出水面,降低了潜器的隐身性能[1]。地球重力场是地球固有的物理特性之一,其空间分布不均,存在一个变化的拓扑。鉴于重力场信息的无源性、全天候和基本不受外界干扰等优点,采用重力场信息实现组合导航时,潜器无需浮出水面发射或接收信号,具有良好隐蔽性[2, 3]。与此同时,卫星测高、航空重力测量等技术的快速发展也给高精度惯性/重力组合导航提供了可能性[4]。
惯性/重力组合导航的基本原理是通过某种策略实现由惯性导航系统指示的位置向真实位置的逼近。对于粒子滤波在定位[5, 6, 7]、目标跟踪[8]等非线性、非高斯问题的最优状态估计中的应用,国内外专家学者进行了大量的探索、研究。对于传统粒子滤波,引入了重采样过程以解决经典蒙特卡洛方法存在的粒子退化问题,但同时也由于粒子多样性的降低,使得现有粒子不能有效表达后验概率密度函数[9]。将群智能方法与粒子滤波相结合可以优化搜索过程,增加粒子多样性,达到提高粒子滤波性能的目的[10, 11, 12]。差分进化算法是一种基于群体差异实现全局优化的进化计算方法,其原理相对简单,易于理解和实现,且其表现出来的高可靠性和良好优化性能,已成为进化计算领域一个重要研究方向[13, 14]。文中提出一种基于差分进化的粒子滤波算法,通过引入差分进化,使各粒子间的信息形成共享,利用个体粒子间的差分向量对粒子集进行扰动实现全局搜索,改善样本贫化问题,提高传统粒子滤波的精度。将算法用于惯性/重力组合导航中,数值实验证明,算法能够获得较高的定位精度。
1 惯性重力匹配导航基本原理惯性/重力匹配导航是一种利用高分辨率的重力数据库所提供的重力场数据对惯性导航系统进行校正,从而获取载体位置信息的导航技术。其基本原理如图 1所示。
潜器在航行过程中,根据惯性导航系统指示的载体位置在数据库中找到相应的重力场参量(重力异常或重力梯度)。与此同时,重力仪(或重力梯度仪)实时测量当前位置的重力场数据,将实时测量数据与数据库数据经滤波算法解算求得最佳匹配位置,从而获得载体的精确位置信息,并利用该位置作为反馈信息实现惯导系统误差校正。根据惯导误差方程,取系统状态为
式中:δφ,δλ为纬度和经度误差;δvx,δvy为东西和北向速度误差;α,β,γ为水平和方位误差;ΔAx,ΔAy为加速度计零位误差;εx,εy,εz为陀螺漂移。则惯性/重力组合导航的系统状态方程如式(1):
对于上述系统,直接取重力异常值作为系统观测,由于重力异常观测值与载体真实位置具有对应关系,因此惯性/重力组合导航的观测方程为
粒子滤波算法通过使用蒙特卡洛方法实现递推贝叶斯滤波,通过寻找一组在状态空间中传播的带权值的随机样本(粒子)逼近状态变量的后验概率密度,每个样本代表系统的一个可能状态。在k时刻,粒子滤波通过预测采样获得新粒子集:
在当前时刻粒子权重被更新后,通过引入重采样过程改善粒子退化现象,但是,重采样过程降低了粒子的多样性。因此,需要确定有效的粒子数为
如果Neff<Nth,则进行重采样,并返回 。于是对系统的状态估计为。
2.2 差分进化算法差分进化(differntial evolution,DE)算法是由Rainer Storn和Kenneth Price为求解切比雪夫多项式于1996年提出的一种基于群进化采用浮点矢量编码在连续空间进行全局搜索的优化算法[13, 14]。DE算法借助于种群个体之间的差分信息对个体形式扰动进而完成对整个种群的搜索,实现种群内信息共享并利用贪婪竞争机制选择下一代个体,寻找最优解。DE算法的基本原理与遗传算法类似,差别在于DE算法是利用种群个体间的差分向量进行变异,从种群的角度模拟生物进化机制,充分利用了不可行解所携带的互补信息,减小了陷入局部最优解的可能性。DE算法的具体流程如下:
1)种群初始化
DE算法基于实数编码,根据问题的初始解生成初始化种群mi0=mi,10,mi,20,…,mi,D0,i=1,2,…,NP,其适应值为f(mi0)。其中,D为问题维数,NP为种群规模。
2)变异操作
变异操作是将经过缩放的差分向量叠加到基向量上来实现的,差分进化通过变异操作来生成新的个体,变异操作决定了差分进化算法的搜索能力。基向量与差分向量的选择方式决定了进化策略。根据惯性/重力匹配组合导航问题的特点,文中选取DE/rand-to-best/1的进化策略,其表达式形式为
变异尺度因子F对差分向量进行缩放,确定当前个体的搜索范围。当个体适应值较优时,该个体所携带的信息应该被更多的利用,此时F应该取较小的值,使算法在此较优个体附近继续进化,加强算法的局部搜索能力;当个体的适应值较差时,个体的信息应该较少地被利用,此时F应取较大的值,使算法在解空间内进行搜索,加强算法的全局搜索能力[13]。因此,需要根据个体适应值的变化情况自适应地调整各个体对应的Fi,调节策略如式(4)所示。
3)交叉操作
差分进化算法采用离散交叉算子。交叉算子把通过变异操作得到的变异向量与目标向量进行离散交叉生成试验向量。二项式交叉操作如式(5):
CR决定了试验向量取自变异向量还是目标向量,当变异向量的适应值fuig较优时,CR应取较大的值使得试验向量以较大概率取自变异向量,反之,CR应取较小的值[13]。因此CR的自适应调节机制可以表示为
4)选择操作
在差分进化算法中,在变异操作与交叉操作完成后进行选择操作,选择操作采取贪婪竞争机制,即只有在新产生的子代个体优于父代个体时才会将其保留下来;否则,父代个体将被保留到下一代中。即
由上述算法流程可以看出,DE算法原理简单,易于实现。从DE算法产生新个体的能力方面来说,基于种群进化的变异操作是它生成新个体的主要方法。由于DE算法具有保持种群多样性的机制和搜索能力,DE算法所具有比它进化算法更优越的性能。F和CR的取值对于算法性能有着重要影响,在算法进行搜索的不同阶段自适应地选取合适的F和CR能够加速算法的优化过程。
2.3 差分进化粒子滤波算法粒子滤波算法的重采样过程是在对粒子的权值进行评估后,在维持粒子总数不变的情况下,对权值大的粒子进行赋值并删除权值较小的粒子。这就导致了用于逼近系统状态变量后验概率密度函数的粒子由大量重复的粒子组成,使得描述后验概率密度的样本点不充分。
差分进化算法是从整个种群的角度来模拟生物进化机制的,强调的是整个群体的进化作为差分进化产生新个体的主要方法,变异操作充分地利用了种群内个体之间的互补信息,能够有效地实现在整个种群内的搜索。因此,差分进化算法具有较强的全局寻优能力,优化结果具有较好的分布性。差分进化算法反映的是进化思想,而影响粒子滤波算法性能的主要问题是粒子退化,用差分进化思想来改善粒子的分布特性,可以提高粒子滤波的精度。在粒子滤波完成一步预测后,差分进化算法利用实数编码根据候选粒子集生成初始化种群,然后进行变异、交叉和选择操作,生成新的建议分布,再对新粒子集进行权值更新和重采样。实现过程为:
步骤1 初始化
k=0,从p(x0)中采样得到x0i|i=1NP,权重ω0i置为1/NP,同时设置阈值Nth,变异尺度因子的上限Fmax和下限Fmin,交叉率的上限CRmax和下限CRmin,粒子数NP,进化代数genmax等参数,并设置当前种群进化代数gen为0。
步骤2 预测
从xki~q(xki|xk-1i,yk)中采样新粒子集,并利用式(2)计算粒子权值。对于k时刻的粒子集{xki,wki|i=1,2,…,NP},xki为种群中第i个个体,ωki为第i个个体的适应值。
步骤3 优化粒子分布
while gen<genmax do
1) 更新具有最优适应度的粒子xkbest(gen)和其权值wkbest(gen)。
2) for i=1:NP do
(a) 变异操作。按式(4)计算变异尺度因子Fi,并根据式(3)得到变异向量xki(gen)。
(b) 交叉操作。根据式(2)计算xki(gen)的权值ωki(gen)后,根据式(6)计算得到CRi。然后利用式(5)得到试验向量xki(gen)。
(c) 选择操作。根据式(7)得到优化后的粒子。
end for
end while
步骤4 重采样
如有效粒子数Neff小于设定值Nth,粒子滤波算法进行重采样,返回 。
步骤5 状态估计
基于差分进化的粒子滤波算法主要是将DE算法中的变异、交叉和选择操作引入到粒子滤波中。由于DE算法具有较强的寻优能力,在提高粒子使用效率的同时,使逼近系统状态变量的后验概率密度所需的粒子数明显减少;由于DE算法可以有效增加粒子多样性,可防止出现滤波发散现象,提高状态估计精度。
3 仿真研究将算法应用于惯性/重力组合导航系统中对比粒子群优化粒子滤波[10](PSO-PF)算法、人工物理优化粒子滤波[16](APO-PF)算法和基于差分进化粒子滤波(DE-PF)算法匹配辅助导航的效果,验证DE-PF算法的匹配有效性。
文中采用惯性导航系统海上试验实测数据,数据输出周期为1 s,数据记录时间共8 h。从惯导运行2 h后开始进行组合导航,系统噪声按表 1选取。重力异常如图 2所示,其分辨率为30″×30″,重力异常实时测量值是根据载体真实位置(由GPS提供)、以重力场背景数据库为基础,经过双线性内插并叠加均值为0 mGal、标准差为1 mGal的高斯白噪声得到的。
DE-PF算法的参数设置为:变异尺度因子上限Fmax=1、下限Fmin=0.4,交叉率上限CRmax=1、下限CRmin=0。取PSO-PF、APO-PF和DE-PF的迭代次数均为20,初始位置误差均为2 000 m,粒子数均为100,滤波周期为10 s。
利用APO-PF和DE-PF算法对组合导航进行M=200次Monte-Carlo实验。
图 3给出了载体的真实航迹、INS航迹以及APO-PF、DE-PF算法仿真的航迹。滤波开始时,惯导经度误差约为0.004 2°(471 m),纬度误差约为0.011 3°(1 260 m)。
从图 3中可看出INS的位置误差较大,但经过组合后APO-PF和DE-PF算法能够显著的抑制INS的误差。为了更直观地体现DE-PF算法组合导航的效果。
图 4给出了200次Monte-Carlo实验得到的PSO-PF、APO-PF和DE-PF算法对载体经度、纬度误差估计的均方根误差曲线。
k时刻,RMSE值的表达式如下所示:
计算结果表明,在滤波稳定后的3~8 h内,PSO-PF、APO-PF和DE-PF算法估计结果的均方根误差分别为370.7 、151.2 和101.5 m。在4 h左右,由于载体转弯的影响,PSO-PF、APO-PF和DE-PF算法对载体的经、纬度估计出现较大偏差。从图 4中可以看出,PSO-PF、APO-PF算法的收敛速度更快,但DE-PF算法的定位精度要高于前2种算法。其主要原因在于DE-PF算法的变异策略中差分向量的选取方式在一定程度上影响了算法的收敛速度和种群多样性,文中采用的变异策略的差分向量中的个体mrg是随机选择的,一定程度上保证了种群的多样性,但是降低了收敛速度。另外,DE-PF算法的多样性增强策略是通过综合2部分粒子的综合信息实现的:一部分是通过变异操作得到的候选粒子集,这一部分粒子蕴含提升粒子多样性的信息;另一部分则是重采样粒子蕴含的对于真实系统状态的有效逼近信息。因此,DE-PF算法能够获得更高的定位精度。
4 结束语在惯性/重力组合导航过程中,采用粒子滤波可以避免常规滤波方法的线性化过程,但传统粒子滤波存在的粒子退化和样本贫化问题。差分进化算法反映了进化的思想,将差分进化算法引入粒子滤波的重采样过程,在增强粒子多样性的同时可以实现粒子的优选。实验结果表明,与人工物理优化粒子滤波相比,利用基于差分进化的粒子滤波算法可以改善状态估计精度并提高系统稳定性,将其用于惯性/重力组合导航可以获得较高的定位精度。该方法目前还存在控制参数较多、收敛速度慢的弊端,未来的工作可以针对变异策略的改进和算法收敛性的验证进行深入的研究。
[1] | 刘繁明, 成怡. 重力/惯性匹配导航系统的仿真研究[J]. 中国惯性技术学报, 2005, 13(3):22-25. |
[2] | RICE H, KELMENSON S, MENDELSOHN L. Geophysical navigation technologies and applications[C]// IEEE Position Location and Navigation Symposium. Monterey, USA, 2004: 618-624. |
[3] | 王跃钢, 文超斌, 左朝阳, 等. 自适应混沌蚁群径向分析算法求解重力辅助导航匹配问题[J]. 物理学报, 2014, 63(8): 454-459. |
[4] | 王虎彪, 王勇, 方剑, 等. “最小均方误差旋转拟合法”重力辅助导航仿真研究[J]. 中国科学:地球科学, 2012, 42(7): 1055-1062. |
[5] | GUSTAFSSON F, GUNNARSSON F, BERGMAN N, et al. Particle filters for positioning, navigation, and tracking[J]. IEEE Trans on Signal Processing, 2002, 50(2): 425-437. |
[6] | NORDLUND P J, GUSTAFSSON F. Marginalized particle filter for accurate and reliable terrain-aided navigation [J]. IEEE Trans on Aerospace and Electronic Systems, 2009, 45(4): 1385-1399. |
[7] | GUSTAFSSON F. Particle filter theory and practice with positioning applications [J]. IEEE Aerospace and Electronic Systems Magazine, 2010, 25(7): 53-82. |
[8] | HOU S Y, HUNG H S, CHANG S H, et al. Novel algorithm for tracking multiple targets[J]. Journal of Marine Science and Technology, 2010, 18(2): 259-267. |
[9] | 杨小军, 潘泉, 王睿,等. 粒子滤波进展与展望[J]. 控制理论与应用, 2006, 23(2): 261-267. |
[10] | 方正, 佟国峰, 徐心和. 基于粒子群优化的粒子滤波定位方法[J]. 控制理论与应用, 2008, 23(3): 533-537. |
[11] | ZHAO Jing, LI Zhiyuan. Particle filter based on particle swarm optimization resampling for vision tracking [J]. Expert Systems with Applications, 2010, 37(12): 8910-8914. |
[12] | XU Benlian, ZHU Jihong, XU Huigang. An ant stochastic decision based particle filter and its convergence [J]. Signal Processing, 2010, 90(9): 2731-2748. |
[13] | 张春美, 陈杰, 辛斌. 参数适应性分布式差分进化算法[J]. 控制与决策, 2014, 29(3): 701-706. |
[14] | 吴亮红. 差分进化算法及应用研究[D]. 长沙: 湖南大学, 2007: 9-14. |
[15] | 王文晶. 基于重力和环境特征的水下导航定位方法研究[D]. 哈尔滨: 哈尔滨工程大学, 2009: 71-75. |
[16] | 刘繁明, 钱东, 刘超华. 一种人工物理优化的粒子滤波算法[J]. 控制与决策, 2012, 27(8): 1145-1156. |