1 / 23
文档名称:

卡尔曼滤波算法与matlab实现.doc

格式:doc   大小:716KB   页数:23页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

卡尔曼滤波算法与matlab实现.doc

上传人:幻影 2021/11/8 文件大小:716 KB

下载得到文件列表

卡尔曼滤波算法与matlab实现.doc

文档介绍

文档介绍:卡尔曼滤波算法与matlab实现
卡尔曼滤波算法与matlab实现
卡尔曼滤波算法与matlab实现
 
一个应用实例详解卡尔曼滤波及其算法实现
标签: 算法filtermatlabalgorithm优化工作
2012-05-14 10:48 75511人阅读 评论(25) 收藏 举报
 分类:
数据结构及其算法(4) 
为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不就是像大多数参考书那样罗列一大堆的数学公式与数学符号。但就是,她的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比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。
现在我们已经得到k时刻的最优温度值了,下一步就就是要进入 k+1时刻,进行新的最优估算。到现在为止,好像还没瞧到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24、56 度)的偏差。算法如下:((1-Kg)*5^2)^0、5=2、35。这里的5就就是上面的k时刻您预测的那个23度温度值的偏差,得出的2、35就就是进入 k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。
就就是这样,
卡尔曼滤波算法与matlab实现
卡尔曼滤波算法与matlab实现
卡尔曼滤波算法与matlab实现
卡尔曼滤波器就不断的把 covariance递归,从而估算出最优的温度值。她运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就就是卡尔曼增益(Kalman Gain)。她可以随不同的时刻而改变她自己的值,就是不就是很神奇!
下面就要言归正传,讨论真正工程系统上的卡尔曼。
卡尔曼滤波算法与matlab实现
卡尔曼滤波算法与matlab实现
卡尔曼滤波算法与matlab实现
3. 卡尔曼滤波器算法
(The Kalman Filter Algorithm)
在这一部分,我们就来描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。
首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
X(k)=A X(k-1)+B U(k)+W(k)
再加上系统的测量值:
Z(k)=H X(k)+V(k)
上两式子中,X(k)就是k时刻的系统状态,U(