电脑基础 · 2023年4月3日

Kalman滤波参数、调整原则

1.Q、P、R关系

P的迭代为P=QTPQ;R为观测的协方差;

状态延时高,说明收敛速度慢。
估计参数P越大,收敛的越快。
测量误差R越小,收敛的越快。
调整这两个参数即可,从状态更新上说,测量误差越小,估计参数误差越大,说明我们越相信测量值,自然收敛的快。缺点就是会让系统变化过快,如果测量值更加不准,则精度会下降,系统不够稳定。

2.K与Q、R关系

k~Q/(R+Q)

P0/(Q+R),收敛的快慢程度。

总结下自己之前整理过的关于卡拉曼滤波器的相关资料
主要包括滤波器的发散问题、Kalman1D滤波器...

滤波的发散问题

定义:当滤波的实际误差远远超过滤波误差的允许范围,甚至于趋向无穷大,使得滤波器推动作用,这种现象叫做滤波的发散。

产生发散现象主要有以下两个原因:

  1. 系统的数学模型和噪声的统计模型不准确,这些模型不能反映真实的物理过程,使得观测值与模型不相对应。
  2. 计算机字长有限,因而存在着计算误差,如舍入误差,这些误差积累起来,降低了滤波精度。严重时,会使计算误差的方差阵逐渐推动正定性,甚至失去对称性,使得增益矩阵的计算值与理论之间的偏差越来越大,因而造成发散。这种发散叫做计算发散。

解决方法:克服由于模型不准确或模型变化所引起的滤波发散问题,可用衰减记忆滤波和限定记忆滤波等方法。当滤波模型不准确时,滤波值中的旧数据比重太大,新数据的比重太小,这是引起发散的重要原因。因此逐渐减小旧数据的权,相对地增加新数据的权,或者截去旧数据,只保留在观测时刻以前的有限个较新的数据,这是克服滤波发散的一个有效方法,根据前一观点设计的滤波器这是克服滤波发散的一个有效方法,根据前一观点设计的滤波器叫做衰减记忆滤波器,根据后一观点设计的滤波器叫做限定记忆滤波器。这两种滤波器都是次最优滤波器。

 举例:在许多实际问题中,系统噪声方差阵和测量噪声方差阵事先都是不知道的。有时,状态转移矩阵或测量矩阵也不能确切知道。在系统运行过程中,模型还可能不断变化,具体地说,Q,R,A,H不断变化。这些都会引起滤波发散。自适应滤波是在利用测量数据进行滤波的同时,不断地对未知的或不确切知道的系统模型参数和噪声统计特性进行估计或修正,以便改进滤波。因此自适应滤波也是克服滤波发散的重要方法。

 由于计算机的舍入误差,使得估计误差协方差P的计算值失去非负定性,甚至失去对称性,因而导致K的计算失真,造成滤波发散现象。平方根滤波方法可用来克服由于计算机舍入误差所引起的滤波发散。

利用Kalman1D 处理信号数据总结

其中可调参数有:P(0)协方差矩阵的初始值;

                R 测量噪声

                Q 过程噪声

此外需要给出一个估计值的初始值.

在卡尔曼滤波器实际实现时,测量噪声R一般可以观测得到,是滤波器的已知条件。观测测量噪声协方差R可以通过离线试验获取。

而过程激励噪声协方差Q值比较难以确定,因为我们无法直接观测到过程状态。有时候可以通过Q的手动选择,人为的为过程“注入”一个足够的不确定因素,来产生一个可以接受的结果。

整个滤波公式中:

P(0)是需要确定的初始值;X(i)是系统需要处理的数据;x是kalman滤波处理的数据;Y是系统预测值;

  P(k+1)=A*P(K)*A’+Q;

  K=P(k+1)./(P(k+1)+R);

  测量更新:

  Y=x+K(X(i)-x);

  P=(1-K)*P(k+1);

过程噪声Q对于滤波效果的影响:

Q为对模型的信任度,Q越大,滤波后的曲线跟测量曲线跟的越紧密,滤波后噪声越大;

Q>1 时,滤波效果差;值越大,效果越差;

Q值越小,滤波效果越明显,太小滤波后效果趋于一条直线;

选取Q=0.0001;

P(0)协方差矩阵对于滤波效果的影响

  P(0)决定初始增益的大小,影响初始时刻的收敛效果;在整体参数选取合适的时候,初始时刻滤波收敛效果影响不明显。

测量噪声R对滤波效果的影响

R>0:决定稳态噪声,小了初始增益大,但是稳态容易引入噪声;R越大对噪声越不敏感,即滤波后的数据跳动越小,但R越大, kalman滤波输出收敛的越慢。

随着R值越大,R=50时,滤波收敛效果越明显;R=100;收敛效果特别快;并且滤波效果也趋于一条直线;

整个滤波过程都有延迟,具体影响看不出;需要分析;
Kalman调试本质上是追求系统的收敛和卡尔曼滤波本身收敛过程的平衡点。数学上很难从理论上追求最优解;

Q表示对模型的信任程度,R表示对量测的信任程度,卡尔曼滤波是在模型和量测之间进行均衡。

Kalman1D与低通滤波器比较

Q值不能过小,否则跟踪收敛效果不好;在Q=0.0001时,发生改变是,收敛效果差;Q=0.001,稍微得到改善(图参考另篇文章);

dt采样时间对滤波器效果的影响比较明显,即传感器连续两次采样的时间间隔,这个Dt(积分时间)必须要非常精确,如Dt=2ms 5ms 10ms等,此处没有用到,无法观察;

P0是初始化最优角度估计的协方差(初始化最优角度估计可设为零),它是一个初值。

Q是预测值的协方差,

R是测量值的协方差。对Q和R的设定只需记住,Q/(Q+R)的值就是卡尔曼增益的收敛值,比如其值为0.2,那么卡尔曼增益会向0.2收敛(对于0.2的含义解释一下,比如预测角度值是5度,角度测量值是10度,那么最优化角度为:5+0.2*(10-5)=6。从这里可以看出,卡尔曼增益越大,说明测量值越可靠。

最优化角度越接近测量值;卡尔曼增益越小,说明预测值越可靠,最优化角度越接近预测值)。

P0/(Q+R)反映收敛的快慢程度,该值设定越小,收敛越快,该值越大,收敛越慢。因为卡尔曼增益收敛总的来说是很快的,所以该值设定大一点或小一点都没什么关系。

理论上卡尔曼滤波对状态的估计是这样一个过程。
卡尔曼滤波估计的状态减去状态真实值是一个误差状态。
滤波器增益是对这个误差状态的系统方程进行配根,目标是使得根位于虚轴的左半部分,这样系统就是稳定收敛且趋于零的。
但是,系统收敛只是最低要求,我们同时要求系统的收敛速度。卡尔曼滤波增益的收敛过程就是黎卡提方程动态收敛的过程。黎卡提方程只要系统可观则动态收敛,且方差正定。
滤波器稳态后,滤波增益稳定,这时收敛的也慢了。
一开始,方差设置大了,滤波器处于动态变化状态,系统配根大,因此收敛快。
对于动态响应要求高的系统,不能使用稳态增益。