线性卡尔曼滤波和扩展卡尔曼滤波(KF,EKF)

线性 K a l m a n Kalman Kalman滤波器 ( K F ) (KF) (KF)

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

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 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 > 1 Q>1 Q>1 时,滤波效果差,值越大效果越差, Q Q Q值越小滤波效果越明显。

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

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

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

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

状态估计流程图:

在这里插入图片描述

误差协方差运算流程图:

在这里插入图片描述

扩展 K a l m a n Kalman Kalman滤波器 ( E K F ) (EKF) (EKF)

普通卡尔曼滤波是在线性高斯情况下利用最小均方误差准则获得目标的动态估计,适应于过程和测量都属于线性系统, 且噪声符合高斯分布的系统。 但是实际上很多系统都存在一定的非线性,表现在过程方程 (状态方程)是非线性的,或者观测与状态之间的关系(测量方程)是非线性的。这种情况下就不能使用一般的卡尔曼滤波。解决的方法是将非线性关系进行线性近似,将其转化成线性问题。对于非线性问题线性化常用的两大途径∶

(1)将非线性环节线性化,对高阶项采用忽略或逼近措施:扩展卡尔曼滤波 ( E K F ) (EKF) (EKF)

(2)用采样方法近似非线性分布:无迹卡尔曼滤波 ( U K F ) (UKF) (UKF)

E K F EKF EKF算法是一种近似方法,它将非线性模型在状态估计值附近作泰勒级数展开,并做一阶截断,用得到的一阶近似项作为原状态方程和测量方程近似表达形式,从而实现线性化同时假定线性化后的状态依然服从高斯分布,然后对线性化后的系统采用标准卡尔曼滤波获得状态估计。采用局部线性化技术,能得到问题局部最优解,但它能否收敛于全局最优解,取决于函数的非线性强度以及展开点的选择。

假定非线性状态方程和测量方程如下:

X k + 1 = f ( X k ) + W k X_{k+1}=f(X_k)+W_k Xk+1=f(Xk)+Wk

Y k = h ( X k ) + V k Y_k=h(X_k)+V_{k} Yk=h(Xk)+Vk

在最近一次状态估计的时刻对以上两式进行线性化处理,得到 f 和 h f和h fh 的雅可比矩阵:

F = ∂ f ∂ X = [ ∂ f 1 ∂ X 1 ∂ f 1 ∂ X 2 ⋯ ∂ f 1 ∂ X n ∂ f 2 ∂ X 1 ∂ f 2 ∂ X 2 ⋯ ∂ f 2 ∂ X n ⋮ ⋮ ⋱ ⋮ ∂ f n ∂ X 1 ∂ f n ∂ X 2 ⋯ ∂ f n ∂ X n ] F=\frac{\partial f}{\partial X}=\left[ \begin{matrix} \frac{\partial f_1}{\partial X_1} & \frac{\partial f_1}{\partial X_2} & \cdots & \frac{\partial f_1}{\partial X_n} \\ \frac{\partial f_2}{\partial X_1} & \frac{\partial f_2}{\partial X_2} & \cdots & \frac{\partial f_2}{\partial X_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_n}{\partial X_1} & \frac{\partial f_n}{\partial X_2} & \cdots & \frac{\partial f_n}{\partial X_n} \\ \end{matrix} \right] F=Xf=X1f1X1f2X1fnX2f1X2f2X2fnXnf1Xnf2Xnfn

H = ∂ h ∂ X = [ ∂ h 1 ∂ X 1 ∂ h 1 ∂ X 2 ⋯ ∂ h 1 ∂ X n ∂ h 2 ∂ X 1 ∂ h 2 ∂ X 2 ⋯ ∂ h 2 ∂ X n ⋮ ⋮ ⋱ ⋮ ∂ h n ∂ X 1 ∂ h n ∂ X 2 ⋯ ∂ h n ∂ X n ] H=\frac{\partial h}{\partial X}=\left[ \begin{matrix} \frac{\partial h_1}{\partial X_1} & \frac{\partial h_1}{\partial X_2} & \cdots & \frac{\partial h_1}{\partial X_n} \\ \frac{\partial h_2}{\partial X_1} & \frac{\partial h_2}{\partial X_2} & \cdots & \frac{\partial h_2}{\partial X_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial h_n}{\partial X_1} & \frac{\partial h_n}{\partial X_2} & \cdots & \frac{\partial h_n}{\partial X_n} \\ \end{matrix} \right] H=Xh=X1h1X1h2X1hnX2h1X2h2X2hnXnh1Xnh2Xnhn

扩展卡尔曼滤波器算法:

预测更新方程: { x ˉ k = f ( x k ) P ˉ k = F P k − 1 F T + Q \begin{cases}\bar{x}_k=f(x_k)\\\bar{P}_k=FP_{k-1}F^T+Q\end{cases} {xˉk=f(xk)Pˉk=FPk1FT+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

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值