卡尔曼在目标跟踪的应用与仿真

上传人:飞*** 文档编号:47490630 上传时间:2018-07-02 格式:PDF 页数:10 大小:393.72KB
返回 下载 相关 举报
卡尔曼在目标跟踪的应用与仿真_第1页
第1页 / 共10页
卡尔曼在目标跟踪的应用与仿真_第2页
第2页 / 共10页
卡尔曼在目标跟踪的应用与仿真_第3页
第3页 / 共10页
卡尔曼在目标跟踪的应用与仿真_第4页
第4页 / 共10页
卡尔曼在目标跟踪的应用与仿真_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《卡尔曼在目标跟踪的应用与仿真》由会员分享,可在线阅读,更多相关《卡尔曼在目标跟踪的应用与仿真(10页珍藏版)》请在金锄头文库上搜索。

1、卡尔曼滤波在目标跟踪应用仿真研究一、背景随着现代航空航天技术的飞速发展,各种飞行器航行速度和机动性越来越来高,在此背景下, 如何提高对高速高机动目标的跟踪性能成为现代雷达防空中一个越来越重要的问题, 因此迫切需要研究性能更为优越的跟踪波方法。虽然现在已有不少目标跟踪算法, 但专门针对高速高机动目标跟踪的研究还不多,本文主要基于卡尔曼滤波算法来实现对机动目标的跟踪。二、机动目标跟踪的基本内容目标跟踪基本上包括量测数据形成与处理、机动目标建模、机动检测与机动辨识、滤波与预测、跟踪坐标系的选取、跟踪门规则、数据关联、航迹起始与终止等内容。本文主要研究对机动目标进行建模,当目标发现机动时,通过检测新信

2、息对目标进行检测,并对目标利用卡尔曼滤波进行滤波与预测三、卡尔曼滤波理论卡尔曼全名 Rudolf Emil Kalman,匈牙利数学家, 1930年出生于匈牙利首都布达佩斯。 1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960 年发表的论文 A New Approach to Linear Filtering and Prediction Problems(线性滤波与预测问题的新方法)。简单来说,卡尔曼滤波器是一个“ optimal recursive data processin

3、g algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。3.1 卡尔曼滤波器算法在这一部分,我们描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识, 包括概率(Probability) , 随即变量(Random Variable ) ,高斯或正态分配( Gaussian Distribution)还有 State-space Mo

4、del等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。 首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:X(k)=A X(k-1)+B U(k)+W(k) 再加上系统的测量值:Z(k)=H X(k)+V(k) 上两式子中, X(k) 是 k 时刻的系统状态, U(k) 是 k 时刻对系统的控制量。 A和 B是系统参数, 对于多模型系统, 他们为矩阵。 Z(k) 是 k 时刻的测量值, H 是测量系统的参数, 对于多测量系统, H为矩阵。W(k)和 V(k) 分别表示过程和测量的噪

5、声。他们被假设成高斯白噪声(White Gaussian Noise),他们的 covariance 分别是 Q ,R(这里我们假设他们不随系统状态变化而变化)。对于满足上面的条件(线性随机微分系统, 过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:X(k|k-1)=A X(k-1|k-1)+B U(k) ,. (1) 式(1) 中,X(k|k-1)

6、是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果, U(k) 为现在状态的控制量,如果没有控制量,它可以为0。到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1) 的 covariance还没更新。我们用 P表示 covariance :P(k|k-1)=A P(k-1|k-1) A+Q , (2) 式 (2) 中,P(k|k-1) 是 X(k|k-1) 对应的 covariance ,P(k-1|k-1)是 X(k-1|k-1)对应的 covariance ,A表示 A的转置矩阵, Q是系统过程的 covariance 。式子1,2 就是卡尔曼滤波器5 个公式

7、当中的前两个,也就是对系统的预测。现在我们有了现在状态的预测结果, 然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k) 的最优化估算值 X(k|k) :X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1) , (3) 其中 Kg为卡尔曼增益 (Kalman Gain) :Kg(k)= P(k|k-1) H / (H P(k|k-1) H + R) , (4) 到现在为止, 我们已经得到了k 状态下最优的估算值X(k|k) 。但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新 k 状态下 X(k|k)的 covariance

8、 :P(k|k)= (I-Kg(k) H)P(k|k-1) , (5) 其中 I 为 1 的矩阵,对于单模型单测量,I=1。当系统进入 k+1 状态时, P(k|k)就是式子 (2) 的 P(k-1|k-1)。这样,算法就可以自回归的运算下去。卡尔曼滤波器的原理基本描述了,式子1,2,3,4 和 5 就是他的 5 个基本公式。根据这 5 个公式,可以很容易的实现计算机的程序。四、卡尔曼滤波在目标跟踪应用举例我们假设有一二坐标雷达对一平面上运动的目标进行观测,目标在t=0-600秒沿 x 轴作恒速直线运动,运动速度为15 米/ 秒,目标的起始点为(-10000米,2000 米)。雷达扫描周期T=

