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

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

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

算法部分见博客:
[无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分]

https://blog.csdn.net/weixin_44044161/article/details/115381848

作者:823618313@qq.com; WX: ZB823618313
备注:
无迹卡尔曼滤波算法;无迹滤波;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

无迹滤波思考:

踪中的应用)

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 \tag{1} 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 \begin{aligned} E[w_iv_j'] &=0\\ E[w_iw_j'] &=0\quad i\neq j \\ E[v_iv_j'] &=0\quad i\neq j \end{aligned} E[wivj]E[wiwj]E[vivj]=0=0i=j=0i=j

1.2 无极变换UT

无迹变换的目的:通过确定性采样得到随机变量 x ∼ ( x ˉ , P x ) x\sim(\bar{x},P_x) x(xˉ,Px) 2 n + 1 2n+1 2n+1个sigma点 X \mathcal{X} 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 , \begin{aligned} &\mathcal{X}^0=\bar{x}\\ &\mathcal{X}^i=\bar{x}+\sqrt{n+\lambda}[\sqrt{P_x}]_i,i=1,2,\cdots,n\\ &\mathcal{X}^{n+i}=\bar{x}-\sqrt{n+\lambda}[\sqrt{P_x}]_i, \end{aligned} 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 , ⋯   , 2 n \begin{aligned} &w^m_0=\frac{\lambda}{n+\lambda}\\ &w^c_0=\frac{\lambda}{n+\lambda} + (1-\alpha^2+\beta)\\ &w^m_i=w^c_i=\frac{1}{2n+2\lambda},i=1,2,\cdots,2n \end{aligned} w0m=n+λλw0c=n+λλ+(1α2+β)wim=wic=2n+2λ1,i=1,2,,2n
其中 λ = α 2 ( n + κ ) − n \lambda=\alpha^2({n+\kappa})-n λ=α2n+κn,决定sigma点距离 x ˉ \bar{x} xˉ的距离。 1 0 − 4 ≤ α < 0 10^{-4}\leq\alpha<0 104α<0 κ \kappa κ一般取0或 3 − n 3-n 3n。对于高斯分布, β = 2 \beta=2 β=2为最优,如果为单变量则为0。此外, P x ′ P x = P x \sqrt{P_x}'\sqrt{P_x}=P_x Px Px =Px [ P x ] i [\sqrt{P_x}]_i [Px ]i表示矩阵的第 i i i列元素。

1.3 无迹卡尔曼滤波器(UKF)

1.) 初始化
步骤一:
给定 k − 1 k-1 k1时刻的状态估计和协方差矩阵
x ^ k − 1 ∣ k − 1 , P k − 1 ∣ k − 1 , Q k − 1 , R k − 1 \hat{x}_{k-1|k-1},P_{k-1|k-1},Q_{k-1},R_{k-1} x^k1∣k1,Pk1∣k1,Qk1,Rk1
当为 k = 0 k=0 k=0时刻时,假设 x 0 ∼ ( x ˉ 0 , P 0 ) , Q 0 , R 0 x_0\sim(\bar{x}_0, P_0),Q_{0},R_{0} x0(xˉ0,P0),Q0,R0,则滤波器最优初始化为
x ^ 0 ∣ 0 = x ˉ 0 P 0 ∣ 0 = P 0 \hat{x}_{0|0}=\bar{x}_0\\P_{0|0}=P_0 x^0∣0=xˉ0P0∣0=P0

