卡尔曼滤波算法

卡尔曼滤波算法

非常喜欢这个配图,先贴出来出处:http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/
卡尔曼滤波算法_第1张图片

卡尔曼滤波的五个公式

卡尔曼滤波主要分为两部分:预测(prediction) 和 更新(update), 也叫作 时间更新量测更新 二者可以不同步

这是因为时间更新是根据数学模型递推得到的,它可以不依赖于观测。但是由于系统存在噪声,数学模型在经过一段时间以后可能会出现偏差,这是我们想到可以用观测来矫正。类似于加权算法,卡尔曼滤波通过卡尔曼增益对模型推测和观测之间进行动态修正

举个例子,一个GPS导航系统,要求实时性保证,主系统的时间更新是更频繁的。但是由于GPS更新速率大概在20hz左右,所以只能与主系统分开更新。卡尔曼滤波正好能实现这个要求。

系统模型:

考虑线性系统,设 t k t_k tk时刻被估计状态 X k X_k Xk时候系统噪声 W k W_k Wk影响。已知前向估计 { x ^ k − 1 , P ^ k − 1 } \{\hat{x}_{k-1},\hat{P}_{k-1}\} {x^k1,P^k1}, 根据马尔可夫性 x ^ k \hat{x}_{k} x^k x ^ k − 1 \hat{x}_{k-1} x^k1之前状态无关,则:
状 态 转 移 方 程 : X k = Φ k , k − 1 X k − 1 + W k   量 测 方 程 : Z k = H k X k + V k \\ 状态转移方程:X_{k}=\Phi_{k,k-1}X_{k-1} +W_k \\ \ \\ 量测方程: Z_k=H_kX_k+V_k Xk=Φk,k1Xk1+Wk Zk=HkXk+Vk 符 号 含 义 : X k 是 t k 时 刻 的 状 态 , X k − 1 是 t k − 1 时 刻 的 状 态 ; 符号含义: \\ X_k是t_k时刻的状态,X_{k-1}是t_{k-1}时刻的状态; XktkXk1tk1
卡尔曼滤波算法_第2张图片
Z k 是 t k 时 刻 的 量 测 值 , H k 是 状 态 − 量 测 转 移 矩 阵 W k 是 过 程 噪 声 , V k 是 量 测 噪 声 ; W k ∼ N ( 0 , Q k ) , Q k 是 过 程 噪 声 的 协 方 差 矩 阵 ; V k ∼ N ( 0 , R k ) , R k 是 量 测 噪 声 的 协 方 差 矩 阵 ; Z_k是t_k时刻的量测值,H_k是状态-量测转移矩阵 \\ W_k是过程噪声,V_k是量测噪声; \\ W_k \sim N(0, Q_k),Q_k是过程噪声的协方差矩阵; \\ V_k \sim N(0, R_k),R_k是量测噪声的协方差矩阵; ZktkHkWkVkWkN(0,Qk),QkVkN(0,Rk),Rk

时间更新:(prediction)

状 态 一 步 预 测 : X ˇ k / k − 1 = Φ k , k − 1 X ^ k − 1                                 ①   一 步 预 测 均 方 误 差 : P ˇ k / k − 1 = Φ k , k − 1 P ^ k − 1 Φ k , k − 1 T + Q k      ② \\ 状态一步预测:\check{X}_{k/k-1}=\Phi_{k,k-1}\hat{X}_{k-1} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ① \\ \ \\ 一步预测均方误差:\check{P}_{k/k-1}=\Phi_{k,k-1}\hat{P}_{k-1}\Phi_{k,k-1}^T+Q_{k} \ \ \ \ ② Xˇk/k1=Φk,k1X^k1                                Pˇk/k1=Φk,k1P^k1Φk,k1T+Qk    
符 号 含 义 : X ˇ k / k − 1 是 t k − 1 时 刻 到 t k 时 刻 的 状 态 先 验 值 , 也 就 是 根 据 上 一 时 刻 的 值 模 型 推 测 出 来 的 估 计 值 ; 符号含义: \\ \check{X}_{k/k-1}是t_{k-1}时刻到t_k时刻的状态先验值,也就是根据上一时刻的值模型推测出来的估计值; Xˇk/k1tk1tk
X ^ k − 1 是 t k − 1 时 刻 估 计 出 来 的 状 态 , 在 当 前 t k 时 刻 , X ^ k − 1 是 确 定 的 量 ; Φ k , k − 1 是 t k − 1 时 刻 到 t k 时 刻 的 一 步 转 移 矩 阵 ; P ˇ k / k − 1 是 X ˇ k / k − 1 的 均 方 误 差 , 代 表 模 型 预 测 的 均 方 误 差 ; P ^ k − 1 是 X ^ k − 1 的 均 方 误 差 , 在 当 前 t k 时 刻 , P ^ k − 1 是 确 定 的 量 ; \\ \hat{X}_{k-1}是t_{k-1}时刻估计出来的状态,在当前t_{k}时刻,\hat{X}_{k-1}是确定的量; \\ \Phi_{k,k-1}是t_{k-1}时刻到t_k时刻的一步转移矩阵; \\ \check{P}_{k/k-1}是\check{X}_{k/k-1}的均方误差,代表模型预测的均方误差; \\ \hat{P}_{k-1}是\hat{X}_{k-1}的均方误差,在当前t_{k}时刻,\hat{P}_{k-1}是确定的量; X^k1tk1tkX^k1Φk,k1tk1tkPˇk/k1Xˇk/k1P^k1X^k1tkP^k1

