This blog is translated from https://www.kalmanfilter.net/default.aspx.
It’s an excellent tutorial about Kalman Filter written by Alex Becker.

目录
卡尔曼滤波器(1) – 背景知识
卡尔曼滤波器(2) – α−β−γ滤波器(例1)
卡尔曼滤波器(3) – α−β−γ滤波器(例2)
卡尔曼滤波器(4) – α−β−γ滤波器(例3&例4&总结)
卡尔曼滤波器(5) – 一维卡尔曼滤波器(介绍)
卡尔曼滤波器(6) – 一维卡尔曼滤波器(例5&完整模型)
卡尔曼滤波器(7) – 一维卡尔曼滤波器(例6)
卡尔曼滤波器(8) – 一维卡尔曼滤波器(例7&例8)
卡尔曼滤波器(9) – 多维卡尔曼滤波器(前言&预备)
卡尔曼滤波器(10) – 多维卡尔曼滤波器(状态外推方程)
卡尔曼滤波器(11) – 多维卡尔曼滤波器(线性动态系统模型)
卡尔曼滤波器(12) – 多维卡尔曼滤波器(协方差外推方程)
卡尔曼滤波器(13) – 多维卡尔曼滤波器(测量方程)
卡尔曼滤波器(14) – 多维卡尔曼滤波器(简短总结)
卡尔曼滤波器(15) – 多维卡尔曼滤波器(状态更新方程)
卡尔曼滤波器(16) – 多维卡尔曼滤波器(协方差更新方程)
卡尔曼滤波器(17) – 多维卡尔曼滤波器(卡尔曼增益)
卡尔曼滤波器(18) – 多维卡尔曼滤波器(简化的协方差更新方程)
卡尔曼滤波器(19) – 多维卡尔曼滤波器(总结)
卡尔曼滤波器(20) – 多维卡尔曼滤波器(例9)


例7 - 估计罐子里的液体温度Ⅰ

还是估算液体温度的例子。不同的是,液体以每秒 0. 1 ∘ C \color{Red}0.1^\circ\mathrm{C} 0.1∘C 的速度加热。

这里也是静态系统。

卡尔曼滤波器的参数和前面例子的相似:

  • 假设我们的模型是很准确的,过程噪声的方差( q q q) 设为 0.0001 0.0001 0.0001
  • 测量误差(标准差)为 0.1 0.1 0.1 摄氏度
  • 每 5 5 5 秒进行一次测量
  • 系统动态是恒定的
    注意,虽然实际上它不是恒定的(静态的),因为液体正在被加热。但是由于温度没有变化,我们仍然把它当成是一个静态系统。
  • 在测量的时候,液体的真实温度为 50.47 9 ∘ C , 51.02 5 ∘ C , 51. 5 ∘ C , 52.00 3 ∘ C , 52.49 4 ∘ C , 53.00 2 ∘ C , 53.49 9 ∘ C , 54.00 6 ∘ C , 54.49 8 ∘ C , 54.99 1 ∘ C 50.479^\circ\mathrm{C},51.025^\circ\mathrm{C},51.5^\circ\mathrm{C},52.003^\circ\mathrm{C},52.494^\circ\mathrm{C},53.002^\circ\mathrm{C},53.499^\circ\mathrm{C},54.006^\circ\mathrm{C},54.498^\circ\mathrm{C},54.991^\circ\mathrm{C} 50.479∘C,51.025∘C,51.5∘C,52.003∘C,52.494∘C,53.002∘C,53.499∘C,54.006∘C,54.498∘C,54.991∘C
  • 测量值为 50.4 5 ∘ C , 50.96 7 ∘ C , 51. 6 ∘ C , 52.10 6 ∘ C , 52.49 2 ∘ C , 52.81 9 ∘ C , 53.43 3 ∘ C , 54.00 7 ∘ C , 54.52 3 ∘ C , 54.9 9 ∘ C 50.45^\circ\mathrm{C},50.967^\circ\mathrm{C},51.6^\circ\mathrm{C},52.106^\circ\mathrm{C},52.492^\circ\mathrm{C},52.819^\circ\mathrm{C},53.433^\circ\mathrm{C},54.007^\circ\mathrm{C},54.523^\circ\mathrm{C},54.99^\circ\mathrm{C} 50.45∘C,50.967∘C,51.6∘C,52.106∘C,52.492∘C,52.819∘C,53.433∘C,54.007∘C,54.523∘C,54.99∘C

测量值和真实值的关系如图所示:

第零次迭代
在第一次迭代之前,需要初始化卡尔曼滤波器,然后预测下一个状态(也就是第一个状态)。

初始化
和之前一样,盲猜温度是 1 0 ∘ C 10^\circ\mathrm{C} 10∘C:
x ^ 0 , 0 = 1 0 ∘ C \hat{x}_{0,0}=10^\circ\mathrm{C} x^0,0​=10∘C

