半喑农夫分享 http://blog.sciencenet.cn/u/丁dot 仅代表我一人观点! 请诸位笔下慎重,莫带粗口!

博文

再温卡尔曼滤波----详细推导(博客不能很好编辑公式,只能截图)

已有 484 次阅读 2025-11-19 14:06 |个人分类:说说|系统分类:科研笔记

卡尔曼滤波的完整推导1. 什么是卡尔曼滤波

卡尔曼滤波是一种最优化递归的信号处理的数学算法,本质是数学算法,与传统的滤波器有本质的区别。

2. 递归算法的引入

日常生活中,对某一物体进行测量,如买了一块肉用秤称重,用同样的秤来称,会发现每一次秤的重量都不完全一样,原因在于秤是有测量误差的,那如何通过多次称的重量计算出这块肉的重量呢?常见方法是用多次测量取平均值的方法来作为这块肉的重量。从这常见的生活案例中,隐藏了很多数学本质,一是被测量对象——肉没有变化过;二是测量用的秤是同一个,且一定有测量误差;三是不知道这块肉真实重量,用了统计学的平均值概念估计出这块肉的重量;那多次称重后的平均值是不是真实的重量呢?也不一定,也会存在一定的误差,只是日常生活中认为这个不确定的误差是无法确定的且已经非常小,是可以接受的而已。

用数学方法对上述案例进行描述,引出递归的方法。

设对这块肉进行了次测量,测量值为,其中,image.png

表示这个测量值平均后的估计值,那么个测量值平均后得到的估计值可以写成。所以有

image.png

从式(1)中可以看出,image.png时,即只测量了一次,那估计值就是测量值image.png,商场超市的称重都是这种做法,当image.pngimage.png,此时的估计值就是上一次的估计值;这很容易理解,即对某物体经过很多次测量后,估计值基本稳定,增加或减少一次测量值不会对估计值有影响。

设式(1)中的image.png,这个和后面要讲的卡尔曼滤波增益有着千丝万缕关系,则式(1)可写成

image.png

如何计算呢?

在式(1)中,通过k次测量做了平均值估计出了这块肉的重量image.png,毕竟这是估计出的值,是不是真实值呢?不一定,特别是当测量次数k比较小的时候,这种估计值与真实值之间的误差可能还比较大,设真实值与第k次测量后的估计值之间的误差为image.png,因为测量设备(如秤)本身就有无法消除的测量误差,设测量误差为image.png,一般设备测量误差虽然表现出的是随机性,但其统计特性是符合某种确定参数的概率分布,可以认为这误差统计值(如方差)是常数,记为。记住以下两个公式:

 image.png

如此以来,通过(2)、(3)、和(4)递归计算出测量物体的估计值。

举例,设一块肉的真实重量是1000g,秤的误差是g,测量了20次,测量值如表1所示。用上述方法计算出这块肉的估计重量。

测量次数12345678910
测量重量1002998100499699799510041003996998
测量次数11121314151617181920
测量重量10049961005995997998100499610031004

由示例可知image.png,初始估计值image.png和初始估计误差image.png不知道,可以假设第一个测量值为初始估计值,即image.png,初始估计误差可以假设为image.png,根据式(2)、(3)和(4)递归计算如下:

当k=1

image.png

image.png

image.png

image.png

依次根据测量值image.png计算增益值image.png、估计值image.png和估计误差值image.png,对观测值与估计值用折线图表示,如图1所示,其中蓝色表示测量值,橙色表示估计值。

image.pngimage-20251115125456519

图1. 测量值与估计值对比

由图1可以看出,估计值与真实值1000更接近,且偏差较测量值与真实值的偏差小很多。

3. 数据融合概念

假设对同一个物体用不同测量工具测量,测量值因为不同测量工具自身的测量误差所致造成测量值不一样,那如何确定该物体比较准的测量值呢?还是用买肉来举例,假设一块肉的真实重量是1kg,用两个秤来称,其中第一个秤称的重量是994克,另一个秤称的是1002克,已知第一个秤的测量误差是7克,第二个秤的测量误差是5克,那用这两个秤所称出的重量估计这块肉的重量是多少?常规做法一般就是两个秤所称重量取平均,即image.png克。用数据融合方法,即将两个不太准确的测量值融合后得到比较准的测量值,借鉴式(2)的思路。

设上例第一个秤测量值为image.png, 该秤测量误差服从正态分布image.png,同理第二个秤测量值为image.png,其测量误差服从正态分布image.png,设两个测量值融合后的估计值为image.png,因此,列出估计值方程为:

image.png

如何选择image.png使得估计值与真实值最接近,即估计值的误差最小? 数学上用方差来评估误差,方差最小则表示误差最小。对式(5),计算估计值image.png的方差,设其为image.png并使其最小,则融合后的估计值最优。计算image.png的方差实际是计算真实值image.png与估计值image.png误差的方差,同理,image.png的方差是image.png,image.png的方差是image.png。因为image.pngimage.png分别是两个不同测量设备(秤)测量的数据,所以,image.png相互独立。

image.png

式(6)中,当image.pngimage.png的导数为0时,image.png最小,即

image.png

解(7),得

image.png

image.png代入(8),得image.png,则最优估计值为

image.png克,比image.pngimage.png更接近真实值1000。

4. 系统方程

image.png

5. 卡尔曼滤波方程推导

image.png

image.png

如此以来,根据系统方程的状态方程和观测方程,计算了时刻状态量的先验估计(也称预测估计),预测协方差,卡尔曼滤波增益,状态量估计值和估计协方差 ,状态方程误差的协方差为,观测误差的协方差为,通过设定初始估计协方差矩阵和状态量,在给定的状态转移矩阵,控制矩阵,控制量和观测矩阵基础上,通过观测值可通过卡尔曼滤波方法最优化递归估计状态量。

6. 总结

image.png



https://blog.sciencenet.cn/blog-60330-1510861.html


收藏 IP: 114.246.236.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2025-12-5 21:53

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部