量测更新:(update)

卡 尔 曼 增 益 : K k = P ˇ k / k − 1 H k T ( H k P ˇ k / k − 1 H k T + R k ) − 1                 ③   对 t k 时 刻 的 状 态 估 计 : X ^ k = X ˇ k / k − 1 + K k ( Z k − H k X ˇ k / k − 1 )      ④   计 算 t k 时 刻 估 计 的 均 方 误 差 : P ^ k = ( I − K k H k ) P ˇ k / k − 1               ⑤   \\ 卡尔曼增益:K_k=\check{P}_{k/k-1}H_k^T(H_k\check{P}_{k/k-1}H_k^T+R_k)^{-1} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ③ \\ \ \\ 对t_k时刻的状态估计:\hat{X}_k=\check{X}_{k/k-1} + K_k(Z_k-H_k\check{X}_{k/k-1}) \ \ \ \ ④ \\ \ \\ 计算t_k时刻估计的均方误差:\hat{P}_k=(I-K_kH_k)\check{P}_{k/k-1} \ \ \ \ \ \ \ \ \ \ \ \ \ ⑤ \\ \ Kk=Pˇk/k1HkT(HkPˇk/k1HkT+Rk)1                tkX^k=Xˇk/k1+Kk(ZkHkXˇk/k1)     tkP^k=(IKkHk)Pˇk/k1               符 号 含 义 : K k 是 t k 时 刻 卡 尔 曼 增 益 矩 阵 , 也 可 以 记 作 K k = P ˇ k / k − 1 H k T H k P ˇ k / k − 1 H k T + R k 可 以 发 现 , K k 可 以 通 过 数 学 模 型 估 计 方 差 和 量 测 噪 声 方 差 之 间 的 关 系 动 态 调 整 。 当 H k P ˇ k / k − 1 H k T > R k 时 , 偏 向 传 感 器 的 测 量 值 ; 当 H k P ˇ k / k − 1 H k T < R k 时 , 偏 向 模 型 的 估 计 值 ;   H k 是 状 态 − 量 测 转 移 矩 阵 , 代 表 了 状 态 到 观 测 的 映 射 。 符号含义: \\ K_k是t_k时刻卡尔曼增益矩阵,也可以记作K_k=\frac{\check{P}_{k/k-1}H_k^T}{H_k\check{P}_{k/k-1}H_k^T+R_k} \\ 可以发现,K_k可以通过数学模型估计方差和量测噪声方差之间的关系动态调整。 \\ 当H_k\check{P}_{k/k-1}H_k^T > R_k时,偏向传感器的测量值; \\ 当H_k\check{P}_{k/k-1}H_k^T < R_k时,偏向模型的估计值; \\ \ \\ H_k是状态-量测转移矩阵,代表了状态到观测的映射。 KktkKk=HkPˇk/k1HkT+RkPˇk/k1HkTKkHkPˇk/k1HkT>RkHkPˇk/k1HkT<Rk Hk,
卡尔曼滤波算法_第3张图片
X ^ k 是 根 据 量 测 Z k , 计 算 出 后 验 ( 估 计 值 ) P ^ k 是 模 型 + 量 测 估 计 的 均 方 误 差 , 可 以 写 作 P ^ k = ( H k T Q k H k + P ˇ k / k − 1 − 1 ) − 1 , 根 据 S h e r m a n − M o r r i s o n 公 式 , 则 : P ^ k = ( I − K k H k ) P ˇ k / k − 1 \hat{X}_k是根据量测Z_{k},计算出后验(估计值) \\ \hat{P}_k是模型+量测估计的均方误差,可以写作\hat{P}_k=(H_k^TQ_kH_k+\check{P}_{k/k-1}^{-1} )^{-1}, \\ 根据Sherman-Morrison公式,则:\hat{P}_k=(I-K_kH_k)\check{P}_{k/k-1} X^kZk()P^k+P^k=(HkTQkHk+Pˇk/k11)1,ShermanMorrisonP^k=(IKkHk)Pˇk/k1

你可能感兴趣的:(Kalman,Filter)