由于这个猜测值是非常不精准的,于是把初始估计误差( σ \sigma σ)设为 100 100 100。初始化的估计不确定性(Estimate Uncertainty)是误差的方差( σ 2 \sigma^2 σ2):
p 0 , 0 = 10 0 2 = 10 , 000 p_{0,0}=100^2=10,000 p0,0​=1002=10,000

这里方差非常高。如果我们的初始值更合理,卡尔曼滤波器会收敛更快。

预测
基于初始值来预测下一个状态。
由于模型是静态的,预测估计与当前估计相同: x ^ 1 , 0 = 1 0 ∘ C \hat{x}_{1,0}=10^\circ\mathrm{C} x^1,0​=10∘C

外推估计不确定性(方差)为:
p 1 , 0 = p 0 , 0 + q = 10000 + 0.0001 = 10000.0001 \begin{aligned} p_{1,0} &= p_{0,0} + q \\ &= 10000 + 0.0001 \\ &= 10000.0001 \end{aligned} p1,0​​=p0,0​+q=10000+0.0001=10000.0001​

第1-10次迭代
如下所示:

n n n z n z_n zn​ 当前状态估计 ( K n , x ^ n , n , p n , n K_n,\hat{x}_{n,n},p_{n,n} Kn​,x^n,n​,pn,n​) 预测( x ^ n + 1 , n , p n + 1 , n \hat{x}_{n+1,n},p_{n+1,n} x^n+1,n​,pn+1,n​)
1 50.4 5 ∘ C 50.45^\circ\mathrm{C} 50.45∘C K 1 = 10000.0001 10000.0001 + 0.01 = 0.999999 x ^ 1 , 1 = 10 + 0.999999 ( 50.45 − 10 ) = 50.4 5 ∘ C p 1 , 1 = ( 1 − 0.999999 ) 10000.0001 = 0.01 K_1=\frac{10000.0001}{10000.0001+0.01}=0.999999 \\ \quad \\ \hat{x}_{1,1}=10+0.999999(50.45−10)=50.45^\circ\mathrm{C} \\ \quad \\ p_{1,1}=(1−0.999999)10000.0001=0.01 K1​=10000.0001+0.0110000.0001​=0.999999x^1,1​=10+0.999999(50.45−10)=50.45∘Cp1,1​=(1−0.999999)10000.0001=0.01 x ^ 2 , 1 = x ^ 1 , 1 = 50.4 5 ∘ C p 2 , 1 = 0.01 + 0.0001 = 0.0101 \hat{x}_{2,1}=\hat{x}_{1,1} = 50.45^\circ\mathrm{C} \\ \quad \\ p_{2,1} = 0.01+0.0001=0.0101 x^2,1​=x^1,1​=50.45∘Cp2,1​=0.01+0.0001=0.0101
2 50.96 7 ∘ C 50.967^\circ\mathrm{C} 50.967∘C K 2 = 0.0101 0.0101 + 0.01 = 0.5025 x ^ 2 , 2 = 50.45 + 0.5025 ( 50.967 − 50.45 ) = 50.7 1 ∘ C p 2 , 2 = ( 1 − 0.5025 ) 0.0101 = 0.005 K_2=\frac{0.0101}{0.0101+0.01}=0.5025 \\ \quad \\ \hat{x}_{2,2}=50.45+0.5025(50.967−50.45)=50.71^\circ\mathrm{C} \\ \quad \\ p_{2,2}=(1−0.5025)0.0101=0.005 K2​=0.0101+0.010.0101​=0.5025x^2,2​=50.45+0.5025(50.967−50.45)=50.71∘Cp2,2​=(1−0.5025)0.0101=0.005 x ^ 3 , 2 = x ^ 2 , 2 = 50.7 1 ∘ C p 3 , 2 = 0.005 + 0.0001 = 0.0051 \hat{x}_{3,2}=\hat{x}_{2,2} = 50.71^\circ\mathrm{C} \\ \quad \\ p_{3,2} = 0.005+0.0001=0.0051 x^3,2​=x^2,2​=50.71∘Cp3,2​=0.005+0.0001=0.0051
3 51. 6 ∘ C 51.6^\circ\mathrm{C} 51.6∘C K 3 = 0.0051 0.0051 + 0.01 = 0.3388 x ^ 3 , 3 = 50.71 + 0.3388 ( 51.6 − 50.71 ) = 51.01 1 ∘ C p 3 , 3 = ( 1 − 0.3388 ) 0.0051 = 0.0034 K_3=\frac{0.0051}{0.0051+0.01}=0.3388 \\ \quad \\ \hat{x}_{3,3}=50.71+0.3388(51.6−50.71)=51.011^\circ\mathrm{C} \\ \quad \\ p_{3,3}=(1−0.3388)0.0051=0.0034 K3​=0.0051+0.010.0051​=0.3388x^3,3​=50.71+0.3388(51.6−50.71)=51.011∘Cp3,3​=(1−0.3388)0.0051=0.0034 x ^ 4 , 3 = x ^ 3 , 3 = 51.01 1 ∘ C p 4 , 3 = 0.0034 + 0.0001 = 0.0035 \hat{x}_{4,3}=\hat{x}_{3,3} = 51.011^\circ\mathrm{C} \\ \quad \\ p_{4,3} = 0.0034+0.0001=0.0035 x^4,3​=x^3,3​=51.011∘Cp4,3​=0.0034+0.0001=0.0035
4 52.10 6 ∘ C 52.106^\circ\mathrm{C} 52.106∘C K 4 = 0.0035 0.0035 + 0.01 = 0.2586 x ^ 4 , 4 = 51.011 + 0.2586 ( 52.106 − 51.011 ) = 51.29 5 ∘ C p 4 , 4 = ( 1 − 0.2586 ) 0.0035 = 0.0026 K_4=\frac{0.0035}{0.0035+0.01}=0.2586 \\ \quad \\ \hat{x}_{4,4}=51.011+0.2586(52.106−51.011)=51.295^\circ\mathrm{C} \\ \quad \\ p_{4,4}=(1−0.2586)0.0035=0.0026 K4​=0.0035+0.010.0035​=0.2586x^4,4​=51.011+0.2586(52.106−51.011)=51.295∘Cp4,4​=(1−0.2586)0.0035=0.0026 x ^ 5 , 4 = x ^ 4 , 4 = 51.29 5 ∘ C p 5 , 4 = 0.0026 + 0.0001 = 0.0027 \hat{x}_{5,4}=\hat{x}_{4,4} = 51.295^\circ\mathrm{C} \\ \quad \\ p_{5,4} = 0.0026+0.0001=0.0027 x^5,4​=x^4,4​=51.295∘Cp5,4​=0.0026+0.0001=0.0027
5 52.49 2 ∘ C 52.492^\circ\mathrm{C} 52.492∘C K 5 = 0.0027 0.0027 + 0.01 = 0.2117 x ^ 5 , 5 = 51.295 + 0.2117 ( 52.492 − 51.295 ) = 51.54 8 ∘ C p 5 , 5 = ( 1 − 0.2117 ) 0.0027 = 0.0021 K_5=\frac{0.0027}{0.0027+0.01}=0.2117 \\ \quad \\ \hat{x}_{5,5}=51.295+0.2117(52.492−51.295)=51.548^\circ\mathrm{C} \\ \quad \\ p_{5,5}=(1−0.2117)0.0027=0.0021 K5​=0.0027+0.010.0027​=0.2117x^5,5​=51.295+0.2117(52.492−51.295)=51.548∘Cp5,5​=(1−0.2117)0.0027=0.0021 x ^ 6 , 5 = x ^ 5 , 5 = 51.54 8 ∘ C p 6 , 5 = 0.0021 + 0.0001 = 0.0022 \hat{x}_{6,5}=\hat{x}_{5,5} = 51.548^\circ\mathrm{C} \\ \quad \\ p_{6,5} = 0.0021+0.0001=0.0022 x^6,5​=x^5,5​=51.548∘Cp6,5​=0.0021+0.0001=0.0022
6 52.81 9 ∘ C 52.819^\circ\mathrm{C} 52.819∘C K 6 = 0.0022 0.0022 + 0.01 = 0.1815 x ^ 6 , 6 = 51.548 + 0.1815 ( 52.819 − 51.548 ) = 51.77 9 ∘ C p 6 , 6 = ( 1 − 0.1815 ) 0.0022 = 0.0018 K_6=\frac{0.0022}{0.0022+0.01}=0.1815 \\ \quad \\ \hat{x}_{6,6}=51.548+0.1815(52.819−51.548)=51.779^\circ\mathrm{C} \\ \quad \\ p_{6,6}=(1−0.1815)0.0022=0.0018 K6​=0.0022+0.010.0022​=0.1815x^6,6​=51.548+0.1815(52.819−51.548)=51.779∘Cp6,6​=(1−0.1815)0.0022=0.0018 x ^ 7 , 6 = x ^ 6 , 6 = 51.77 9 ∘ C p 7 , 6 = 0.0018 + 0.0001 = 0.0019 \hat{x}_{7,6}=\hat{x}_{6,6} = 51.779^\circ\mathrm{C} \\ \quad \\ p_{7,6} = 0.0018+0.0001=0.0019 x^7,6​=x^6,6​=51.779∘Cp7,6​=0.0018+0.0001=0.0019
7 53.43 3 ∘ C 53.433^\circ\mathrm{C} 53.433∘C K 7 = 0.0019 0.0019 + 0.01 = 0.1607 x ^ 7 , 7 = 51.779 + 0.1607 ( 53.433 − 51.779 ) = 52.04 5 ∘ C p 7 , 7 = ( 1 − 0.1607 ) 0.0019 = 0.0016 K_7=\frac{0.0019}{0.0019+0.01}=0.1607 \\ \quad \\ \hat{x}_{7,7}=51.779+0.1607(53.433−51.779)=52.045^\circ\mathrm{C} \\ \quad \\ p_{7,7}=(1−0.1607)0.0019=0.0016 K7​=0.0019+0.010.0019​=0.1607x^7,7​=51.779+0.1607(53.433−51.779)=52.045∘Cp7,7​=(1−0.1607)0.0019=0.0016 x ^ 8 , 7 = x ^ 7 , 7 = 52.04 5 ∘ C p 8 , 7 = 0.0016 + 0.0001 = 0.0017 \hat{x}_{8,7}=\hat{x}_{7,7} = 52.045^\circ\mathrm{C} \\ \quad \\ p_{8,7} = 0.0016+0.0001=0.0017 x^8,7​=x^7,7​=52.045∘Cp8,7​=0.0016+0.0001=0.0017
8 54.00 7 ∘ C 54.007^\circ\mathrm{C} 54.007∘C K 8 = 0.0017 0.0017 + 0.01 = 0.1458 x ^ 8 , 8 = 52.045 + 0.1458 ( 54.007 − 52.045 ) = 52.33 1 ∘ C p 8 , 8 = ( 1 − 0.1458 ) 0.0017 = 0.0015 K_8=\frac{0.0017}{0.0017+0.01}=0.1458 \\ \quad \\ \hat{x}_{8,8}=52.045+0.1458(54.007−52.045)=52.331^\circ\mathrm{C} \\ \quad \\ p_{8,8}=(1−0.1458)0.0017=0.0015 K8​=0.0017+0.010.0017​=0.1458x^8,8​=52.045+0.1458(54.007−52.045)=52.331∘Cp8,8​=(1−0.1458)0.0017=0.0015 x ^ 9 , 8 = x ^ 8 , 8 = 52.33 1 ∘ C p 9 , 8 = 0.0015 + 0.0001 = 0.0016 \hat{x}_{9,8}=\hat{x}_{8,8} = 52.331^\circ\mathrm{C} \\ \quad \\ p_{9,8} = 0.0015+0.0001=0.0016 x^9,8​=x^8,8​=52.331∘Cp9,8​=0.0015+0.0001=0.0016
9 54.52 3 ∘ C 54.523^\circ\mathrm{C} 54.523∘C K 9 = 0.0016 0.0016 + 0.01 = 0.1348 x ^ 9 , 9 = 52.331 + 0.1348 ( 54.523 − 52.331 ) = 52.62 6 ∘ C p 9 , 9 = ( 1 − 0.1348 ) 0.0016 = 0.0014 K_9=\frac{0.0016}{0.0016+0.01}=0.1348 \\ \quad \\ \hat{x}_{9,9}=52.331+0.1348(54.523−52.331)=52.626^\circ\mathrm{C} \\ \quad \\ p_{9,9}=(1−0.1348)0.0016=0.0014 K9​=0.0016+0.010.0016​=0.1348x^9,9​=52.331+0.1348(54.523−52.331)=52.626∘Cp9,9​=(1−0.1348)0.0016=0.0014 x ^ 10 , 9 = x ^ 9 , 9 = 52.62 6 ∘ C p 10 , 9 = 0.0014 + 0.0001 = 0.0015 \hat{x}_{10,9}=\hat{x}_{9,9} = 52.626^\circ\mathrm{C} \\ \quad \\ p_{10,9} = 0.0014+0.0001=0.0015 x^10,9​=x^9,9​=52.626∘Cp10,9​=0.0014+0.0001=0.0015
10 54.9 9 ∘ C 54.99^\circ\mathrm{C} 54.99∘C K 10 = 0.0015 0.0015 + 0.01 = 0.1265 x ^ 10 , 10 = 2.626 + 0.1265 ( 54.99 − 52.626 ) = 52.92 5 ∘ C p 10 , 10 = ( 1 − 0.1265 ) 0.0015 = 0.0013 K_{10}=\frac{0.0015}{0.0015+0.01}=0.1265 \\ \quad \\ \hat{x}_{10,10}=2.626+0.1265(54.99−52.626)=52.925^\circ\mathrm{C} \\ \quad \\ p_{10,10}=(1−0.1265)0.0015=0.0013 K10​=0.0015+0.010.0015​=0.1265x^10,10​=2.626+0.1265(54.99−52.626)=52.925∘Cp10,10​=(1−0.1265)0.0015=0.0013 x ^ 11 , 10 = x ^ 10 , 10 = 52.92 5 ∘ C p 11 , 10 = 0.0013 + 0.0001 = 0.0014 \hat{x}_{11,10}=\hat{x}_{10,10} = 52.925^\circ\mathrm{C} \\ \quad \\ p_{11,10} = 0.0013+0.0001=0.0014 x^11,10​=x^10,10​=52.925∘Cp11,10​=0.0013+0.0001=0.0014

