卡尔玛滤波的原理说明

卡尔曼滤波的原理说明

简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,它是最优、效率最高甚至是最有用的。

卡尔曼滤波的介绍

这里先根据下面的例子对卡尔曼滤波的5条公式进行一步一步地探索。
假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声,也就是这些偏差跟前后时间是没有关系的而且符合高斯分配。另外,我们在房间里放一个温度计,但这个温度计也是不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。
好了,现在对于谋一分钟我们有两个关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面要用这两个值结合它们各自的噪声来估算出房间的实际温度值。
假如我们要估算 k k k时刻的实际温度值。首先你要根据 k k k-1时刻的温度值,来预测 k k k时刻的温度。因为你相信温度是恒定的,所以你会得到 k k k时刻的温度预测值是跟 k k k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果 k k k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4,它们的平方相加再开方,就是5)。然后,你从温度计那里得到了 k k k时刻的温度值,假设是25度,同时该值的偏差是4度。
由于我们用于估算 k k k时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少呢?相信自己还是相信温度计?究竟相信谁多一点,我们可以用它们的covariance来判断。因为 K g 2 = 5 2 / ( 5 2 + 4 2 ) Kg^2=5^2/(5^2+4^2) Kg2=52/(52+42),所以 K g Kg Kg=0.78,我们可以估算出 k k k时刻的实际温度值是: 23 + 0.78 ∗ ( 25 − 23 ) = 24.56 23+0.78*(25-23)=24.56 23+0.78(2523)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。
现在我们可以得到 k k k时刻的最优温度值了,下一步就是要进入 k k k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入 k k k+1时刻之前,我们还要算出 k k k时刻那个最优值(24.56度)的偏差。算法如下: ( ( 1 − K g ) ∗ 5 2 ) 0.5 = 2.35 ((1-Kg)\ast5^2)^{0.5}=2.35 ((1Kg)52)0.5=2.35。这里的5 就是上面的 k k k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入 k k k+1时刻以后 k k k时刻估算出的最优值的偏差(对应于上面的3)。
就是这样,卡尔曼滤波就不断地把covariance地柜,从而估算出最优的温度值。它运行的很快,而且它只保留了上一时刻的covariance。上面的 K g Kg Kg,就是卡尔曼增益。它可以随不同的时刻改变它自己的值。

卡尔曼滤波算法

