




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科毕业设计基于嵌入式系统的Kalman滤波器的设计XXX20123119xxxx指导教师 XX 讲师学院名称电子工程学院 专业名称电子信息工程论文提交日期2016年5月11日 论文答辩日期2016年5月12日I摘 要20 世纪 60 年代,卡尔曼滤波方法由 R.E.Kalman 提出,此方法克服了经典 维纳滤波算法的局限。卡尔曼滤波是最优化的自回归数据处理算法,其滤波标准 是均方误差最小,从而实现递推估计。在时域内,此算法选用状态空间方法来设 计滤波器,能对多维系统和非平稳系统的随机过程进行估计。卡尔曼滤波器因其 自身的优点:递归运算、计算简单、 自适应性、 前瞻性等,能够对随机干扰下的
2、线性动态系统进行最优估计,因而有着广泛的应用。 卡尔曼滤波已经被广泛应用于导航、 制导、通信工程、故障诊断、语音信号处理、工业过程控制等许多领域。但在实际工程应用中,例如语音增强系统中, 往往存在着滤波发散以及不能满足实时性要求等问题。为此,本论文在综合分析导致卡尔曼滤波发散的诸多原因及其抑制方法,阐述并比较了卡尔曼滤波器几种常见的实现方式,确定利用FPGA硬件来实现卡尔曼滤波器设计。对卡尔曼滤波算法的公式进行分解处理,利用MATLAB来建立模型对包含过程噪声的信号进行滤波实验。通过模型仿真,验证了卡尔曼滤波器的有效性。关键词:卡尔曼滤波器 系统仿真 FPGA Kalman filter de
3、sign based on embedded systemXXX(College of Engineering, South China Agricultural University, Guangzhou 510642, China)Abstract: In the 1960 s, kalman filtering method by R.E.K alman proposed, this method overcomes the limitation of classical wiener filtering algorithm. Kalman filtering is the optimi
4、zation of regression algorithm of data processing, the filter criteria is minimum mean square error, so as to realize recursive estimate. In time domain, the algorithm selects the state space method to design filter, for multidimensional system and non-stationary random process. Kalman filter becaus
5、e of its own advantages: recursive computation, simple calculation, and adaptability, prospective, the linear dynamic system under random disturbance can be the optimal estimation, and thus has a wide application. Kalman filter has been widely applied in navigation, guidance, communication engineeri
6、ng, fault diagnosis, speech signal processing, industrial process control and many other fields. But in the practical engineering application, such as speech enhancement systems, often there is a filter divergence and can not meet the requirement of the real-time problem. Therefore, in this paper co
7、mprehensive analysis of the cause of kalman filtering divergence and its inhibition method, expounds and compares the kalman filter of several common implementation approach, determine the use of FPGA hardware to realize the kalman filter. Formula of kalman filtering algorithm decomposition, using M
8、ATLAB to build the model to contain process noise signal filtering experiment. Through the model simulation, verify the validity of the kalman filter.Key words: Kalman filter system simulation FPGA 目 录1前言11.1 卡尔曼滤波理论的提出、发展11.2 卡尔曼滤波研究现状41.3 卡尔曼滤波应用42卡尔曼滤波的基本理论52.1 数学模型及离散化63抑制卡尔曼滤波发散的方法73.1 发散原因73.2
9、 抑制发散的算法83.2.1 调节增益法83.2.2 误差协方差加权法103.2.3 限定记忆法113.2.4 各算法的优劣134 卡尔曼滤波器的FPGA实现134.1 FPGA简介134.2 用FPGA实现卡尔曼滤波器的设计流程154.3 FPGA仿真实现的建模175 MATLAB仿真及结果分析196 总结与展望21参 考 文 献23附 录25附录A 基于Verilog HDL的卡尔曼滤波器实现代码25附录B 卡尔曼滤波器MATLAB仿真程序代码28致 谢30华南农业大学本科生毕业设计成绩评定表IV1 前言近年来,新发展的嵌入式系统、控制和无线技术以及认知科学和人工智能可以使用小型的和负担得
10、起的无人机在军事和民用。此外,安全一直是关注的焦点,导航系统中扮演着越来越重要的作用。尤其是对飞机、船舶、汽车,嵌入式系统越来越受欢迎。卡尔曼滤波是一种递归估计线性系统,通过融合一个新的测量到的先验估计;得到一种改进的后验估计。然而,在感兴趣的大多数应用程序,系统动力学和非线性观测方程。对于这种情况,以前的估计和观测值状态一旦了解到,当前状态可以预测正确的当前观察状态,所以不需要记录历史上所有的值,也就是说,它促进估计的计算。因此,卡尔曼滤波器就在这种背景下发展起来。1.1 卡尔曼滤波理论的提出、发展 在信号的产生、传输、接收过程当中,必定会遭受外部环境扰动和内部设备噪声的影响,为获得需求信号
11、或状态的最有效估计,要排除无用干扰,这就叫做滤波。“滤波”的术语在无线电领域首先出现。由于随机信号功率谱的确定性,有用信号和无用信号必定不同,从而可以根据其差异来设计滤波器。 二战期间,攻击飞机的火炮控制系统被广泛研究,即如何准确的进行弹道估计,根据此应用背景,Wiener提出了维纳滤波理论,它通过分解功率谱来设计滤波器。经典维纳滤波算法是线性最小方差滤波方法。它可以在频率域有效地进行滤波器设计,但所需的维纳方程计算量过大,对存储空间要求高,对多变量、时变、非平稳随机信号的滤波计算也不适用。因此前述的这些局限性限制了维纳滤波的应用范围。在1979年,现代维纳滤波算法由捷克斯洛伐克科学家V. K
12、ucere提出。若想获得可实现的维纳滤波器,只需要计算Diophantine方程;它一能够进行多维信号和非平稳随机信号的处理。但滤波器仍然是非递归的,计算量大,不适合实时应用。 由于计算机运算速度和存贮量的限制,急迫需要能实时快速实现且存贮量小的滤波算法,满足以上这些要求的算法正是递推滤波算法。现代滤波理论在1960年开始形成;美籍科学家R.E.Kalman冲破了维纳滤波理论在工程应用中的限制,创造了适用于离散随机系统的卡尔曼滤波方法(简称为KF)。次年,此滤波理论再次被Kalman和R.S.Bucy扩展到连续时间系统中,从而构成完备的卡尔曼滤波估计体系。在时域内,卡尔曼滤波方法通过获取系统状
13、态的最小均方差,来估计拥有高斯分布噪声的线性系统。从这点来说,卡尔曼滤波与维纳滤波的基本原理是一致的,但它具有维纳滤波不具备的一些优点。第一,卡尔曼滤波是时域估计方法,它将最优滤波理论与状态空间的思想结合在一起,从而能够对时变系统、非平稳信号、多维信号进行处理;第二,选用递推计算,卡尔曼滤波的运算量很小,这样对存贮量要求不高,实时在线运算和计算机实现都非常容易。正是因为这些独特优势,卡尔曼滤波方法自提出以来就在工程实践中受到普遍应用。此方法最初成功的应用于实践就是阿波罗登月计划和设计C-SA飞机导航系统。 在实际应用中,卡尔曼滤波受到愈来愈多的重视和推广,对理论方面的研究也更加深入。计算发散现
14、象是因为计算时的舍入误差或截断误差不断积累所导致的。为了抑制计算发散引起的不良影响,最初由Potte:提出了平方根滤波算法;该算法被成功应用于阿波罗登月舱。经过Bierman, Carlson和Schmidt等人对平方根滤波的不断改进,UD分解算法阵被提出,其具有计算效率高、稳定性强的优点。Osehman提出的奇异值分解最优滤波,不仅数值稳定性较强,并且可靠性很高。这进一步完善了线性离散系统的卡尔曼滤波理论。 了解噪声的统计特性是实现卡尔曼滤波最优估计的前提,然而在实际工程中,这前提经常无法得到满足。首先,由于实验样本和其他约束条件的影响,对噪声的统计特性了解是不透彻或不准确的;其次,虽然掌握
15、了噪声的统计特性,但实际环境中的系统,在各种不确定性因素的影响下,噪声的统计特性是很容易改变的,具有很强的变化性。但传统的卡尔曼滤波器存在缺陷,无法自适应地应对噪声的时变特性。当噪声特性未知或发生变化时,滤波精度降低甚至发散的现象在卡尔曼滤波的应用中时有发生。为了解决此问题,众多研究者先后提出了多种不同的自适应卡尔曼滤波方法,如基于极大后验估计的噪声统计估计器动态偏差去祸估计、虚拟噪声补偿技术等。自适应方法比较理想的改善了卡尔曼滤波的鲁棒性,提高了滤波精度,实现了对包含有未知时变噪声信号的最优估计。 另外,经典卡尔曼滤波需要掌握系统精确的数学模型,但处于实际运动环境中,可能因为对物理系统的掌握
16、不够充分,导致所建立的模型与系统本身具有较大的差别;又或者由于各种不确定的外界因素,导致系统模型的参数、结构产生变动。以上提及的这些内部或外部的不确定性因素全部可能会降低卡尔曼算法的滤波精度,甚至导致滤波发散,从而丧失滤波的有效性。在建模不准确情况下,为了使卡尔曼算法发挥它滤波的最优性,一大批方法在1970年左右被陆续提出并投入应用,例如限定记忆滤波、衰减记忆滤波等。 随着状态维数的递增,卡尔曼滤波的运算量也会呈现三次方剧增。所以,面对维数较高系统的实时性和可靠性要求,传统卡尔曼滤波和集中式卡尔曼滤波都无法满足。为了克服这些问题,1979-1985年,基于并行技术的优势,Speyer和Ker等
17、人创造了分散滤波的方法;紧接着Carlson在此基础上构建出了联邦滤波理论。以先分散滤波、再全局融合为设计思想的联邦滤波器在很大程度上提升了系统的容错能力。 最初提出的传统卡尔曼滤波理论只适用于状态空间方程都保持线性的随机系统。为了将传统卡尔曼滤波理论推广到非线性系统中,在1960年至1970年的十年间,Bucy和Y.Sunabara等人对此展开了深入的研究和探讨。离散非线性随机系统的扩展卡尔曼滤波(Extend Kalman Filter,EKF)理论由此诞生。此算法的基本思想是将非线性状态空间方程的函数进行局部线性化,即把非线性函数展开为泰勒级数,并略去二次项及以上项,从而得到非线性系统的
18、线性化模型。之后根据传统卡尔曼滤波方法进行估计,所以说EKF的滤波效果是次优的。EKF仍然以卡尔曼滤波作为其基本结构,易于实现,被广泛应用于各种工程领域。考虑到EKF近似精度只有一阶,为了进一步提高EKF的滤波性能,二阶截断EKF、迭代EKF等改进算法相继被提出,但这些算法的运算量大大增加,实际的应用并不普及。 和经典卡尔曼滤波基本理论框架一样,EKF对系统建模也具有严格的要求,模型不确定性会引起滤波发散。为改善EKF的鲁棒性,根据正交原理,周东华等提出一种加权EKF算法,即强跟踪滤波器(Strong Tracking Filter,STF)并将STF成功应用于动态系统的故障诊断与容错控制领域
19、)。STF的基本原理是,对,进行加权,从而可以实时在线的调整Kk,强制输出的新息序列始终正交,从而使得EKF无论在何种情况下都可以保持较好的跟踪能力,有效克服滤波收敛性差易发散等问题。 尽管EKF易于实现,工程应用广泛,但EKF的近似精度很低,只有一阶。如果将EKF应用于非线性程度严重的系统,其滤波精度也会有所降低。EKF只有在高斯的非线性系统可以比较理想的转化为高斯线性模型的情况下,才能够发挥其功效。另外,EKF需要计算非线性函数的雅克比矩阵,要求状态函数和量测函数连续可微。对于高维系统来说,雅可比矩阵的求解过程非常繁琐,极易造成EKF数值稳定性差,甚至出现计算发散现象。为了克服EKF的以上
20、缺点,S.J.Julier和J.K.Uhlmann根据“相比于近似非线性函数;近似概率分布更加的容易,这个出发点,创新吐提出了无迹卡尔曼滤波(Unscented Kalman Filter,UKF)。顾名思义,与EKF类似,UKF仍然继承了卡尔曼滤波器的基本结构,不同之处在于UKF用Unscented变换取代了EKF中的局部线性化。UKF依然以随机系统状态是高斯分布做为前提条件,然而取消了系统必须线性化的限制。同时,UKF不再需要求解雅可比矩阵,因此状态方程和量测方程不必是连续且可微的,它甚至能应用在不连续系统中。之后,Lefebvre等人对UT变换进行了全新解释,能实现线性化的离散随机系统。
21、随机线性回归利用系统分布在在状态空间的信息点,能够以良好效果阐述UT变换的特点,且剖析了无需求导信息的UKF比EKF精度高的机理。这是和局部线性化的最大差异。 从数值积分的观点出发,Ito等人提出了中心差分滤波器(Central DifferenceFilter,CDF),几乎同时,M.Norgaard等人通过Stirling多项式插值公式的近似来计算非线性函数的多维积分,创造了分开差分滤波器(Divided DifferenceFilter,DDF)。随后,武元新等人)通过理论分析指出,DDF和CDF的实现都是以函数拟合的理论为基础的,简单来说就是被积函数被函数序列近似。由于DDF和CDF在
22、本质上是一致的,有异曲同工之妙,因此R.V.Merwe等人统一将创门称为中心差分卡尔曼滤波器(Central Difference Kalman Filter,CDKF),并给出了CDKF的滤波递推公式。CDKF中的多项式插值公式与UKF中的UT变换对称采样策略是等价的,差异性仅仅体现在如何表达采样点权值及预测协方差,故Merwe等人采用了一个统一的滤波框架来描述UKF和CDKF,称其为Sigma点卡尔曼滤波器(Sigma Points Kalman Filter,SPKF)。之后,针对SPKF滤波器存在计算发散的问题,Merwe等人将OR分解和Cholesky因子更新引入到滤波器预测更新中,
23、提出了平方根SPKF算法,提高了SPKF的数值稳定性和计算效率。1.2 卡尔曼滤波研究现状这十年来,鲁棒滤波算法成为研究热点之一,它是将鲁棒控制的理论应用于滤波算法中而得来的,H ¥鲁棒滤波算法是其中的典型代表。该理论虽然降低了滤波器的平均估计精度,但提高了滤波器应对模型误差和外部扰动的鲁棒性。随着研究的深入,卡尔曼滤波算法有了更加广泛的发展,如卡尔曼滤波算法与神经网络、遗传算法的结合、卡尔曼滤波算法与状态反馈的结合,卡尔曼滤波算法与模糊控制理论的结合。由于非线性随机 动力系统大多数是非线性和(或)非高斯,因此如何找到方法,从连续测量信息中可以在线检测,实时估计和预测系统的状态和误差
24、,是非线性滤波需要解决的 问题。近年来发展的贝叶斯滤波、无迹卡尔曼滤波(UKF)、中心分布卡尔曼滤波 (CDKF)和粒子滤波(particle filter,PF)等滤波方法的提出为非线性滤波问题的解决 提供了有效途径。1.3 卡尔曼滤波应用伴随着计算机运算速度的提高,因卡尔曼滤波算法在估计中的显著优势,它无论在军事上还是民用上的应用越来越普遍,如工业控制系统、雷达目标跟踪、火箭导航与制导系统、多传感器融合、定位系统、通信与信号处理、 石油地震勘探、工业故障诊断、智能机器人和经济金融等等领域。在经济学方面,它被应用于经济数据预测;在军事方面,它已被应用于雷达跟踪飞行目标,被动跟踪空中和空间,通
25、过地图匹配来定位目标导航系统;在交通管制方面,它被应用于水路、陆路的视频监控,对车辆周转量的预测和对车速的估计;在图像处理方面,它应用于盲图像恢复等;它还用于机器人的全局定位;在无线信号领域它被用于信号解调、多用户检测和衰落信道中空时编码的估计与检测;在语音信号处理。虽然卡尔曼滤波算法的应用领域很广泛,但是在实际的工程应用中,还存在种种的问题和瓶颈,这需要众多研究者不断改进算法来适应卡尔曼算法在实际中的应用。2 卡尔曼滤波的基本理论卡尔曼滤波是线性无偏最小均方误差递推滤波器。与维纳滤波相比,在平稳条件下,它们所得到的稳态结果是一致的。然而,它们解决的方法有很大区别。维纳滤波是根据全部过去的和当
26、前的观察数据来估计信号的当前值,它的解是以均方误差最小条件下所得到的系统的传递函数或单位样本响应的形式给出的,因此称这种系统为最佳线性过滤器或滤波器。而卡尔曼过滤是用前一个估计值和最近一个观察数据来估计信号的当前值,是用状态方程和递推的方法进行估计的,其解是以估计值形式给出。因此称这种系统为线性最优估计器或滤波器。卡尔曼过滤中信号和噪声足状态方程和测量方程表示的,因此设计卡尔曼滤波器要求已知状态方程和测量方程。标准卡尔曼滤波器是在最小均方误差准则下的最佳线性过滤器,就是说,它使系统的状态向量和状态向量的预测值之间的均方误差达到最小,它用状态方程和递推方法进行估计,它的解是以估计值形式给出的。由
27、于它能够对物体的运动建立某种模型,因此在跟踪中经常被用到。当观测方程不是线性时,上述标准卡尔曼滤波方程不再适用,但是如果状态估计值偏离真实值不太远,可以将观测方程局部线性化,得到扩展卡尔曼滤波器 (EKF)。由于EKF使用泰勒展开的一阶近似,跟踪一段时间之后,经常会引起很大的参数估计的累计误差。为此,Unscented Kalrnan Filter (UKF) 不再近似估计观测方程,它仍然用高斯随机变量表示状态分布,不过是用特定选择的样本点加以描述。与EKF相比,UKF的误差仅仅出现在二阶以上的矩中,而且计算也简单,而EKF仅仅精确到一阶矩。总的来说,卡尔曼滤波是一个线性的估计器,能够有效地跟
28、踪物体的运动和形状变化,但它基于两个假设:一是背景相对干净;二是运动参数服从高斯分布。由于上述两点的限制,卡尔曼滤波的适用范围有限,对于复杂的多峰情况,还得求助于其它方法。完整的卡尔曼滤波理论既能处理线性离散时间系统,也能处理线性连续时间系统。状态方程包括状态初始值和系统噪声,测量方程包括测量噪声,利用这两个方程可以清晰表达随机线性离散系统的数学模型。数学模型也可以直接在计算机上实现。若系统是随机线性连续的,则能够通过对状态方程和观测方程进行离散化来得到离散时间的模型。2.1 数学模型及离散化卡尔曼滤波算法初次被提出时,就是以线性离散系统为基础的。它最突出的特点就是能够直接在计算机上完成,并且
29、不需要存贮大批历史数据,因此离散卡尔曼滤波算法在实践中的应用遍及各领域。虽然在实际应用中多数系统都是连续的,但只要对其进行合理的离散化,就能利用最初的离散卡尔曼滤波算法进行最优估计。在工程应用中,假定线性连续系统的状态方程和测量方程如下式: (2-1)式中,X(t)是系统 n 维估计状态变量,A(t)是系统 n´ n维系统矩阵,B(t)是 n´ p维干扰输入矩阵,W(t)是 p 维白噪声向量;Z(t)是系统m维的测量变量,H(t)是m´ n维测量矩阵,V(t)是m维测量噪声序列;W(t)和V(t)互不相关或相关的高斯白噪声。对连续系统的状态方程和测量方程做离散化处
30、理,令采样间隔为Dt 和,得到: (2-2)最终得到了随机线性连续系统离散化的表达式: (2-3)由上面的推导可知,线性连续系统离散化的实质,就是根据连续系统的系统状态矩阵计算出离散系统的转移矩阵,并根据连续系统的W(t)和V(t)分别求解离散系统的Wk和Vk 。3 抑制卡尔曼滤波发散的方法3.1 发散原因在实际工程应用中,由于各种条件限制,该滤波算法经常导致被估计的信号产生非常规的误差,乃至滤波无法收敛,产生发散。此现象严重影响信号处理的滤波效果。综合以前的研究可知,模型误差是引起滤波发散的最主要原因。对此,前人展开了众多研究,如调节增益法、 预测误差协方差加权法、限定记忆法(N.A.Car
31、lson,1973)、自适应卡尔曼算法(S.F.Schmidt,1970)等。调节增益法和限定记忆法计算简单但滤波精度不高;自适应卡尔曼算法计算精度最高但计算量过大;而加权法则使得计算量少和计算精度高的要求达到了较好的平衡。卡尔曼滤波器是在精确掌握干扰信号特性和数学模型的基础上,才能发挥最 优估计。在工程实践中,因为实际背景的复杂性,往往不能满足以上的标准条件。 引起发散的原因主要有以下两方面:一是由于对系统的认识不全面和不精确,所 建数学模型与实际物理过程有明显差异;或者无法全面认识模型中的系统噪声或测量噪声特性,无法提供滤波所需要的精确噪声特性统计量。 卡尔曼滤波器是在精确掌握干扰信号特性
32、和数学模型的基础上,才能发挥最优估计。在工程实践中,因为实际背景的复杂性,往往不能满足以上的标准条件。引起发散的原因主要有以下两方面:一是由于对系统的认识不全面和不精确,所建数学模型与实际物理过程有明显差异;或者无法全面认识模型中的系统噪声或(和)量测噪声特性,无法提供滤波所需要的精确噪声特性统计量。以上不确定性成分统称为模型误差,其降低滤波精度,易引起发散。二是计算误差,即滤波在实现时,由于硬件平台字长有限,致使舍入误差和截断误差不断累积、传递,继而致使估计误差协方差渐渐丢失正定性·对称性,最后求解的K、失真引起滤波发散,此类归为计算发散。本章主要阐述由于模型误差和计算误差引起的滤
33、波发散及其抑制方法。 卡尔曼滤波递推估计过程可以分为三个阶段: 初始阶段为粗估计阶段:开始的前几步递推求解中,因为初始值选择的盲目性,求取的估计值可能偏离较大。 第二阶段为强力估计阶段:由于,的模经过几次递推之后变大,也随之增大,因此在迭代中能够增大量测信息的影响作用,强力修正估计值,使其以较快速度达到最优。 最后为微估计阶段:随着时刻的递增,的模趋于某常值,进而导致也渐渐趋于某常值,此时量测信息对最优估值的影响作用变得很弱。开始的前几步递推求解中,因为初始值选择的盲目性,求取的估计值可能偏离较大。由于在整个计算过程中预测误差协方差、增益和估计误差协方差只包含验前信息,得不到实时测量信息的修正
34、,并且在计算过程中引入误差,使得新测量值在状态估计中的影响比例下降,旧测量值的影响比例相对上升,这是引起滤波发散的本质原因。3.2 抑制发散的算法为了抑制模型误差引起的滤波发散,研究人员提出了许多方法。各种抑制滤 波发散的方法,其实质都是重视新测量值在当前滤波中的地位,典型的措施有:调节增益法;建立对加权的算法;限定记忆法;自适应卡尔曼算法等。具体来说,就是适当提高 k 时刻的加权系数,从而加强新测量信息的修正作用,并降低旧测量值的影响。以上方法的目的是让滤波快速收敛,但也因此失去了滤波的最优性。在实际应用中,工程是极其复杂的,造成滤波发散的原因并不单一。 若滤波无法收敛、产生发散,则可根据实
35、际情况和各个方法的优势恰当地使用上面的某一种抑制方法,或者将它们组合起来使用,例如加权法与自适应算法的混合算法(田宠,王兴亮,卢艳娥,2012),加权法与限定记忆法的结合算法(刘庆刚,陈林元,2012)等,以达到最好的滤波效果。接下来,重点阐述以下算法。3.2.1 调节增益法在对状态变量的估计过程中,影响着新测量值在状态 估计过程中的权重。越大,则在滤波时所起到的影响作用越大;越小,则的影响作用越小。调节增益的基本思想就是限制的持续减小, 以避免滤波过程忽视测量序列的作用。Takahisa Kobayashi,Donald L Simon 和Jonathan S Litt提出了限定下界增益法,
36、即增益保持正常的递推公式计算,当发散判据判定发散 后就迫使不再下降而保持为下限值,使它不随 k 的无限增长而趋于零。图 1 增益自适应卡尔曼滤波流程图为保证卡尔曼滤波的自适应性和最优性,产生了一种增益自适应的卡尔曼算法。其流程如图1 所示。下图2 是在整个滤波过程中的变化图。由图可知,在滤波过程中,当逼近临界增益时,可实现自适应的调节。此算法,不仅抑制了滤波发散、提高了滤波精度,并且实现了滤波的自适应,在工程实践中具有较高的使用价值。调节增益法都是对进行限定或者调节,借此提高新测量值在状态估计中 的权重。它的显著优点就是计算过程简单化,计算量大大减少。但此类方法确定的常值或者下限值只能依靠经验
37、值, 不够精确,而且对测量值的敏感性太高、依赖性太强,这些弊端还有待改进。图2 增益变化图3.2.2 误差协方差加权法和能够反映有用及无用信息在和中的比例,所以卡尔曼滤波器在求解时能依据所占比例的不同来自动确定对和的使用比例。因此可知,要减小和的影响,增大新测量值的影响,可以通过调节和k 的值来实现。如果增大和 ,同时减小的值,则此刻的也逐渐增大。 此方法间接遏制的持续减小。误差协方差加权法的最简单形式和经典卡尔曼滤波方程的不同之处(栗世涛,肖永刚,孙业功,2010)在于计算式的右端增加一个常值系数S(S ³ 1),即 (3-1)加权法的算法流程图如图3所示。 增加常值系数S 后,实
38、现的膨胀,进而使的模变大,因此加重了新测量信息在下一迭代过程中的影响,减弱了模型对滤波结果的限制,这也是遏制滤波发散的一个可行途径。加权法的加权系数单一, 所以不能保证滤波最优性。假定要求更高的精 度,可以考虑使用矩阵形式替换单一形式, 给目标以不同的加权效果, 从而达到工程中要求的精度。图3加权卡尔曼滤波流程图3.2.3 限定记忆法卡尔曼滤波方程求解时,要利用前 k 个量测值,×××,先使用前k -1 个量测值求取,然后在的基础上使用获得,从而建立起与间的线性关系这表示卡尔曼滤波是永久保留对量测信息的记忆的,由可知,k 时刻之前的全部测量值 (i = 1,2.,
39、 k -1)是求取 k 时刻状态估计值的前提条件。限定记忆法就是在求解的最优估值时,完全忽略 k - N +1时刻前的量测数信息滤波值的影响,只利用距离 k 时刻最近的 N 个测量值, ,。当 k = aN (a =1,2,3,.),对初值重新初始化,随后再次进入限定记忆卡尔曼算法的递推滤波中,其流程图如4 所示。该方法的滤波效果与加权滤波法相当,但计算略复杂。图4限定记忆法卡尔曼滤波流程图基于现有的限定记忆的卡尔曼滤波(韩华,刘仁溥,2001)加进状态噪声,且实现了此方 法的改进算法,(韩华 ,刘仁溥,2001)扩展了此方法的适用领域。刘庆刚,陈林元总结对比了加权法和限定记忆法的异同,利用阈
40、值把成功结合了以上两种方法,创造了一种新的衰减限定记忆算法(刘庆刚,陈林元,2012)。此算法不仅具有更高的滤波精度,而且能自适应调整算法所需观测数据数目。限定记忆法的难点在于记忆长度 N 的选取,其与信号模型的类型有关。当卡尔曼滤波发散严重,信号模型选用的 k 值不要太大,但也不要过小,因为会增加计算量;当信号模型使得卡尔曼滤波发散弱时,选取的 k 值可较大,与前一种情况比较计算负荷不会增加。因此,在实际工程中,要根据不同模型选取不同的记忆长度 N 。3.2.4 各算法的优劣这三种滤波方法各有优劣,现将这三种方法的运算精度、运算复杂度、逻辑思想及适用领域进行总结对比,如表1所示。由表1可知,
41、滤波精度的提高总是以运算复杂度的增加为代价,而预测误差协方差加权法可以在计算量少和计算精度高两个要求间达到较好的平衡;这对在工程实践中如何抑制滤波发散有实际指导意义。下面就选定预测误差协方差加权法作为本文抑制滤波发散的方法。表1 三种方法的特点总结(以数表示其程度)调节增益法加权法限定记忆法运算精度运算复杂度 逻辑思想通过增益控制陈旧量测数据的影响对误差协方差加权,进而通过影响增益值,来控制陈旧测量值的影响实时在线估计过程噪声和测量噪声,修正系统模型适用领域要求精度不高,但运算速度高的领域要求精度和运算量达到平衡的领域无法获得准确的噪声模型,同时要求精度较高的领域4 卡尔曼滤波器的FPGA实现
42、4.1 FPGA简介现场可编程门阵列,全称为Field Programmable Gate Array(FPGA),是继PAL、GAL、EPLD之后发展出来的器件;原有可编程器件门电路一直处在有限的状态,无法实现更多更完善的电路,FPGA在一定程度上克服了这样的缺点,不仅如此,也解决了ASIC中定制电路的不足。接下来说明几条FPGA的特点:1) FPGA可以作为电路的中试样片。2) 无需进行投片生产就可以在FPGA上实现ASIC电路。3) 与ASIC设计相比,拥有更短的设计周期、更实惠的开发费用,同时在其上实现功能设计的风险也更低。4) 触发器和IO引脚资源丰富。5) CHMOS工艺的使用使得
43、FPGA的功耗很低,而且还可以与CMOS和TTL电平兼容,在提高系统集成度和可靠性有着良好的应用前景。通信领域一直是不断使用新科技的一个非常具有实力的领域,FPGA的初期应用就是在通信领域中被应用;不过现在FPGA技术应用最为广泛的产业是信息产业,信息产业中从民用到军用领域有很多都应用了FPGA技术;航空航天领域、日常生活中汽车、医疗、广播、电子行业中测试测量、消费电子、工程领域中工业控制等行业中处处都有着FPGA的影子,不仅如此,生活中很多也被FPGA的应用占据着,FPGA的发展不仅仅是成果性的结果,而且它还为视频图像处理、数字信号处理和高性能计算等领域提供了一个良好的应用平台,这些都是FP
44、GA发展迅速的原因,也是与FPGA相关联的领域发展迅速的原因,它们相辅相成,共同发展。构成 FPGA 芯片的基本单元包括:输入输出单元(IOB),基本逻辑单元(CLB),完整的时钟管理,嵌入块式 RAM,丰富的布线资源,内嵌的底层功能单元和内嵌专用硬件模块,如图5所示,其中,上述的基本单元都是可编程的(马涛,陈娟,单洪,2006)。Xilinx、Altera、Lattice 这三大公司负责大部分的 FPGA 生产和设计。图5 FPGA 芯片的内部结构 4.2 用FPGA实现卡尔曼滤波器的设计流程要在FPGA上实现卡尔曼滤波,首先分析编写程序的流程。主要思想就是基于到时刻 k 的观测量(,.,)
45、,求状态的最优估值,根据和在时间上存在的不同对应关系,可以将其分为卡尔曼滤波器、预测器或平滑器。把公式(2-1)的线性离散随机系统做为一个例子,假定是在时间段k0, k1内获得的测量值,为变量的状态估计值,则1) k = k1时,根据以往直到此刻的测量值来估计目前的状态,则对的估计称为滤波。这就是卡尔曼滤波器,主要用于实时控制随机系统。2) k > k1时,根据过往直到此刻的测量值来预测将来的状态,则对的估计称为预测。这就是卡尔曼预测器,主要用于预测并实时控制随机系统。3) k < k1时,根据过往直到此刻的测量值来估计过往的历史状态,则对的估计称为平滑。这就是卡尔曼平滑器,主要通
46、过分析实验数据来评估系统。 在以上的这三类问题中,预测为滤波的前提,而滤波为平滑的前提。这个关系在卡尔曼滤波方程中也有所体现。虽然卡尔曼理论具有有良好的滤波效果,但由于在工程应用中此滤波算法的计算量很大或者实时性较强,通用集成电路和 DSP 器件难以满足卡尔曼滤波器的实现要求;但是利用 FPGA 实现此算法,由于其并行处理数据,可大大提高运行速度,成功克服计算量和实时性不能两全的缺陷。FPGA的并行机理,非常适合类似滤波性质的数字信号处理。此外,FPGA具有很高的灵活性和良好的抗干扰能力,使 FPGA 系统修改、测试、升级都很容易。利用 MATLAB来对卡尔曼滤波器建立模型,然后经过模型仿真、
47、功能仿真、时序仿真,最后成功下载至 FPGA 上。设计流程如图6所示。图6 FPGA 芯片的设计流程(1) 分频模块的设计分频模块是对外部时钟进行分频设定,得到系统内部AD控制模块和卡尔曼滤波模块所需要的时钟,并为AD芯片提供时钟信号基准。(2) AD控制模块 采用ADS8364芯片对输入信号数据采样。ADS8364是TI公司的一款高速、低功耗、6路模拟输人、16位并行输出的模数转换器。ADS8364与FPGA的接口连接如图7所示。三个保持信号(HOLDA,HOLDB,HOLDC)启动指定通道的转换。A/D转换结果为16位,最高位为符号位,数据输出方式很灵活,分别由BYTE ,ADD与地址线A
48、2,A1,A0的组合控制。当转换结果被存人输出寄存器后,引脚EOC的输出将保持半个时钟周期的低电平。通过置RD和CS为低电平可使数据读出到并行输出总线。结合ADS8364的工作时序,设计AD采样控制模块,为ADS8364采样提供所需的驱动信号,并从ADS8364中读取转换输出数据,同时为后续电路提供相应的控制信号。图7 ADS8364与FPGA连接示意图4.3 FPGA仿真实现的建模卡尔曼滤波器给出了一个应用状态变量概念的公式。而且,不同于其他的递归滤波器结构,它只需要记住一步的估计结果。考虑过程噪声和测量噪声两个随机变量的状态模型称为随机状态模型。用下面两个方程描述离散状态模型:1)过程方程
49、: (4-1)2)输出方程: (4-2)3)过程状态估计:一个是两个采样周期之间的状态转移阶段,这个阶段叫做 TU(Time Update)阶段;另一个是获得 y (k )的时刻过程状态更新阶段,这个阶段叫 MU(Measurement Update) 阶段。4)噪声过程:卡尔曼估计滤波器可以根据控制信号 u (k ) 和测量输出,来估计过程输出 y (k)和状态变化 x(k ) 。需要的先验知识包括噪声 w (k ) 、v (k ) 的方差,以及如果不为零时它们的互相关性。在不考虑控制作用的情况下,假设线性离散系统的方程为: (4-3)式中,是系统 n维的被估计状态变量,是系统维的一步状态转
50、移矩阵,是 p´ n 维系统噪声输入矩阵,是 p 维系统过程噪声;是系统 m 维的测量 变量,是 n´ m 维测量矩阵,是 m 维测量噪声矩阵,下标 k 表示 k 时刻。系统噪声与测量噪声的统计特性,假定如下: (4-4)为非负定矩阵,代表系统的过程噪声的方差阵;为正定矩阵,代表测量噪声的方差阵。如果被估计状态变量和测量变量满足离散系统方程的约束,系统过程噪声和测量噪声满足式的统计特性,则的最优状态估计可按以下方程求解。状态变量的最优预测值: (4-5)预测误差协方差阵: (4-6)增益矩阵: (4-7)估计误差协方差阵: (4-8)状态变量的最优估计值: (4-9)式(4
51、-5)到式(4-9)便是线性离散系统的卡尔曼滤波方程。只要给定初值和,根据时刻 k 的测量值,就可以递推计算得到时刻 k 的状态估计值。卡尔曼滤波算法的基础是反馈控制。此算法包括两个回路。在卡尔曼滤波的经典方程中,可以明显看出其分为两大步骤:先预测,再修正,从而构成完整的滤波过程,如图8所示。由此,卡尔曼算法也被分为时间更新和测量更新两部分。图8 卡尔曼算法更新过程5 MATLAB仿真及结果分析具体仿真程序见附录B。下列图9、图10分别为控制信号、模拟过程噪声波形图。图9控制信号图10模拟过程噪声程序开始时,首先加入系统当前状态值、初始状态估计值、初始状态协方差,通过最佳增益矩阵预测系统的现在
52、状态,之后结合系统现在状态的测量值,就可以得到现在状态的最优化估计值,更新现在状态的协方差,而后将最优估计值和观测数据分别输出,继续更新现时刻状态的协方差,使算法可以自回归的运算下去。图11有过程噪声的响应曲线 从图11可以看出,在存在过程噪声的情况下,卡尔曼滤波器的滤波效果较好。所以,这样的过程避免了使用昂贵的传感器或者可以在测量比较困难或有噪声污染时使用。图12是针对某种随机输入信号的输出响应曲线,及误差比较。图12 输出响应及误差曲线从图12可以看出,卡尔曼滤波器实现的效果大致令人满意,误差在可以接受的范围内波动。信号突然变化的曲线是一步出现上下波动或有毛刺。然而,卡尔曼滤波器进行处理之
53、后后变得光滑,基本可以而达到理想的目标。卡尔曼滤波由于其在求解时不需要贮存大量的观测数据,并且当得到新的观测数据时,可随时算得新的参数滤波值,便于实时地处理观测成果。因此,卡尔曼滤波被越来越多地应用于动态数据处理中,尤其是 GPS 动态数据处理,惯性导航等。6 总结和展望 在线性高斯条件下,卡尔曼滤波算法以平方误差的均值达到最小为准则,对离散系统提供最优估计。它是一种最优化的自回归数据处理方法,能够根据信号的过去状态,高效地估计信号的当前状态,并预测信号的未来状态。对于大部分问题,卡尔曼滤波的解决方案是最佳的,因此广泛应用于导航制导、目标跟踪、工程控制、信号处理等多个领域。 在前人研究工作的基
54、础上,本文着重对抑制卡尔曼滤波发散的方法、卡尔曼滤波算法的 FPGA 实现展开相关研究。现将本文所做的工作总结如下: 阐述随机线性离散系统的数学模型及连续系统的离散化,简单介绍卡尔曼滤波器、平滑器和预报器,重点介绍卡尔曼滤波基本方程,并总结卡尔曼滤波算法的特征和注意事项。这些基础理论知识是进一步深入研究的基础。 讨论卡尔曼滤波存在的发散现象及发散原因,总结抑制因模型误差导致滤波发散的四类常用方法,即调节增益法、加权法、限定记忆法和自适应卡尔曼法,并分析各方法的优劣,选择可在滤波精度和运算量达到平衡的加权法,并提出一种精度更高的可变加权法,实验证明该可变加权法具有可行性和有效性。 比较卡尔曼滤波
55、算法的传统实现方法和 FPGA 硬件实现,证明 FPGA 硬件实现的优越性。通过分解算法方程式,并结合MATLAB来建立卡尔曼滤波器模型,最后在 FPGA 成功实现。 自从提出以来,卡尔曼滤波算法就广泛应用于各个领域。但正是因为其应用的广泛性,也决定了此算法的长足性。本文对卡尔曼滤波算法的研究虽然获得部分成果,但仍有许多问题需要进一步的解决,相应的后续工作可以在以下几方面继续展开: 保证卡尔曼滤波算法最优性的一个先决条件是建立准确的系统方程和量测方程,这要求清晰了解系统的模型。偏离理想的系统模型或者动态模型误差在滤波时未模型化,这都必然会对滤波结果造成影响。另外,如何检测并修复模型误差,以使模
56、型最佳。这都仍有待进一步的研究。 保证卡尔曼滤波算法最优性的另一个先决条件是正确描述系统噪声和量测噪声的统计特性。卡尔曼算法中要求两噪声都是白噪声且互不相关,但在实际应用中,系统噪声和量测噪声极有可能不是白噪声或二者相关。即有色噪声或者相关噪声条件下的卡尔曼滤波算法是可以继续加深研究的热点。 虽然传统卡尔曼滤波算法已被成功应用于各领域,但传统卡尔曼滤波算法仅适用于线性高斯系统。在实际的工程环境中,系统不经常是线性高斯的,可能是非线性的或者非高斯的。对于这类系统,改进的卡尔曼滤波算法,如扩展卡尔曼滤波器、粒子滤波器等具有更重要的应用价值和理论价值,将成为下一步的研究重点。30参 考 文 献范跃祖,张轶男,马浩凯.BP/GA混合算法在简易组合导航系统中的应用fJl.北京航空航天大学学报,2005,31(5):535-538.冯刚,吕茂庭,覃天等.基于MATLAB的卡尔曼滤波仿真研究J.电子产品可靠性与环境
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省淮南市潘集区2024-2025学年九年级上学期期末化学试题(含答案)
- 清朝领导考试试题及答案
- 市场经济学试题及答案
- 管理沙盘面试题及答案
- 2019-2025年军队文职人员招聘之军队文职管理学与服务提升训练试卷A卷附答案
- 2019-2025年军队文职人员招聘之军队文职管理学题库附答案(典型题)
- 烟草公司2025招聘考试全真模拟笔试试题(综合能力测试卷)和答案解析
- 鼻饲操作及胃管误入气道案例分析培训课件
- 房产税务知识培训课件
- 钻石专业知识培训课件
- 2025年湖南铁路科技职业技术学院单招职业技能测试题库含答案
- 2025年上海青浦新城发展集团有限公司招聘笔试参考题库含答案解析
- Deepseek 学习手册分享
- 四年级组数学教学质量提升计划
- 园林绿化企业的职能与工作流程
- Unit 2 Expressing yourself Part A Lets learn Listen and chant(说课稿)-2024-2025学年人教PEP版(2024)英语三年级下册
- 水利水电工程(水电站、泵站)运行危险源辨识与风险评价导则
- 2025年中煤集团新疆能源有限公司招聘笔试参考题库含答案解析
- 妊娠期糖尿病患者的个案护理
- cmis北京市中小学学籍管理云平台
- 小学生播音员课件
评论
0/150
提交评论