下面的表画出了真实值,测量值,估计值:

看来这次的卡尔曼滤波器并没有给出可靠的估计。这种现象说明在本例的估计中存在滞后误差(lag error)。 我们之前在例3中遇到过滞后误差,在该示例中,我们假定飞机速度是恒定的,用 α − β \alpha-\beta α−β 滤波器估算了加速飞机的位置。在例4中把 α − β \alpha-\beta α−β 滤波器换成了带有加速度的 α − β − γ \alpha-\beta-\gamma α−β−γ 滤波器,解决了滞后误差。

有 2 个原因导致这次卡尔曼滤波器的滞后误差:

  • 系统模型不适合这种情况。
  • 过程模型的可靠性。我们选择了很低的过程噪声( q = 0.0001 q=0.0001 q=0.0001),然而实际温度的波动要大得多。

Note: 注意:滞后误差应为常数,因此估计曲线的斜率应该和真实值曲线的斜率相同。上面的图仅显示了10个初始测量值,不足以进行收敛。下图显示了前100次测量的恒定滞后误差。

有两种办法来解决滞后误差:

  • 如果我们知道液体温度是线性变化的,则可以定义一个新模型,该模型考虑液体温度可能发生的线性变化。在例4中就是这么做的,这是首选方法。如果无法对温度变化进行建模,则此方法将不会改善卡尔曼滤波器的性能。
  • 如果找不到一个合适的模型,可以通过增加过程噪声 q q q 来调整过程模型的可靠性。详细做法看下一个例子。

