卡尔曼滤波的原理及应用自己总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

卡尔曼滤波的原理以及应用滤波,实质上就是信号处理与变换的过程。目的是去除或减弱不想要成分,增强所需成分。卡尔曼滤波的这种去除与增强过程是基于状态量的估计值和实际值之间的均方误差最小准则来实现的,基于这种准则,使得状态量的估计值越来越接近实际想要的值。而状态量和信号量之间有转换的关系,所以估计出状态量,等价于估计出信号量。所以不同于维纳滤波等滤波方式,卡尔曼滤波是把状态空间理论引入到对物理系统的数学建模过程中来,用递归方法解决离散数据线性滤波的问题,它不需要知道全部过去的数据,而是用前一个估计值和最近一个观察数据来估计信号的当前值,从而它具有运用计算机计算方便,而且可用于平稳和不平稳的随机过程(信号),非时变和时变的系统的优越性。卡尔曼滤波属于一种软件滤波方法,概括来说其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。其所得到的解是以估计值的形式给出的。卡尔曼滤波过程简单来说主要包括两个步骤:状态变量的预估以及状态变量的校正。预估过程是不考虑过程噪声和量测噪声,只是基于系统本身性质并依靠前一时刻的估计值以及系统控制输入的一种估计;校正过程是用量测值与预估量测值之间的误差乘以一个与过程噪声和量测噪声相关的增益因子来对预估值进行校正的,其中增益因子的确定与状态量的均方误差有关,用到了使均方误差最小的准则。而这一过程中体现出来的递归思想即是:对于当前时刻的状态量估计值以及均方误差预估值实时进行更新,以便用于下一时刻的估计,使得系统在停止运行之前能够源源不断地进行下去。下面对于其数学建模过程进行详细说明。1.状态量的预估(1)由前一时刻的估计值和送给系统的可控制输入来预估计当前时刻状态量。X(k|k-1)=AX(k-1|k-1)+BU(k)其中,X(k-1|k-1)表示前一时刻的估计值,U(k)表示系统的控制输入,X(k|k-1)表示由前一时刻估计出来的状态量的预估计值,A表示由k-1时刻过渡到k时刻的状态转移矩阵,B表示控制输入量与状态量之间的一种转换因子,这两个都是由系统性质来决定的。(2)由前一时刻的均方误差阵来预估计当前时刻的均方误差阵。P(k|k-1)=AP(k-1|k-1)A’+Q其中,P(k-1|k-1)是前一时刻的均方误差估计值,A’代表矩阵A的转置,Q代表过程噪声的均方误差矩阵。该表达式具体推导过程如下:P(k|k-1)=E{[Xs(k|k)-X(k|k-1)][Xs(k|k)-X(k|k-1)]’}------其中Xs(k|k)=AXs(k-1|k-1)+BU(k)+W(k-1)表示当前时刻的实际值,Xs(k-1|k-1)表示前一时刻的实际值,可以看出与当前时刻的预估计值计算式相比,不仅用的是前一时刻的实际值来计算当前实际值Xs(k|k),而且多考虑了实际中的过程噪声W(k-1)这一项。代入继续推导:式=E{[AXs(k-1|k-1)+BU(k)+W(k-1)-AX(k-1|k-1)-BU(k)][AXs(k-1|k-1)+BU(k)+W(k-1)-AX(k-1|k-1)-BU(k)]’}=E{[AXs(k-1|k-1)+W(k-1)-AX(k-1|k-1)][AXs(k-1|k-1)+W(k-1)-AX(k-1|k-1)]’}=E{A[Xs(k-1|k-1)-X(k-1|k-1)][Xs(k-1|k-1)-X(k-1|k-1)]’A’}+E(WW’)=AE{[Xs(k-1|k-1)-X(k-1|k-1)][Xs(k-1|k-1)-X(k-1|k-1)]’}A’+E(WW’)=AP(k-1|k-1)A’+Q2.状态量的校正(1)表示出系统的量测值。Z(k)=HX(k)+V(k)其中,,X(k)是k时刻的系统状态,H是测量系统的参数,V(k)表示量测噪声,和过程噪声一样,它也被假设成高斯白噪声,V(k)对应的协方差矩阵是R。(2)用当前时刻的量测值和预估量测值之差对当前时刻的预估值进行校正,或者说是更新。X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1))其中,Z(k)是量测值,HX(k|k-1)是预估状态量与测量系统参数的乘积,乘积结果是未考虑噪声的系统量测值。Kg(k)称为系统的增益因子,Z(k)与HX(k|k-1)之差通过增益因子的修正加到状态量的预估值上,相当于考虑进了噪声的影响,即X(k|k)是修正后或者说是更新后的状态量的估计值。(3)由更新后的当前时刻的状态量的估计值更新当前时刻的均方误差值,并求出最小均方误差准则下增益因子的表达式。P(k|k)=E{[Xs(k|k)-X(k|k)][Xs(k|k)-X(k|k)]’}其中,Xs(k|k)=AXs(k-1|k-1)+BU(k)+W(k-1);X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1));X(k|k-1)=AX(k-1|k-1)+BU(k);Z(k)=HX(k)+V(k)将各量的表达式代入后可得到P(k|k)与Kg(k)之间的关系式,对P(k|k)求关于Kg(k)的一阶导数,使之为0,可得到P(k|k)最小时对应的Kg(k)的值:Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+R)将Kg(k)代入上面求出的P(k|k)与Kg(k)之间的关系式,即可求出更新后的当前时刻的均方误差估计值:P(k|k)=(I-Kg(k)H)P(k|k-1)当系统进入k+1状态时,P(k|k)就是上面各式中出现的P(k-1|k-1)。这样,算法就可以自回归的运算下去。3.总结由上面的叙述,可以总结卡尔曼滤波的原理和数学建模过程可以归结为5个公式:(1)预估计的两个式子:X(k|k-1)=AX(k-1|k-1)+BU(k)P(k|k-1)=AP(k-1|k-1)A’+Q(2)状态更新的式子:X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1))Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+R)P(k|k)=(I-Kg(k)H)P(k|k-1)卡尔曼滤波的应用1.卡尔曼滤波的应用主要是要建立起精确的数学模型,再从这个模型出发,进行滤波器的设计与实现工作。需要说明的是上述过程属于卡尔曼滤波的基本原理和基本数学模型,它要求:1)系统是线性模型,仅适用于与线性系统的状态估计;当系统为非线性时,需要用扩展卡尔曼滤波技术,先将非线性系统简单线性化。2)实际中的卡尔曼滤波问题基本都是离散问题,在实际应用中就要把连续系统离散化,把微分方程转换为差分方程。3)要求过程噪声为白噪声,即系统用白噪声激励,且与量测噪声不相关。2.卡尔曼滤波一些参数的取值方法:1用于递归计算需要知道的初始的状态变量X(0|0),该值的影响最小,可以直接取为第一个测量值。在滤波器可以收敛的情况下可以很快收敛。2用于递归计算的均方误差的初始值P(0|0),对滤波效果的影响也很小,只要部位0,一般都能很快收敛,可任意取为不为0的矩阵。3当状态转换过程确定时,Q的值越小越好,可取为一个非常小但不为0的矩阵。4测量噪声协方差矩阵越小越好,但滤波效果不一定好。可以事先测定其噪声方差,以备后续使用。3.卡尔曼滤波的应用步骤:1根据对系统的充分了解,建立一个真实系统的完整模型,并用状态空间描述之。这里包括选择状态变量,量测量,建立系统的状态方程和量测方程,以及建立误差的统计模型。2根据系统的完整模型建立一个最佳的完整滤波器。它包括了所有的误差源。完整滤波器用来反映一个精确工作的最佳滤波器性能,并作为鉴定简化滤波器的标准。用计算机程序模拟之,这种程序包括了详细的模拟器,并模拟了完整滤波器方程。3系统的完整模型一般比较复杂,实际应用中必须简化模型。先根据工程经验简化模型,设计出相应的简化滤波器,然后作理论上的模型误差分析,但更重要的是通过计算机模拟分析来完成设计和鉴定。程序既包括了多种模拟器,反映了真实系统,又能方便地模拟简化滤波器方程。通过程序鉴定分析简化滤波器,并与完整滤波器结果作比较。一边模拟分析,一边删去对总系统影响不大的状态量,最后完成了一个维数较少且能满足性能要求的简化滤波器,这阶段的工作反映了一个不完整滤波器在精确运算时的理论精度,它至少要达到系统所希望的精度。4建立一个能在实际工作环境下实时完成系统任务的确定性滤波器。建立过程中要用各种滤波技术,使得滤波器对传感器误差恶化不灵敏,并能符合计算机实时要求、容量要求以及精度限制,而又能满足系统性能的要求。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功