主要参考文献:MIT Kalman filter tutorial
ps: 有错误请指出。
1. 卡曼滤波推导的前言
首先,我接下来的推导是基于离散系统的(非连续系统)。
其次,卡曼滤波成立的条件是默认当前研究的离散系统是一个马尔可夫过程,即等同基于这个假设:当前的状态只与上一时刻的状态相关。马尔可夫过程是一类随机过程,它的原始模型是马尔可夫链。马尔可夫过程是研究离散事件动态系统状态空间的重要方法,它的数学基础是随机过程。
1.1. 离散系统状态空间(State Space)
状态空间是控制系统里的一个专业名词。状态空间代表着一个系统可以用矩阵来描述,输入输出可以用向量来描述以及系统状态更新可以用线性代数来描述,这一点在下方会以公式来说明。状态空间使得单输入单输出,多输入单输出或者多输入多输出的系统都可以有一个统一的描述方法。
1.2. 系统描述
如果一个离散系统是马尔可夫过程,那么系统的可以用状态空间来表述:
... ... (1)
... ... (2)
这里的是一个nx1的向量,描述k+1时刻的系统状态量,而
描述的是k时刻的,
是一个nxn的矩阵,是状态传递矩阵。状态传递矩阵是要你基于对系统的了解,把
以及
每一元素之间的关系描述出来。
是nx1的向量,被称作为k时刻的过程噪声。这个过程噪声是系统与生俱来的,在状态更新时需要加上去(ps:噪声和误差的区别:噪声是指自然存在的,误差或估算误差产生于人类的信息不足或者对系统的理解不足)。这里我们需要假设这个噪声是时间上平稳的,也就是噪声在任何一段时间里都可以以相同的方法描述。例如,多数情况下我们都把这个噪声描述为高斯分布,且这个高斯分布的均值和方差都不随时间而变化。同时,我们通常假设这个噪声是白噪声。至于为什么我也想问。
是一个mx1的向量,是k时刻的观测量,而H矩阵是一个mxn的矩阵,是状态观测转换矩阵。这个转换矩阵是用来描述
与
里每一元素之间的关系。
是mx1的向量,被称作k时刻的观测噪声。同样的,我们假设观测噪声是时间上平稳的,是白噪声。还有,与过程噪声无相关性。
2. 卡曼滤波推导
2.1. 卡曼滤波的目标min(T[E()])
卡曼滤波其实本质上是一个均方误差减少器(mean squared error minimizer)。
让我们把我们对状态量的估计设为,那么估计的误差:
=
-
(nx1矩阵)。
那么卡曼滤波的任务就是减少估计的误差, 数学上表现为:min(E(
)+E(
)+...+E(
) ... ... (3)
(1) 也等于min(E(+
+...+
)) = min(T[E(