例8 - 估计罐子里的液体温度Ⅱ

和上面的例子很相似,只做了1处修改,把过程不确定性( q q q)从 0.0001 0.0001 0.0001 升到 0.15 0.15 0.15。

第零次迭代
在第一次迭代之前,需要初始化卡尔曼滤波器,然后预测下一个状态(也就是第一个状态)。

初始化
和之前一样,盲猜温度是 1 0 ∘ C 10^\circ\mathrm{C} 10∘C:
x ^ 0 , 0 = 1 0 ∘ C \hat{x}_{0,0}=10^\circ\mathrm{C} x^0,0​=10∘C

由于这个猜测值是非常不精准的,于是把初始估计误差( σ \sigma σ)设为 100 100 100。初始化的估计不确定性(Estimate Uncertainty)是误差的方差( σ 2 \sigma^2 σ2):
p 0 , 0 = 10 0 2 = 10 , 000 p_{0,0}=100^2=10,000 p0,0​=1002=10,000

这里方差非常高。如果我们的初始值更合理,卡尔曼滤波器会收敛更快。

预测
基于初始值来预测下一个状态。
由于模型是静态的,预测估计与当前估计相同: x ^ 1 , 0 = 1 0 ∘ C \hat{x}_{1,0}=10^\circ\mathrm{C} x^1,0​=10∘C

