卡尔曼滤波的原理及应用自己总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卡尔曼滤波的原理以及应用
滤波,实质上就是信号处理与变换的过程。目的是去除或减弱不想要成分,增强所需成分。卡尔曼滤波的这种去除与增强过程是基于状态量的估计值和实际值之间的均方误差最小准则来实现的,基于这种准则,使得状态量的估计值越来越接近实际想要的值。而状态量和信号量之间有转换的关系,所以估计出状态量,等价于估计出信号量。所以不同于维纳滤波等滤波方式,卡尔曼滤波是把状态空间理论引入到对物理系统的数学建模过程中来,用递归方法解决离散数据线性滤波的问题,它不需要知道全部过去的数据,而是用前一个估计值和最近一个观察数据来估计信号的当前值,从而它具有运用计算机计算方便,而且可用于平稳和不平稳的随机过程(信号),非时变和时变的系统的优越性。
卡尔曼滤波属于一种软件滤波方法,概括来说其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。其所得到的解是以估计值的形式给出的。
卡尔曼滤波过程简单来说主要包括两个步骤:状态变量的预估以及状态变量的校正。预估过程是不考虑过程噪声和量测噪声,只是基于系统本身性质并依靠前一时刻的估计值以及系统控制输入的一种估计;校正过程是用量测值与预估量测值之间的误差乘以一个与过程
噪声和量测噪声相关的增益因子来对预估值进行校正的,其中增益因子的确定与状态量的均方误差有关,用到了使均方误差最小的准则。而这一过程中体现出来的递归思想即是:对于当前时刻的状态量估计值以及均方误差预估值实时进行更新,以便用于下一时刻的估计,使得系统在停止运行之前能够源源不断地进行下去。
下面对于其数学建模过程进行详细说明。
1.状态量的预估
(1)由前一时刻的估计值和送给系统的可控制输入来预估计当前时刻状态量。
X(k|k-1)=A X(k-1|k-1)+B U(k)
其中,X(k-1|k-1)表示前一时刻的估计值,U(k)表示系统的控制输入,X(k|k-1)表示由前一时刻估计出来的状态量的预估计值,A表示由k-1时刻过渡到k时刻的状态转移矩阵,B表示控制输入量与状态量之间的一种转换因子,这两个都是由系统性质来决定的。
(2)由前一时刻的均方误差阵来预估计当前时刻的均方误差阵。
P(k|k-1)=A P(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)=A Xs(k-1|k-1)+B U(k)+W(k-1)表示当前时刻的实际值,Xs(k-1|k-1)表示前一时刻的实际值,可以看出与当前时刻的预估计值
计算式相比,不仅用的是前一时刻的实际值来计算当前实际值Xs(k|k),而且多考虑了实际中的过程噪声W(k-1)这一项。代入继续推导:
式=E{[A Xs(k-1|k-1)+B U(k)+W(k-1)-A X(k-1|k-1)-B U(k)][A
Xs(k-1|k-1)+B U(k)+W(k-1)-A X(k-1|k-1)-B U(k)]’}
=E{[A Xs(k-1|k-1)+W(k-1)-A X(k-1|k-1)][A Xs(k-1|k-1)+W(k-1)-A
X(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’+Q
2.状态量的校正
(1)表示出系统的量测值。
Z(k)=H X(k)+V(k)
其中,,X(k)是k时刻的系统状态,H是测量系统的参数,V(k)表示量测噪声,和过程噪声一样,它也被假设成高斯白噪声,V(k)对应的协方差矩阵是R。
(2)用当前时刻的量测值和预估量测值之差对当前时刻的预估值进行校正,或者说是更新。
X(k|k)=X(k|k-1)+Kg(k)(Z(k)-H X(k|k-1))
其中,Z(k)是量测值,H X(k|k-1)是预估状态量与测量系统参数的乘积,乘积结果是未考虑噪声的系统量测值。Kg(k)称为系统的增益因子,Z(k)与H X(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)=A Xs(k-1|k-1)+B U(k)+W(k-1);
X(k|k)=X(k|k-1)+Kg(k)(Z(k)-H X(k|k-1));
X(k|k-1)=A X(k-1|k-1)+B U(k);
Z(k)=H X(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’/(H P(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)预估计的两个式子: