公司动态返回
发布时间:2019-07-17 10:28:18 阅读:17577
简朴来讲,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处置惩罚算法)”。对于在解决很年夜部门的问题,他是最优,效率最高甚至是最有效的。他的广泛运用已经经跨越30年,包括呆板人导航,节制,传感器数据交融甚至于军事方面的雷达体系以和导弹追踪等等。最近几年来更被运用在计较机图象处置惩罚,例如头脸辨认,图象支解,图象边沿检测等等。
于进修卡尔曼滤波器以前,起首看看为何叫“卡尔曼”。跟其他闻名的理论(例如傅立叶变换,泰勒级数等等)同样,卡尔曼也是一小我私家的名字,而跟他们差别的是,他是个现代人!学过节制的应该都知道,卡尔曼是现代节制理论的奠定人!
卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生在匈牙利首都布达佩斯。1953,1954年在麻省理工学院别离得到机电工程学士和硕士学位。1957年在哥伦比亚年夜学得到博士学位。咱们此刻要进修的卡尔曼滤波器,恰是源在他的博士论文及1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与猜测问题的新要领)。
为了给各人能解说清晰卡尔曼滤波器,咱们找到两篇关在卡尔曼滤波器很是好的文章:
第一篇来历在CSDN博客,为各人具体的解说了卡尔曼的道理和运用,算作“深切”
第二篇来历在知乎,用一个简朴的例子,通俗易懂的解说了卡尔曼滤波,算作“浅出”
此外,关在卡尔曼滤波的仿真步伐于EETOP论坛里有许多,各人可以登录论坛后搜刮“卡尔曼”来查找。这里咱们给各人提供了一个Matlab仿真步伐,可以经由过程点击左下角的“浏览原文”进入论坛下载。
第一篇
原文地址:http://blog.csdn.net/lanbing510/article/details/40936343
1.卡尔曼滤波器的先容(Introduction to the Kalman Filter)为了可以越发轻易的理解卡尔曼滤波器,起首运用形象的描写要领来说解,然后咱们联合其焦点的5条公式举行进一步的申明及摸索。联合现代的计较机,实在卡尔曼的步伐相称的简朴,只要你理解了他的那5条公式。于先容他的5条公式以前,先让咱们来按照下面的例子做个直不雅的注释。
假定咱们要研究的对于象是一个房间的温度。按照你的经验判定,这个房间的温度是恒定的,也就是下一分钟的温度等在此刻这一分钟的温度(假定咱们用一分钟来做时间单元)。假定你对于你的经验不是100%的信赖,可能会有上下误差几度。咱们把这些误差当作是高斯白噪声(White Gaussian Noise),也就是这些误差跟先后时间是没有瓜葛的并且切合高斯分配(Gaussian Distribution)。别的,咱们于房间里放一个温度计,可是这个温度计也禁绝确的,丈量值会比现实值误差。咱们也把这些误差当作是高斯白噪声。
好了,此刻对于在某一分钟咱们有两个有关在该房间的温度值:你按照经验的猜测值(体系的猜测值)及温度计的值(丈量值)。下面咱们要用这两个值联合他们各自的噪声来估算出房间的现实温度值。
如果咱们要估算k时刻的是现实温度值。起首你要按照k-1时刻的温度值,来猜测k时刻的温度。由于你信赖温度是恒定的,以是你会获得k时刻的温度猜测值是跟k-1时刻同样的,假定是23度,同时该值的高斯噪声的误差是5度(5是如许获得的:假如k-1时刻估算出的最优温度值的误差是3,你对于本身猜测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里获得了k时刻的温度值,假定是25度,同时该值的误差是4度。 因为咱们用在估算k时刻的现实温度有两个温度值,别离是23度及25度。毕竟现实温度是几多呢?信赖本身还有是信赖温度计呢?毕竟信赖谁多一点,咱们可以用他们的covariance来判定。由于Kg=5^2/(5^2+4^2),以是Kg=0.6098,咱们可以估算出k时刻的现实温度值是:23+0.6098*(25-23)=24.22度。可以看出,由于温度计的covariance比力小(比力信赖温度计),以是估算出的最优温度值倾向温度计的值。 此刻咱们已经经获得k时刻的最优温度值了,下一步就是要进入k+1时刻,举行新的最优估算。到此刻为止,似乎还有没看到甚么自回归的工具呈现。对于了,于进入k+1时刻以前,咱们还有要算出k时刻阿谁最优值(24.22度)的误差。算法以下:
((1-Kg)*5^2)^0.5=3.12。这里的5就是上面的k时刻你猜测的阿谁23度温度值的误差,患上出的3.12就是进入k+1时刻之后k时刻估算出的最优温度值的误差(对于应在上面的3)。 就是如许,卡尔曼滤波器就不停的把covariance递归,从而估算出最优的温度值。他运行的很快,并且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随差别的时刻而转变他本身的值,是否是很神奇! 下面就要言归正传,会商真正工程体系上的卡尔曼。
2. 卡尔曼滤波器算法(The Kalman Filter Algorithm)
于这一部门,咱们就来描写源在Dr Kalman 的卡尔曼滤波器。下面的描写,会触及一些基本的观点常识,包括几率(Probability),随即变量(Random Variable),高斯或者正态分配(Gaussian Distribution)还有有State-space Model等等。但对于在卡尔曼滤波器的具体证实,这里不克不及逐一描写。
起首,咱们先要引入一个离散节制历程的体系。该体系可用一个线性随机微分方程(Linear Stochastic Difference equation)来描写,咱们联合下面PPT截图举行申明:
![]()
上两式子中,x(k)是k时刻的体系状况,u(k)是k时刻对于体系的节制量。A及B是体系参数,对于在多模子体系,他们为矩阵。y(k)是k时刻的丈量值,H是丈量体系的参数,对于在多丈量体系,H为矩阵。q(k)及r(k)别离暗示历程及丈量的噪声。他们被假定成高斯白噪声(White Gaussian Noise),他们的covariance别离是Q,R(这里咱们假定他们不随体系状况变化而变化)。
对于在满意上面的前提(线性随机微分体系,历程及丈量都是高斯白噪声),卡尔曼滤波器是最优的信息处置惩罚器。先给出KF算法的流程及五个焦点更新方程以下:KF算法
![]()
五个更新方程为:
![]()
编写公式不利便,以是写成为了PDF然后做了截图粘于了下面,下面就上面的例子及五个焦点的公式对于Kalman算法举行下申明:
![]()
就如许,算法就能够自回归的运算下去。
看到这智慧的同窗可能已经经看出来了,问道卡尔曼增益为何会是第三步中那样求,此刻只年夜致说一下道理,详细推到比力繁杂,有兴致的同窗可以参考这文献去推一推。还有记患上前面咱们说的偏差协方差矩阵美金P_k美金么,即求第k次最优温度的偏差协方差矩阵,对于应在上例中的3及3.12....这些值。看下面PPT,咱们最小化P便可获得卡尔曼增益K,对于应上例求解K只最小化最优温度值的误差,即最小化P(K):
![]()
咱们由第四步可以看出,k时刻体系的最优温度值=k-1时刻状况预计值(由上一状况的最优温度值加之历程偏差)+带卡尔曼增益权值项的误差。假如不雅测偏差远弘远在预计偏差,那末K就很小,k时刻的猜测值约等在k时刻的状况预计值,假如对于i时刻的状况预计值偏差远弘远在不雅测偏差,此时响应的q较年夜,K较年夜,i时刻的状况预计值更偏向在不雅察的数据。
卡尔曼滤波器的道理基本描写就完成为了,但愿能帮忙各人理解这这5个公式,其算法可以很轻易的用计较机的步伐实现。下面,我会用步伐举一个现实运行的例子。
3.简朴例子(A Simple Example)这里咱们联合第二第三节,举一个很是简朴的例子来讲明卡尔曼滤波器的事情历程。所举的例子是进一步描写第二节的例子,并且还有会配以步伐模仿成果。根第二节的描写,把房间当作一个体系,然后对于这个体系建模。固然,咱们见的模子不需要很是地切确。咱们所知道的这个房间的温度是跟前一时刻的温度不异的,以是A=1。没有节制量,以是u(k)=0。是以患上出:x(k|k-1)=x(k-1|k-1) ……… (6)式子(2)可以改为:P(k|k-1)=P(k-1|k-1) +Q ……… (7)由于丈量的值是温度计的,跟温度直接对于应,以是H=1。式子3,4,5可以改为如下:X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)P(k|k)=(1-Kg(k))P(k|k-1) ……… (10)
第二篇
思量轨道上的一个小车,无外力作用,它于时刻t的状况向量只与相干:(状况向量就是描写它的t=0时刻所有状况的向量,好比:[速率巨细5m/s, 速率标的目的右, 位置坐标0],横竖有了这个向量就能够彻底猜测t=1时刻小车的状况)那末按照t=0时刻的初值,理论上咱们可以求出它肆意时刻的状况。固然,现实环境不会这么夸姣。这个递推函数可能会遭到各类不确定因素的影响(内涵的外于的都算,好比起风下雨地动,小车布局不慎密,轮子不圆等等)致使其实不能切确标识小车现实的状况。咱们假定每一个状况份量遭到的不确定因素都听从正态漫衍。此刻仅对于小车的位置举行预计请看下图:t=0时小车的位置听从红色的正态漫衍。
![]()
按照小车的这个位置,咱们可以猜测出t=1时刻它的位置:
![]()
漫衍变“胖”了,这很好理解——由于于递推的历程中又加了一层噪声,以是不确定度变年夜了。为了不纯预计带来的误差,咱们于t=1时刻对于小车的位置坐标举行一次雷达丈量,固然雷达对于小车间隔的丈量也会遭到种种因素的影响,在是丈量成果告诉咱们,小车t=1时的位置听从蓝色漫衍:
![]()
好了,此刻咱们获得两个差别的成果。前面有人提过加权,Kalman老师长教师的牛逼的地方就于在找到了响应权值,使红蓝漫衍归并为下图这个绿色的正态漫衍(烦琐一句,这个绿色漫衍均值位置于红蓝均值间的比例称为Kalman增益(好比下图中类似0.8),就是各类公式里的K(t))
![]()
你问为何牛逼?绿色漫衍不仅包管了于红蓝给定的前提下,小车位在该点的几率最年夜,并且,并且,它竟然还有是一个正态漫衍!正态漫衍就象征着,可以把它当成初值继承往下算了!这是Kalman滤波可以或许迭代的要害。末了,把绿色漫衍当成第一张图中的红色漫衍对于t=2时刻举行猜测,算法就能够最先轮回来去了。你又要问了,说来讲去绿色漫衍是怎么患上出的呢?实在可以经由过程多种方式推导出来,咱们课上讲过的就有最年夜似然法、Ricatti方程法,以和上面参考文献中说起的直接对于高斯密度函数变形的要领,这个不睁开说了。
-KU酷游