外推估计不确定性(方差)为:
p 1 , 0 = p 0 , 0 + q = 10000 + 0.15 = 10000.15 \begin{aligned} p_{1,0} &= p_{0,0} + q \\ &= 10000 + 0.15 \\ &= 10000.15 \end{aligned} p1,0​​=p0,0​+q=10000+0.15=10000.15​

第1-10次迭代
如下所示:

n n n z n z_n zn​ 当前状态估计 ( K n , x ^ n , n , p n , n K_n,\hat{x}_{n,n},p_{n,n} Kn​,x^n,n​,pn,n​) 预测( x ^ n + 1 , n , p n + 1 , n \hat{x}_{n+1,n},p_{n+1,n} x^n+1,n​,pn+1,n​)
1 50.4 5 ∘ C 50.45^\circ\mathrm{C} 50.45∘C K 1 = 10000.15 10000.15 + 0.01 = 0.999999 x ^ 1 , 1 = 10 + 0.999999 ( 50.45 − 10 ) = 50.4 5 ∘ C p 1 , 1 = ( 1 − 0.999999 ) 10000.15 = 0.01 K_1=\frac{10000.15}{10000.15+0.01}=0.999999 \\ \quad \\ \hat{x}_{1,1}=10+0.999999(50.45−10)=50.45^\circ\mathrm{C} \\ \quad \\ p_{1,1}=(1−0.999999)10000.15=0.01 K1​=10000.15+0.0110000.15​=0.999999x^1,1​=10+0.999999(50.45−10)=50.45∘Cp1,1​=(1−0.999999)10000.15=0.01 x ^ 2 , 1 = x ^ 1 , 1 = 50.4 5 ∘ C p 2 , 1 = 0.01 + 0.15 = 0.016 \hat{x}_{2,1}=\hat{x}_{1,1} = 50.45^\circ\mathrm{C} \\ \quad \\ p_{2,1} = 0.01+0.15=0.016 x^2,1​=x^1,1​=50.45∘Cp2,1​=0.01+0.15=0.016
2 50.96 7 ∘ C 50.967^\circ\mathrm{C} 50.967∘C K 2 = 0.16 0.16 + 0.01 = 0.9412 x ^ 2 , 2 = 50.45 + 0.9412 ( 50.967 − 50.45 ) = 50.9 4 ∘ C p 2 , 2 = ( 1 − 0.9412 ) 0.16 = 0.0094 K_2=\frac{0.16}{0.16+0.01}=0.9412 \\ \quad \\ \hat{x}_{2,2}=50.45+0.9412(50.967−50.45)=50.94^\circ\mathrm{C} \\ \quad \\ p_{2,2}=(1−0.9412)0.16=0.0094 K2​=0.16+0.010.16​=0.9412x^2,2​=50.45+0.9412(50.967−50.45)=50.94∘Cp2,2​=(1−0.9412)0.16=0.0094 x ^ 3 , 2 = x ^ 2 , 2 = 50.9 4 ∘ C p 3 , 2 = 0.0094 + 0.15 = 0.1594 \hat{x}_{3,2}=\hat{x}_{2,2} = 50.94^\circ\mathrm{C} \\ \quad \\ p_{3,2} = 0.0094+0.15=0.1594 x^3,2​=x^2,2​=50.94∘Cp3,2​=0.0094+0.15=0.1594
3 51. 6 ∘ C 51.6^\circ\mathrm{C} 51.6∘C K 3 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 3 , 3 = 50.94 + 0.941 ( 51.6 − 50.94 ) = 51.5 6 ∘ C p 3 , 3 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_3=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{3,3}=50.94+0.941(51.6−50.94)=51.56^\circ\mathrm{C} \\ \quad \\ p_{3,3}=(1−0.941)0.1594=0.0094 K3​=0.1594+0.010.1594​=0.941x^3,3​=50.94+0.941(51.6−50.94)=51.56∘Cp3,3​=(1−0.941)0.1594=0.0094 x ^ 4 , 3 = x ^ 3 , 3 = 51.5 6 ∘ C p 4 , 3 = 0.0094 + 0.15 = 0.1594 \hat{x}_{4,3}=\hat{x}_{3,3} = 51.56^\circ\mathrm{C} \\ \quad \\ p_{4,3} = 0.0094+0.15=0.1594 x^4,3​=x^3,3​=51.56∘Cp4,3​=0.0094+0.15=0.1594
4 52.10 6 ∘ C 52.106^\circ\mathrm{C} 52.106∘C K 4 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 4 , 4 = 51.56 + 0.941 ( 52.106 − 51.56 ) = 52.0 7 ∘ C p 4 , 4 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_4=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{4,4}=51.56+0.941(52.106−51.56)=52.07^\circ\mathrm{C} \\ \quad \\ p_{4,4}=(1−0.941)0.1594=0.0094 K4​=0.1594+0.010.1594​=0.941x^4,4​=51.56+0.941(52.106−51.56)=52.07∘Cp4,4​=(1−0.941)0.1594=0.0094 x ^ 5 , 4 = x ^ 4 , 4 = 52.4 7 ∘ C p 5 , 4 = 0.0094 + 0.15 = 0.1594 \hat{x}_{5,4}=\hat{x}_{4,4} = 52.47^\circ\mathrm{C} \\ \quad \\ p_{5,4} = 0.0094+0.15=0.1594 x^5,4​=x^4,4​=52.47∘Cp5,4​=0.0094+0.15=0.1594
5 52.49 2 ∘ C 52.492^\circ\mathrm{C} 52.492∘C K 5 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 5 , 5 = 52.07 + 0.941 ( 52.492 − 52.07 ) = 52.4 7 ∘ C p 5 , 5 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_5=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{5,5}=52.07+0.941(52.492−52.07)=52.47^\circ\mathrm{C} \\ \quad \\ p_{5,5}=(1−0.941)0.1594=0.0094 K5​=0.1594+0.010.1594​=0.941x^5,5​=52.07+0.941(52.492−52.07)=52.47∘Cp5,5​=(1−0.941)0.1594=0.0094 x ^ 6 , 5 = x ^ 5 , 5 = 52.4 7 ∘ C p 6 , 5 = 0.0094 + 0.15 = 0.1594 \hat{x}_{6,5}=\hat{x}_{5,5} = 52.47^\circ\mathrm{C} \\ \quad \\ p_{6,5} = 0.0094+0.15=0.1594 x^6,5​=x^5,5​=52.47∘Cp6,5​=0.0094+0.15=0.1594
6 52.81 9 ∘ C 52.819^\circ\mathrm{C} 52.819∘C K 6 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 6 , 6 = 52.47 + 0.941 ( 52.819 − 52.47 ) = 52. 8 ∘ C p 6 , 6 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_6=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{6,6}=52.47+0.941(52.819−52.47)=52.8^\circ\mathrm{C} \\ \quad \\ p_{6,6}=(1−0.941)0.1594=0.0094 K6​=0.1594+0.010.1594​=0.941x^6,6​=52.47+0.941(52.819−52.47)=52.8∘Cp6,6​=(1−0.941)0.1594=0.0094 x ^ 7 , 6 = x ^ 6 , 6 = 52. 8 ∘ C p 7 , 6 = 0.0094 + 0.15 = 0.1594 \hat{x}_{7,6}=\hat{x}_{6,6} = 52.8^\circ\mathrm{C} \\ \quad \\ p_{7,6} = 0.0094+0.15=0.1594 x^7,6​=x^6,6​=52.8∘Cp7,6​=0.0094+0.15=0.1594
7 53.43 3 ∘ C 53.433^\circ\mathrm{C} 53.433∘C K 7 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 7 , 7 = 52.8 + 0.941 ( 53.433 − 52.8 ) = 53. 4 ∘ C p 7 , 7 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_7=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{7,7}=52.8+0.941(53.433−52.8)=53.4^\circ\mathrm{C} \\ \quad \\ p_{7,7}=(1−0.941)0.1594=0.0094 K7​=0.1594+0.010.1594​=0.941x^7,7​=52.8+0.941(53.433−52.8)=53.4∘Cp7,7​=(1−0.941)0.1594=0.0094 x ^ 8 , 7 = x ^ 7 , 7 = 53. 4 ∘ C p 8 , 7 = 0.0094 + 0.15 = 0.1594 \hat{x}_{8,7}=\hat{x}_{7,7} = 53.4^\circ\mathrm{C} \\ \quad \\ p_{8,7} = 0.0094+0.15=0.1594 x^8,7​=x^7,7​=53.4∘Cp8,7​=0.0094+0.15=0.1594
8 54.00 7 ∘ C 54.007^\circ\mathrm{C} 54.007∘C K 8 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 8 , 8 = 53.4 + 0.941 ( 54.007 − 53.4 ) = 53.9 7 ∘ C p 8 , 8 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_8=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{8,8}=53.4+0.941(54.007−53.4)=53.97^\circ\mathrm{C} \\ \quad \\ p_{8,8}=(1−0.941)0.1594=0.0094 K8​=0.1594+0.010.1594​=0.941x^8,8​=53.4+0.941(54.007−53.4)=53.97∘Cp8,8​=(1−0.941)0.1594=0.0094 x ^ 9 , 8 = x ^ 8 , 8 = 53.9 7 ∘ C p 9 , 8 = 0.0094 + 0.15 = 0.1594 \hat{x}_{9,8}=\hat{x}_{8,8} = 53.97^\circ\mathrm{C} \\ \quad \\ p_{9,8} = 0.0094+0.15=0.1594 x^9,8​=x^8,8​=53.97∘Cp9,8​=0.0094+0.15=0.1594
9 54.52 3 ∘ C 54.523^\circ\mathrm{C} 54.523∘C K 9 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 9 , 9 = 53.97 + 0.941 ( 54.523 − 53.97 ) = 54.4 9 ∘ C p 9 , 9 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_9=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{9,9}=53.97+0.941(54.523−53.97)=54.49^\circ\mathrm{C} \\ \quad \\ p_{9,9}=(1−0.941)0.1594=0.0094 K9​=0.1594+0.010.1594​=0.941x^9,9​=53.97+0.941(54.523−53.97)=54.49∘Cp9,9​=(1−0.941)0.1594=0.0094 x ^ 10 , 9 = x ^ 9 , 9 = 54.4 9 ∘ C p 10 , 9 = 0.0094 + 0.15 = 0.1594 \hat{x}_{10,9}=\hat{x}_{9,9} = 54.49^\circ\mathrm{C} \\ \quad \\ p_{10,9} = 0.0094+0.15=0.1594 x^10,9​=x^9,9​=54.49∘Cp10,9​=0.0094+0.15=0.1594
10 54.9 9 ∘ C 54.99^\circ\mathrm{C} 54.99∘C K 10 = 0.1594 0.1594 + 0.01 = 0.941 x ^ 10 , 10 = 54.49 + 0.941 ( 54.99 − 54.49 ) = 54.9 6 ∘ C p 10 , 10 = ( 1 − 0.941 ) 0.1594 = 0.0094 K_{10}=\frac{0.1594}{0.1594+0.01}=0.941 \\ \quad \\ \hat{x}_{10,10}=54.49+0.941(54.99−54.49)=54.96^\circ\mathrm{C} \\ \quad \\ p_{10,10}=(1−0.941)0.1594=0.0094 K10​=0.1594+0.010.1594​=0.941x^10,10​=54.49+0.941(54.99−54.49)=54.96∘Cp10,10​=(1−0.941)0.1594=0.0094 x ^ 11 , 10 = x ^ 10 , 10 = 54.9 6 ∘ C p 11 , 10 = 0.0094 + 0.15 = 0.1594 \hat{x}_{11,10}=\hat{x}_{10,10} = 54.96^\circ\mathrm{C} \\ \quad \\ p_{11,10} = 0.0094+0.15=0.1594 x^11,10​=x^10,10​=54.96∘Cp11,10​=0.0094+0.15=0.1594