9、2秒,x 和 y 独立地进行观测,观测噪声标准差均为 100 米。要求滤波误差标准差的方差压缩系数为0.5 。4.1 算法分析跟踪滤波的目的是根据已经获得的目标观测数据对目标的状态进行精确的估计。在二维平面内当目标做匀速运动时,我们可以建立在笛卡尔坐标系下的目标离散运动模型和观测模型为:X(k+1)=QX(k)+TW(k) (4-1) Z(k)=C(k)X(k)+V(k) (4-2) 本文只考虑匀速直线运动,所以我们只建立匀速直线运动模型。4.2 建立模型当目标做匀速直线运动,取状态变量为:(4-3) 状态方程为:(4-4) 观测方程为:(4-5) 其中:对目标位置和速度的最佳滤波和最佳预测如

10、下:预测:(4-6) 预测误差协方差:(4-7) 卡尔曼增益:(4-8)滤波:(4-9) 滤波协方差为:(4-10)其中:实际上我们常常无法得知目标的初始状态,这时我们可以利用前几个测量值建立状态的起始估计。现在我们用两点起始法:滤波误差均值:滤波误差标准差:4.3 仿真分析我们已经把卡尔曼滤波的算法叙述的很清楚,由4-6 到 4-10 的 5 个公式就很容易实现卡尔曼滤波算法。在计算机仿真中,我们采用Matlab 编写程序,利用蒙特卡洛的方法对跟踪滤波器进行仿真分析,次数为1000 次。以下给出仿真图和结果分析。图 4-1图 4-1 是目标的真实轨迹和测量轨迹,测量轨迹是真实轨迹数据添加方差

11、和均值固定的随机测量噪声得到的,目标沿y=2000米做匀速直线运动。给出的测量轨迹用于滤波后与滤波轨迹作比较分析。从图中可以看出, 测量轨迹围绕真实轨迹作上下浮动。图 4-2图 4-2 是滤波轨迹和滤波均值轨迹。 从图中可以看出, 滤波开始时误差较大,但是随着时间的推移, 滤波误差降低, 估计值逐步逼近真实轨迹。 采用蒙特卡洛方法,多次观测取均值,滤波更为接近真实曲线。图 4-3图 4-3 是 y 方向滤波估计误差均值及误差标准差。滤波开始时误差较大, 随着采样点的增加, 误差逐渐减小, 误差的标准差也具有同样的特性。达到了滤波误差标准差的方差压缩系数为0.5 的要求。图 4-4图 4-4 是

12、 x 方向滤波估计误差均值及误差标准差。 与 y 方向的估计误差均值相比,x 方向的估计误差均值波动较大, 这是由于在 x 方向上有速度分量的缘故,同时其方向上滤波估计误差也有一定波动。也达到了其压缩系数为0.5 的要求。图 4-5X方向速度估计曲线见图4-5。单次滤波速度与实际值有差距,但是1000 次滤波取均值后速度滤波已经于实际值,但是滤波开始时仍有很大偏差,这随着采样点的增加,误差逐渐减小。五 结论本章重点介绍了卡尔曼滤波在目标跟踪的算法,对卡尔曼算法, 详细介绍了算法的流程并简单举例介绍了其在目标跟踪的应用,仿真结果表明的了卡尔曼在目标跟踪中是很有效的,对目标的跟踪性能很好,跟踪误差

13、较小。clear all;clc;%=?3?=sigma=10000;T=2;t=300;Vx=15;H=1 0 0;0 1 0;Q=1 0 0;0 1 T;0 0 1;eXk(:,t)=0 0 0;eXz(:,t)=0 0 0;eeXz(:,t)=0 0;N=10;%? ?yfor i=1:Nfor j=1:tZk(:,j)=2000+wgn(1,1,40);-10000+Vx*T*(j-1)+wgn(1,1,40);endfor j=1:300if j=1Xk(:,1)=Zk(1,1),Zk(2,1),0;Xk1(:,1)=Xk(:,1);Xk(:,2)=Zk(1,2),Zk(2,2),(

14、Zk(2,2)-Zk(2,1)/T;Xk1(:,2)=Xk(:,2);Pk=sigma,0,0;0,sigma,sigma/T;0,sigma/T,2*sigma/T;elseif j2Xk1(:,j)=Q*Xk(:,j-1);%? 2aPk1=Q*Pk*Q;%? 2a?2?D-?2?Kk=Pk1*H*inv(H*Pk1*H+sigma*eye(2);%kalman? ?Xk(:,j)=Xk1(:,j)+Kk*(Zk(:,j)-H*Xk1(:,j);%?2 Pk=(eye(3)-Kk*H)*Pk1;%?2 D-?2?endend%1000 ?eXk(:,j)=eXk(:,j)+Xk(:,j)/

15、N;%?2 eXz(:,j)=eXz(:,j)+(2000;-10000+Vx*(j-1)*T;0-Xk(:,j)/N;%?2 ?2?eeXz(:,j)=eeXz(:,j)+(2000-Xk(1,j)2;(-10000+Vx*(j-1)*T-Xk(2,j)2/N; %?2 ?2? ?2?endend%=?=%? 1?o2a?1?subplot(2,1,1);j=0:0.1:t;plot(-10000+Vx*(j-1)*T,2000);title(? ?1?);xlabel(X(? );ylabel(Y(? );subplot(2,1,2);plot(Zk(2,:),Zk(1,:);title(2a ?1?);xlabel(X(? );ylabel(Y(? );%?2 ¥ ?o?figure;% subplot(2,1,1);plot(Xk(2,:),Xk(1,:),g);title( ¥

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号