2.卡尔曼滤波器
卡尔曼滤波器呢,在书上的解释是:在几何上kalman filter可以看做状态变量在由观测生成的线性空间上的映射。所以卡尔曼滤波器和射影定理是息息相关的,但是实际是不影响使用的,感兴趣的朋友可以去查阅一下资料,这里我就不作推导了。
2.1 状态空间表示
状态空间模型对动态系统描述如下:(如图二或公式1所示,因为论坛似乎不能插入公式......)
X(k+1)=φX(k)+τW(k) Y(k)=HX(k)+V(k) ......(1) 其中k为离散时间,系统在k时刻状态为X(k)∈R(n维);Y(k)为对应观测状态,且Y(k)∈R(m维);W(k)∈R(r维)为输入白噪声;V(k)∈R(m维)为观测噪声。 (1)式中φ为状态转移矩阵,τ为噪声驱动矩阵,H为观测矩阵。 对了,这里解释一下大家常说的Q和R值是W(k)和V(k)对应的均值为零的白噪声方差阵。对于这两个参数的选取,后面会讲到。 整个(1)式的构造和现代控制理论的状态空间几乎是一样的,而且其的递推原理、状态表示和离散化的现代控制理论中的状态空间也差不多是一样的。 2.2 递推卡尔曼滤波器根据(1)式以及前面提到的射影定理等可以获得递推卡尔曼滤波器,其表示如下:(如图三所示)
假装图3......
这里我来一步一步解释一下递推卡尔曼滤波器。
其中(2)式是作为状态的一步预测。因为状态在没有外界干扰的情况下应该X(k+1)=φX(k)产生递推,所以这一步对状态做了预(这一步很重要,和后面预测有关联)。
其中(3)式是作为误差协方差阵的预测,也是同样的道理对协方差进行预测。相当于存在一定的误差,这个地方对误差通过设定的噪声方差进行推导。相当于对(2)式预测的质量进行了定量的评估,为后续进行了数据铺垫。
其中(4)式是通过协方差估计增益大小。这个是推导出来的。通过前面对预测质量的评估,然后定量的分析了这次参数的真实性大小。为后面误差的补偿做了数据铺垫。
其中(5)式是计算误差大小。通过观测值和(2)式通过递推公式的预测值进行计算,得到误差值。
其中(6)式是大家很熟悉的卡尔曼的公式。将预测值附加上增益乘上误差对预测值进行补偿,这样就得到我们认为的真实值。
其中(7)式是更新协方差矩阵。这个是通过射影定理的正交性推导得到的。
递推卡尔曼滤波器包括了两个更新过程,一个是时间更新,另一个是观测更新。要注意理解的是其中P(k|k-1)是作为状态的质量优劣的评定,R的大小为观测信息的质量优劣,Q为外界对系统的输入噪声,相当于对系统的影响。
2.3 大家手里面的卡尔曼温度计
大家可能在网上看到卡尔曼滤波最多的就是温度计的例子,但是温度计的例子和图3的公式几乎不太一样。我来大概的讲一下就懂了。假设:我现在在一个房间内,我需要测量这个房间的真实温度,但是我手头的温度计有方差为R的白噪声,而且房间开着窗户,空气的流动对室温有Q的白噪声影响。我前面的公式全部为向量的形式表示的,在温度计的例子中状态向量X则代表实际的室温。φ作为状态转移矩阵,这个地方因为除了外界空气流动的干扰就不会有其他影响,自己的温度对下一次的温度只有惯性作用,所以这个地方φ=1。因为只研究室温的话,那么同样能够得到τ=1。这时候你手里头有个温度计,这个温度计对这个室温进行测量得到的温度Y,得到Y的数值应该是实际的温度X测量的误差V(即R)的影响。同样也可以得到H=1。
现在在讲刚才的数值带入到图3的公式中:
x_hat(k+1)=x_kf(k);
P_hat(k+1)=P(k)+Q;
K(k+1)=P_hat(k+1)/(P_hat(k+1)+R);
e(k+1)=Y(k+1)-x_hat(k+1);
x_kf(k+1)=x_hat(k+1)+K(k+1)*e(k+1);
P(k+1)=(1-K(k+1))*P_hat(k+1);
是不是一下就和网上的卡尔曼的温度计差不多。
2.4 辣鸡的温度和风一直在吹的空气
这里顺讲一下Q和R的问题。
前面也讲到了Q和R呢是W(k)过程噪声和V(k)测量噪声分别对应的方差。那么如何得到Q和R值是很多人困惑的一点。怎么得到Q和R值首先得知道这两个分别是什么。
首先观测噪声,顾名思义是和测量的传感器的精度是有关的。例如温度计的测量误差为±0.1℃,那么这个时候那R=0.01有些时候看不到出厂说明书的话可以通过统计的方式获得。可以理解为用温度计多次测量一个恒定的温度,然后求这这些数据的方差得到R_hat,这个时候R_hat和R是非常接近的了。同样,对于过程噪声Q的话往往和过程产生的噪声有关。比如一个能够准确测量的温度计,测量恒定温度的前提下室内在没有空气流动干扰和有空气流动的干扰的时候的参数进行对比,分析方差。
2.5 温度计的仿真
见附件1,使用matlab进行仿,代码来源网络。
小弟水平有限,如有错误,多多指教。
今天就暂时更到这儿,有时间继续~2020.3.20To be continued...
|