下面的表是真实值,测量值,估计值:

可以看到估计值紧跟着测量值,没有滞后误差。

下面的表是卡尔曼增益:

由于过程不确定性较高,测量权重远高于估计权重,所以卡尔曼增益很高,最后去到 0.94 0.94 0.94。

小结

我们可以把过程不确定性设高一点,以此解决滞后误差。但由于采用的模型并不是很符合这个例子,得到的带噪声的估计几乎等于测量值,这并不是卡尔曼滤波器的目的。

最佳的方案是采用非常接近实际的模型,然后仅留一点点空间给过程噪声。
不过,精准模型也不是一直可用的,例如飞行员可以突然改变方向,改变预测的飞机轨迹。这种情况下就应该增加过程噪声。

卡尔曼滤波器(8) -- 一维卡尔曼滤波器(例7例8)相关推荐

  1. 卡尔曼滤波器(6) -- 一维卡尔曼滤波器(例5完整模型)

    This blog is translated from https://www.kalmanfilter.net/default.aspx. It's an excellent tutorial a ...

  2. 卡尔曼滤波器(4) -- α−β−γ滤波器(例3例4总结)

    This blog is translated from https://www.kalmanfilter.net/default.aspx. It's an excellent tutorial a ...

  3. Udacity机器人软件工程师课程笔记(三十二) - 卡尔曼滤波器 - 一维卡尔曼滤波器 - 多维卡尔曼滤波器 - 拓展卡尔曼滤波器(EKF)

    卡尔曼滤波器 一.概述 二.一维高斯分布 均值和方差 三.一维卡尔曼滤波器 变量命名约定 卡尔曼滤波循环 1.测量值更新 (1)平均值计算 (2)程序实现 2.位置预测 位置预测公式 3.一维卡尔曼滤 ...

  4. ad 卡尔曼_对Kalman(卡尔曼)滤波器的理解

    1.简介(Brief Introduction) 在学习卡尔曼滤波器之前,首先看看为什么叫"卡尔曼".跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字, ...

  5. 说不尽的卡尔曼 | 详解扩展卡尔曼滤波器

    作者 | 火山 编辑 | 空中机器人前沿 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[目标跟踪]技术交流群 后台回复[卡尔曼滤波] ...

  6. 卡尔曼滤波器_使用卡尔曼滤波器和路标实现机器人定位

    本文为 AI 研习社编译的技术博客,原标题 : Robot localization with Kalman-Filters and landmarks 作者 | Jannik Zürn 翻译 | 郭 ...

  7. 卡尔曼滤波器、扩展卡尔曼滤波器、无向卡尔曼滤波器的详细推导

    这段时间做轴承故障诊断和预测的时候,需要一个针对已经获取了特征向量的工具来对轴承故障状态进行估计和预测.卡尔曼滤波器可以实现对过去.当前和未来目标位置的估计,所以想通过卡尔曼滤波器的设计思路找到一些灵 ...

  8. 能使曲线变平滑的一维滤波器_音响电源滤波器有什么作用?有人说能提升音质!你信不信?...

    我们日常使用音响听音乐,讨论了很多关于喇叭.箱体.音源等影响音质的话题.今天我们来谈谈音响电源滤波器,可能有些人还很陌生,它到底有什么作用?其实,音响电源滤波器在音响系统里面发挥着非常重要的角色. 现 ...

  9. 数字IC经典电路(4)——经典滤波器的实现(滤波器简介及Verilog实现)

    数字IC经典电路(4)-经典数字滤波器(滤波器简介及verilog实现) 写在前面的话 数字滤波器分类 经典数字滤波器 FIR滤波器 FFT-FIR滤波器 并行FIR滤波器 串行FIR滤波器 CIC滤 ...

