KF滤波器参数分析

线性 K a l m a n Kalman Kalman滤波器

考虑如下状态空间模型描述的动态系统:

x k = A x k − 1 + B u k − 1 + ω k − 1 x_k=Ax_{k-1}+Bu_{k-1}+\omega_{k-1} xk=Axk1+Buk1+ωk1

y k = H x k + v k y_k=Hx_k+v_k yk=Hxk+vk

式中, k k k为离散时间,系统在时刻 k k k的状态向量为 x k ∈ R n x_k\in \mathbb{R}^n xkRn;假设系统满足可观性要求, y k ∈ R n y_k\in \mathbb{R}^n ykRn为对应状态的观测向量;随机信号 w k w_k wk v k v_k vk分别表示过程噪声和观测噪声。

假设1: w k w_{k} wk v k v_{k} vk是均值为零,方差阵各为 Q Q Q R R R的不相关白噪声,即 w k ∽ N ( 0 , Q ) w_{k}\backsim N(0,Q) wkN(0,Q) v k ∽ N ( 0 , R ) v_k \backsim N(0,R) vkN(0,R),实际过程中 Q Q Q R R R可能随着每次迭代计算而变化,这里假设为常数。

假设2:初始状态 x 0 x_0 x0不相关于 w k w_k wk v k v_k vk E [ x 0 ] = μ 0 E[x_0]=\mu _0 E[x0]=μ0 E [ ( x 0 − μ 0 ) ( x 0 − μ 0 ) T ] = P 0 E[(x_0-\mu _0)(x_0-\mu _0)^T]=P_0 E[(x0μ0)(x0μ0)T]=P0

K a l m a n Kalman Kalman滤波器递推算法如下:

