1. 定义
(1)首先,考虑离散时间线性时变系统,有如下的运动模型和观测模型:
运动方程: x k = A k − 1 x k − 1 + v k + w k k = 1 , ⋯ , K 观测方程: y k = C k x k + n k k = 0 , ⋯ , K 运动方程:x_k=A_{k-1}x_{k-1}+v_k+w_k \ \ \ \ \ \ k=1,\cdots,K \\ 观测方程:y_k = C_kx_k + n_k\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k=0,\cdots,K 运动方程:xk=Ak−1xk−1+vk+wk k=1,⋯,K观测方程:yk=Ckxk+nk k=0,⋯,K
各变量含义如下:
- 系统状态: x k ∈ R N x_k\in{R}^N xk∈RN( k k k时刻/当前时刻)
- 初始状态: x 0 ∈ R N ∼ N ( x ˇ 0 , p ˇ 0 ) x_0\in{R}^N \sim{\mathcal{N}(\check{x}_0,\check{p}_0)} x0∈RN∼N(xˇ0,pˇ0)
- 输入: v k ∈ R N v_k\in{R}^N vk∈RN
- 过程噪声: w k ∈ R N ∼ N ( 0 , Q k ) w_k\in{R}^N\sim{\mathcal{N}(0,Q_k)} wk∈RN∼N(0,Qk) 零均值高斯白噪声
- 测量: y k ∈ R M y_k\in{R}^M yk∈RM
- 测量噪声: n k ∈ R M ∼ N ( 0 , R k ) n_k\in{R}^M\sim{\mathcal{N}(0,R_k)} nk∈RM∼N(0,Rk)
注意:
- 一般而言,系统是先经过运动模型,再经过观测模型。
- 只经过运动模型的系统状态称为先验(不含观测);既经过运动模型,又经过观测模型的系统状态称为后验(包含观测)。
- 均值表示所估计的状态,方差表示该估计状态的不确定度。
(2)明确问题
所谓的状态估计是指:在 k k k个时间点上,基于初始的状态信息 x ˇ 0 \check{x}_0 xˇ0,一系列观测数据 y 0 : k , m e a s y_{0:k,meas} y0:k,meas,一系列输入 v 1 : k v_{1:k} v1:k,以及系统的运动模型和观测模型,来计算系统真实状态的估计值 x ^ k \hat{x}_k x^k。也就是说,已知: x ˇ 0 , v 1 : k , y 0 : k , m e a s \check{x}_0,v_{1:k},y_{0:k,meas} xˇ0,v1:k,y0:k,meas,求 x ^ k \hat{x}_k x^k。
(3)问题类别
- 批量式线性高斯系统状态估计:一次性使用所有时刻数据来推算所有时刻状态(实时性不强)
- 递归式线性高斯系统状态估计:使用上一时刻数据来推算下一时刻状态(可实时估计)
2. 估计方法
目的:结合初始信息、传入量、观测量,以及运动方程和观测方程,估计最优的系统状态 x ^ k \hat{x}_k x^k。那么在批量式情况下,并依据运动方程和观测方程可知,要求的是:第一,使概率密度函数 p ( x ∣ v , y ) p(x|v,y) p(x∣v,y)取得最大值时的 x x x(即为最优的系统状态 x ^ \hat{x} x^);第二,或者是求出概率密度函数 p ( x ∣ v , y ) p(x|v,y) p(x∣v,y)的具体表达式(也就是要求出其均值和方差)。由于含有观测量 y y y,因此所求得的均值就是后验均值,即系统的最优状态 x ^ \hat{x} x^
按照上述分析,批量式线性高斯系统状态估计可以有以下两种方法:
- 最大后验估计:求出使 p ( x ∣ v , y ) p(x|v,y) p(x∣v,y)最大的 x x x,即 x ^ = a r g m a x p ( x ∣ v , y ) \hat{x} = argmax\ p(x|v,y) x^=argmax p(x∣v,y)。关键点:第一,以 x x x为变量求出 p ( x ∣ v , y ) p(x|v,y) p(x∣v,y)的形式(不一定是均值和协方差,也可以是其他式子的组合表示);第二,依据优化理论求最值(导数为0)。
- 贝叶斯估计:求出 p ( x ∣ v , y ) p(x|v,y) p(x∣v,y)的(均值、协方差)表达形式,求出的均值就是所估计的最优状态。
(1)最大后验估计(MAP)
目的:已知先验信息 x ˇ 0 \check{x}_0 xˇ0,以及所有时刻的输入 v v v,观测 y y y的条件下,推测出所有时刻的最优状态 x ^ \hat{x} x^
设: x = x 0 : k = ( x 0 , ⋯ , x k ) x=x_{0:k}=(x_0,\cdots,x_k) x=x0:k=(x0,⋯,xk), v = ( x ˇ 0 , v 1 : k ) v=(\check{x}_0,v_{1:k}) v=(xˇ0,v1:k), y = y 0 : k = ( y 0 , ⋯ , y k ) y=y_{0:k}=(y_0,\cdots,y_k) y=y0:k=(y0,⋯,yk),则问题转化为求: x ^ = a r g m a x p ( x ∣ v , y ) \hat{x}=argmax \ p(x|v,y) x^=argmax p(x∣v,y)
由贝叶斯公式:
p ( x ∣ y ) = p ( y ∣ x ) p ( x ) p ( y ) p(x|y)=\frac{p(y|x)p(x)}{p(y)} p(x∣y)=p(y)p(y∣x)p(x)
可类推出:
p ( x ∣ v , y ) = p ( y ∣ x , v ) p ( x ∣ v ) p ( y ∣ v ) p(x|v,y)=\frac{p(y|x,v)p(x|v)}{p(y|v)} p(x∣v,y)=p(y∣v)p(y∣x,v)p(x∣v)
由于观测方程: y k = C k x k + n k y_k=C_kx_k+n_k yk=Ckxk+nk中 y k y_k yk与 v k v_k vk无关,所以 p ( y ∣ x , v ) = p ( y ∣ x ) p(y|x,v)=p(y|x) p(y∣x,v)=p(y∣x)。又由于分母中不含 x x x, p ( y ∣ v ) p(y|v) p(y∣v)与 x x x无关,则有:
x ^ = a r g m a x p ( x ∣ y , v ) = a r g m a x p ( y ∣ x ) ⋅ p ( x ∣ v ) \hat{x} = argmax \ p(x|y,v) = argmax \ p(y|x)\cdot{p(x|v)} x^=argmax p(x∣y,v)=argmax p(y∣x)⋅p(x∣v)
因此,下面主要是求出 p ( y ∣ x ) p(y|x) p(y∣x)与 p ( x ∣ v ) p(x|v) p(x∣v),进而通过优化理论求 a r g m a x argmax argmax
假设:对于所有时刻 k = 0 , ⋯ , K k=0,\cdots,K k=0,⋯,K,所有的噪声项 w k w_k wk和 n k n_k nk之间是无关的,结合运动方程和观测方程, p ( y ∣ x ) p(y|x) p(y∣x)和 p ( x ∣ v ) p(x|v) p(x∣v)可做如下分解:
p ( y ∣ x ) = p ( y 0 , ⋯ , y K ∣ x 0 , ⋯ , x K ) = ∏ k = 0 K p ( y k ∣ x k ) p ( x ∣ v ) = p ( x 0 , ⋯ , x K ∣ x ˇ 0 , v 1 , ⋯ , v K ) = p ( x 0 ∣ x ˇ 0 ) ⋅ ∏ k = 1 K p ( x k ∣ x k − 1 , v k ) p(y|x) = p(y_0,\cdots,y_K|x_0,\cdots,x_K) = \prod_{k=0}^Kp(y_k|x_k) \\ p(x|v) = p(x_0,\cdots,x_K|\check{x}_0,v_1,\cdots,v_K) = p(x_0|\check{x}_0)\cdot{\prod_{k=1}^Kp(x_k|x_{k-1},v_k)} p(y∣x)=p(y0,⋯,yK∣x0,⋯,xK)=k=0∏Kp(yk∣xk)p(x∣v)=p(x0,⋯,xK∣xˇ0,v1,⋯,vK)=p(x0∣xˇ0)⋅k=1∏Kp(xk∣xk−1,vk)
对于分解后的 p ( x ∣ v ) p(x|v) p(x∣v)、 p ( y ∣ x ) p(y|x) p(y∣x),使用具体的概率密度函数形式来表达,如下所示:
-
对于 p ( x 0 ∣ x ˇ 0 ) p(x_0|\check{x}_0) p(x0∣xˇ0),由于已知的先验信息: x 0 ∼ N ( x ˇ 0 , P ˇ 0 ) x_0\sim{\mathcal{N}(\check{x}_0,\check{P}_0)} x0∼N(xˇ0,Pˇ0),则:
p ( x 0 ∣ x ˇ 0 ) = 1 ( 2 π ) N d e t ( P ˇ 0 ) e x p ( − 1 2 ( x 0 − x ˇ 0 ) T P ˇ − 1 ( x 0 − x ˇ 0 ) ) p(x_0|\check{x}_0) = \frac{1}{\sqrt{(2\pi)^Ndet(\check{P}_0)}}exp(-\frac{1}{2}(x_0-\check{x}_0)^T\check{P}^{-1}(x_0-\check{x}_0)) p(x0∣xˇ0)=(2π)Ndet(Pˇ0)1exp(−21(x0−xˇ0)TPˇ−1(x0−xˇ0)) -
对于 p ( x k ∣ x k − 1 , v k ) p(x_k|x_{k-1},v_k) p(xk∣xk−1,vk),由运动方程: x k = A k − 1 x k − 1 + v k + w k ( w k ∼ N ( 0 , Q k ) ) x_k=A_{k-1}x_{k-1}+v_k+w_k \ \ \ \ \ \ (w_k\sim{\mathcal{N}(0,Q_k)}) xk=Ak−1xk−1+vk+wk (wk∼N(0,Qk))可知当 x k − 1 , v k x_{k-1},v_k xk−1,vk已知时,有:
E [ x k ] = E [ A k − 1 x k − 1 + v k + w k ] = A k − 1 x k − 1 + v k + 0 = A k − 1 x k − 1 + v k E [ ( x k − E [ x k ] ) ( x k − E [ x k ] ) T ] = E [ w k w k T ] = Q k E[x_k] = E[A_{k-1}x_{k-1}+v_k+w_k] = A_{k-1}x_{k-1}+v_k+0=A_{k-1}x_{k-1}+v_k \\ E[(x_k-E[x_k])(x_k-E[x_k])^T] = E[w_kw_k^T] = Q_k E[xk]=E[Ak−1xk−1+vk+wk]=Ak−1xk−1+vk+0=Ak−1xk−1+vkE[(xk−E[xk])(xk−E[xk])T]=E[wkwkT]=Qk
所以, p ( x k ∣ x k − 1 , v k ) p(x_k|x_{k-1},v_k) p(xk∣xk−1,vk)的表达式为:
p ( x k ∣ x k − 1 , v k ) = 1 ( 2 π ) N d e t ( Q k ) e x p ( − 1 2 ( x k − A k − 1 x k − 1 − v k ) T Q k − 1 ( x k − A k − 1 x k − 1 − v k ) ) p(x_k|x_{k-1},v_k) = \frac{1}{\sqrt{(2\pi)^Ndet(Q_k)}}exp(-\frac{1}{2}(x_k-A_{k-1}x_{k-1}-v_k)^TQ_k^{-1}(x_k-A_{k-1}x_{k-1}-v_k)) p(xk∣xk−1,vk)=(2π)Ndet(Qk)1exp(−21(x