扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分

扩展卡尔曼滤波EKF在目标跟踪中的应用—仿真部分

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


算法部分见博客:
** 扩展卡尔曼滤波EKF在目标跟踪中的应用—算法部分**

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

作者:823618313@qq.com; WX: ZB823618313
备注:
扩展卡尔曼滤波算法;
目标跟踪matlab仿真实现;
Case: 二维目标跟踪情况和三维目标跟踪情况
代码下载地址如下(分别为二维情形和三维情形)

扩展卡尔曼滤波 机动目标跟踪 EKF

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

扩展卡尔曼滤波EKF匀速圆周运动CT

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

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

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

EKF仿真代码:三维目标跟踪

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

一、带加性噪声的扩展卡尔曼滤波算法

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 扩展卡尔曼滤波器(EKF)

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
当为 0 0 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. 状态预测
2.1 计算非线性系统方程的雅可比矩阵
F k − 1 = ∂ f ( x k − 1 ) ∂ x k − 1 ∣ x k − 1 = x ^ k − 1 ∣ k − 1 F_{k-1}=\frac{\partial f\left(x_{k-1}\right)}{\partial x_{k-1}}\Big|_{{x_{k-1}=\hat{x}_{k-1|k-1}}} Fk1=xk1f(xk1) xk1=x^k1∣k1
2.2 状态一步预测及预测误差协方差阵为
x ^ k ∣ k − 1 = E [ x k ∣ Z k − 1 ] ≈ E [ f k − 1 ( x ^ k − 1 ∣ k − 1 , 0 ) + F k − 1 x ~ k − 1 ∣ k − 1 + w k − 1 ∣ Z k − 1 ] = f k − 1 ( x ^ k − 1 ∣ k − 1 ) P k ∣ k − 1 = cov ( x ~ k ∣ k − 1 ) = F k − 1 P k − 1 ∣ k − 1 F k − 1 ′ + Q k − 1 (2) \textcolor{#FF0000}{ \begin{aligned} \hat{x}_{k|k-1}&=E\left[ x_k\mid Z^{k-1}\right ]\\&\approx E\left[f_{k-1}\left(\hat{x}_{k-1|k-1},0\right)+F_{k-1}\widetilde{x}_{k-1|k-1}+w_{k-1} \mid Z^{k-1}\right]\\&=f_{k-1}\left(\hat{x}_{k-1|k-1}\right)\\ P_{k\mid k-1}&=\text{cov}\left(\widetilde{x}_{k\mid k-1}\right)= F_{k-1}P_{k-1|k-1}F_{k-1}'+Q_{k-1} \end{aligned}} \tag{2} x^kk1Pkk1=E[xkZk1]E[fk1(x^k1∣k1,0)+Fk1x k1∣k1+wk1Zk1]=fk1(x^k1∣k1)=cov(x kk1)=Fk1Pk1∣k1Fk1+Qk1(2)
其中系统状态方程在 x ^ k − 1 ∣ k − 1 \hat{x}_{k-1|k-1} x^k1∣k1的泰勒级数展开为(取一阶)
x k = f k − 1 ( x k − 1 ) + w k − 1 ≈ f k − 1 ( x ^ k − 1 ∣ k − 1 ) + F k − 1 x ~ k − 1 ∣ k − 1 + w k − 1 \begin{aligned} x_k&=f_{k-1}\left(x_{k-1} \right) + w_{k-1}\\ &\approx f_{k-1}\left(\hat{x}_{k-1|k-1}\right)+F_{k-1}\widetilde{x}_{k-1|k-1}+w_{k-1} \end{aligned} xk=fk1(xk1)+wk1fk1(x^k1∣k1)+Fk1x k1∣k1+wk1
预测估计误差为
x ~ k ∣ k − 1 = x k − x ^ k ∣ k − 1 ≈ F k − 1 x ~ k − 1 ∣ k − 1 + w k − 1 \tilde{x}_{k\mid k-1}=x_k-\hat{x}_{k|k-1}\approx F_{k-1}\widetilde{x}_{k-1|k-1}+ w_{k-1} x~kk1=xkx^kk1Fk1x k1∣k1+wk1

3. 量测预测
3.1 计算量测系统方程的雅可比矩阵
H k = ∂ h ( x k ) ∂ x k ∣ x k = x ^ k ∣ k − 1   H_{k}=\frac{\partial h\left(x_{k}\right)}{\partial x_{k}}\Big|_{{x_{k}=\hat{x}_{k|k-1}}}\ Hk=xkh(xk) xk=x^kk1 
3.2 量测一步预测、新息协方差、互协方差为
z ^ k ∣ k − 1 = E [ z k ∣ Z k − 1 ] = h ( x ^ k ∣ k − 1 ) S k = cov ( z ~ k ∣ k − 1 ) = H k P k ∣ k − 1 H k ′ + R k C k = cov ( x ~ k ∣ k − 1 , z ~ k ∣ k − 1 ) = P k ∣ k − 1 H k ′ (3) \textcolor{#FF0000}{ \begin{aligned} \hat{z}_{k|k-1}&=E\left[z_k\mid Z^{k-1}\right]= h\left(\hat{x}_{k|k-1}\right)\\ S_k&=\text{cov}\left(\widetilde{z}_{k\mid k-1}\right)= H_{k}P_{k|k-1}H_{k}'+ R_{k}\\ C_k&=\text{cov}\left(\widetilde{x}_{k\mid k-1},\widetilde{z}_{k\mid k-1}\right)= P_{k|k-1}H_{k}' \end{aligned}} \tag{3} z^kk1SkCk=E[zkZk1]=h(x^kk1)=cov(z kk1)=HkPkk1Hk+Rk=cov(x kk1,z kk1)=Pkk1Hk(3)
其中量测方程在 x ^ k ∣ k − 1 \hat{x}_{k|k-1} x^kk1的泰勒级数展开为(取一阶)
z k = h ( x k ) + v k ≈ h k ( x ^ k ∣ k − 1 ) + H k x ~ k ∣ k − 1 + v k − 1 \begin{aligned} z_k&=h\left(x_{k} \right) + v_{k}\\ &\approx h_{k}\left(\hat{x}_{k|k-1}\right)+H_{k}\widetilde{x}_{k|k-1}+v_{k-1} \end{aligned} zk=h(xk)+vkhk(x^kk1)+Hkx kk1+vk1
量测预测误差为
z ~ k ∣ k − 1 = z k − z ^ k ∣ k − 1 ≈ H k z ~ k ∣ k − 1 + v k \tilde{z}_{k\mid k-1}=z_k-\hat{z}_{k|k-1}\approx H_{k}\widetilde{z}_{k|k-1}+ v_{k} z~kk1=zkz^kk1Hkz kk1+vk

4. 状态更新
4.1 卡尔曼增益为
K k = C k S k − 1 = P k ∣ k − 1 H k ′ ( H k P k ∣ k − 1 H k ′ + R k ) − 1 (4) \textcolor{#FF0000}{ \begin{aligned} K_k&=C_kS_k^{-1}\\ &=P_{k|k-1}H_{k}'( H_{k}P_{k|k-1}H_{k}'+ R_{k})^{-1} \end{aligned}} \tag{4} Kk=CkSk1=Pkk1Hk(HkPkk1Hk+Rk)1(4)
4.2 状态更新为
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)及为带加性噪声非线性系统的扩展卡尔曼滤波算法。

三、仿真实验一:EKF二维雷达目标跟踪

3.1 仿真场景(二维)

扩展卡尔曼滤波 机动目标跟踪 EKF

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

扩展卡尔曼滤波EKF匀速圆周运动CT

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

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

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

EKF仿真代码:三维目标跟踪

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

目标模型
考虑一各二维的匀速运动目标(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];噪声为 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
采样时间 T = 1 s T=1s T=1s. 初始状态为 x 0 ∼ ( x ˉ 0 , P 0 ) x ˉ 0 = [ 10 km , 200 m/s , 10 km , 100 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 ) x_0\sim(\bar{x}_0,P_0)\\\bar{x}_{0}=[10\text{km}, 200\text{m/s} ,10\text{km}, 100\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) x0(xˉ0,P0)xˉ0=[10km,200m/s,10km,100m/s]P0=diag(105m2,102m2/s2,105m2,102m2/s2)
过程噪声均值和方差分别为
w ˉ k = [ 0 , 0 ] ′ Q k = [ 0.01 0 0 0.01 ] \bar{w}_k=[0,0]'\\Q_k=\begin{bmatrix}0.01 & 0 \\0 & 0.01 \end{bmatrix} wˉk=[00]Qk=[0.01000.01]

如果为非线性目标,则将状态转移矩阵 F k F_k Fk代替为雅可比矩阵即可。为了不是一般性这里采用线性模型进行仿真。主要处理目标跟踪,雷达量测存在的非线性滤波问题。

雷达量测模型
在二维情况下,雷达量测为距离和角度
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 = ( x k − x 0 ) + ( y k − y 0 ) 2 ) b k = tan ⁡ − 1 y k − y 0 x k − x 0 r_k=\sqrt{(x_k-x_0)^+(y_k-y_0)^2)}\\ b_k=\tan^{-1}{\frac{y_k-y_0}{x_k-x_0}}\\ rk=(xkx0)+(yky0)2) bk=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 = 120 m \sigma_r=120m σr=120m σ b = 80 m r a d \sigma_b=80mrad σb=80mrad
性能指标
RMSE(Root mean-squared error):蒙塔卡罗次数 M = 500 M=500 M=500 x ^ k ∣ k i \hat{x}_{k|k}^i x^kki为第 i i i次仿真得到的估计。
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)
Position RMSE ( x ^ ) = 1 M ∑ i = 1 M ( x k − x ^ k ∣ k i ) 2 + ( y k − y ^ k ∣ k i ) 2 \text{Position RMSE}(\hat{x})=\sqrt{\frac{1}{M}\sum_{i=1}^{M}(x_k-\hat{x}_{k|k}^i)^2+(y_k-\hat{y}_{k|k}^i)^2} Position RMSE(x^)=M1i=1M(xkx^kki)2+(yky^kki)2
Velocity RMSE ( x ^ ) = 1 M ∑ i = 1 M ( x ˙ k − x ˙ ^ k ∣ k i ) 2 + ( y ˙ k − y ˙ ^ k ∣ k i ) 2 \text{Velocity RMSE}(\hat{x})=\sqrt{\frac{1}{M}\sum_{i=1}^{M}(\dot{x}_k-\hat{\dot{x}}_{k|k}^i)^2+(\dot{y}_k-\hat{\dot{y}}_{k|k}^i)^2} Velocity RMSE(x^)=M1i=1M(x˙kx˙^kki)2+(y˙ky˙^kki)2
ANEES(average normalized estimation error square), n n n 为状态维数, P k ∣ k i \mathbf{P}_{k|k}^i Pkki为第 i i i次仿真滤波器输出的估计协方差
ANEES ( x ^ ) = 1 M n ∑ i = 1 M ( x k − x ^ k ∣ k i ) ′ ( P k ∣ k i ) − 1 ( x k − x ^ k ∣ k i ) \text{ANEES}(\hat{x})=\frac{1}{Mn}\sum_{i=1}^{M}(\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i)'(\mathbf{P}_{k|k}^i)^{-1} (\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i) ANEES(x^)=Mn1i=1M(xkx^kki)(Pkki)1(xkx^kki)

