毕业设计论文基于MATLAB GUI的Kalman滤波程序.doc
《毕业设计论文基于MATLAB GUI的Kalman滤波程序.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于MATLAB GUI的Kalman滤波程序.doc(21页珍藏版)》请在三一办公上搜索。
1、目 录序言- 1 -第1章 Kalman滤波理论- 2 -1.1 Kalman滤波理论的应用背景- 2 -1.2 卡尔曼滤波的基本思想- 3 -1.3 卡尔曼滤波理论基础- 4 -1.4 卡尔曼滤波参数的估计和调整- 5 -1.5 小结- 7 -第2章 MATLAB及GUI编程概述- 8 -2.1 MATLAB简介- 8 -2.2 MATLAB_GUI概述- 8 -第3章 Kalman滤波GUI和程序的设计- 10 -3.1 Kalman滤波器的应用实例- 10 -3.2 Kalman滤波GUI设计所实现的任务- 11 -3.3 GUI界面设计- 11 -第4章 在MATLAB_GUI下运行程
2、序- 18 -4.1 通过MATLAB_GUI运行结果- 18 -4.2运行结果分析- 18 -参考文献- 20 -1 Kalman R.E.A New Approach to Linear filtering and Prodiction Theory.Trans.ASME.Journal of Basic Eng,1960,82D:35-46.- 20 -2- 20 -4- 20 -致 谢- 21 - 20 -序言最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到无限过去的数据,不适用于实时处理
3、。为了克服这一缺点,60年代Kalman把状态空间模型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。1960年, R.E. Kalman 出版了他的著名论文,描述了一个离散线性系统滤波问题的递归的解决方案。Kalman 滤波器是一组数学等式,它提供了一个有效的计算(回归)方法,来估计过程的状态,在这种方法中,将均方差最小化。该滤波器功能非常强大,它支持过去、现在、甚至将来状态的估计,并当模型系统的精确特性未知的情况下进行估计。卡尔曼滤波器(Kalman Filter)是一个最优化自回归数据处理算法(optimal recursive data processing algo
4、rithm)。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。目前Kalman滤波器的设计有许多现成的高级语言设计程序,但他们都存在设计效率低,不具有可视图形,不便于参数修改等缺点,而MATLAB_GUI为Kalman滤波器的研究和应用提供了一个直观、高效、便捷的利器。它以矩阵运算为基础,把计算、可视化、仿真以及设计融合到一个交互式的工作环境中。本文基于MATLAB_GUI对Kalman滤波器进行设计和仿真
5、。第1章 Kalman滤波理论1.1 Kalman滤波理论的应用背景信号是传递和运载信息的时间或空间函数。信号有两类,即确定性信号和随即信号。确定性信号的变化规律是既定的,可以表示为一确定的时间函数或空间函数,具有确定的频谱特性,如阶跃信号、脉宽固定的矩形脉冲信号,正余弦函数等,它们对于指定的某一时刻,可确定一相应的函数值。随即信号没有既定的变化规律,不能给出确定的时间或空间函数,在相同的初始条件和环境条件下,信号每次实现都不一样,如陀螺漂移、惯性导航系统的导航误差、GPS的SA误差、海浪等,随即信号尽管没有确定的频谱特性,但是可以知道它的统计特性,即具有确定的功率谱。信号在传输与检测过程中不
6、可避免地要受到外来干扰与设备内部噪声的影响,使接收端收到的信号具有随机性。为获取所需信号,排除干扰,就要对信号进行滤波。所谓滤波,是指从混合在一起的诸多信号中提取出所需信号的过程。信号的性质不同,获取的方法就不同,即滤波的手段不同。对于确定性信号,由于其具有确定的频谱特性,可根据各信号所处频带的不同,设置具有相应频率特性的滤波器,如低通滤波器、高通滤波器、带通滤波器及带阻滤波器等,使有用信号无衰减地通过,而干扰信号收到抑制。这类滤波器可用物理的方法实现,即模拟滤波器,亦可用计算机通过算法实现,即数字滤波器。对确定性信号的滤波处理通常称为常规滤波。随即信号具有确定的功率谱特性,可根据有用信号和干
7、扰信号的功率谱设计滤波器。美国学者维纳(N.Wiener)等人提出了Wiener滤波,它通过做功率谱分解设计滤波器,在对信号做抑制和选通这一点同常规滤波是相似的。由于在频域进行Wiener滤波器设计需要求解维纳-霍普方程,且计算量较大,需要大量的存储空间,妨碍了Wiener滤波的应用。Kalman滤波是卡尔曼于1960年提出的从与被提取信号有关的观测量中通过算法估计出所需信号的一种滤波算法1。他把状态空间的概念引入到随即估计理论中,把信号过程视为白噪声作用下的一个线性系统的输出,用状态方程来描述这种输入-输出关心,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性
8、形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维的随机过程进行估计,也可以对非平稳的、多维随机过程进行估计。这就完全避免了Wiener滤波在频域内设计时遇到的限制,适用范围比较广泛。实际上,Kalman滤波是一套由计算机实现的实时递推算法,它所处理的对象是随机信号,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。所以,此处所谈的Kalman滤波与常规滤波的涵义与方法完全不同,实质上是一种最优估计方法
9、。1.2 卡尔曼滤波的基本思想卡尔曼滤波器是线性无偏最小均方误差递推滤波器。与维纳滤波相比,在平稳条件下,它们所得到的稳态结果是一致的。然后,它们解决的方法有很大区别。维纳滤波是根据全部过去的和当前的观察数据来估计信号的当前值,它的解是以均方误差最小条件下所得到的系统的传递函数H(z)或单位样本响应h(n)的形式给出的,因此称这种系统为最佳线性过滤器或滤波器。而卡尔曼过滤是用前一个估计值和最近一个观察数据来估计信号的当前值,是用状态方程和递推的方法进行估计的,其解是以估计形式给出。因此称这种系统为线性最有估计器或滤波器。卡尔曼滤波过程实际上是获取维纳解的递推运算过程2,卡尔曼过滤中信号和噪声是
10、状态方程和测量方程表示的,因此设计卡尔曼滤波器要求已知状态方程和测量方程。标准卡尔曼滤波器是在最小均方误差准则下的最佳线性过滤器,就是说,它使系统的状态向量和状态向量的预测值之间的均方误差达到最小,它用状态方程和递推方法进行估计,它的解是以估计值形式给出的。由于它能够对物体的运动建立某种模型,因此在跟踪中经常被用到。当观测方程不是线性时,上述标准卡尔曼方程不再适用。总的来说,卡尔曼滤波器是一个线性的估计器,能够有效地跟踪物体的运动和形状变化,但它基于两个假设:一是背景相对干净;二是运动参数服从高斯分布,因而适用范围有限。1.3 卡尔曼滤波理论基础在这一部分,我们就来描述源于Dr Kalman的
11、卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随机变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。(1)在介绍卡尔曼滤波算法之前,先简要介绍白噪声的概念。所谓高斯白噪声中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考查一个信号的两个不同方面的问题。高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声
12、。 (2)Kalman滤波器算法首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述: (1.1)再加上系统的测量值: (1.2)上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的协方差分别是Q,R(这里我们假设他们不随系统状态变化而变化
13、)。对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances来估算系统的最优化输出。首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态: (1.3)式(1.3)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covarian
14、ce: (1.4)式(1.4)中,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.3、1.4就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k): (1.5)其中Kg为卡尔曼增益(Kalman Gain): (1.6)到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要使卡尔曼滤波器不断的运
15、行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance: (1.7)其中I为1的矩阵,对于单模型单测量I=1。当系统进入k+1状态时,P(k|k)就是式子(1.4)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。卡尔曼滤波器的原理基本描述了,式子1.3,1.4,1.5,1.6和1.7就是他的5个基本公式。根据这5个公式,可以很容易的实现计算机的程序。由上面可以看出,滤波过程是以不断地“预测修正”的递推方式进行计算,先进行预测值计算,再根据观测值得到的新信息和Kalman增益(加权项),对预测值进行修改。由滤波值可以得到预测,又由预测可以得到滤波,其滤波和预测相
16、互作用,并不要求存储任何观测数据,可以进行实时处理。1.4 卡尔曼滤波参数的估计和调整在卡尔曼滤波的使用中,通常首先要测量噪声协方差R。可以通过离线测量实验确定。但是确定过程噪声协方差Q一般更困难,因为无法直接观察过程。当对一个相对简单的过程模型加入足够的不确定性时(通过选择合适的Q)得到的结果是可信的。无论如何,通过运行中调整Q和R可以得到较好的滤波效果。调整通常是离线的,通常借助于过程的另一个卡尔曼滤波进行系统辨识来实现。在Q和R为常数的情况下,估计误差协方差Pk 和卡尔曼增益Kk 都会迅速镇定,然后保持为常量。如果是这样的话,可以通过离线运行滤波器来预先确定这些参数。然而通常的情况是测量
17、误差不会保持常量。例如,当观察光电跟踪器面板上的亮点时,对附近的亮点的测量误差要小于远处的。有时过程噪声Q 在滤波器运行中是动态变化的,变成了Qk,以调整符合不同的动态特点。例如在跟踪三维虚拟环境中的用户头部时,如果用户慢速移动,就要减小Qk 值,如果动态变化加快就增加Qk 值。在这类情况下,通过选择来适应用户意图的不确定性以及模型中的不确定性3。(1)测量方程协方差的确定测量方程是由测量设备可以实现的测量量来确定形式的,例如激光测距仪可以进行目标位置径向位置和角度位置的测量(极坐标测量),因此这两个量就是测量方程的输出。测量方程的协方差可以通过对激光测距仪的试验来确定。方法是利用在测距仪和目
18、标都固定的情况下,激光测距仪对已知位置的目标进行多次测量,得到一组测量数据,然后利用MATLAB 软件求出这组数据的协方差就可以作为测量方程的协方差了。当然测距仪在测量不同距离的目标时,测量的误差可能不同,所以就有不同的协方差,可以取一个中间位置对应的协方差为仪器的协方差。或者取测量范围内最大的协方差。(2)状态方程(过程方程)的协方差确定过程方程的协方差比较难以确定,一种方法是对于比较容易观察过程变化的系统,通过经验设定协方差。另一种需要通过仿真来调整。对于给定的过程方程,先预设一个协方差,通过设定一系列标准的测量值,仿真观察卡尔曼滤波是否很快收敛,如果不收敛或者收敛慢则可以调整过程协方差来
19、达到较好的效果。1.5 小结Kalman滤波器是一个最优化递归处理算法(optimal recursive data processing algorithm)。(1)最优(optimal)依赖于评价性能的判据。Kalman滤波器充分利用如下信息估计感兴趣变量当前取值:a.系统和测量装置的动态特性;b.系统噪声、测量误差和动态模型的不确定性的统计描述;c.感兴趣变量的初始条件的相关信息。(2)递归(recursive)是指Kalman不需要保存先前的数据,当进行新的测量时也不需要对原来数据进行处理。(3)filter(DPA)实际上是数据处理算法,只不过是计算中处理的程序,因此能处理离散时间测
20、量样本,而不是连续时间输入。基本假设:采用线性模型是合理的;这是典型工程模型在某些主要点或轨迹是线性的,线性模型比非线性模型更简单。因此用线性模型来近似。白噪声意味着噪声值和时间不相关;白噪声指在整个频率上都有相同强度的频率特性的噪声。实际应用中将频率设为常值,带宽大大超过系统带宽的噪声称为白噪声,用高斯白噪声来模拟,可以大大简化模型。采用高斯密度函数在实践上是可行的。因为采用高斯函数在数学上容易处理。当缺少高阶统计量时,除了假定高斯密度外,没有更好的可以表示的函数形式。用一阶和二阶统计量完全可以描述高斯白噪声。第2章 MATLAB及GUI编程概述2.1 MATLAB简介作为具有科学计算、符号
21、运算和图形处理等多种功能的强有力实现工具,近年来MATLAB这一软件已得到了业界的普遍认可,应用领域已拓展到数值计算、数据处理、统计分析、工程等各个方面,在各大公司、科研机构和高校得到广泛应用,其自身也因此得到迅速发展,功能不断扩充。MATLAB 是一种高效的工程计算语言,它在数值计算、数据处理、自动控制、图像处理、神经网络、小波分析、金融分析等方面有着广泛的应用。MATLAB 系统不但提供大量涉及各个工程领域的工具箱来简化科学计算、工程设计和分析等工作,而且提供具有自身特点的编程语言,可以轻松地实现大量数据的分析、处理及显示任务。一般而言,用户总希望将数据或设计结果用图形来表示,以使数据的特
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计论文基于MATLAB GUI的Kalman滤波程序 毕业设计 论文 基于 MATLAB GUI Kalman 滤波 程序
链接地址:https://www.31ppt.com/p-4865454.html