本文为卡尔曼滤波个人学习文档,主要资料来源B站UP主DR_CAN相关视频(【卡尔曼滤波器】2_数学基础_数据融合_协方差矩阵_状态空间方程_观测器问题_哔哩哔哩_bilibili),欢迎各路大佬交流指正。
本节并没有直接讨论卡尔曼滤波,而是为卡尔曼滤波器的推导进行一些有关于数学基础的铺垫,包括以下三个方面:
目录
3、状态空间方程以及观测器(State Space, Observation)
1、数据融合(Data Fusion)
数据融合指利用对以同一目标为对象的多个来源的数据进行整合,提取有用信息的一系列方法,这里只讲比较简单的数据融合方法。
假设有两个传感器,其测量数值符合正态分布(Normal distribution, 也成为Gaussion distribution),可将其表达为:
,
因为是两个不同的传感器,因此其测量出的数据相对独立。结合上一届的卡尔曼滤波思想,对于在条件仅限于这两个传感器的情况下,我们可将最后的测量结果表达为:
可看出,在时,有;在时,有。因此我们可通过调节的取值来实现对两个传感器置信程度的控制。根据上式可看出依旧符合正态分布:
在实际的应用中,我们总希望最后的估计值较为接近真实值。如下图所示在方差越小,估计值落在真实值附近的可能性越大。因此我们需要寻找值,使最小。
根据以上公式,我们可以推出:
由,独立得:
最后得:
由上式可知当时,最小,因此有:
最后解得:
表示当取此值时,估计值最小。至此可以看到卡尔曼增益的雏形了。
2、协方差矩阵(Covariance Matrix)
协方差描述的是两个变量之间的相关性,对于两个变量,可将二者的协方差表达为:
上式可理解为当高于平均值时,如果相应的每个也高于平均值,则,表示二者成正相关;反之当高于平均值时,相应的每个低于平均值,则,表示二者负相关。
并且我们将变量的方差表示为。因此规定对于两个变量,可将二者的协方差表达为:
对于三个变量,,的协方差矩阵则表示为:
对于任意变量的协方差矩阵也可以此类推。
对于协方差矩阵的求取可用如下方法(以求取拥有个样本的三个变量,,的协方差矩阵为例):
:设样本矩阵:
:求过度矩阵(注意式中第二项为元素全为1的方阵,而不是单位阵):
:最后求协方差矩阵:
3、状态空间方程以及观测器(State Space, Observation)
现代控制理论中,除了有传统的输入输出作为描述系统的概念意外,还引入状态变量这一概念标识系统的状态。由输入、输出和状态标量组成,描述系统变化的方程称为状态空间方程(也叫状态空间表达式)。状态空间方程由状态方程和输出方程组成。对于离散系统和连续系统,状态空间方程有着各自的表达方法。由于卡尔曼滤波较多适用于离散系统,所以本节主要讲解离散系统的状态空间方程。
假设地面上有一辆车向前行驶,因为人类都是控制油门前进的,因此将加速度来设为输入量对这辆车进行控制。我们可以把这辆车的位移,速度和加速度设置为状态变量,则由其三者组成的状态空间向量为:
每隔一段时间,空中的卫星就会对小车的速度和加速度进行一次测量,对于时刻来说,本时刻的状态变量:位移,速度和加速度与上一时刻的状态变量有如下关系:
因此我们可将上述公式总结成状态转移方程和测量:
其中:
,,
上式组成离散系统的状态空间方程。
对于上式来说有两点值得讨论:
1、在测量和计算的过程中都会有各种各样的误差。比如状态转移方程中是假设汽车在采样时间中一直以加速度在运动,但实际可能不是这样的;又或者对于卫星传感器来说测得的观测值可能带有一定的误差。因此我们以表示过程噪音加在状态转移方程的后面,以代表测量噪音加在测量方程后面:
后面的卡尔曼滤波算法会对上式的两个噪音进行处理,达到滤波的效果。
2、对于状态空间方程两个式子中的两个的取值是有冲突的:状态转移方程中的是我们根据系统计算出来的;而测量方程中的其实属于未知的,因为在测量方程中我们先得到的是带有噪音的测量值。因此对于连个的置信问题就需要我们用到第一节提到的数据融合思想了。这也是卡尔曼滤波解决的问题。
具体的卡尔曼滤波的推导将在下一节中给出。感谢阅读,学海无涯,希望你我共同进步。