3.2 二维EKF跟踪仿真结果

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

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

跟踪轨迹

图1. 跟踪轨迹

在这里插入图片描述

图2. x轴跟踪轨迹

在这里插入图片描述

图3. Position RMSE

Velocity

图4. Velocity RMSE

在这里插入图片描述

图5. ANEES

四、仿真实验二:EKF三维雷达目标跟踪

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];噪声为 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
采样时间 T = 1 s T=1s T=1s. 初始状态为 x 0 ∼ ( x ˉ 0 , P 0 ) x ˉ 0 = [ 1 km , 20 m/s, 1 km , 20 m/s , 1 km , 20 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}=[1\text{km}, 20\text{m/s} ,1\text{km}, 20\text{m/s} ,1\text{km}, 20\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=[1km,20m/s1km,20m/s,1km,20m/s]P0=diag(105m2,102m2/s2,105m2,102m2/s2105m2,102m2/s2)
过程噪声均值和方差分别为
w ˉ k = [ 0 , 0 , 0 ] ′ Q k = [ 0.01 0 0 0 0.01 0 0 0 0.01 ] \bar{w}_k=[0,0, 0]'\\Q_k=\begin{bmatrix}0.01 & 0& 0 \\0 & 0.01 & 0\\0&0 & 0.01 \end{bmatrix} wˉk=[000]Qk= 0.010000.010000.01

如果为非线性目标,则将状态转移矩阵 F k F_k Fk代替为雅可比矩阵即可。为了不是一般性这里采用线性模型进行仿真。主要处理目标跟踪,雷达量测存在的非线性滤波问题。

雷达量测模型
在二维情况下,雷达量测为距离和角度
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 = ( x k − x 0 ) + ( y k − y 0 ) 2 ) b k = tan ⁡ − 1 y k − y 0 x k − x 0 e k = tan ⁡ − 1 z k − z 0 ( x k − x 0 ) 2 + ( y k − y 0 ) 2 r_k=\sqrt{(x_k-x_0)^+(y_k-y_0)^2)}\\ b_k=\tan^{-1}{\frac{y_k-y_0}{x_k-x_0}}\\ e_k=\tan^{-1}{\frac{z_k-z_0}{\sqrt{(x_k-x_0)^2+(y_k-y_0)^2}}}\\ rk=(xkx0)+(yky0)2) bk=tan1xkx0yky0ek=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 = 120 m \sigma_r=120m σr=120m σ b = 80 m r a d \sigma_b=80mrad σb=80mrad, σ e = 60 m r a d \sigma_e=60mrad σe=60mrad
性能指标
RMSE(Root mean-squared error):蒙塔卡罗次数 M = 500 M=500 M=500 x ^ k ∣ k i \hat{x}_{k|k}^i x^kki为第 i i i次仿真得到的估计。
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)
Position RMSE ( x ^ ) = 1 M ∑ i = 1 M ( x k − x ^ k ∣ k i ) 2 + ( y k − y ^ k ∣ k i ) 2 + ( z k − z ^ k ∣ k i ) 2 \text{Position RMSE}(\hat{x})=\sqrt{\frac{1}{M}\sum_{i=1}^{M}(x_k-\hat{x}_{k|k}^i)^2+(y_k-\hat{y}_{k|k}^i)^2+(z_k-\hat{z}_{k|k}^i)^2} Position RMSE(x^)=M1i=1M(xkx^kki)2+(yky^kki)2+(zkz^kki)2
Velocity RMSE ( x ^ ) = 1 M ∑ i = 1 M ( x ˙ k − x ˙ ^ k ∣ k i ) 2 + ( y ˙ k − y ˙ ^ k ∣ k i ) 2 + ( z ˙ k − z ˙ ^ k ∣ k i ) 2 \text{Velocity RMSE}(\hat{x})=\sqrt{\frac{1}{M}\sum_{i=1}^{M}(\dot{x}_k-\hat{\dot{x}}_{k|k}^i)^2+(\dot{y}_k-\hat{\dot{y}}_{k|k}^i)^2+(\dot{z}_k-\hat{\dot{z}}_{k|k}^i)^2} Velocity RMSE(x^)=M1i=1M(x˙kx˙^kki)2+(y˙ky˙^kki)2+(z˙kz˙^kki)2
ANEES(average normalized estimation error square), n n n 为状态维数, P k ∣ k i \mathbf{P}_{k|k}^i Pkki为第 i i i次仿真滤波器输出的估计协方差
ANEES ( x ^ ) = 1 M n ∑ i = 1 M ( x k − x ^ k ∣ k i ) ′ ( P k ∣ k i ) − 1 ( x k − x ^ k ∣ k i ) \text{ANEES}(\hat{x})=\frac{1}{Mn}\sum_{i=1}^{M}(\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i)'(\mathbf{P}_{k|k}^i)^{-1} (\mathbf{x}_k-\hat{\mathbf{x}}_{k|k}^i) ANEES(x^)=Mn1i=1M(xkx^kki)(Pkki)1(xkx^kki)

