无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)

Posted 脑壳二

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)相关的知识,希望对你有一定的参考价值。

无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)

原创不易,路过的各位大佬请点个赞

机动目标跟踪/非线性滤波/传感器融合/导航等探讨代码联系WX: ZB823618313

仿真部分见博客:
[无迹卡尔曼滤波UKF—目标跟踪中的应用(仿真部分)
链接: https://blog.csdn.net/weixin_44044161/article/details/115390660.

作者:823618313@qq.com
备注:
无迹卡尔曼滤波算法;无迹滤波;Uncented Filter
两种UKF算法:加性噪声UKF和非加性噪声UKF
matlab实现;
目标跟踪仿真
Case: 二维目标跟踪情况和三维目标跟踪情况
代码下载地址如下(分别为二维情形和三维情形)

UKF仿真代码:二维目标跟踪

 https://download.csdn.net/download/weixin_44044161/85401310 

无迹卡尔曼滤波UKF 匀速转弯CT模型

 https://download.csdn.net/download/weixin_44044161/85402056 

UKF仿真代码:二维目标跟踪——RMSE

https://download.csdn.net/download/weixin_44044161/85123963 

UKF仿真代码:三维目标跟踪——RMSE

https://download.csdn.net/download/weixin_44044161/85124056

无迹滤波思考:

CKF和UKF 总结:
当取 κ = 0 \\kappa=0 κ=0时, CKF 和 UKF 的估计精度相同,但鉴于 CKF 采样点少,实时性
比 UKF 好,故应选用 CKF 滤波算法;
n ≤ 2 n\\leq2 n2时即低维非线性系统, UKF 的估计精度高于 CKF,应选用 UKF 滤波
算法;
n = 2 n=2 n=2时的非线性系统, UKF 及 CKF 的估计精度相同,但 CKF 的实时性更
好,应选用 CKF 滤波算法;
n ≥ 3 n\\geq3 n3时即高维非线性系统, CKF 的估计精度高于 UKF,应选用 CKF 滤波算法。

无迹卡尔曼滤波UKF—目标跟踪中的应用

1、带加性噪声的无迹卡尔曼滤波算法UKF

1.1 问题描述(离散时间非线性系统描述)

考虑带加性噪声的一般非线性系统模型,
x k = f ( x k − 1 ) + w k − 1 z k = h ( x k ) + v k (1) x_k=f(x_k-1) +w_k-1 \\\\ z_k=h(x_k)+v_k \\tag1 xk=f(xk1)+wk1zk=h(xk)+vk(1)
其中 x k x_k xk k k k时刻的目标状态向量。 z k z_k zk k k k时刻量测向量(传感器数据)。这里不考虑控制器 u k u_k uk w k w_k wk v k v_k vk分别是过程噪声序列和量测噪声序列,并假设 w k w_k wk v k v_k vk为零均值高斯白噪声,其方差分别为 Q k Q_k Qk R k R_k Rk的高斯白噪声,即 w k ∼ ( 0 , Q k ) w_k\\sim(0,Q_k) wk(0,Qk), v k ∼ ( 0 , R k ) v_k\\sim(0,R_k) vk(0,Rk),且满足如下关系(线性高斯假设)为:
E [ w i v j ′ ] = 0 E [ w i w j ′ ] = 0 i ≠ j E [ v i v j ′ ] = 0 i ≠ j \\beginaligned E[w_iv_j'] &=0\\\\ E[w_iw_j'] &=0\\quad i\\neq j \\\\ E[v_iv_j'] &=0\\quad i\\neq j \\endaligned E[wivj]E[wiwj]E[vivj]=0=0i=j=0i=j

1.2 无极变换UT

无迹变换的目的:通过确定性采样得到随机变量 x ∼ ( x ˉ , P x ) x\\sim(\\barx,P_x) x(xˉ,Px) 2 n + 1 2n+1 2n+1个sigma点 X \\mathcalX X,将这些sigma点通过非线性函数传播后得到随机变量 y y y的sigma点,进而通过加权平均求得随机变量 y y y的一二阶矩(i.e.,均值和方差)。也可以理解为,根据x的统计特性,利用确定性采样法获得非线性函数 y = f ( x ) y=f(x) y=f(x)传播后的y的统计特性的。UT变换如下:
X 0 = x ˉ X i = x ˉ + n + λ [ P x ] i , i = 1 , 2 , ⋯   , n X n + i = x ˉ − n + λ [ P x ] i , \\beginaligned &\\mathcalX^0=\\barx\\\\ &\\mathcalX^i=\\barx+\\sqrtn+\\lambda[\\sqrtP_x]_i,i=1,2,\\cdots,n\\\\ &\\mathcalX^n+i=\\barx-\\sqrtn+\\lambda[\\sqrtP_x]_i, \\endaligned X0=xˉXi=xˉ+n+λ [Px ]i,i=1,2,,nXn+i=xˉn+λ [Px ]i,
w 0 m = λ n + λ w 0 c = λ n + λ + ( 1 − α 2 + β ) w i m = w i c = 1 2 n + 2 λ , i = 1 , 2

以上是关于无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)的主要内容,如果未能解决你的问题,请参考以下文章

交互式多模型-无迹卡尔曼滤波IMM-UKF仿真一——机动目标跟踪中的应用

交互式多模型-无迹卡尔曼滤波IMM-UKF算法matlab实现(跟踪场景二)

交互式多模型-无迹卡尔曼滤波IMM-UKF——CV/CT/CA模型交互机动目标跟踪(模型维数不同IMM算法设计)

交互式多模型-无迹卡尔曼滤波IMM-UKF——CV/CT/CA模型交互机动目标跟踪(模型维数不同IMM算法设计)

滤波算法 | 无迹卡尔曼滤波(UKF)算法及其Python实现

无迹卡尔曼滤波估计SOC的simulink模型详解