预测更新方程: { x ˉ k = A x k − 1 + B u k − 1 P ˉ k = A P k − 1 A T + Q \begin{cases}\bar{x}_k=Ax_{k-1}+Bu_{k-1}\\\bar{P}_k=AP_{k-1}A^T+Q\end{cases} {xˉk=Axk1+Buk1Pˉk=APk1AT+Q

卡尔曼增益矩阵: K = P ˉ k H T ( H P ˉ k H T + R ) − 1 K=\bar{P}_{k}H^T(H\bar{P}_{k}H^T+R)^{-1} K=PˉkHT(HPˉkHT+R)1

测量更新方程: { x k = x ˉ k + K ( y k − H x ˉ k ) P k = ( I − K H ) P ˉ k \begin{cases}x_k=\bar{x}_k+K(y_{k}-H\bar{x}_k)\\P_{k}=(I-KH)\bar{P}_k\end{cases} {xk=xˉk+K(ykHxˉk)Pk=(IKH)Pˉk

R   Q   P R\,Q\,P RQP不同取值对状态估计的影响

假设一个系统模型为:

x 1 ( k + 1 ) = x 1 ( k ) + x 2 ( k ) + w ( k ) x 2 ( k + 1 ) = x 2 ( k ) + w ( k ) \begin{aligned} x_1(k+1) &= x_1(k)+x_2(k)+w(k) \\ x_2(k+1) &= x_2(k)+w(k) \end{aligned} x1(k+1)x2(k+1)=x1(k)+x2(k)+w(k)=x2(k)+w(k)

观测模型为:

y 1 ( k + 1 ) = x 1 ( k + 1 ) + v 1 ( k + 1 ) y 2 ( k + 1 ) = x 2 ( k + 1 ) + v 2 ( k + 1 ) \begin{aligned} y_1(k+1) &= x_1(k+1)+v_1(k+1) \\ y_2(k+1) &= x_2(k+1)+v_2(k+1) \end{aligned} y1(k+1)y2(k+1)=x1(k+1)+v1(k+1)=x2(k+1)+v2(k+1)

将上述模型写成卡尔曼滤波器的公式表示形式:

{ [ x 1 ( k + 1 ) x 2 ( k + 1 ) ] = [ 1 1 0 1 ] [ x 1 ( k ) x 2 ( k ) ] + w ( k ) 观测方程 [ y 1 ( k + 1 ) y 2 ( k + 1 ) ] = [ 1 0 0 1 ] [ x 1 ( k + 1 ) x 2 ( k + 1 ) ] + [ v 1 ( k + 1 ) v 2 ( k + 1 ) ] 测量方程 \begin{cases}\left[ \begin{matrix} x_{1}(k+1)\\x_{2}(k+1)\end{matrix}\right]=\left[\begin{matrix}1&1\\0&1\end{matrix}\right]\left[\begin{matrix}x_{1}(k)\\x_2(k)\end{matrix}\right]+w(k)&\text{观测方程}\\\\\left[ \begin{matrix} y_{1}(k+1)\\y_{2}(k+1)\end{matrix}\right]=\left[\begin{matrix}1&0\\0&1\end{matrix}\right]\left[\begin{matrix}x_{1}(k+1)\\x_2(k+1)\end{matrix}\right]+\left[\begin{matrix}v_1(k+1)\\v_2(k+1)\end{matrix}\right]&\text{测量方程}\end{cases} [x1(k+1)x2(k+1)]=[1011][x1(k)x2(k)]+w(k)[y1(k+1)y2(k+1)]=[1001][x1(k+1)x2(k+1)]+[v1(k+1)v2(k+1)]观测方程测量方程

w   v 1   v 2 w \,v_1\,v_2 wv1v2为相互独立的零均值白高斯序列。

A = [ 1 1 0 1 ] A=\left[\begin{matrix}1&1\\0&1\end{matrix}\right] A=[1011] H = [ 1 0 0 1 ] H=\left[\begin{matrix}1&0\\0&1\end{matrix}\right] H=[1001]

预测更新方程: { x ˉ k = A x k − 1 P ˉ k = A P k − 1 A T + Q \begin{cases}\bar{x}_k=Ax_{k-1}\\\bar{P}_k=AP_{k-1}A^T+Q\end{cases} {xˉk=Axk1Pˉk=APk1AT+Q

卡尔曼增益矩阵: K = P ˉ k H T ( H P ˉ k H T + R ) − 1 K=\bar{P}_{k}H^T(H\bar{P}_{k}H^T+R)^{-1} K=PˉkHT(HPˉkHT+R)1

测量更新方程: { x k = x ˉ k + K ( y k − H x ˉ k ) P = ( I − K H ) P ˉ k \begin{cases}x_k=\bar{x}_k+K(y_{k}-H\bar{x}_k)\\P=(I-KH)\bar{P}_k\end{cases} {xk=xˉk+K(ykHxˉk)P=(IKH)Pˉk

结合 K a l m a n Kalman Kalman算法和仿真结果分析:

R R R趋于0时, lim ⁡ R → 0 K = H − 1 \lim_{R \to 0}K=H^{-1} limR0K=H1,测量噪声 v = 0 v=0 v=0,系统表现为完全取测量值作为状态的后验估计,而系统的先验状态估计被完全抛弃;当 P ˉ k = 0 \bar{P}_k=0 Pˉk=0时, Q = 0 Q=0 Q=0,此时系统完全抛弃测量值,取先验估计值。

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

Q Q Q为对模型的信任度。 Q Q Q越大滤波后的曲线跟测量曲线跟的越紧密,滤波后稳态误差越大,但误差收敛速度会加快; Q Q Q值越小滤波效果越明显稳态误差越小,相应的误差收敛速度会变慢。

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

R R R决定稳态噪声。 R R R越小初始增益越大收敛越快,但是稳态容易引入噪声; R R R越大对噪声越不敏感,即滤波后的数据跳动越小,但 R R R越大卡尔曼滤波输出误差收敛越慢。

协方差矩阵 P P P对滤波效果的影响:

P P P决定初始增益的大小,影响初始时刻的收敛效果,不影响稳态误差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值