《kalman滤波原理及程序手册》_第1页
《kalman滤波原理及程序手册》_第2页
《kalman滤波原理及程序手册》_第3页
《kalman滤波原理及程序手册》_第4页
《kalman滤波原理及程序手册》_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 1Kalman 滤波原理及程序KF/EKF/UKF 原理+应用实例+MATLAB 程序本手册的研究内容主要有 Kalman 滤波,扩展 Kalman 滤波,无迹 Kalman滤波等,包括理论介绍和 MATLAB 源程序两部分。本手册所介绍的线性滤波器,主要是 Kalman 滤波和 - 滤波,交互多模型 Kalman 滤波,这些算法的应用领域主要有温度测量、自由落体,GPS 导航、石油地震勘探、视频图像中的目标检测和跟踪。EKF 和 UKF 主要在非线性领域有着重要的应用,目标跟踪是最主要的非线性领域应用之一,除了讲解目标跟踪外,还介绍了通用非线性系统的 EKF和 UKF 滤波处理问题,相信读者可以通过学习本文通用的非线性系统,能快速掌握 EKF 和 UKF 滤波算法。本文所涉及到的每一个应用实例,都包含原理介绍和程序代码(含详细的中文注释) 。一、四维目标跟踪 Kalman 线性滤波例子在不考虑机动目标自身的动力因素,将匀速直线运动的船舶系统推广到四维,即状态 包含水平方向的位置和速度和纵向TkykxkX)()()( 的位置和速度。则目标跟踪的系统方程可以用式(3.1)和(3.2)表示,(2-4-9 ))()1(uX(2-4-10 ))(kvHkZ其中, , , ,10TT0522 T01TyxXyxZ,u,v 为零均值的过程噪声和观测噪声。T 为采样周期。为了便于理解,将状态方程和观测方程具体化:星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 2)(05)1()(01)()( 122kwTkyxTkyx )()()( 12kvyxkyxZ假定船舶在二维水平面上运动,初始位置为(-100m,200m) ,水平运动速度为 2m/s,垂直方向的运动速度为 20 m/s,GPS 接收机的扫描周期为 T=1s,观测噪声的均值为 0,方差为 100。过程噪声越小,目标越接近匀速直线运动,反之,则为曲线运动。仿真得到以下结果:-120 -100 -80 -60 -40 -20 0 20 402004006008001000120014001600估估估估估估估估估估估估0 10 20 30 40 50 600510152025估估估估估估估估估估图 3-1 跟踪轨迹图 图 3-2 跟踪误差图仿真程序% Kalman 滤波在目标跟踪中的应用实例%function Kalmanclc;clear;T=1;%雷达扫描周期,N=80/T; %总的采样次数X=zeros(4,N); % 目标真实位置、速度X(:,1)=-100,2,200,20;% 目标初始位置、速度Z=zeros(2,N); % 传感器对位置的观测Z(:,1)=X(1,1),X(3,1); % 观测初始化delta_w=1e-2; %如果增大这个参数,目标真实轨迹就是曲线了Q=delta_w*diag(0.5,1,0.5,1) ; % 过程噪声均值R=100*eye(2); %观测噪声均值F=1,T,0,0;0,1,0,0;0,0,1,T;0,0,0,1; % 状态转移矩阵H=1,0,0,0;0,0,1,0; % 观测矩阵星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 3二、视频图像目标跟踪 Kalman 滤波算法实例如下图所示,对于自由下落的皮球,要在视频中检测目标,这里主要检测目标中心,即红心皮球的重心,在模型建立时可以将该重心抽象成为一个质点,坐标为 。),(yx图 2-6-1 下落的球 图 2-6-2 检测下落的球 图 2-6-3 跟踪下落的球那么对该质点跟踪,它的状态为 ,状态方程如下yxkX)()(0)(10)1( kwgdtk观测方程为 )(01)( kvXkZ在这个过程中,前提是目标检测,一定要找到重心 ,与雷达目标跟踪,yx中观测目标位置是一回事。图像目标检测跟踪程序% 目标检测函数,这个函数主要完成将目标从背景中提取出来%function detectclear,clc; %清除所有内存变量、图形窗口% 计算背景图片数目Imzero = zeros(240,320,3);for i = 1:5% 将图像文件 i.jpg 的图像像素数据读入矩阵 ImImi = double(imread(DATA/,int2str(i),.jpg);Imzero = Imi+Imzero;end星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 4Imback = Imzero/5;MR,MC,Dim = size(Imback);% 遍历所有图片for i = 1 : 60% 读取所有帧运行程序得到的 x,y 方向的位置跟踪偏差分析0 10 20 30 40 50 60050100150200Y 方向的位置偏差0 10 20 30 40 50 60050100150X 方向的位置偏差三、通用非线性系统的 EKF 实现例子:所谓的非线性方程,就是因变量与自变量的关系不是线性的,这类方程很多,例如平方关系,对数关系,指数关系,三角函数关系等等。这些方程可分为两类,一类是多项式方程,一种是非多项式方程。为了便于说明非线性卡尔曼滤波扩展 Kalman 滤波的原理,我们选用以下系统,星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 5系统状态为 ,它仅包含一维变量,即 ,系统状态方程为)(kX)(kxX(3-2-1)2.1cos8)(15.2)5.0 wk观测方程为(3-2-2)(20)(kvXkY其中,式(3-1-1)是包含分式,平方,三角函数在内的严重非线性的方程,为过程噪声,其均值为 0,方差为 Q,观测方程中,观测信号 与状态)(kw )(kY的关系也是非线性的, 也是均值为 0,方差为 R 的高斯白噪声。因此X)(kv关于(3-1-1)和(3-2-2)是一个状态和观测都为非线性的一维系统。以此为通用的非线性方程的代表,接下来讲述如何用扩展 Kalman 滤波来处理噪声问题。第一步:初始化初始状态 , ,协防差矩阵 。)0(XY0P第二步:状态预测(3-2-3)2.1cos(8)(15.2)(5.)1|( kkkkX第三步:观测预测(3-2-4)20)1|()1|(kXkY第九步:协方差更新(3-2-10)1|()()( kPHkKIkPn以上九步为扩展卡尔曼滤波的一个计算周期,如此循环下去就是各个时刻EKF 对非线性系统的处理过程。其他参数设置请查看源程序,仿真以上系统得到状态滤波结果,如图 3-2-1 所示,滤波后的状态与真值之间的偏差如图图 3-2-2 所示。星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 60 5 10 15 20 25 30 35 40 45 50-15-10-5051015估估估EKF估估估0 5 10 15 20 25 30 35 40 45 50012345678图 3-2-1 EKF 滤波处理后的状态与真值对比 图 3-2-2 偏差分析EKF 一维非线性系统仿真程序% 函数功能:一维非线性系统扩展 Kalman 滤波问题% 状态函数:X(k+1)=0.5X(k)+2.5X(k)/(1+X(k)2)+8cos(1.2k) +w(k)% 观测方程:Z(k)=X(k)2/20 +v(k)%function EKF_for_One_Div_UnLine_System% 初始化T=50; % 总时间Q=10;R=1;% 产生过程噪声w=sqrt(Q)*randn(1,T);% 产生观测噪声v=sqrt(R)*randn(1,T);四、EKF 在纯方位寻的导弹制导中的应用例子:考虑一个在三维平面 x-y-z 内运动的质点 M,其在某一时刻 k 的位置、速度和加速度可用矢量可以表示为: Tzyxzyxzyx aakvkvrkrk )()()()()(质点 M 可以在三维空间内做任何运动,同时假设三个 x-y-z 方向上运动具有加性系统噪声 ()kw,则在笛卡尔坐标系下该质点的运动状态方程为: )(,)1(kwxfkxk通常情况下,上述方程为线性的,即能表示为以下方式, )()(u星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 7其中,33 3230)1(IeIIttttt 320)/(tI为测量周期,也叫扫描周期,采样时间间隔等。动态噪声 为t )(kw Tzyxkkw)(00)( 而且,19)(qE326310)(IQwET是高斯型白色随机向量序列。)(kw现在考虑一个带有观测器的飞行中的导弹,可以假设为质点 M,对移动的目标进行观测,如下图所示,导弹与目标的相对位置依然可用 x-y-z 表示,那么,导弹对目标纯方位角观测,主要是俯仰角和水平方向偏向角,实际测量中雷达具有加性测量噪声 ()kv,则在笛卡尔坐标系下,观测方程为 )(kvxhz式中, Tzxzxy krkrkxh )(actn)(arctn)(22为测量噪声,他也是高斯型白色随机向量序列,而且)(kv,120)(rkvE1)(RkvET星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 8对于 ,其定义为1R)()(11kxDkRT其中, 2.0Ix )()(0)()()( 2222 krkrkrkDzyxzy显然在笛卡尔坐标系下,该模型运动观测方程为非线性的。仿真结果为:-1000 0 10002000 3000 4000500100015006007008009001000eror of positionrealekf0 50 100 150 200 250 300 350 400150200250300350400450500550600650 error of positionekf轨迹跟踪图 位置误差0 50 100 150 200 250 300 350 40090100110120130140150160170180 eror of velocityekf0 50 100 150 200 250 300 350 400024681012141618 error of accelerationekf速度误差 加速度误差寻的制导 matlab 仿真程序% 程序说明:目标跟踪程序,实现运动弹头对运动物体的三维跟踪,主函数% 状态方程: x(t)=Ax(t-1)+Bu(t-1)+w(t)% 参考资料:寻的导弹新型导引 第 5.5 和 5.6 节中仿真参数设置%function main%delta_t=0.01; % 测量周期 ,采样周期星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 9longa=1; % 机动时间常数的倒数,即机动频率T=3.7/delta_t;% 时间长度 3.7 秒钟,一共采样 T=370 次F=eye(3),delta_t*eye(3),(exp(-1*longa*delta_t)+longa*delta_t-1)/longa2*eye(3);zeros(3),eye(3),(1-exp(-1*longa*delta_t)/longa*eye(3);zeros(3),zeros(3),exp(-1*longa*delta_t)*eye(3); % 状态转移矩阵 faiG=-1*0.5*delta_t2*eye(3);-1*delta_t*eye(3);zeros(3); % 控制量驱动矩阵 gama五、UKF 在六维 CA 目标跟踪模型中的应用例子:一、仿真问题描述考虑一个在二维平面 x-y 内运动的质点 M,其在某一时刻 k 的位置、速度和加速度可用矢量 表示。假设 M 在水平方向(x)作近(),Tkkkxyxy似匀加速直线运动,垂直方向(y)上亦作近似匀加速直线运动。两方向上运动具有加性系统噪声 ()kw,则在笛卡尔坐标系下该质点的运动状态方程为(1)()()()()k kkxfxwFxw其中 22100010001k tttttF假设一坐标位置为(0,0)的雷达对 M 进行测距 kr和测角 k,实际测量中雷达具有加性测量噪声 ()kv,则在传感器极坐标系下,观测方程为 221()()()()() tankkrkrk kxyvv zhxv显然在笛卡尔坐标系下,该模型运动观测方程为非线性的。我们根据雷达测量值使用 UKF 算法对目标进行跟踪,并与 EKF 算法结果进行比较。三、实验仿真与结果分析星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 10假设设系统噪声 具有协方差阵222100.00.101k Q, 具有)(kw)(kv协方差阵 ,二者不相关。观测次数 N=50,采样时间为 t=0.5。初始201.5kR状态 (0)1,5,5,4Tx 。则生成的运动轨迹如图 1 所示。1000 1100 1200 1300 1400 1500 1600 1700 1800 190050005050510051505200525053005350估估估估估估ukf估估估轨迹跟踪图0 5 10 15 20 25 30 35 40 45 50012345678910 估估估估估估星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 114.3.2 仿真程序% 功能说明: UKF 在目标跟踪中的应用% 参数说明: 状态 6 维, x 方向的位置、速度、加速度;y 方向的位置、速度、加速度;% 观测信息为距离和角度;%function ukf_for_track_6_div_system%n=6; % 状态位数t=0.5; % 采样时间Q=1 0 0 0 0 0;0 1 0 0 0 0;0 0 0.01 0 0 0;0 0 0 0.01 0 0;0 0 0 0 0.0001 0;0 0 0 0 0 0.0001;%过程噪声协方差阵R = 100 0;0 0.0012;%量测噪声协方差阵% 状态方程目 录第一章 Kalman 滤波概述 11.1 kalman 滤波的背景 11.2 kalman 滤波的发展过程 31.3 kalman 滤波应用领域 5第二章 线性卡尔曼滤波 62.1 Kalman 滤波原理 62.1.1 射影定理 62.1.2 Kalman 滤波原理推导 82.1.3 Kalman 滤波过程描述 10星空实地工作室内部资料 -Kalman 滤波技术交流 QQ:345194112 122.2 Kalman 滤波在温度测量中的应用 122.2.1 原理介绍 122.2.1 matlab 仿真程序 132.3 Kalman 滤波在自由落体中的应用 142.3.1 原理介绍 142.3.2 Matlab 仿真程序 192.3.3 C 语言程序 202.4 Kalman 滤波在船舶 GPS 导航定位系统中的应用 222.4.1 原理介绍 222.4.2 matlab 仿真程序 252.5 Kalman 滤波在石油地震勘探中的应用 262.5.1 石油地震勘探白噪声反卷积滤波原理 262.5.2 石油地震勘探白噪声反卷积滤波仿真程序 282.6 Kalman 滤波在视频图像目标跟踪中的应用 312.6.1 视频图像处理的基本方法及程序 312.6.2 Kalman 滤波对自由下落的皮球跟踪应用 332.6.3 目标检测程序 332.6.4 Kalman 滤波视频跟踪程序 35第三章 扩展卡尔曼滤波 EKF 373.1 扩展 Kalman 滤波原理 373.2 扩展卡尔曼在一维非线性系统中的应用 383.2.1 状态方程和观测方程都为非线性的通用系统 383.2.2 EKF 一维非线性系统仿真程序 403.3 扩展卡尔曼在二维非线性系统中的应用 413.3.1 状态方程和观测方程都为非线性的通用二维系统 413.3.2 EKF 二维非线性系统仿真程序 433.4 扩展卡尔曼在二维目标跟踪中的应用 443.4.1 基于观测距离的 EKF 目标跟踪算法 443.4.2 跟踪

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论