一个应用实例详解卡尔曼滤波及其算法
实现(通俗易懂哦)
作者:ykf23 | 出处:博客园 | 2012/2/24 13:49:47 | 阅读 130 次
(转载) 谢谢我们的论坛 http://www.znczz.com/?fromuid=56928
卡尔曼滤波,#直立小车,#电磁,#平衡小车
大家帮忙顶一下
为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大
多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的 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^2=5^2/(5^2+4^2),所以 Kg=0.78,我们可以估算出
k 时刻的实际温度值是:23+0.78*(25-23)=24.56 度。可以看出,因为温度计的
covariance 比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。