2. ) 状态预测
步骤二: 根据 x ^ k − 1 ∣ k − 1 , P k − 1 ∣ k − 1 \hat{x}_{k-1|k-1},P_{k-1|k-1} x^k1∣k1,Pk1∣k1,利用UT变换选取 2 n + 1 2n+1 2n+1个sigam点和权值
X k − 1 ∣ k − 1 0 = x ^ k − 1 ∣ k − 1 , i = 0 X k − 1 ∣ k − 1 i = x ^ k − 1 ∣ k − 1 + n + λ [ P k − 1 ∣ k − 1 ] i , i = 1 , 2 , ⋯   , n X k − 1 ∣ k − 1 n + i = x ^ k − 1 ∣ k − 1 − n + λ [ P k − 1 ∣ k − 1 ] i , i = 1 , 2 , ⋯   , n \begin{aligned} &\mathcal{X}^0_{k-1|k-1}=\hat{x}_{k-1|k-1},i=0\\ &\mathcal{X}^i_{k-1|k-1}=\hat{x}_{k-1|k-1}+\sqrt{n+\lambda}[\sqrt{P_{k-1|k-1}}]_i,i=1,2,\cdots,n\\ &\mathcal{X}^{n+i}_{k-1|k-1}=\hat{x}_{k-1|k-1}-\sqrt{n+\lambda}[\sqrt{P_{k-1|k-1}}]_i,i=1,2,\cdots,n\\ \end{aligned} Xk1∣k10=x^k1∣k1,i=0Xk1∣k1i=x^k1∣k1+n+λ [Pk1∣k1 ]i,i=1,2,,nXk1∣k1n+i=x^k1∣k1n+λ [Pk1∣k1 ]i,i=1,2,,n
和权值 w 0 m , w i m , w 0 c , w i c , i = 1 , 2 , ⋯   , 2 n w^m_0,w^m_i, w^c_0, w^c_i,i=1,2,\cdots,2n w0m,wim,w0c,wici=1,2,,2n

步骤三: 根据系统方程传播sigma点
X k ∣ k − 1 i = f ( X k − 1 ∣ k − 1 i ) , i = 0 , 1 , 2 , ⋯   , 2 n \mathcal{X}^i_{k|k-1}=f(\mathcal{X}^i_{k-1|k-1}),i=0,1,2,\cdots,2n Xkk1i=f(Xk1∣k1i)i=0,1,2,,2n
步骤四: 状态一步预测和预测方差
x k ∣ k − 1 = ∑ i = 0 2 n w m X k ∣ k − 1 i P k ∣ k − 1 = ∑ i = 0 2 n w c ( X k ∣ k − 1 i − x k ∣ k − 1 ) ( X k ∣ k − 1 i − x k ∣ k − 1 ) ′ + Q k \begin{aligned} &x_{k|k-1}=\sum_{i=0}^{2n}w^m\mathcal{X}^i_{k|k-1}\\ &P_{k|k-1}=\sum_{i=0}^{2n}w^c(\mathcal{X}^i_{k|k-1}-x_{k|k-1})(\mathcal{X}^i_{k|k-1}-x_{k|k-1})'+Q_k \end{aligned} xkk1=i=02nwmXkk1iPkk1=i=02nwc(Xkk1ixkk1)(Xkk1ixkk1)+Qk
3. ) 状态更新
步骤五: X k ∣ k − 1 i \mathcal{X}^i_{k|k-1} Xkk1i点通过量测方程传播,得到量测预测sigma点
Z k ∣ k − 1 i = h ( X k ∣ k − 1 i ) , i = 0 , 1 , 2 , ⋯   , 2 n \mathcal{Z}^i_{k|k-1}=h(\mathcal{X}^i_{k|k-1}),i=0,1,2,\cdots,2n Zkk1i=h(Xkk1i)i=0,1,2,,2n
步骤六: 量测预测,量测预测误差方差(新息方差),状态与量测互协方差,增益
z k ∣ k − 1 = ∑ i = 0 2 n w m Z k ∣ k − 1 i S k = ∑ i = 0 2 n w c ( Z k ∣ k − 1 i − z k ∣ k − 1 ) ( Z k ∣ k − 1 i − z k ∣ k − 1 ) ′ + R k C k = ∑ i = 0 2 n w c ( X k ∣ k − 1 i − x k ∣ k − 1 ) ( Z k ∣ k − 1 i − z k ∣ k − 1 ) ′ K k = C k S k − 1 \begin{aligned} &z_{k|k-1}=\sum_{i=0}^{2n}w^m\mathcal{Z}^i_{k|k-1}\\ &S_{k}=\sum_{i=0}^{2n}w^c(\mathcal{Z}^i_{k|k-1}-z_{k|k-1})(\mathcal{Z}^i_{k|k-1}-z_{k|k-1})'+R_k\\ &C_{k}=\sum_{i=0}^{2n}w^c(\mathcal{X}^i_{k|k-1}-x_{k|k-1})(\mathcal{Z}^i_{k|k-1}-z_{k|k-1})'\\ &K_k=C_{k}S_{k}^{-1} \end{aligned} zkk1=i=02nwmZkk1iSk=i=02nwc(Zkk1izkk1)(Zkk1izkk1)+RkCk=i=02nwc(Xkk1ixkk1)(Zkk1izkk1)Kk=CkSk1
步骤七:

