无人机飞控卡尔曼滤波器原理简介
引用知乎中的一段话:“PID和卡尔曼滤波乃是控制工程师的两大法宝。几十年过去了卡尔曼滤波在理论研究上仍然保持着活跃,研究方向包括各种非线性的,噪声统计参数未知的自适应和鲁棒滤波。更重要的是现在计算机的发展将其推向了实用化,包括各种位姿估计,多传感器信息融合,车辆导航等。”
这足以看出卡尔曼滤波在控制领域中的重要性,而本篇博客就来简要地分析一下卡尔曼滤波器的基本原理。
卡尔曼滤波器
首先,我们可以用如下这种简单的描述来简要介绍KALMAN滤波器的基本原理:
假如要对某一状态量进行估计,你有一个线性函数模型,模型的过程噪声方差阵为Q QQ;同时你还有一个传感器,传感器的测量噪声方差阵为R RR;要得到对状态的准确估计该怎么做呢?很简单,对模型输出和传感器输出做一个简单的加权和即可,即
当模型的噪声较大时K KK取大一点,当传感器的噪声较大时K KK取小一点,即K KK的大小决定了你应该更相信模型还是传感器;而卡尔曼滤波器的作用就是通过不断地迭代,最终得到了最优的K KK值:K a l m a n KalmanKalman增益即为两者的最优权值。
实际上,随着卡尔曼滤波器的不断迭代,协方差矩阵P PP最终将会收敛,此时卡尔曼增益固定,状态更新方程变成了与一阶低通滤波相同的形式;但是,卡尔曼滤波器的性能是优于低通滤波器的,因为其在迭代过程中找到了最优滤波常数。
卡尔曼滤波器又叫做最佳线性滤波器,只能描述状态与状态之间的线性关系;
优点:
1.实现简单;
2.是一种时域的滤波方式;
3.不需要进行频域变换;
4.可以用来用作状态估计。
下面使用过一个简单的速度估计的例子来简要分析卡尔曼滤波器的原理:
状态转移
首先确定小车系统的状态如下:
进一步得到系统状态量的更新形式(基本的运动学方程,其中为加速度):
写成矩阵形式:
即:
其中:
至此便得出了系统的状态转移方程。
有了状态转移公式就可以用来推测当前的状态,但是所有的推测都是包含噪声的,噪声越大,不确定越大,可以用协方差矩阵来表示这次推测带来的不确定性。
协方差矩阵
假设我们有一个一维的包含噪声的数据,这个数据每次测量都不同,单都是围绕在一个中心值的周围,那么我们可以用均值和方差来表示该数据集,这实际上是假设了改数据服从高斯分布;我们将该一维数据集投影到坐标轴上,如下图:
接下来看二维的情况,将二维的测量数据投影到坐标轴上,可以看出在两个轴上数据都服从高斯分布:
其中:
图1:两个维度的噪声独立;
图2:两个维度的噪声相关,且一个维度的噪声增大,另一个维度的噪声也增大;
图3:两个维度的噪声相关,且一个维度的噪声增大,另一个维度的噪声减小;
如果说两个维度的噪声独立,那么使用方差便可以描述这两个维度之间的关系;但是在两个维度相关情况下,方差不足以描述这种相关性,此时便要引入协方差来描述两个维度之间的相关程度;写成矩阵的形式如下:
评论 (0人参与)
最新评论