基于GA-BPNN的自适应抗野值无迹Kalman滤波方法
2021-12-22左益宏王远亮何红丽葛泉波
左益宏,王远亮,何红丽,葛泉波
(1.中国飞行试验研究院,西安,710089; 2.上海海事大学物流工程学院,上海,200135;3.同济大学电子与信息工程学院,上海,201800)
航空飞行器在经过设计制造之后,以及投入实际应用之前,必须经过严格而全面的性能测试,其中的飞行器测试及数据处理对于飞行试验的顺利完成和促进其技术进步起着非常重要的作用[1-2]。
飞行器从设计到生产,需经大量实验,但最权威、最全面的试验是全程飞行试验,飞行器设计、改进和定型需要试验所得的轨迹加以论证[3]。飞行试验是高风险试验过程,飞行试验过程中,需对飞行器轨迹行全程测量与监控,测量设备主要包括:雷达、光电经纬仪、高速数字摄像机和机载惯性导航。通过对所获取的数据进行滤波、转换等处理获得可靠的高精度的目标运动参数估计,对飞行器的性能等进行检测,将其作为参考来帮助指挥员进行决策,为光学跟踪测量系统提供具体的位置引导[4]。
在过去的40多年,Kalman滤波器已成为一种在信号处理、通讯和现代控制领域最基本最重要的工具[5-7]。按照均方误差准则,Kalman滤波器可以通过带有噪声的测量值来对动态系统中的可观测状态值进行估计。但是在目前飞行测试数据分析中,多数为无先验知识的情况,此时自适应Kalman滤波器可以针对周围环境的变化来进行自学习适应,不断逼近Kalman滤波器的最优滤波性能[8]。
在实际的测试系统中,由于受测试手段、测试环境等因素的限制,测量中除包括噪声外,还可能包含异常值。这种异常值会降低数据处理算法的性能,严重时还会导致算法发散,使得估计误差远大于测量误差造成的影响[9]。文献[10]提出一种适用于剔除斑点型野值的Kalman滤波算法,其主要原理是通过M估计的加权矩阵调整对应的信息,但是这种方法无法根据滤波收敛性调节增益矩阵的大小,所以不能很好的剔除孤立型野值点[10]。文献[11]提出了一种模糊抗野值集合粒子滤波方法,该方法能从状态后验分布抽取粒子的改进粒子滤波算法,并根据模糊理论为此改进算法设计了模糊抗野值功能,从而可以有效检测出全部野值点,但是却无法保证较好的滤波精度[11]。文献[12]提出一种融合Kalman和小波的自适应抗野值方法,其主要通过修正增益或状态的一步预测值抑制野值对滤波精度的影响。该算法在传统Kalman滤波的基础上进行改进,计算简单,能够有效去除野值较小的点,但是对于较为突出的野值点,剔除效果不是很好[12]。
针对以上不足,本文提出了一种以多种优化算法为基础的具有容错性能的高精度Kalman滤波算法,在无迹Kalman滤波器的基础上引入抗野值算法,以有效剔除测量过程中出现的孤立型以及斑点型异常点,同时引入了基于改进遗传算法的BP神经网络,以有效提高其滤波精度。
1 模型的建立
1.1 运动体动态模型的建立
对于空间运动体飞机,可采用状态空间法描述三维空间的运动学方程,具体表示如下[13]:
(1)
1.2 光电经纬仪和雷达量测模型
据光电经纬仪的工作原理,测量一个运动体应该包括如下3个量:R表示光电经纬仪到被测目标的径向距离;A表示光电经纬仪到被测目标的方位角;E表示光电经纬仪到被测目标的仰角。此时运动体的三维空间状态可以得到如下的数学关系[13]:
(2)
Zk+1是k+1时刻的量测向量。其中:
(3)
式中:x,y,z为空间的3个方向上的标量值。
由于存在非线性特点,因此要对量测方程进行泰勒展开,将其转化为Kalman滤波器能直接应用的状态空间结构。此时,可得到如下的量测矩阵:
(4)
式中:R,A,E的值可用式(3)进行计算。
UKF辨识算法具体步骤参照文献[14],针对其存在预测模型参数要求具有先验已知性,在工程实践中难以获得准确参数的问题,提出一种改进型BP神经网络算法,通过其自适应能力来补偿标准UKF的估计值,降低模型和滤波参数误差对于最优估计值所产生的影响,提高最优估计精度。
2 基于GA-BPNN的抗野值UKF算法
由于传统的BP神经网络收敛速度较慢并且网络精度不高,本文利用改进的遗传算法寻找全局最优解对BP神经网络的初始权值以及阈值进行优化,以提高网络精度和收敛速度。
2.1 遗传优化BP网络算法设计
参照文献[15]中的遗传算法优化BP神经网络算法设计思路,对网络中的初始权值以及阈值进行优化,所确定的适应度函数为[15]:
(13)
式中:Ti代表第i次训练样本的实际输出值;Yi则代表第i次训练样本的期望输出值。
已知遗传算法优化BP算法时,通常选择轮盘赌法,由于在种群进化时,一般情况下,会出现某些适应度大小过于异常的个体,这些个体极有可能决定选择过程,由此出现降低种群多样性的情况[16-17]。因而,这里在文献[15]中所使用的GA算法的基础上进行改进,提出一种新的轮盘赌选择方法,即令每次所选个体从总选择序列中剔除,不再参加下一步选择过程。其具体选择步骤为:
Step1将个体按照其适应度值的大小排列,将全部代入求得的适应度值进行累加,将其和记作S。
Step2生成随机数M,M∈(0,S)。
Step3从第一个个体的适应度函数值开始,与后面个体得到的适应度函数值依次进行求和,如果累加值超过M则停止。最后一个将其适应度函数值累加进去的个体就是被选出的父代。
Step4将这些被选出的个体单独提出来,再重复Step2和3,直至选出足够数量的父代。
根据改进轮盘赌选择算法步骤,选择N/2个个体担任父代。这样有效避免了那些适应度值异常的个体被多次选中,从而丰富了种群的多样性,同时改善了可能会发生的算法收敛于局部最优的情况。
最终所设计的基于改进遗传算法的BP神经网络流程如图1所示[15,18-19]。
图1 基于改进遗传算法的BP神经网络流程图
下文将通过优化后的BP神经网络算法来补偿标准UKF滤波器的估计值,以提高最优估计精度。
2.2 GA-BPNN优化UKF
参照文献[20]中BP神经网络改进扩展卡尔曼滤波(EKF)算法思路,本文利用改进BP神经网络优化无迹卡尔曼滤波(UKF)算法,其原理为:根据输入样本来训练BP神经网络,保存经过训练完成的权值及阈值。当UKF开始轨迹参数估计时,令影响轨迹误差的参数作为改进BP网络的输入,从而对全局误差进行调控,以此修正UKF输出的结果,进而提高轨迹测量精度。具体训练步骤如下[20]:
Step3学习UKF预测和实际误差的映射关系;
Step4输出滤波值与实际值的误差Bperr。
图2 基于GA-BPNN的UKF示意图
(14)
2.3 基于GA-BPNN的抗野值无迹Kalman滤波
上文所提到的改进UKF算法能够有效提高滤波精度,但对于数据过失误差,该算法缺乏抗扰能力,并且当测量设备突然产生故障时,其容错能力也比较差。为解决上述问题,提出一种滤波容错的辨识算法。该算法通过上文的改进UKF算法与野值剔除[21-22]进行融合,判断新息序列与处理野值点,对滤波增益进行实时调整以及对野值进行计算,对于存在斑点型异值或者孤立型异值的动态数据流,采用此技术处理进行剔除和修复。
令新息[22]为:
(15)
当滤波器工作稳定时,新息的标准偏差为σ,且:
(16)
可以给出一种定义和辨识方法判断观测值Zk+1的各个分量是否为野值。辨识公式为[21]:
|(ek+1)i|≤Cσi,i
(17)
式中:(i,i)表示为在新息标准偏差对角线上的第i个元素,(ek+1)i表示为ek+1的第i个分量,C表示为常量,其具体取值根据实际情况确定。
如果以上辨识公式成立,那么(Zk+1)i就为正常观测量。如果不满足辨识公式,那么(Zk+1)i则为野值,(Zk+1)i表示Zk+1的第i个分量。在改进UKF算法中,由于野值点不单单只存在一种类型,所以需要对其进行区分并具有针对性的去除。
对于斑点型野值,剔除步骤如下[23]:
Step2将Zk+1经辨识公式辨别其是否为异常值。
Step3重复Step2,保存每次异常值出现的点序列k,继续辨识,同时记录异常值的数量。
Step4使用预测值代替异常值。
Step5继续滤波直至结束。
将两种异常点剔除方式相结合,可以得出抗野值的改进无迹Kalman滤波算法[21,25],流程见图3。
图3 抗野值的改进无迹Kalman算法流程图
3 仿真及精度分析
3.1 GA-BPNN-UKF滤波精度验证
为了验证所提出GA-BPNN-UKF算法的滤波能力,接下来通过仿真对文献[20]中的BPNN-EKF滤波方法和本文在此基础上改进得到的GA-BPNN-UKF滤波方法的处理效果进行对比。
假设目标相对光点经纬仪作匀加速运动,初始位置(x,y,z)为(300,346,200)m,速度为(40,20,10)m/s,加速度为(1.3,1.7,1.3)m/s2,运行间隔1 s,总时长60 s。把直角坐标系下的x、y、z坐标转换为光电经纬仪极坐标下的激光距离R,并将激光距离R添加均值为0、方差为10的高斯白噪声,见图4。
图4 估计结果对比图
两种算法的偏差结果如图5所示,可以看出,改进后算法的估计结果从整体上来说更加准确。
图5 估计偏差对比
为了衡量误差的整体水平,进行多次仿真实验结果见表1,每次实验误差的平均值定义为:
表1 多次试验平均值
(20)
其中:
RMS(k)=|Xestimate-Xreal|
(21)
由此可见,在相同的条件下,GA-BPNN-UKF相比BPNN-EKF具有更高的滤波精度。对RMSE的计算则更有利地证明了改进后算法的优越性。
3.2 GA-BPNN-抗野值UKF算法验证
为同时验证加入剔除野值功能算法后的滤波精度和抗野值能力,再对激光距离R随机添加一些野值点,通过仿真对经典UKF滤波、文献[20]中的BPNN~EKF滤波方法和本文提出的基于GA-BPNN抗野值UKF滤波方法的处理效果进行对比,见图6~7。
图6 不同滤波效果对比图
图7 算法滤波精度对比
从两幅图处理结果可以明显看出,经典UKF算法和文献[20]中的BPNN-EKF算法的估计结果均无法有效剔除野值,且估计误差较大,但是本文给出的基于GA-BPNN的抗野值无迹Kalman滤波方法对于去除野值有较好的效果,同时精度更高,与真实值差异更小,滤波误差明显满足要求。
3.3 实际数据处理的对比应用
为进一步验证本文算法的先进性、有效性,结合实际的测量数据,将现有文献[12]中提出的一种融合Kalman和小波的自适应抗野值算法,在实际应用中与本文所提出的算法进行对比。这些数据是在飞行器飞行试验中由光电经纬仪等测量设备得到,所表示的是光电经纬仪和被量测目标之间的距离R、方位角A和仰角E,在实际的测试系统中,由于受测试手段、测试环境等因素的限制,测量过程中会受到野值的严重干扰,使得测量误差非常大。实际测量得到的数据可以直观表示为图8。
图8 光电经纬仪站径向实测数据
分析上述曲线图,可见在径向实测数据中出现不符合实际情况的异常点。数据处理需要将这些异常点剔除,运用两种滤波算法进行处理的结果见图9~11。
图9 径向距离不同算法滤波后数据对比图
图10 方位角不同算法滤波后数据对比图
图11 仰角不同算法滤波后数据对比图
为了更直观地对比以上两种不同算法滤波后的抗野值能力优劣情况和滤波后数据的平滑性,这里提出一种“平均梯度”得形式,即将滤波后相邻数据的误差绝对值求和再求平均值。具体算法公式为:
(18)
计算后的结果如表2所示,算法1表示为融合Kalman和小波的自适应抗野值算法,算法2表示为基于GA-BPNN的抗野值无迹Kalman滤波算法。
表2 平均梯度对比
由图9~11和表2可见,文献[12]所用的算法相较本文所提出的基于GA-BPNN的抗野值UKF算法剔除异常点的能力较弱,本文算法能够有效去除野值,使滤波后的数据更具可靠性。
4 结语
改进后的Kalman滤波在实时数据处理中算法递推且所需保存数据量不大,是实时处理的理想选择,在航迹测量设备光电经纬仪数据处理中得到了成功应用。Kalman滤波算法表现出了状态物理意义明确、算法实时性好、便于自适应改进等优异的特性,在实时和事后信号处理中具有不可替代的作用以及广阔的应用前景。