基于卡尔曼滤波的目标跟踪研究_毕业设计(编辑修改稿)内容摘要:
本世纪 40年代,为了解决火力控制系统精确跟踪问题,维纳( )于 1942年提出了维纳滤波理论。 维纳根据有用信号和干扰信号的功率谱确定出线性滤波器的频率特性,首次将数理统计理论与线性系统理论有机的联系在一起,形成了对随机信号作平滑、估计或预测的最优估计新理论。 比维纳稍早,前苏联科学家戈尔莫克罗夫( )于1941年也曾提出过类似的理论。 维纳给 出了由功率谱求解维纳滤波器频率特性闭合解的一般方法,包括对功率谱的上、下平面分解及傅里叶变换和反变换,运算繁杂,解析求解十分困难。 1950年,伯特和香农给出了功率谱为有理谱这一特殊条件下,由功率谱直接求取维纳滤波器传递函数的设计方法,这一方法简单易行,具有一定的工程实用价值。 维纳滤波的最大缺点是适用范围极其有限,它要求被处理信号必须是平稳的,且是一维的。 人们试图将维纳滤波推广到非平稳和多维的情况,都因无法突破计算上的困难而难以推广和应用。 采用频域设计法是造成维纳滤波器设计困难的根本原因。 因此人们逐渐转向寻 求在时域内直接设计最优滤波器的新方法,其中卡尔曼的研究最具有代表性,他提出的递推最优估计理论也因此而被称为卡尔曼滤波。 由于采用了状态空间法描述系统,算法采用递推形式,所以卡尔曼滤波能处理多维和非平稳的随机过程。 卡尔曼滤波理论一经提出,立即受到了工程界的重视,而工程应用中遇到的实际问题又使卡尔曼滤波的研究更加深入和完善。 1959年起,美国太空署即 NASA开始研究载人太空船登月方案,当时提出了两个主要问题:①中途导航和制导;②液体燃料助推器大挠度条件下的自动驾驶问题。 因这两项研究的工作量都很庞大,所以主要研究 前者,即宇宙飞船的测轨问题。 导航问题中主要解决太空船运动状态的估计。 估计方法曾试图采用递推加权最小二乘和维纳滤波,均因精度满足不了要求和计算过于繁杂而不得不放弃。 1960年秋, 卡尔曼在 NASA埃姆斯研究中心访问时,发现他的方法对于解决 阿波罗鲁东大学毕业设计 7 计划 的轨道预测很有用 ,后来 阿波罗飞船 的 导航 电脑使用了这种滤波器。 卡尔曼滤波比维纳滤波的应用范围广,设计方法也简单易行得多,但它必须在计算机上执行,而 60年代初,无论是速度、字长、容量,计算机还处于低水平阶段。 为了适应当时的技术水平,避免由于字长不够产生的舍入误差引起卡尔 曼滤波的计算发散,Bierman, Carlson和 Schmidt等人提出了平方根滤波算法和 UDU分解滤波算法,以确保卡尔曼滤波增益回路中的滤波方差阵始终正定。 卡尔曼最初提出的滤波基本理论只适用于线性系统,并且要求量测也必须是线性的。 在之后的 10多年的时间里, Bucy, Sunahara等人致力于研究卡尔曼滤波理论在非线性系统和非线性量测情况下的推广,拓宽了卡尔曼滤波理论的适用范围。 卡尔曼滤波是一种有着相当广泛应用的滤波方法,但它既需要假定系统是线性的,又需要认为系统中的各个噪声与状态变量均呈高斯分布,而这 两条并不总是确切的假设限制了卡尔曼滤波器在现实生活中的应用。 扩展卡尔曼滤波器( EKF)极大地拓宽了卡尔曼滤波的适用范围。 EKF 的基本思路是,假定卡尔曼滤滤对当前系统状态估计值非常接近于其真实值,于是将非线性函数在当前状态估计值处进行台劳展开并实现线性化。 另一种非线性卡尔曼滤波叫线性化卡尔曼滤波。 它与 EKF 的主要区别是前者将非线函数在滤波器对当前系统状态的最优估计值处线性化,而后者因为预先知道非线性系统的实际运行状态大致按照所要求、希望的轨迹变化,所以这些非线性化函数在实际状态处的值可以表达为在希望的轨迹处的 台劳展开式,从而完成线性化。 不敏卡尔曼滤波器( UKF)是针对非线性系统的一种改进型卡尔曼滤波器。 UKF处理非线性系统的基本思路在于不敏变换,而不敏变换从根本上讲是一种描述高斯随机变量在非线性化变换后的概率分布情况的方法。 不敏卡尔曼滤波认为,与其将一个非线性化变换线性化、近似化,还不如将高斯随机变量经非线性变换后的概率分布情况用高斯分布来近似那样简单,因而不敏卡尔曼滤波算法没有非线性化这一步骤。 在每一定位历元,不敏卡尔曼滤波器按照一套公式产生一系列样点,每一样点均配有一个相应的权重,而这些带权的样点被用来完 整地描述系统状态向量估计值的分布情况,它们替代了原先卡尔曼滤波器中的状态向量估计值及协方差。 不敏卡尔曼滤器让这些样点一一经历非线性状态方程与测量方程,然后再将这些经非线性变换后的样点按照它们的权重而综合出对当前时刻的系统状态向量估计值。 多态自适应( MMA)卡尔曼滤波器是一种受到广泛关注的滤波器,它由好多个并联、同时运行的卡尔曼滤波器组成。 在这组卡尔曼滤波器中,每一个滤波器对未知的滤波参数分别做出相互不同的假设,然后各自按照自 己 的模型假设进行滤波计算,而多态自适应滤波器最后将它们对系统状态的各个估计值进行加 权,并以此作为最优估计值输出。 鲁东大学毕业设计 8 3 估计原理和卡尔曼滤波 DS18B20的通信协议 DS18B20的测温原理 4 编程软件 VB的特点 VB(Visual Basic)之所以受到广大编程者的喜爱,是由于它强大的功能: (1) 可视化编程:最直观的编程方法,程序人员只需绘制界面,无需编程, VB自动产生界面代码,就可以完成许多步骤。 这样大大的提高了程序设计的效率。 这些在以前的编程语言下是要经过相当复杂的工作的。 (2) 结构化的程序设计语言: VB具有丰富的数据类型,是一种符合结构化设计思想的语 言,简单易学。 此外 VB作为程序设计语言还有其独特的一面。 (3) 面向对象: VB采用了面向对象的程序设计思想。 把复杂的程序设计问题分解为一个个简单的能够完成独立功能的对象集合,就是此程序设计最基本的思想。 所谓“对象”就是一个可操作的实体,如窗体、窗体中的命令按钮、标签、时钟、文本框等。 面向对象的编程就好像搭积木一样,程序员可根据程序和界面设计的要求,直接在屏幕上“画”出窗口、菜单、按钮等不同类型的对象,并在属性窗口改写每个对象属性,从而达到所要求的目的。 (4) 强大的数据库访问功能。 (5) 多个应用程序向导,支持动态交换、动态链接技术,等等。 编程软件 VB中 MSComm控件的介绍 VB 开发串口通信程序利用 VB自身提供的控件 MSComm 控件来实现。 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。 MSComm( Microsoft Communications Control)是 Microsoft 公司提供的简化 Windows 下串行通信编程的ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简便方法。 MSComm 控件两种处理通讯的方式 MSComm 提供两种处理通讯的方法:事件驱动方式和查询方式。 该论文所采用的方法是事件驱动方式,在初始化代码中将 Rthreshold 设置为 1。 这样接收缓冲区中接收到一个字符,就产生一次 OnComm 事件。 鲁东大学毕业设计 9 事件驱动通讯是一种功能很强的处理串口活动的方法,它是利用 MSm 控件的OnComm 事件触发机制来完成的。 在大多数情况下,用户需要获知事件发生的时间,例如,在串口接收缓冲区中有字符,或者 CD (Carrier Detect) 或 RTS (Request To Send) 线上一个字符到达或一个变化发生时。 在这 些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。 OnComm 事件还可以捕获和处理通讯中的错误。 在编程过程中,就可以在 OnComm 事件处理函数中加入自己的处理代码。 这种方法的优点是程序响应及时,可靠性高。 每个 MSComm 控件对应着一个串行端口。 查询法是通过周期性地读取缓冲区的信号来发现是否有事件发生并进行处理的方法。 它不使用端口的硬件中断,必须在足够频繁地查询端口的情况下才能保证不会遗失任何数据或者事件,查询的频率取决于缓存的大小、数据量和对快速响应的要求。 查询法不 具有自动判断通信的“智能”化,需要人为启动接收或发送数据。 MSComm 控件的常用属性 在 MSComm 控件中有很多。基于卡尔曼滤波的目标跟踪研究_毕业设计(编辑修改稿)
相关推荐
使用的遥控器控制系统,第二套是出门在外时使用的手机控制系统,第三套是在家中控制智能管家。 系统总体结构 根 据总体方案画出了系统的总体设计图,如图 31 所示。 按照结构层次系统划分为三层:数据感知层(协调器和终端节点)、网络层和应用层(智能终端)。 图 31 智能家居 系统的结构图 数据感知层的终端是 系统的前线,它起着数据供给的作用。 它在系统的边缘,是数据采集终端,算是拥有独立系统的单元
梯仍为上行状态,那么此时,电梯的状态肯定处于上楼接人的状态中(即在高层,有人按了下行键)。 反之,若它们中有一个为 1(且按键所处楼层高于当前电梯所在楼层,这个由其他函数来限定,防止电梯在上行过程中受已经过楼层按键按下时的干扰),则电梯此时处于上楼送人状态,就会执行对应的子程序。 其他的与此同理。 电梯各情况下所对应的处理方法 以电梯上行的两种状态为例。 在实际应用中
个性化推荐是 基于 用户的兴趣特点和购买行为,向用户推荐 其感兴趣的信息和商品。 随着电子商务规模 不断扩大,商品 数量 和种类 不断 增长,顾客需要花费大量的时间 寻找 自己想买的商品。 这 一过程 无疑会使淹没 在 大量产品信息 中 的消费者不断流失。 为了解决用户流失的问题,电子商务个性化推荐系统应运而生。 电子商务个性化推荐系统是基于 大数据挖掘基础上的一种商务智能平台,能够帮助
部程序存储器时, P0 口输出低 8 位地址信息后,将变为数据总线,以便读指令码(输入)。 在取指令期间, “ 控制 ” 信号为 “0” , V1 管截止,多路开关也跟着 转向锁存器反相输出端 Q非; CPU 自动将 0FFH( 11111111,即向 D锁存器写入一个高电平 ‘1’ )写入 P0口锁存器,使 V2 管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线,这个过程和
主 函数 的流程图 郑州铁路职业技术学院 2020届 自考 本科生毕业论文(设计) 12 主程序: void main(void) { lcdreset()。 //初始化液晶屏 system_init()。 //初始化串口 定时器 clrscreen()。 //清屏 while(1) //循环 { switch(pattern) //状态查询 { //正常测 量模式 case 1:
uvuD 表示点 vu, 到滤波中心 vu 00, 的距离。 vuH , H L vuD, 图 同态滤波处理示意图 利用 vuH , 对( 6)式进行滤波 ,可得 vuRvuHvuIvuHvuZvuHvuS ,, ( 6) ⑤ 最后对滤波结果进行傅立叶反变换和 ⑥ 指数运算