Kalman滤波器参数分析

Kalman滤波器参数

结合自己平时处理的数据,简单分析下kalman滤波器中参数对于滤波效果的影响。

Kalman滤波参数影响总结

Predict中给出的方程:

其中Pz,vz,bz分别代表z轴方向的位置、速度和加速度;u为输入,r为扰动,Q为过程噪声;

 由于在kalman滤波中应用的都是x(k)=A*x(k-1)+B*u(k-1)+Q;此处求解的为下一时刻的状态量。由于上面公式求解的为状态的导数。故转化为:


 系统的kalman的simulink图为


扫描二维码关注公众号,回复: 2435093 查看本文章

其中x(k)=x(k-1)+dx*delta_t 其中delta_t是由.m文件中程序设定累加的时间间隔,x(k)-->x(k-1)是由MATLAB的延迟模块1/z获得。Delta_t决定了采样的时间点的选取,越小说明采样越密集,精确度越高;1/Z模块是根据当前状态延迟一个时刻,得到前一个状态。状态中两者相互影响。

 [u+r]为加速度和扰动的输入,即系统的可靠性。这里的加速度u=0,扰动r为白噪声,在.m文件中输入。

方差P的计算同上。


观测信号为常数为10,加上均值为0,方差为1的离散高斯噪声。

仿真结果:

t=t*dt;dt=0.1; 画出的图形采样点缩小了10倍;

a:                                   

过程噪声:Q取值越小越好,不能过小,容易发散。Q1=diag[0.5^2  0.2^2  0.3^2]

Q的比较图如下:

Q=0.01*Q1 随着Q的增加,越发散,如下图:


Q=0.01*Q1;由图可以看出,过程噪声越小,越收敛。当Q<0.01*Q1时,收敛改善的空间比较小。

最佳状态选取Q=0.01*Q1;


Q值越小,收敛越强;随着时间点的增长,Q过于小,完全发散,如下图


b:  P0:方差的初始值,值越大,刚开始收敛越慢,越震荡;选取合适的P0,使得初始时刻避免震荡。


结合下图,P0的最佳选择为:P0=0;

c:  R 为测量噪声,R<1 容易震荡,R=6 系统比较稳定,R增加,效果改变不明显。(为了便于观察,图中选取1000个点)。


R的最佳取值在5附近,增加过多,效果不明显。如下图:

d:   delta_t 的选择:

   delta_t决定系统的采样时间,x(k)=x(k-1)+x(k-1)*delta_t; delta_t的选取值越小,计算越精确。


e:  系统的最佳状态:R=5;Q=0.01*Q1;P0=0;如下图


选取一段观察:


如图可以看出,选取适当的P0,R, Q ,使得经过kalman滤波输出的值接近于真实值,并且不发散。本系统选取P0=0,R=5,Q=0.01*diag(0.5^2  0.2^2  0.3^2); delta-t=0.0001;

总结:

过程噪声:Q取值越小越好,不能过小,容易发散。此处选取Q=0.001;

P0:方差的初始值,值越大,刚开始收敛越慢,越震荡;选取合适的P0,使得初始时刻避免震荡。选取P0=0;

R 为测量噪声,R<1 容易震荡,R=6 系统比较稳定,R增加,效果改变不明显。此处选取R=6;


猜你喜欢

转载自blog.csdn.net/yanhuatangtang/article/details/79304742