4.2 EKF三维跟踪仿真结果

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

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五、EKF二维跟踪参考代码

说明:
1.二维仿真代码也可以在上面的连接中直接下载,
2.将EKF函数保存,文件名“fun_2EKF.m”
3.将量测函数保存,文件名“measurements.m”
4. 运行下面的主函数
5. 注意将这三个文件保存在一个文件夹下

5.1 主函数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% created by: 
% date: 2020/4
% 扩展卡尔曼滤波,目标跟踪  
% 二维目标跟踪问题
% 极坐标两侧
% 线性CV目标模型
% 单雷达
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all; close all; clc;
%% initial parameter
n=4; %状态维数 ;
T=1; %采样时间
M=1; %雷达数目
N=200; %运行总时刻
MC=500; %蒙特卡洛次数
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]; %
 Gk= [ T^2/2  0
       T      0
       0      T^2/2
       0      T ]; %
%量测模型
sigma_r(1)=120;  sigma_b(1)=80e-3; % covariance of measurement noise (radar)
Rk=diag([sigma_r(1)^2, sigma_b(1)^2]);
xp=[0,0,0,0];%雷达位置
%% 定义存储空间
sV=zeros(n,N,MC); % 状态
eV=zeros(n,N,MC,chan); %估计
PV=zeros(n,n,N,MC,chan);%协方差
rV=zeros(2,N,MC,M); % %量测


评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

脑壳二

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

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

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

打赏作者

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

抵扣说明:

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

余额充值