卡尔曼滤波算法ppt课件
- 格式:pptx
- 大小:1.65 MB
- 文档页数:60


卡尔曼滤波
卡尔曼滤波(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世纪
陀螺仪卡尔曼滤波算法
1.背景介绍
陀螺仪是一种测量角速度的传感器,可用于估计物体的旋转姿态。然而,由于陀螺仪存在漂移误差和噪声等问题,直接使用陀螺仪测量值会导致姿态估计的不准确。为了提高姿态估计的准确性,通常需要使用陀螺仪与其他测量器件(如加速度计、磁力计等)结合起来进行数据融合。
2.卡尔曼滤波原理
卡尔曼滤波是一种利用系统的状态方程和观测方程,通过迭代计算系统状态的最优估计值的方法。在陀螺仪姿态解算中,可以将陀螺仪的测量值作为系统的状态方程输入,将其他测量器件(如加速度计)的测量值作为观测方程输入,通过卡尔曼滤波算法进行姿态估计。
3.陀螺仪卡尔曼滤波算法步骤
(1)建立状态方程和观测方程。状态方程描述了系统状态的动态演化,观测方程描述了系统状态与实际观测值之间的关系。
(2)初始化滤波器。初始化系统状态估计值和协方差矩阵。
(3)预测状态。根据状态方程和当前状态估计值,预测下一时刻的状态估计值和协方差矩阵。
(4)更新状态。根据观测方程和当前观测值,更新状态估计值和协方差矩阵。
(5)重复步骤(3)和(4),直到所有观测值都被处理完毕。
(6)输出最终的系统状态估计值作为姿态解算结果。 4.陀螺仪卡尔曼滤波算法改进
(1)引入磁力计。磁力计可以提供物体的方向信息,进一步提高姿态估计的准确性。
(2)引入加速度计。加速度计可以提供物体的加速度信息,可以用于修正陀螺仪的漂移误差。
(3)引入高通滤波器。高通滤波器可以滤除陀螺仪的低频漂移,提高陀螺仪测量值的准确性。
5.陀螺仪卡尔曼滤波算法应用领域
综上所述,陀螺仪卡尔曼滤波算法是一种常用的姿态解算算法,通过结合陀螺仪和其他测量器件的测量值,可以估计物体的空间姿态。该算法具有较高的准确性和稳定性,在飞行器、导航系统、机器人等领域有着广泛的应用前景。
2.卡尔曼滤波器的介绍
(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^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。
第4章 卡尔曼(Kalman)滤波
卡尔曼滤波的思想是把动态系统表示成状态空间形式,是一种连
续修正系统的线性投影算法。
功能
1) 连续修正系统的线性投影算法。
2) 用于计算高斯ARMA过程的精确有限样本预测和精确的
似然函数。
3) 分解矩阵自协方差生成函数或谱密度。
4) 估计系数随时间变化的向量自回归。
第一节 动态系统的状态空间表示
一.假设条件
令
ty表示时期
t观察到变量的一个()
1n×向量。则
ty的动态可以用
不可观测的()
1r×向量
tξ来表示,
tξ为状态向量。
ty的动态系统可以表
示为如下的状态空间模型:
11tttFvξξ
++=+ (1)
ttttyAxHwξ′′
=++ (2)
其中
′′
F,A,H分别为()
rr×,()
nk×和()
nr×矩阵,
tx是外生变量或前定
变量的()
1k×向量。方程(1)称为状态方程,方程(2)称为观察方
程。其中()
1r×向量
tv和()
1n×向量
tw为向量白噪声:
()
()0
0t
tQt
Evv
t
Rt
Eww
tτ
ττ
τ
τ
τ=
⎧
′
=
⎨
≠
⎩
=
⎧
′
=
⎨
≠
⎩ (3)
其中
,QR为()()
,rrnn××矩阵。假定扰动项
tv和
tw在所有阶滞后都不相
关:
()
0
ttEvw′
= 对所有的
t和
τ (4) tx为前定或外生变量,意味着对
0,1,2,....,s=除包含在
121,,...,
ttyyy
−−之内
的信息外,
tx不再能提供关于
tsξ
+以及
tsw
+的任何信息。即
tx可能包含
y
的滞后值或所有与
τ、
τξ和
w
τ不相关变量。
状态空间系统描述有限观察值序列{}
1,...,
Tyy,需要知道状态向量
的初始值
1ξ,根据状态方程(1),
tξ可写作()
123,,,...,
tvvvξ的线性函数:
221
1221....tt
ttttvFvFvFvFξξ−−
−−=+++++
2,3,...,tT= (5)
这里假定
1ξ与
tv和
tw的任何实现都不相关:
()
()1
101,2,...,
01,2,...,t
tEvT