如何理解序贯平差、卡尔曼滤波和集合卡尔曼滤波
序贯平差
概念
序贯平差也叫逐次相关间接平差,它是将观测值分成两组或多组,按组的顺序分别做相关间接平差,从而使其达到与两期或多期网一起做整体平差同样的结果。
公式推导
将观测值 L 分为两组,记 $\overset{L_{k-1}}{\tiny n_{k-1}}$ 和 $\overset{L_{k}}{\tiny n_{k}}$, 它们的权阵分别记为 $P_{k-1}$ 和 $P_{k}$,设这两组观测值不相关,有
$$
\overset{L}{\tiny n \ 1} = [\ \begin{matrix} L_{k-1} \ L_{k} \end{matrix}\ ]
$$
$$
\overset{P}{\tiny n \ n} = \begin{equation} \left[ \begin{matrix} P_{k-1} & 0 \ 0 & P_{k} \end{matrix} \right] \end{equation}
$$
当参数间不存在约束条件时,其误差方程为
$$
\begin{equation} V_{k-1} = B_{k-1} \hat{x} - l_{k-1}
\tag{1}\end{equation}
$$
$$
\begin{equation} V_{k} = B_{k} \hat{x} - l_{k}
\tag{2}\end{equation}
$$
式中
$$
\hat{X} = X^0 + \hat{x}, \quad l_{i}=L_{i}-L_{i}^0(i=k,k-1)
$$
将 (1)式单独平差,得
$$
\hat{x}{k-1} = Q{\hat{x}{k-1}}B{k-1}^TP_{k-1}l_{k-1} \tag{3}
$$
式中,$Q_{\hat{x}{k-1}}$ 为 $\hat{X}{k-1}$ (即 $\hat{x}{k-1}$) 的协因数阵,故有
$$
Q{\hat{X}{k-1}} = (B{k-1}^T P_{k-1}B_{k-1})^{-1} \tag{4}
$$
或
$$
Q_{\hat{X}{k-1}} ^{-1}= (B{k-1}^T P_{k-1}B_{k-1}) \tag{5}
$$
$\hat{x}{k-1}$ 表示由第一组观测值 $L{k-1}$ 平差所得 $\hat{x}$ 的值
将(1)和(2)联合解算,即由两组观测值作整体平差,可组成法方程为
$$
(Q_{\hat{X}{k-1}} ^{-1}+ B{k}^T P_{k}B_{k}) \hat{x}-(B_{k-1}^TP_{k-1}B_{k-1}+B_{k}^TP_{k}l_{k})=0 \tag{6}
$$
其解为
$$
\hat{x}=(Q_{\hat{X}{k-1}} ^{-1}+ B{k}^T P_{k}B_{k})^{-1}(B_{k-1}^TP_{k-1}B_{k-1}+B_{k}^TP_{k}l_{k})
$$
它是两组观测值整体平差的结果,按间接平差知,其法方程系数的逆阵就是\ $\hat{X}$ 的协因数阵,故有
$$
Q_{\hat{X}}=(Q_{\hat{X}{k-1}} ^{-1}+ B{k}^T P_{k}B_{k})^{-1} \tag{7}
$$
于是上式为
$$
\hat{x}=Q_{\hat{X}}B_{k-1}^TP_{k-1}B_{k-1}+Q_{\hat{X}}B_{k}^TP_{k}l_{k} \tag{8}
$$
考虑(3)和(7)式,
$$
B_{k-1}^TP_{k-1}l_{k-1}=Q_{\hat{X}{k-1}}^{-1}\hat{x}{k-1} \tag{9}
$$
$$
Q_{\hat{X}{k-1}}^{-1}=Q{\hat{X}{k}}^{-1}-B{k}^T P_{k} B_{k} \tag{10}
$$
则(8)式为
$$
\hat{x}=\hat{x}{k-1}+Q{\hat{X}} B_{k}^T P_{k}(l_{k}-B_{k}\hat{x}{k-1}) \tag{11}
$$
令
$$
J=Q{\hat{X}}B_{k}^T P_{k} \tag{12}
$$
$$
\bar{l}{k} = l{k} - B_{k}\hat{x}{k-1} \tag{13}
$$
则上式为
$$
\hat{x}=\hat{x}{k-1}+J \bar{l}{k} \tag{14}
$$
将(10)式两边左乘 $Q{\hat{X}}$,,顾及(12)得
$$
Q_{\hat{X}}Q_{\hat{X}{k-1}}^{-1} = I-JB{k}
$$
再对两边右乘 $Q_{\hat{X}{k-1}}$,得
$$
Q{\hat{X}}=Q_{\hat{X}{k-1}} - JB{k}Q_{\hat{X}{k-1}} \tag{15}
$$
由矩阵反演公式知
$$
\begin{equation}
Q{\hat{X}} = (Q_{\hat{X}{k-1}}^{-1}+B{k}^T P_{k}B_{k})^{-1}
=Q_{\hat{X}{k-1}}-Q{\hat{X}{k-1}}B{k}^T(P_{k}^{-1}+B_{k}Q_{\hat{X}{k-1}}B{k}^T)^{-1}B_{k}Q_{\hat{X}{k-1}}
\end{equation} \tag{16}
$$
比较(15)与(16)式知:
$$
J = Q{\hat{X}{k-1}}B{k}^T (P_{k}^{-1}+B_{k}Q_{\hat{X}{k-1}}B{k}^T)^{-1} \tag{17}
$$
J 阵称为卡尔曼滤波增益矩阵或称序贯平差的增益矩阵。
将(17)式代入(14)式即得序贯平差的递推计算式。
结论 (序贯平差算法)
使用参数平差改正值 $\hat{x}$ 计算
状态递推
$$
\hat{x}{k} = \hat{x}{k-1} + J_{k} \bar{l}{k}
$$
$$
\bar{l}{k} = l_{k} - B_{k}\hat{x}{k-1}
$$
方差递推
$$
\begin{equation}
Q{\hat{X}} =Q_{\hat{X}{k-1}}-Q{\hat{X}{k-1}}B{k}^T(P_{k}^{-1}+B_{k}Q_{\hat{X}{k-1}}B{k}^T)^{-1}B_{k}Q_{\hat{X}{k-1}}
\end{equation}
$$
增益矩阵
$$
J = Q{\hat{X}{k-1}}B{k}^T (P_{k}^{-1}+B_{k}Q_{\hat{X}{k-1}}B{k}^T)^{-1}
$$使用参数平差值(待估状态/参数量)$\hat{X}$ 计算
状态递推
$$
\hat{X}{k} = \hat{X}{k-1} + J_{k} \bar{L}{k}
$$
$$
\bar{L}{k} = L_{k} - B_{k}\hat{X}{k-1}
$$
方差递推
$$
\begin{equation}
Q{\hat{X}{k}} =Q{\hat{X}{k-1}}-Q{\hat{X}{k-1}}B{k}^T(P_{k}^{-1}+B_{k}Q_{\hat{X}{k-1}}B{k}^T)^{-1}B_{k}Q_{\hat{X}{k-1}}
\end{equation}
$$
增益矩阵
$$
J{k} = Q_{\hat{X}{k-1}}B{k}^T (P_{k}^{-1}+B_{k}Q_{\hat{X}{k-1}}B{k}^T)^{-1}
$$
推导流程
使用参数平差值(待估状态/参数量)$\hat{X}$ 计算
卡尔曼滤波
简介
卡尔曼滤波是一种线性最小方差估计,采用动力学方程即状态方程描述被估计量的动态变化规律,被估计量的动态统计信息由激励白噪声的统计信息和动力学方程确定。其计算过程是一个不断地预测、修正的过程。在求解时不需要存储大量的观测数据,并且当得到新的观测数据时,可随时估算得新的滤波值,便于实时处理观测结果。
1.基于前一时间点的系统状态的概率分布给出当前时间点的系统状态的概率分布预测 P1
2.基于当前时间点的观测量的概率分布 Q 给出另一组对当前时间点系统状态的概率分布预测 P2 (这里需要注意,如果传感器能直接把系统状态都观测了,那么我们直接用观测量的概率分布 Q 作为 P2 就好了,但是有可能传感器观测的物理量量并不是直接的系统状态,而是其他物理量,这时我们需要通过做一个线性变换来获得 P2)
3.现在,我们有两个关于当前时间点系统状态的概率分布的预测 P1 和 P2,我们于是可以计算它们的联合概率分布,这个联合概率分布就是我们最终想要的更正过后的当前时间点的系统状态概率分布,有了它我们就可以进入下一个时间点继续迭代我们交替的预测-更正步骤了。
注意:系统状态和测量值都服从线性高斯分布。
卡尔曼滤波算法
状态递推
$$
x_{k}’=x_{k}+K’(\overrightarrow z_{k} - H_{k}X_{k})
$$
方差递推
$$
P_{k}’=P_{k}-K’H_{k}P_{k}
$$
增益矩阵
$$
K’=P_{k}H_{k}^T(H_{k}P_{k}H_{k}^T+R_{k})^{-1}
$$
变量解释
$$
x_{K}’: 最佳估计
$$
$$
x_{k}: 当前状态
$$
$$
P_{k}: 当前状态x_{k}的协方差阵
$$
$$
\overrightarrow z_{k}: 观测值平均值
$$
$H_{k}$: 由于单位、比例等不同对传感器加上一个映射矩阵(尺度变换),从而保证每个传感器输出读数尺度相同,处于同一空间
$$
R_{k}: 传感器噪声
$$
$$
K’ : 卡尔曼增益
$$