x ^ k ∣ k = E [ x k ∣ Z k ] = x ^ k ∣ k − 1 + K z ( z k − z ^ k ∣ k − 1 ) P k ∣ k = cov ( x ~ k ∣ k ) = P k ∣ k − 1 − K k S k K k ′ (5) \textcolor{#FF0000}{ \begin{aligned} \hat{x}_{k|k}&=E\left[ x_k\mid Z^{k}\right ]=\hat{x}_{k|k-1}+K_z\left(z_k-\hat{z}_{k|k-1}\right)\\ P_{k\mid k}&=\text{cov}\left(\widetilde{x}_{k\mid k}\right)=P_{k\mid k-1}-K_kS_kK_k' \end{aligned}} \tag{5} x^kkPkk=E[xkZk]=x^kk1+Kz(zkz^kk1)=cov(x kk)=Pkk1KkSkKk(5)
其中估计误差为
x ~ k ∣ k = x k − x ^ k ∣ k \widetilde{x}_{k\mid k}=x_k-\hat{x}_{k|k} x kk=xkx^kk

以上公式(2-5)及为带加性噪声非线性系统的无迹卡尔曼滤波算法。

2、带非加性噪声的无迹卡尔曼滤波算法(UKF)

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

2.2 带非加性噪声的无迹卡尔曼滤波器(UKF)

3、仿真实验一:无迹卡尔曼滤波—二维雷达目标跟踪

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

3.1 二维目标仿真

目标模型
为了方便,考虑一个二维匀速运动目标,即CV 模型:
x k + 1 = F k x k + G k w k x_{k+1}=F_kx_k+G _kw_k xk+1=Fkxk+Gkwk
其中状态 x k = [ x k , x ˙ k , y k , y ˙ k ] ′ x_k=[x_k,\dot{x}_k,y_k,\dot{y}_k]' xk=[xk,x˙k,yk,y˙k] [ x k , y k ′ [x_k,y_k' [xk,yk为目标位置, [ d o t x k , y ˙ k ] ′ [dot{x}_k,\dot{y}_k]' [dotxk,y˙k]为目标速度;噪声为 w k = [ w x , w y ] ′ w_k=[w_x,w_y]' wk=[wx,wy];状态转移矩阵 F k F_k Fk和噪声驱动矩阵 G k G_k Gk如下
F k = [ 1 T 0 0 0 1 0 0 0 0 1 T 0 0 0 1 ] G k = [ 1 / 2 T 2 0 T 0 0 1 / 2 T 2 0 T ] F_k=\begin{bmatrix}1 & T & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & 1 & T\\0 & 0 & 0 & 1\end{bmatrix} \qquad G_k=\begin{bmatrix}1/2T^2 & 0 \\T & 0 \\0 & 1/2T^2 \\0 & T \end{bmatrix} Fk= 1000T100001000T1 Gk= 1/2T2T00001/2T2T
初始状态为 x 0 ∼ ( x ˉ 0 , P 0 ) x ˉ 0 = [ 100 m , 15 m/s , 100 m , 15 m/s ] ′ P 0 = diag ( 1 0 3 m 2 , 10 m 2 / s 2 , 1 0 3 m 2 , 1 0 2 m / s 2 ) x_0\sim(\bar{x}_0,P_0)\\\bar{x}_{0}=[100m, 15\text{m/s} ,100m, 15\text{m/s}]'\\P_{0}=\text{diag}(10^3\text{m}^2, 10\text{m}^2/\text{s}^2, 10^3\text{m}^2, 10^2\text{m}/\text{s}^2) x0(xˉ0,P0)xˉ0=[100m,15m/s,100m,15m/s]P0=diag(103m2,10m2/s2,103m2,102m/s2)
过程噪声噪声均值为0,即 w ˉ k = [ 0 , 0 ] ′ \bar{w}_k=[0,0]' wˉk=[00]。方差分别为
Q k = [ 0. 1 2 0 0 0. 1 2 ] Q_k=\begin{bmatrix}0.1^2 & 0 \\0 & 0.1^2 \end{bmatrix} Qk=[0.12000.12]
采样时间 T = 1 s T=1s T=1s.

尽管这里的目标模型为线性,在使用UKF预测时,可以用两种方法:xkk=Fkxk,Pkk=FkPkFk’+GkQk*Gk’;或者采用sigma取点来计算该线性模型前两阶矩(线性系统是特殊的非线性系统)

雷达量测模型
在二维情况下,雷达量测为距离,方位角
r k m = r k + r ~ k b k m = b k + b ~ k {r}_k^m=r_k+\tilde{r}_k\\ b^m_k=b_k+\tilde{b}_k rkm=rk+r~kbkm=bk+b~k
其中
r k = h r ( x k , v k ) = ( x k − x 0 ) + ( y k − y 0 ) 2 ) b k = h b ( x k , v k ) = tan ⁡ − 1 y k − y 0 x k − x 0 r_k=h_r(x_k,v_k)=\sqrt{(x_k-x_0)^+(y_k-y_0)^2)}\\ b_k=h_b(x_k,v_k)=\tan^{-1}{\frac{y_k-y_0}{x_k-x_0}}\\ rk=hr(xk,vk)=(xkx0)+(yky0)2) bk=hb(xk,vk)=tan1xkx0yky0
[ x 0 , y 0 ] [x_0,y_0] [x0,y0]为传感器(雷达)坐标,一般情况为0。雷达量测为 z k = [ r k , b k ] ′ z_k=[r_k,b_k]' zk=[rk,bk]。雷达量测方差为
R k = cov ( v k ) = [ σ r 2 0 0 σ b 2 ] R_k=\text{cov}(v_k)=\begin{bmatrix}\sigma_r^2 & 0 \\0 & \sigma_b^2 \end{bmatrix} Rk=cov(vk)=[σr200σb2] σ r = 80 m \sigma_r=80m σr=80m σ b = 60 m r a d \sigma_b=60mrad σb=60mrad
性能指标
蒙塔卡罗次数 M = 500 M=500 M=500 x ^ k ∣ k i \hat{x}_{k|k}^i x^kki为第 i i i次仿真得到的估计,RMSE(Root mean-squared error):
RMSE ( x ^ ) = 1 M ∑ i = 1 M ( x k − x ^ k ∣ k i ) ( x k − x ^ k ∣ k i ) ′ \text{RMSE}(\hat{x})=\sqrt{\frac{1}{M}\sum_{i=1}^{M}(\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i)(\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i)'} RMSE(x^)=M1i=1M(xkx^kki)(xkx^kki)
其中位置RMSE和速度RMSE分别取对应状态 x ~ k ∣ k \tilde{x}_{k|k} x~kk的位置项和速度项,加和,具体公式见博客《扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分》

https://blog.csdn.net/weixin_44044161/article/details/115329181

3.2 二维UKF跟踪仿真结果

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、仿真实验二:无迹卡尔曼滤波—三维雷达目标跟踪

4.1 三维目标仿真

目标模型
为了方便,考虑一个二维匀速运动目标,即CV 模型:
x k + 1 = F k x k + G k w k x_{k+1}=F_kx_k+G _kw_k xk+1=Fkxk+Gkwk
其中状态向量 x k = [ x k , x ˙ k , y k , y ˙ k , z k , z ˙ k ] ′ x_k=[x_k,\dot{x}_k,y_k,\dot{y}_k,z_k,\dot{z}_k]' xk=[xk,x˙k,yk,y˙k,zk,z˙k] [ x k , y k , z k ] ′ [x_k,y_k,z_k]' [xk,yk,zk]为目标位置, [ d o t x k , y ˙ k , z ˙ k ] ′ [dot{x}_k,\dot{y}_k,\dot{z}_k]' [dotxk,y˙k,z˙k]为目标速度;;噪声为 w k = [ w x , w y , w z ] ′ w_k=[w_x,w_y,w_z]' wk=[wx,wy,wz];状态转移矩阵 F k F_k Fk和噪声驱动矩阵 G k G_k Gk如下
F k = [ 1 T 0 0 0 0 0 1 0 0 0 0 0 0 1 T 0 0 0 0 0 1 0 0 0 0 0 0 1 T 0 0 0 0 0 1 ] Γ k = [ 1 / 2 T 2 0 0 T 0 0 0 1 / 2 T 2 0 0 T 0 0 1 / 2 T 2 0 0 T ] F_k=\begin{bmatrix}1 & T & 0 & 0 & 0 & 0\\0 & 1 & 0 & 0 & 0 & 0 \\0 & 0 & 1 & T & 0 & 0\\0 & 0 & 0 & 1 & 0 & 0\\0 & 0 & 0 & 0 & 1 & T\\0 & 0 & 0 & 0 & 0 & 1\end{bmatrix} \qquad\varGamma_k=\begin{bmatrix}1/2T^2 & 0 & 0 \\T & 0 & 0 \\0 & 1/2T^2 & 0 \\0 & T & \\0 & 0 & 1/2T^2 \\0 & 0 & T\end{bmatrix} Fk= 100000T1000000100000T1000000100000T1 Γk= 1/2T2T0000001/2T2T000001/2T2T
初始状态为 x 0 ∼ ( x ˉ 0 , P 0 ) x ˉ 0 = [ 12 km , 31 m/s, 13 km , 20 m/s , 11 km , 21 m/s ] ′ P 0 = diag ( 1 0 5 m 2 , 1 0 2 m 2 / s 2 , 1 0 5 m 2 , 1 0 2 m 2 / s 2 , 1 0 5 m 2 , 1 0 2 m 2 / s 2 ) x_0\sim(\bar{x}_0,P_0)\\\bar{x}_{0}=[12\text{km}, 31\text{m/s} ,13\text{km}, 20\text{m/s} ,11\text{km}, 21\text{m/s}]'\\P_{0}=\text{diag}(10^5\text{m}^2, 10^2\text{m}^2/\text{s}^2, 10^5\text{m}^2, 10^2\text{m}^2/\text{s}^2, 10^5\text{m}^2, 10^2\text{m}^2/\text{s}^2) x0(xˉ0,P0)xˉ0=[12km,31m/s13km,20m/s,11km,21m/s]P0=diag(105m2,102m2/s2,105m2,102m2/s2105m2,102m2/s2)
过程噪声均值为0,即 w ˉ k = [ 0 , 0 , 0 ] ′ \bar{w}_k=[0,0, 0]' wˉk=[000]。方差为
Q k = [ 0.01 0 0 0 0.01 0 0 0 0.01 ] Q_k=\begin{bmatrix}0.01 & 0& 0 \\0 & 0.01 & 0\\0&0 & 0.01 \end{bmatrix} Qk= 0.010000.010000.01
采样时间 T = 1 s T=1s T=1s.

尽管这里的目标模型为线性,在使用UKF预测时,可以用两种方法:xkk=Fkxk,Pkk=FkPkFk’+GkQk*Gk’;或者采用sigma取点来计算该线性模型前两阶矩(线性系统是特殊的非线性系统)

雷达量测模型
在二维情况下,雷达量测为距离,方位角,俯仰角
r k m = r k + r ~ k b k m = b k + b ~ k e k m = e k + e ~ k {r}_k^m=r_k+\tilde{r}_k\\ b^m_k=b_k+\tilde{b}_k\\ e^m_k=e_k+\tilde{e}_k rkm=rk+r~kbkm=bk+b~kekm=ek+e~k
其中
r k = h r ( x k , v k ) = ( x k − x 0 ) + ( y k − y 0 ) 2 ) b k = h b ( x k , v k ) = tan ⁡ − 1 y k − y 0 x k − x 0 e k = h e ( x k , v k ) = tan ⁡ − 1 z k − z 0 ( x k − x 0 ) 2 + ( y k − y 0 ) 2 r_k=h_r(x_k,v_k)=\sqrt{(x_k-x_0)^+(y_k-y_0)^2)}\\ b_k=h_b(x_k,v_k)=\tan^{-1}{\frac{y_k-y_0}{x_k-x_0}}\\ e_k=h_e(x_k,v_k)=\tan^{-1}{\frac{z_k-z_0}{\sqrt{(x_k-x_0)^2+(y_k-y_0)^2}}}\\ rk=hr(xk,vk)=(xkx0)+(yky0)2) bk=hb(xk,vk)=tan1xkx0yky0ek=he(xk,vk)=tan1(xkx0)2+(yky0)2 zkz0
[ x 0 , y 0 , z 0 ] [x_0,y_0,z_0] [x0,y0,z0]为传感器(雷达)坐标,一般情况为0。雷达量测为 z k = [ r k , b k , e k ] ′ z_k=[r_k,b_k,e_k]' zk=[rk,bk,ek]。量测方差为
R k = cov ( v k ) = [ σ r 2 0 0 0 σ b 2 0 0 0 σ e 2 ] R_k=\text{cov}(v_k)=\begin{bmatrix}\sigma_r^2 & 0 &0\\0 & \sigma_b^2 &0\\0&0& \sigma_e^2 \end{bmatrix} Rk=cov(vk)= σr2000σb2000σe2 σ r = 130 m \sigma_r=130m σr=130m σ b = 90 m r a d \sigma_b=90mrad σb=90mrad, σ e = 70 m r a d \sigma_e=70mrad σe=70mrad
性能指标
蒙塔卡罗次数 M = 500 M=500 M=500 x ^ k ∣ k i \hat{x}_{k|k}^i x^kki为第 i i i次仿真得到的估计,RMSE(Root mean-squared error):
RMSE ( x ^ ) = 1 M ∑ i = 1 M ( x k − x ^ k ∣ k i ) ( x k − x ^ k ∣ k i ) ′ \text{RMSE}(\hat{x})=\sqrt{\frac{1}{M}\sum_{i=1}^{M}(\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i)(\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i)'} RMSE(x^)=M1i=1M(xkx^kki)(xkx^kki)
其中位置RMSE和速度RMSE分别取对应状态 x ~ k ∣ k \tilde{x}_{k|k} x~kk的位置项和速度项,加和。具体公式见博客《扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分》

https://blog.csdn.net/weixin_44044161/article/details/115329181

4.2 UKF三维目标仿真结果

三维仿真代码和仿真结果见下面链接(自行下载:)
UKF仿真代码:三维目标仿真

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4、二维UKF仿真代码

说明:
2.将UKF函数保存,文件名“fun_2UKF.m”
3.将量测函数保存,文件名“measurements.m”
4. 运行下面的主函数
5. 注意将这三个文件保存在一个文件夹下

4.1 主函数

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% created by: 
% date: 2020/4
% 无迹卡尔曼滤波,目标跟踪  
% 二维目标跟踪问题
% 线性CV目标模型
% 单雷达
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all; close all; clc;
%% initial parameter
n=4; %状态维数 ;
T=1; %采样时间
M=1; %雷达数目
N=200; %运行总时刻
MC=100; %蒙特卡洛次数
chan=1; %滤波器通道,这里只有一个滤波器
w_mu=[0,0]'; % mean of process noise 
v_mu=[0,0]'; % mean of measurement noise
%% target model
%covariance of process noise
q_x=0.01; %m/s^2
q_y=q_x;
Qk=diag([q_x^2,q_y^2]); 
% state matrix
Fk= [1 T 0 0
     0 T 0 0
     0 0 1 T
     0 0 0 T]; %

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑壳二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值