韩亚坤1,文鸿雁2,陈冠宇3,郭 雷4,王青涛4
(1.广西空间信息与测绘重点实验室,广西 桂林541004;2.桂林理工大学测绘地理信息学院,广西 桂林541004;3.浙江省测绘大队,浙江 杭州 310030;4.桂林理工大学广西矿冶与环境科学实验中心,广西 桂林 541004)
[摘要]卡尔曼滤波是基于最小均方误差下递推式的最优估计方法,现已成为最常用的滤波算法之一。一般来说,标准的卡尔曼滤波要求动态噪声和观测噪声具有先验已知性,因此这也限制了它在实际生产中的应用,而神经网络对实际系统辨识具有很好的非线性映射能力,利用神经网络对卡尔曼滤波后的估计值进行补偿,可以在很大程度上改进卡尔曼滤波的效果,将此方法应用于变形监测中证明了该方法的可行性及有效性。
[关键词]卡尔曼滤波;神经网络;变形;监测;补偿
[中图分类号]TU753 [文章编号]1002-8498(2016)01-0073-04
1 卡尔曼滤波的基本理论
卡尔曼滤波是最优估计方法的一种,它通过不断递推、修正估计过程,且无需对大量观测数据进行存储使其对动态数据处理可以具有良好的效果。因此在实际应用中通常需要先对系统进行离散化。
7)使k=k+1,重新回到步骤1)开始计算。
2神经网络预测模型
BP神经网络是一种多层结构的单向传播,主要由输入层、中间层和输出层组成,是一种多层前向网络,且为单向传播,同层间神经元没有任何紧密的配合与连接,神经网络结构如图1所示。
系统辨识就是按一个准则在一组模型中选择一个与观测数据拟合最好的模型,其包括数据样本、模型分类和准则3个部分,其中数据样本是基础,模型类是被辨识的结构,准则是辨识的优化目标。基于神经网络的系统辨识是选择适当的神经网络作为被辨识系统P的模型,其中P是可逆的,逆模型,换言之是通过使用神经网路来逼近实际系统,通过对输入和输出的数据进行训练得到权值和阈值,进而建立相应的系统模型。由于神经网络具有良好的非线性映射能力和强大的黑箱建模能力以及不要求建立实际系统的辨识模式等特点,因此特别适用于那些无法进行机理建模、先验知识缺乏的情况。本文采用3层BP神经网络对系统进行辨识,3层BP神经网络结构为输入层、隐含层、输出层,故神经网络系统辨识基本步骤为:
1)在进行辨识之前需要掌握足够的先验知识,这样有利于进行实验设计、系统辨识、检验。
2)确定激励函数的输入、输出结构即维数、数据的长度以及采样间隔等。
3)选取合适的辨识模式。
4)对较大数据进行预处理即在训练神经网络前对其进行标准化。
5)根据经验先设计神经网络的拓扑结构、网络层数、神经元个数、传递函数等。
6)在设计好神经网络后需要设定训练步数、性能参数、学习速率及最大训练时间等。
7)检验训练后的神经网络是否达到设计要求,直至达到满意的效果。
3 基于神经网络系统的卡尔曼滤波
根据卡尔曼滤波模型的推导公式可知,在测量更新部分的时候卡尔曼滤波根据测量值、预测值、卡尔曼滤波增益给出最优估计结果,而卡尔曼滤波的计算误差不是特别准确,尤其是当卡尔曼滤波的增益存在计算问题和维数问题时,卡尔曼滤波往往会随着时间积累而发散,标准的卡尔曼滤波增益矩阵的计算只是根据验前的系统方程转移矩阵、观测方程的测量矩阵、动态噪声阵、观测噪声阵,由于系统参数的不准确很容易产生计算误差,状态估计也随之产生较大误差,进而使增益矩阵计算错误,从而对系统失去调控能力,以致解算结果是发散的。
由于BP神经网络具有较强的自适应能力和良好的非线性映射能力,在此采用BP神经网络对卡尔曼滤波估计出不太精确的结果进行补偿,通过神经网络对其进行训练,从而弥补模型误差对滤波造成的一些影响,进而提高滤波精度,解决了卡尔曼滤波需要了解样本噪声特性的问题。
基于神经网络的卡尔曼滤波基本原理:基于输入、输出样本在应用BP神经网络的系统辨识,得到系统模型,接着将辨识输出的数据作为观测值,通过卡尔曼滤波对状态向量进行最优估计,最后将卡尔曼滤波增益、状态预测值与最优估值之差、系统新息作为神经网络的输入,系统输入和滤波最优估计值之差作为神经网络的输出。通过设计的神经网络训练,卡尔曼滤波的最优估计值与神经网络的输出之和为基于神经网络卡尔曼滤波的最优估计值,其改正算法的示意如图2所示。
通过分析图3和图4可知,在没有BP神经网络补偿的情况下,卡尔曼滤波的输出值与原始观测值的残差大部分集中在-4~- 11mm,由于卡尔曼滤波的计算误差比较大,故前25期左右残差比较大,卡尔曼滤波的估计和原始观测值存在比较明显的误差,之后慢慢趋于稳定,滤波的效果也逐渐变好,卡尔曼滤波的性能也逐渐稳定,精度逐步提升。
4.2基于神经网络的卡尔曼滤波模型
4.2.1拟合阶段
在本算例中输入值为。以前40期的原始监测数据建模,其模型结果与原始观测值对比,检验模型的精度、模型结果与原始值对比、残差如图5,6所示。
通过分析图5和图6可知,在拟合阶段,经过BP神经网络的补偿,残差的绝对值都降到了0.7 mm以下,没有出现图1中在初始阶段残差较大的现象,说明BP神经网络具有良好的学习和自适应能力。在BP神经网络的补偿下卡尔曼滤波的估计和原始观测值的拟合结果非常好,滤波性能得到大大提升。因此,基于神经网络的卡尔曼滤波计算出的估值更接近真值,使卡尔曼滤波精度得到提高,不易发散。
4.2.2预测阶段
经过对模型的分析,以后18期原始数据与模型预测值对比,其模型运算结果与原始观测值的数据对比结果以及对比、残差曲线如表1、图7,8所示。
分析图7,8可知,透过原始观测值与预测值的残差图和拟合状况可以看出,使用BP神经网络进行误差补偿的卡尔曼滤波明显要优于没有补偿的卡尔曼滤波。这表明采用BP神经网络进行滤波补偿可以有效降低误差,进而提高卡尔曼滤波的精度,在经过40步的学习后,图3中的卡尔曼滤波估值与原始观测值残差和图8中改进后滤波的估值与原始观测值残差基本相同,图5中的第41到58期的残差在-1.8~1.8mm,图8中对应的残差在-1.3~2.0mm。通过对图8的分析可得,采用BP神经网络进行补偿的卡尔曼滤波估值波动变小,更加平稳,误差也随之降低,训练好的神经网络对卡尔曼滤波的估计值进行补偿修正,使卡尔曼滤波摆脱了需要了解系统数学模型以及观测样本噪声特性的束缚,与此同时,卡尔曼滤波算法的稳定性和精确性也得到提高。
5 结语
基于神经网络的卡尔曼滤波在一定程度上改进了卡尔曼滤波的算法缺点,由于模型误差会使卡尔曼滤波的精度下降,结合神经网络对影响卡尔曼滤波估计值的相关参数进行学习与训练,从而弥补了卡尔曼滤波估计值的误差,因此在本文提出的采用BP神经网络进行误差补偿的卡尔曼滤波性能要优于标准卡尔曼滤波的性能,具有良好的滤波效果,同时保持了卡尔曼滤波的稳定性,达到了预期效果,拓宽了卡尔曼滤波的应用范围。这种方法不仅解决了卡尔曼滤波需要对观测样本了解的特性,还解决了卡尔曼滤波的误差会随着时间积累而发散的问题。
下一篇:返回列表