卡尔曼滤波算法

卡尔曼滤波算法 卡尔曼滤波公式?

卡尔曼滤波公式?

卡尔曼滤波公式?

卡尔曼滤波公式,线性系统模型。状态转移方程:xk=Fkxk−1 Bkuk nk。传感器观测模型:zk=Hkxk vk。其中xk是状态变量,zk是带有噪声的观测量,Fk是为系统矩阵,Hk是观测矩阵。nk是系统噪声,服从均值为0,协方差为Qk的高斯分布;vk是测量噪声,服从均值为0,协方差为Rk的高斯分布。KF滤波公式。假设已经知道xk−1服从均值为μk−1,方差为Pk−1的高斯分布。

卡尔曼滤波算法原理?

卡尔曼 滤波 是一种高效率的 递归 滤波 器 ( 自回归 滤波 器 ),它能够从一系列的不完全及包含 噪声 的 测量 中,估计 动态系统 的状态。

卡尔曼 滤波 的一个典型实例是从一组有限的,包含噪声的,通过对物体位置的观察序列(可能有偏差)预测出物体的位置的 坐标 及 速度 。在很多工程应用(如 雷达 、 计算机视觉 )中都可以找到它的身影。同时,卡尔曼 滤波 也是 控制理论 以及 控制系统 工程中的一个重要课题。

卡尔曼滤波算法原理?

首先,引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(

LinearStochasticDifferenceequation)来描述:

X(k)=AX(k-1) BU(k) W(k)

再加上系统的测量值:

Z(k)=HX(k) V(k)

上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H 是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声 (WhiteGaussianNoise),他们的covariance分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances来估算系统的最优化输出(类似上一节那个温度的例子)。

首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:

X(k|k-1)=AX(k-1|k-1) BU(k)………..(1)

式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covariance:

P(k|k-1)=AP(k-1|k-1)A’ Q(2)

式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’

表示A的转置矩阵,Q是系统过程的covariance。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。

现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):

X(k|k)=X(k|k-1) Kg(k)(Z(k)-HX(k|k-1))(3)

其中Kg为卡尔曼增益(KalmanGain):

Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’ R)(4)

到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:

P(k|k)=(I-Kg(k)H)P(k|k-1)(5)

其中I为1的矩阵,对于单模型单测量,I=1。当系统进入k 1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。

卡尔曼滤波器算法的原理基本描述了,式子1,2,3,4和5就是他的5个基本公式。根据这5个公式,可以很容易的实现计算机的程序。