首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程来描述:
X ( k ) = A X ( k − 1 ) + B U ( k ) + W ( k ) X(k)=AX(k-1)+BU(k)+W(k) X(k)=AX(k1)+BU(k)+W(k)
再加上系统的测量值:
Z ( k ) = H X ( k ) + V ( k ) Z(k)=HX(k)+V(k) Z(k)=HX(k)+V(k)
上两式中, X ( k ) X(k) X(k) k k k时刻的系统状态, U ( k ) U(k) U(k) k k k时刻对系统的控制量。 A A A B B B是系统参数,对于多模型系统,它们为矩阵。 Z ( k ) Z(k) Z(k) k k k时刻的测量值, H H H是测量系统的参数,对于多测量系统, H H H为矩阵。 W ( k ) W(k) W(k) V ( k ) V(k) V(k)分别表示过程和测量的噪声。它们被假设成高斯白噪声,它们的covariance分别是 Q Q Q R R R(这里我们假设它们不随系统状态变化而变化)。
对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波是最优的信息处理器。下面我们来用它们的covariances来估算系统的最优化输出。
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是 k k k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
(1) X ( k ∣ k − 1 ) = A X ( k − 1 ∣ k − 1 ) + B U ( k ) X(k|k-1)=AX(k-1|k-1)+BU(k) \tag{1} X(kk1)=AX(k1k1)+BU(k)(1)
上式中, X ( k ∣ k − 1 ) X(k|k-1) X(kk1)是利用上一状态预测的结果, X ( k − 1 ∣ k − 1 ) X(k-1|k-1) X(k1k1)是上一状态最优的结果, U ( k ) U(k) U(k)为现在状态的控制量,如果没有控制量,它可以为0.
到现在为止我们的系统结果已经更新了,可是,对应于 X ( k ∣ k − 1 ) X(k|k-1) X(kk1)的covariance还没更新。我们用 P P P表示covariance:
(2) P ( k ∣ k − 1 ) = A P ( k − 1 ∣ k − 1 ) A ′ + Q P(k|k-1)=AP(k-1|k-1)A'+Q \tag{2} P(kk1)=AP(k1k1)A+Q(2)
上式中, P ( k ∣ k − 1 ) P(k|k-1) P(kk1) X ( k ∣ k − 1 ) X(k|k-1) X(kk1)对应的covariance, P ( k − 1 ∣ k − 1 ) P(k-1|k-1) P(k1k1) X ( k − 1 ∣ k − 1 ) X(k-1|k-1) X(k1k1)对应covariance, A ′ A' A表示 A A A的转置矩阵, Q Q Q是系统过程的covariance。式子1,2就是卡尔曼滤波5个公式中的前两个,也就是对系统的预测。
现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态 ( k ) (k) (k)和最优化估算值 X ( k ∣ k ) X(k|k) X(kk)
(3) X ( k ∣ k ) = X ( k ∣ k − 1 ) + K g ( k ) ( Z ( k ) − H X ( k ∣ k − 1 ) ) X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1)) \tag{3} X(kk)=X(kk1)+Kg(k)(Z(k)HX(kk1))(3)
其中 K g Kg Kg为卡尔曼增益:
(4) K g ( k ) = P ( k ∣ k − 1 ) H ′ / ( H P ( k ∣ k − 1 ) H ′ + R ) Kg(k)=P(k|k-1)H'/(HP(k|k-1)H'+R) \tag{4} Kg(k)=P(kk1)H/(HP(kk1)H+R)(4)
到现在为止,我们已经得到了 k k k状态下最优的估算值 X ( k ∣ k ) X(k|k) X(kk)。但是为了要卡尔曼滤波器不断地运行下去知道系统过程结束,我们还要更新 k k k状态下 X ( k ∣ k ) X(k|k) X(kk)的covariance:
(5) P ( k ∣ k ) = ( I − K g ( k ) H ) P ( k ∣ k − 1 )   P(k|k)=(I-Kg(k)H)P(k|k-1) \tag{5} P(kk)=(IKg(k)H)P(kk1) (5)
其中 I I I为单位矩阵,对于单模型单测量, I = 1 I=1 I=1。当系统进入 k k k+1状态时, P ( k ∣ k ) P(k|k) P(kk)就是式2的 P ( k − 1 ∣ k − 1 ) P(k-1|k-1) P(k1k1)。这样,算法就可以自回归的运算下去.
卡尔曼滤波器的原理基本描述了,式子1,2,3,4和5就是它的5个基本公式。根据这5个公式,可以很容易地实现计算机的程序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 Introduction 1 1.1 Chapter Focus, 1 1.2 On Kalman Filtering, 1 1.3 On Optimal Estimation Methods, 6 1.4 Common Notation, 28 1.5 Summary, 30 Problems, 31 References, 34 2 Linear Dynamic Systems 37 2.1 Chapter Focus, 37 2.2 Deterministic Dynamic System Models, 42 2.3 Continuous Linear Systems and their Solutions, 47 2.4 Discrete Linear Systems and their Solutions, 59 2.5 Observability of Linear Dynamic System Models, 61 2.6 Summary, 66 Problems, 69 References, 3 Probability and Expectancy 73 3.1 Chapter Focus, 73 3.2 Foundations of Probability Theory, 74 3.3 Expectancy, 79 3.4 Least-Mean-Square Estimate (LMSE), 87 3.5 Transformations of Variates, 93 3.6 The Matrix Trace in Statistics, 102 3.7 Summary, 106 Problems, 107 References, 110 4 Random Processes 111 4.1 Chapter Focus, 111 4.2 Random Variables, Processes, and Sequences, 112 4.3 Statistical Properties, 114 4.4 Linear Random Process Models, 124 4.5 Shaping Filters (SF) and State Augmentation, 131 4.6 Mean and Covariance Propagation, 135 4.7 Relationships Between Model Parameters, 145 4.8 Orthogonality Principle, 153 4.9 Summary, 157 Problems, 159 References, 167 5 Linear Optimal Filters and Predictors 169 5.1 Chapter Focus, 169 5.2 Kalman Filter, 172 5.3 Kalman–Bucy Filter, 197 5.4 Optimal Linear Predictors, 200 5.5 Correlated Noise Sources, 200 5.6 Relationships Between Kalman and Wiener Filters, 201 5.7 Quadratic Loss Functions, 202 5.8 Matrix Riccati Differential Equation, 204 5.9 Matrix Riccati Equation in Discrete Time, 219 5.10 Model Equations for Transformed State Variables, 223 5.11 Sample Applications, 224 5.12 Summary, 228 Problems, 232 References, 235 6 Optimal Smoothers 239 6.1 Chapter Focus, 239 6.2 Fixed-Interval Smoothing, 244 6.3 Fixed-Lag Smoothing, 256 6.4 Fixed-Point Smoothing, 268 7 Implementation Methods 281 7.1 Chapter Focus, 281 7.2 Computer Roundoff, 283 7.3 Effects of Roundoff Errors on Kalman Filters, 288 7.4 Factorization Methods for “Square-Root” Filtering, 294 7.5 “Square-Root” and

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值