关于卡尔曼滤波器的一个简单介绍
- 格式:doc
- 大小:304.50 KB
- 文档页数:5
倾角卡尔曼滤波-概述说明以及解释1.引言1.1 概述倾角卡尔曼滤波是一种用于测量倾角的方法,它结合了倾角测量与卡尔曼滤波原理。
倾角的测量在许多领域中都是非常重要的,例如航空航天、导航系统以及工业自动化等。
倾角的准确测量可以帮助我们判断物体的姿态、稳定性以及对周围环境做出合适的调整。
然而,由于当前倾角传感器本身存在一定的误差和干扰,因此需要采用合适的滤波算法来对倾角进行精确估计和校正。
在这方面,倾角卡尔曼滤波是一种被广泛应用的方法。
倾角卡尔曼滤波算法基于卡尔曼滤波原理,通过对倾角的测量数据进行预测和更新,以得到更加准确、稳定的倾角估计值。
它利用了传感器测量数据的统计特性和系统模型的动态特性,通过权衡预测值和测量值的不确定性来对倾角进行优化估计。
相比其他滤波算法,倾角卡尔曼滤波具有以下优势:首先,它能够有效地抑制传感器数据中的噪声和干扰,并能够适应不同程度的噪声;其次,它具有较高的估计精度和稳定性,能够准确地跟踪目标物体的倾角变化;最后,倾角卡尔曼滤波算法具有较快的收敛速度和较低的计算复杂度,适用于实时应用场景。
未来,倾角卡尔曼滤波在自动化控制、导航系统等领域具有广阔的应用前景。
随着技术的不断进步和创新,倾角卡尔曼滤波算法将更加成熟和精确,为各行各业提供更加可靠和准确的倾角测量方法。
同时,倾角卡尔曼滤波的应用也将得到进一步的拓展,为我们创造更多便利和可能性。
1.2 文章结构文章结构部分的内容如下:文章结构部分的目的是为了向读者介绍本文的大致结构和内容安排。
本文将按照以下方式进行组织和撰写:第一部分是引言,主要包括概述、文章结构和目的三个小节。
在概述部分,会简要介绍倾角卡尔曼滤波的背景和重要性,引起读者的兴趣。
在文章结构部分,将详细说明本文的结构安排,以便读者能够清楚地了解整篇文章的内容。
在目的部分,将明确本文的目标和意义,为读者提供一个阅读的导向。
第二部分是正文,主要包括倾角测量方法和卡尔曼滤波原理两个小节。
关于卡尔曼滤波器的一个简单介绍关于卡尔曼滤波器的一个简单介绍在实际生产过程中,我们经常需要使用某种仪器测量某一物理参数。
比如,用一台仪器测量大气中一氧化碳的浓度。
由于测量误差永远存在,使得这样两个问题非常突出,首先,是否存在某个计算方法,能够从含有误差的测量结果中获得比较接近真实值的结果;其次,如何证明这样的结果是最优的,也就是说有没有这样一种数学方法,经过其进行处理后得到的测量结果是最接近真实值的。
为了消除测量误差,人们首先想到的方法是取平均值。
通过对于同一物理量的多次测量,抵消可能存在的测量误差,从而得到真实值。
但是,通过生产实践,人们很快发现这样的测量方法并不是最优的。
如果参与平均值计算的数据量太小,就达不到抵消测量误差的目的,如果参与计算的数据量太多,不仅完全消除了可能的物理量变化,而且实现起来非常麻烦。
1960年,匈牙利数学家卡尔曼(Rudolf Emil Kalman,1930年出生于匈牙利首都布达佩斯。
1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位,1957年于哥伦比亚大学获得博士学位)在他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)中提出一种计算方法,后来被称为卡尔曼滤波器。
这种滤波器比较简单,但是对于绝大多数类似本文开头提出的问题,可以证明,它得出的结果是最优的。
卡尔曼滤波器的最大优势是它非常简单,非常容易实现。
故而在各领域广泛应用超过三十年。
下面简单介绍卡尔曼滤波器,为了便于阅读,尽量少使用数学公式。
下面的用词不是非常严格的。
假如,我们需要用一个温度计测量一个房间的温度。
每个1秒钟从温度计上读取一个数值。
假设这个房间的真实温度是25度。
由于温度计本身有测量误差,我们得到的测量值是围绕25度上下波动的一组数值。
“围绕”这一特性是符合我们的直观感受的。
卡尔曼滤波简介及其算法实现代码卡尔曼滤波算法实现代码(C,C++分别实现)卡尔曼滤波器简介近来发现有些问题很多人都很感兴趣。
所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。
现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。
因为这里不能写复杂的数学公式,所以也只能形象的描述。
希望如果哪位是这方面的专家,欢迎讨论更正。
卡尔曼滤波器– Kalman Filter1.什么是卡尔曼滤波器(What is the Kalman Filter?)在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。
跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。
1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。
1957年于哥伦比亚大学获得博士学位。
我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。
如果对这编论文有兴趣,可以到这里的地址下载:/~welch/media/pdf/Kalman1960.pdf。
简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。
对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。
他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。
近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
2.卡尔曼滤波器的介绍(Introduction to the Kalman Filter)为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。
卡尔曼滤波器介绍摘要在1960年,R.E.Kalman发表了关于递归解决线性离散数据滤波器的著名论文,从那时间起,由于在数字计算的大部分提高,Kalman滤波器已成为广泛研究和应用的学科,尤其是自动或辅助导航系统。
Kalman滤波器是一套数学等式,它提供了一种有效的以最小均方误差来估计系统状态的计算(递归的)方法。
它在以下几方面是非常强大的:它支持过去、现在、甚至将来估计,甚至在系统准确模型也未知的情况下。
本文的目的是提供一种对离散的Kalman滤波器的实用介绍。
这些介绍包括对基本离散kalman滤波器、起源和与之相关的简单(有形)的带有真实数字和结果的描述和讨论。
1、离散的kalman滤波器在1960年,R.E.Kalman发表了关于递归解决线性离散数据滤波器的著名论文,从那时间起,由于在数字计算的大部分提高,Kalman滤波器已成为广泛研究和应用的学科,尤其是自动或辅助导航系统。
关于kalman滤波器一般方法的友好介绍可以在〔maybeck79〕的Chapter.1中找到,但是更完整部分的讨论能在〔Sorenson70〕中发现,它还包括许多有趣的历史解释。
在〔Gelb74;Grewal93;Maybeck79;Lewis86;Brown92;jacobs93〕中有更多参考。
估值过程Kalman滤波器解决估计离散时间控制过程的状态X∈R n的一般性问题,定义线性随机差分方程其中,测量值Z∈R m,定义为随机变量W K和V K各自表示系统噪声和测量噪声,我们假定它们为相互独立的、白噪声且为正常概率分布在实际中,系统噪声协方差矩阵Q和测量噪声协方差矩阵R可能随过程和测量时间而改变,无论怎样,我们在这里假定它们是常量。
在差分方程(1.1)中,n×n阶矩阵A与前一时刻(K-1)和当前时刻K相关,这里缺少传递函数或系统噪声。
注意的是,在实际中,A可能随各自时刻改变,但这里我们假定其为常量,n×l阶矩阵R与非强制性输入U∈R l和状态x有关,在测量公式(1.2)中,m×n阶矩阵H 与状态及测量值Z K有关,在实际中,H可能随各自过程或测量时刻而改变,这里假定它们是常数。
卡尔曼滤波自适应滤波标题:卡尔曼滤波:智能自适应滤波算法助您尽享清晰生动的数据引言:在信息处理领域中,准确获取和处理数据是关键问题之一。
而卡尔曼滤波作为一种智能自适应滤波算法,不仅能够提供准确的数据处理结果,还能在复杂的环境中适应数据的变化,为我们的决策提供准确的指导。
本文将向您介绍卡尔曼滤波的原理、应用范围以及算法流程,帮助您全面了解并灵活应用这一强大的滤波技术。
1. 卡尔曼滤波原理卡尔曼滤波是一种基于贝叶斯定理的滤波算法,通过观测数据和系统模型来估计真实的状态。
其核心思想是将预测值和观测值进行加权平均,得到更准确的估计结果。
卡尔曼滤波算法的独特之处在于它能够适应环境变化,根据观测数据和预测模型的误差来动态地调整权重,从而提高滤波效果。
2. 卡尔曼滤波的应用范围卡尔曼滤波在各个领域都有重要应用。
例如在导航系统中,卡尔曼滤波可以用来估计车辆的位置和速度,从而提供准确的导航信息;在无线通信领域,卡尔曼滤波可以用来消除信号噪声,提高信号的可靠性和传输性能;在机器人技术中,卡尔曼滤波可以用来估计机器人的位置和运动轨迹,实现精确控制和导航等。
3. 卡尔曼滤波算法流程卡尔曼滤波算法包括两个主要步骤:预测和更新。
首先,根据系统模型和上一步的估计结果,预测当前的状态和误差协方差矩阵。
然后,根据观测数据和模型预测的值,通过计算卡尔曼增益来更新状态和误差协方差矩阵。
这个过程不断迭代,最终得到准确的估计结果。
4. 卡尔曼滤波的优势和指导意义卡尔曼滤波具有以下优势和指导意义:- 自适应性:卡尔曼滤波可以根据环境变化调整权重,适应不同的数据特征,提高滤波效果;- 实时性:卡尔曼滤波具有快速响应的特点,可以实时处理大量数据,满足实时应用的需求;- 精确性:卡尔曼滤波通过融合预测值和观测值,提供准确的估计结果,为决策提供可靠的依据。
结论:卡尔曼滤波作为一种智能自适应滤波算法,其在各个领域的应用范围广泛,并且具有自适应性、实时性和精确性的优势。
卡尔曼滤波卡尔曼滤波(Kalman filtering ) 一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。
由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
斯坦利施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。
卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerli ng (1958), Kalman (I960) 与Kalma n and Bucy (1961) 发表。
数据滤波是去除噪声还原真实数据的一种数据处理技术,Kalman滤波在测量方差已知的情况下能够从一系列存在测量噪声的数据中,估计动态系统的状态•由于,它便于计算机编程实现,并能够对现场采集的数据进行实时的更新和处理,Kalman滤波是目前应用最为广泛的滤波方法,在通信,导航,制导与控制等多领域得到了较好的应用•中文名卡尔曼滤波器,Kalman滤波,卡曼滤波外文名KALMAN FILTER表达式X(k)=A X(k-1)+B U(k)+W(k)提岀者斯坦利施密特提岀时间1958应用学科天文,宇航,气象适用领域范围雷达跟踪去噪声适用领域范围控制、制导、导航、通讯等现代工程斯坦利施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。
卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导—航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerling (1958), Kalman (1960)与Kalma n and Bucy (1961) 发表。
2定义传统的滤波方法,只能是在有用信号与噪声具有不同频带的条件下才能实现. 20世纪40年代,N .维纳和A. H .柯尔莫哥罗夫把信号和噪声的统计性质引进了滤波理论,在假设信号和噪声都是平稳过程的条件下,利用最优化方法对信号真值进行估计,达到滤波目的,从而在概念上与传统的滤波方法联系起来,被称为维纳滤波。
卡尔曼滤波的原理说明(通俗易懂)以下是为大家整理的卡尔曼滤波的原理说明(通俗易懂)的相关范文,本文关键词为尔曼,滤波,原理,说明,通俗易懂,尔曼,滤波,原理,说明,学,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。
卡尔曼滤波的原理说明在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。
跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!卡尔曼全名RudolfemilKalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。
1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。
1957年于哥伦比亚大学获得博士学位。
我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《AnewApproachtoLinearFilteringandpredictionproblems》(线性滤波与预测问题的新方法)。
如果对这编论文有兴趣,可以到这里的地址下载:/~welch/kalman/media/pdf/Kalman1960.pdf 简单来说,卡尔曼滤波器是一个“optimalrecursivedataprocessingalgorithm(最优化自回归数据处理算法)”。
对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。
他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。
近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
2.卡尔曼滤波器的介绍(IntroductiontotheKalmanFilter)为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。
但是,他的5条公式是其核心内容。
结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。
卡尔曼滤波卡尔曼滤波公式推导及应用摘要:卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。
它能够从一系列的不完全及包含噪声的测量中,估计动态系统状态。
对于解决大部分问题,它是最优、效率最高甚至是最有用的。
它的的广泛应用已经超过30年,包括机器人导航、控制,传感器数据融合甚至在局势方面的雷法系统及导航追踪等等。
近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。
关键字:卡尔曼滤波导航机器人一Kalmanl滤波器本质上来讲,滤波就是一个信号处理与变换(去除或减弱不想要的成分,增强所需成分)的过程,这个过程既可以通过硬件来实现,也可以通过软件来实现。
卡尔曼滤波属于一种软件滤波方法,基本思想是:以最小均方差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方差的估计。
二Kalman滤波起源及发展1960年,匈牙利数学家卡尔曼发表了一篇关于离散数据线性滤波递推算法的论文,这意味着卡尔曼滤波的诞生。
斯坦利.施密特(Stanley Schmidt)首次实现了卡尔曼滤波器,卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。
关于这种滤波器的论文由Swerling (1958)、Kalman (1960)与Kalman and Bucy (1961)发表.卡尔曼滤波是一种有着相当广泛应用的滤波方法,但它既需要假定系统是线性的,又需要认为系统中的各个噪声与状态变量均呈高斯分布,而这两条并不总是确切的假设限制了卡尔曼滤波器在现实生活中的应用。
扩展卡尔曼滤波器(EKF)极大地拓宽了卡尔曼滤波的适用范围。
卡尔曼滤波器介绍摘要在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法。
从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。
卡尔曼滤波器是一系列方程式,提供了有效的计算(递归)方法去估计过程的状态,是一种以平方误差的均值达到最小的方式。
滤波器在很多方面都很强大:它支持过去,现在,甚至将来状态的估计,而且当系统的确切性质未知时也可以做。
这篇论文的目的是对离散卡尔曼滤波器提供一个实际介绍。
这次介绍包括对基本离散卡尔曼滤波器推导的描述和一些讨论,扩展卡尔曼滤波器的描述和一些讨论和一个相对简单的(切实的)实际例子。
1 离散卡尔曼滤波器在1960年,卡尔曼出版了他最著名的论文,描述了一个对离散数据线性滤波问题的递归解决方法[Kalman60]。
从那以后,由于数字计算的进步,卡尔曼滤波器已经成为广泛研究和应用的主题,特别在自动化或协助导航领域。
第一章讲述了对卡尔曼滤波器非常“友好的”介绍[Maybeck79],而一个完整的介绍可以在[Sorenson70]找到,也包含了一些有趣的历史叙事。
更加广泛的参考包括Gelb74;Grewal93;Maybeck79;Lewis86;Brown92;Jacobs93]. 被估计的过程卡尔曼滤波器卡用于估计离散时间控制过程的状态变量n x ∈ℜ。
这个离散时间过程由以下离散随机差分方程描述: 111k k k k x Ax bu w ---=++ (1.1)测量值m z ∈ℜ,k k k z Hx v =+ (1.2) 随机变量k w 和k v 分别表示过程和测量噪声。
他们之间假设是独立的,正态分布的高斯白噪: ()~(0)p w N Q, (1.3) ()~(0)p v N R , (1.4)在实际系统中,过程噪声协方差矩阵Q 和观测噪声协方差矩阵R 可能会随每次迭代计算而变化。
但在这儿我们假设它们是常数。
关于卡尔曼滤波器的一个简单介绍
在实际生产过程中,我们经常需要使用某种仪器测量某一物理参数。
比如,用一台仪器测量大气中一氧化碳的浓度。
由于测量误差永远存在,使得这样两个问题非常突出,首先,是否存在某个计算方法,能够从含有误差的测量结果中获得比较接近真实值的结果;其次,如何证明这样的结果是最优的,也就是说有没有这样一种数学方法,经过其进行处理后得到的测量结果是最接近真实值的。
为了消除测量误差,人们首先想到的方法是取平均值。
通过对于同一物理量的多次测量,抵消可能存在的测量误差,从而得到真实值。
但是,通过生产实践,人们很快发现这样的测量方法并不是最优的。
如果参与平均值计算的数据量太小,就达不到抵消测量误差的目的,如果参与计算的数据量太多,不仅完全消除了可能的物理量变化,而且实现起来非常麻烦。
1960年,匈牙利数学家卡尔曼(Rudolf Emil Kalman,1930年出生于匈牙利首都布达佩斯。
1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位,1957年于哥伦比亚大学获得博士学位)在他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)中提出一种计算方法,后来被称为卡尔曼滤波器。
这种滤波器比较简单,但是对于绝大多数类似本文开头提出的问题,可以证明,它得出的结果是最优的。
卡尔曼滤波器的最大优势是它非常简单,非常容易实现。
故而在各领域广泛应用超过三十年。
下面简单介绍卡尔曼滤波器,为了便于阅读,尽量少使用数学公式。
下面的用词不是非常严格的。
假如,我们需要用一个温度计测量一个房间的温度。
每个1秒钟从温度计上读取一个数值。
假设这个房间的真实温度是25度。
由于温度计本身有测量误差,我们得到的测量值是围绕25度上下波动的一组数值。
“围绕”这一特性是符合我们的直观感受的。
也就是说虽然温度计上的读数在不停的变化,但是我们知道温度计上出现26度或24度的可能性要比出现30度或20度的可能性大。
这种特性在数学上被称为高斯分布。
当有很多因素影响测量结果,而每种干扰因素都不起主导作用时,测量的结果呈现高斯分布。
对于温度计来讲,制造工艺,空气扰动,我们读数时候的误差都可能影响测量结果。
所以,温度计的读取结果是符合高斯分布的。
高斯分布有两个参数,一个叫做期望,在这里可以等同于平均值,一个叫做方差。
方差反映了数据的集中程度。
比如一个温度计测量的结果分布在24到26度之间,另一个温度计测量结果在20到30度之间,显然,前一个温度计更好一些。
它的数据方差就比较小。
这里假设我们温度计的方差是3。
于是,温度计的测量结果就是期望是25,方差是3的一组数据。
另外,我们可以根据经验猜测一下房间的温度(就好像把自己当成一个人体温度计),比如,我们猜测房间的温度是23度,当然,我们自己猜测的结果是有方差的,我们假设这个方差是4,于是根据人的感觉,测量结果是期望是23,方差是4的一组数据。
然后,由经验我们知道房间温度变化不大,基本可以认为,这一秒的温度和下一秒的温度是相等的。
现在,在第1秒,我们有了两个值,一个是温度计上显示的数据,25。
一个是我们自己
根据感觉得出来的数据,23。
那么相信谁呢?这里有一个数学公式
2
2
22
3
34
g
k=
+
,可以算出
kg=0.6,于是25×0.6+23×(1-0.6)=24.2,这个24.2就是我们在第1秒得到的测量结果。
也就是说第1秒的温度是24.2度。
现在,我们进入了第2秒,这时,由于我们已经知道了第1秒的温度是24.2度,所以,
=,这里的4来自
3.0984
人体温度计的那个方差4。
于是,温度计的方差已经变成了3.0984。
在第2秒,我们从温度计上获得的读数是26度,方差是3.0984。
我们自己的感觉是22度,方差是4。
按照第1秒的计算方法,就能得到第2秒的温度值。
如此循环计算下去,就是卡尔曼滤波。
可见,卡尔曼滤波是这样一种计算方法,在两个测量值中取平衡,在第一秒,我们有60%相信温度计,40%相信自己。
但是随着计算的进行,这个平衡可以改变。
Kg被称为卡尔曼增益(Kalman Gain)。
它可以随不同的时刻而改变他自己的值。
为什么如此计算超出了本文的范围。
但是可以证明,随着时间的增加,Kg能够变化到一个合适的值,使得测量的结果最接近真实值。
卡尔曼滤波的程序实现以及仿真例子:
c1=23;假设我们的感觉是23
P1=10;初始参数,带来一个初始的kg
Q=1e-6;人体感觉的方差
R=1e-2;温度计的方差
for m=1:200 这里我模拟了两百个参数
P2=P1+Q;
c2=c1;假设室内温度不变
kg=P2/(P2+R);
c(m)=c2+kg*(b(m)-c2);b(m)代表在第m秒的温度计读数,c(m)是经过卡尔曼滤波
后得到的读数
P1=(1-kg)*P2;
c1=c(m);
end
仿真结果如上图所示,这里黑色线是由温度计测量出的结果,绿色线是真实值(25),红色线是卡尔曼滤波的结果,作为对比,蓝色线是五点平均的结果,也就是取过去的五个数值进行平均。
可以看出,由于存在测量误差,温度计测出的值(黑色)围绕真实值(绿色)上下波动。
直观的看,卡尔曼滤波结果(红线)比五点平均值滤波(蓝线)更接近真实值(绿线),显示出卡尔曼滤波比五点平均值滤波的结果更加优越。
数学上可以证明,卡尔曼滤波得到的结果比其它的滤波器都要接近真实值,是最优结果(在最小二乘意义下)。
几点提示
1,在开始的头几个数据,卡尔曼滤波与五点平均滤波都距离绿线比较远。
但是随着时间的推移,卡尔曼滤波的结果逐渐接近了绿线。
实际上,对于初始参数,
例如上面的25,23,3,4的选择要求并不严格。
在本文的条件下,卡尔曼滤波
结果都能接近真实值。
当然,如果参数选的好,接近的就比较快。
2,假设室内温度变化不大这一提法,被称为系统建模。
由于室内温度变化不大,得出程序中的C2=C1,也就是这一秒的温度等于前一秒的温度。
这就是系统
的数学模型。
这对于卡尔曼滤波非常重要。
如果这个房间有一个电暖器和一个
大空调,导致房间温度忽上忽下,再使用C2=C1这一数学模型就得不到正确
结果了。
这不是卡尔曼滤波的问题,而是系统建模的问题。
比如有一个锅炉给
房间加热,这时的模型就应该写作C2=N×C1,N是一个大于1的系数。
正确
的模型是卡尔曼滤波器正确工作的前提。
好在大气中的CO等等变化速度都不
可能太快,所以C2=C1这一模型一般还是正确的。
3,卡尔曼滤波要求误差是正态分布的。
也就是说,如果温度是25度,温度计的读数应该在25度上下,不能越来越高(对于测量误差不是正态分布的情况,人们
还设计出了改进的卡尔曼滤波器)。
4,程序中的P和Q的取值会直接影响到卡尔曼滤波器的性能。
滤波结果改变的比较快,它的稳态误差就比较大,如果要求稳态误差小,滤波器的快速性就不好。
这是一对矛盾的指标。
现在在工程上,P和Q的取值还是需要试凑的(即使卫
星的设计中也是如此)
几个进一步的例子
当然在这种测量条件下五点平均的结果也好不到哪去。
尔曼滤波的假设是房间温度不变。
当然,如果时间长一点卡尔曼滤波最终还是会收敛到真实
值上去的。
这里的Q=1e-6;R=1e-2;
同一仿真条件,将Q和R修改为Q=1e-4;R=1e-2;,系统的快速性明显提升,但误差扩大。
兼顾快速性和稳定性的Q,R参数在工程上基本只能试凑。
卡尔曼滤波的最大特点是程序简单,核心程序只有六行(可以缩减到五行),便于程序实现。
所以在测量领域有广泛应用。