最新文章

  1. 基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测,目标追踪,卷积神经网络
  2. HBase-1.3.1 集群搭建
  3. 研发投入超876亿的华为,将如何进击云+AI?
  4. mysql主键始终从小到大_Mysql从入门到入神之(四)B+树索引
  5. SQL2005对字符串进行MD5加密
  6. Bellman-Ford 算法 和 动态规划
  7. WIN SERVER8更改MYSQL的datadir后,数据库启动不起来
  8. linux 变量c file代表的内容.,LinuxC编程基础--mak.ppt
  9. qwidget show 是否有信号_QT中的消息传递与函数回调机制:信号(signal)和槽(slot)...
  10. 面试题--------10、索引是什么,有什么作用和优缺点
  11. RK3288 USB触摸屏无法使用,需要添加PID和VID
  12. 如何用 latex 排版日文 (xelatex)
  13. KindEditor上传图片
  14. 使用 prismjs 在网页中高亮显示代码
  15. 解决Failed to introspect Class KafkaMetricsAutoConfiguration
  16. 电脑win10系统如何开定位服务器,Win10系统定位功能如何打开 Win10系统定位打开方法...
  17. 一拍是多少秒 计算机制音乐,E哥谈如何计算音乐的拍数及每拍时值是多少数学好学音乐有帮助吗...
  18. 模糊数学简介与模糊综合评价法
  19. 美容行业竞争分析:2022年大型美容院成为市场主流
  20. iOS 开发技术之人脸识别

热门文章

  1. 第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(沈阳),签到题5题
  2. 男生减肚子赘肉简单方法
  3. php控制道闸,物联网比赛第2关:远程控制智能道闸
  4. iOS 将字符串转成txt文档
  5. iOS 指定位取反
  6. 自定义View之小球自由落体弹跳加载控件
  7. 【每日论文阅读】Collaborative Visual Inertial SLAM for Multiple Smart Phones
  8. 彩票走势分析+大乐透 双色球复式中奖计算器
  9. 你有哪些用计算机技能解决生活问题的经历?
  10. “996”的工作制,我们不接受又能怎么办呢?