卡尔曼滤波原理(三)连续随机系统的离散化与连续时间Kalman滤波


实际建模中给的可能是连续的状态方程、连续的量测方程;要用Kalman滤波得先进行离散化。

一、连续时间系统方程离散化

1、连续时间模型

X ˙ ( t ) = F ( t ) X ( t ) + G ( t ) w ( t ) E [ w ( t ) ] = 0 , E [ w ( t ) w T ( τ ) ] = q ( t ) δ ( t − τ ) \dot{\boldsymbol{X}}(t)=\boldsymbol{F}(t) \boldsymbol{X}(t)+\boldsymbol{G}(t) \boldsymbol{w}(t) \quad \mathrm{E}[\boldsymbol{w}(t)]=0, \quad \mathrm{E}\left[\boldsymbol{w}(t) \boldsymbol{w}^{\mathrm{T}}(\tau)\right]=\boldsymbol{q}(t) \delta(t-\tau) X˙(t)=F(t)X(t)+G(t)w(t)E[w(t)]=0,E[w(t)wT(τ)]=q(t)δ(tτ)

连续时间的白噪声不太好理解,它处处连续,处处不可导,幅值无穷大,任何两个时间不相关,且是高斯白噪声

t k − 1 t_{k-1} tk1 t k t_{k} tk 做积分,将 t k − 1 t_{k-1} tk1 t k t_{k} tk 时间内连续的状态方程,转化为 k − 1 k-1 k1 k k k 两时刻间的状态方程,得到离散化形式:
X k = Φ k / k − 1 X k − 1 + η k − 1 \boldsymbol{X}_{k}=\boldsymbol{\Phi}_{k / k-1} \boldsymbol{X}_{k-1}+\boldsymbol{\eta}_{k-1} Xk=Φk/k1Xk1+ηk1
其中:
X k = X ( t k ) Φ k / k − 1 = Φ ( t k , t k − 1 ) ≈ e ∫ t k − 1 t k F ( τ ) d τ η k − 1 = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) w ( τ ) d τ \begin{array}{l}\boldsymbol{X}_{k}=\boldsymbol{X}\left(t_{k}\right) \\ \boldsymbol{\Phi}_{k / k-1}=\boldsymbol{\Phi}\left(t_{k}, t_{k-1}\right) \approx \mathrm{e}^{\int_{t_{k-1}}^{t_{k}} F(\tau) \mathrm{d} \tau} \\ \boldsymbol{\eta}_{k-1}=\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{w}(\tau) \mathrm{d} \tau\end{array} Xk=X(tk)Φk/k1=Φ(tk,tk1)etk1tkF(τ)dτηk1=tk1tkΦ(tk,τ)G(τ)w(τ)dτ

2、状态转移矩阵计算

泰勒展开之后取常数项和一阶项;舍弃后面计算量大且收益小的高阶项,得:
Φ k / k − 1 ≈ e F ( t k − 1 ) T s = I + F ( t k − 1 ) T s + F 2 ( t k − 1 ) I s 2 ∂ ! + F 3 ( t k − 1 ) I s ∂ ! + ⋯ ≈ I + F ( t k − 1 ) T s \boldsymbol{\Phi}_{k / k-1} \approx \mathrm{e}^{F\left(t_{k-1}\right) T_{s}}={\color{red}\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right) T_{s}}+\boldsymbol{F}^{2}\left(t_{k-1}\right) \frac{I_{s}^{2}}{\partial !}+\boldsymbol{F}^{3}\left(t_{k-1}\right) \frac{I_{s}}{\partial !}+\cdots \approx \boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right) T_{s} Φk/k1eF(tk1)Ts=I+F(tk1)Ts+F2(tk1)!Is2+F3(tk1)!Is+I+F(tk1)Ts

3、激励噪声的等效计算

η k − 1 = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) w ( τ ) d τ \boldsymbol{\eta}_{k-1}=\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{w}(\tau) \mathrm{d} \tau ηk1=tk1tkΦ(tk,τ)G(τ)w(τ)dτ
连续时间系统的噪声是高斯白噪声,经过线性变换(微积分也是线性变换),得到的还是高斯白噪声。想了解它,只要知道它的一阶矩和二阶矩就行了

激励噪声均值
E [ η k − 1 ] = E [ ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) w ( τ ) d τ ] = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) E [ w ( τ ) ] d τ = 0 \mathrm{E}\left[\boldsymbol{\eta}_{k-1}\right]=\mathrm{E}\left[\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{w}(\tau) \mathrm{d} \tau\right]=\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \mathrm{E}[\boldsymbol{w}(\tau)] \mathrm{d} \tau=\mathbf{0} E[ηk1]=E[tk1tkΦ(tk,τ)G(τ)w(τ)dτ]=tk1tkΦ(tk,τ)G(τ)E[w(τ)]dτ=0
激励噪声协方差
E [ η k − 1 η j − 1 T ] = 0 k ≠ j \mathrm{E}\left[\boldsymbol{\eta}_{k-1} \boldsymbol{\eta}_{j-1}^{\mathrm{T}}\right]=\mathbf{0} \quad k \neq j E[ηk1ηj1T]=0k=j

E [ η k − 1 η k − 1 T ] = E { ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) w ( τ ) d τ ⋅ [ ∫ t k − 1 t k Φ ( t k , s ) G ( s ) w ( s ) d s ] T } k = j = E [ ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) w ( τ ) ∫ t k − 1 t k w T ( s ) G T ( s ) Φ T ( t k , s ) d s   d τ ] = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) ∫ t k − 1 t k E [ w ( τ ) w T ( s ) ] G T ( s ) Φ T ( t k , s ) d s   d τ = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) ∫ t k − 1 t k q ( τ ) δ ( τ − s ) G T ( s ) Φ T ( t k , s ) d s   d τ = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) q ( τ ) G T ( τ ) Φ T ( t k , τ ) d τ \begin{aligned} \mathrm{E}\left[\boldsymbol{\eta}_{k-1} \boldsymbol{\eta}_{k-1}^{\mathrm{T}}\right] & =\mathrm{E}\left\{\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{w}(\tau) \mathrm{d} \tau \cdot\left[\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, s\right) \boldsymbol{G}(s) \boldsymbol{w}(s) \mathrm{d} s\right]^{\mathrm{T}}\right\} \quad k=j \\ & =\mathrm{E}\left[\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{w}(\tau) \int_{t_{k-1}}^{t_{k}} \boldsymbol{w}^{\mathrm{T}}(s) \boldsymbol{G}^{\mathrm{T}}(s) \boldsymbol{\Phi}^{\mathrm{T}}\left(t_{k}, s\right) \mathrm{d} s \mathrm{~d} \tau\right] \\ & =\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \int_{t_{k-1}}^{t_{k}} \mathrm{E}\left[\boldsymbol{w}(\tau) \boldsymbol{w}^{\mathrm{T}}(s)\right] \boldsymbol{G}^{\mathrm{T}}(s) \boldsymbol{\Phi}^{\mathrm{T}}\left(t_{k}, s\right) \mathrm{d} s \mathrm{~d} \tau \\ & =\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \int_{t_{k-1}}^{t_{k}} \boldsymbol{q}(\tau) \delta(\tau-s) \boldsymbol{G}^{\mathrm{T}}(s) \boldsymbol{\Phi}^{\mathrm{T}}\left(t_{k}, s\right) \mathrm{d} s \mathrm{~d} \tau \\ & =\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{q}(\tau) \boldsymbol{G}^{\mathrm{T}}(\tau) \boldsymbol{\Phi}^{\mathrm{T}}\left(t_{k}, \tau\right) \mathrm{d} \tau\end{aligned} E[ηk1ηk1T]=E{ tk1tkΦ(tk,τ)G(τ)w(τ)dτ[tk1tkΦ(tk,s)G(s)w(s)ds]T}k=j=E[tk1tkΦ(tk,τ)G(τ)w(τ)tk1tkwT(s)GT(s)ΦT(tk,s)ds dτ]=tk1tkΦ(tk,τ)G(τ)tk1tkE[w(τ)wT(s)]GT(s)ΦT(tk,s)ds dτ=tk1tkΦ(tk,τ)G(τ)tk1tkq(τ)δ(τs)GT(s)ΦT(tk,s)ds dτ=tk1tkΦ(tk,τ)G(τ)q(τ)GT(τ)ΦT(tk,τ)dτ

想往下算,得做一些假设,在 t k − 1 t_{k-1} tk1 t k t_k tk 这一小段时间内, Φ ( t k , τ ) G ( τ ) \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) Φ(tk,τ)G(τ) 都为常值,时不变;不是常值可以取一阶项
E [ η k − 1 η k − 1 T ] = ∫ t k − 1 t k Φ ( t k , τ ) G ( τ ) q ( τ ) G T ( τ ) Φ T ( t k , τ ) d τ ≈ ∫ t k − 1 t k [ I + F ( t k − 1 ) ( t k − τ ) ] G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) [ I + F ( t k − 1 ) ( t k − τ ) ] T d τ = ∫ t k − 1 t k G ( t k − 1 ) q G T ( t k − 1 ) d τ + ∫ t k − 1 t k G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) F T ( t k − 1 ) ( t k − τ ) d τ + ∫ t k − 1 t k F ( t k − 1 ) G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) ( t k − τ ) d τ + ∫ t k − 1 t k F ( t k − 1 ) G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) F T ( t k − 1 ) ( t k − τ ) 2   d τ = G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) T s + 1 2 G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) F T ( t k − 1 ) T s 2 + 1 2 F ( t k − 1 ) G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) T s 2 + 1 3 F ( t k − 1 ) G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) F T ( t k − 1 ) T s 3 = [ I + 1 2 F ( t k − 1 ) T s ] ⋅ [ G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) T T s ] ⋅ [ I + 1 2 F ( t k − 1 ) T s ] T + 1 12 F ( t k − 1 ) G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) F T ( t k − 1 ) T s 3 ≈ { [ I + 1 2 F ( t k − 1 ) T s ] G ( t k − 1 ) } ⋅ [ q ( t k − 1 ) T s ] ⋅ { [ I + 1 2 F ( t k − 1 ) T s ] G ( t k − 1 ) } T \begin{aligned} \mathrm{E} & {\left[\boldsymbol{\eta}_{k-1} \boldsymbol{\eta}_{k-1}^{\mathrm{T}}\right]=\int_{t_{k-1}}^{t_{k}} \boldsymbol{\Phi}\left(t_{k}, \tau\right) \boldsymbol{G}(\tau) \boldsymbol{q}(\tau) \boldsymbol{G}^{\mathrm{T}}(\tau) \boldsymbol{\Phi}^{\mathrm{T}}\left(t_{k}, \tau\right) \mathrm{d} \tau } \\ \approx & \int_{t_{k-1}}^{t_{k}}\left[\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right)\left(t_{k}-\tau\right)\right] \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right)\left[\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right)\left(t_{k}-\tau\right)\right]^{\mathrm{T}} \mathrm{d} \tau \\ = & \int_{t_{k-1}}^{t_{k}} \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q} \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \mathrm{d} \tau+\int_{t_{k-1}}^{t_{k}} \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right)\left(t_{k}-\tau\right) \mathrm{d} \tau \\ & \quad+\int_{t_{k-1}}^{t_{k}} \boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right)\left(t_{k}-\tau\right) \mathrm{d} \tau+\int_{t_{k-1}}^{t_{k}} \boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right)\left(t_{k}-\tau\right)^{2} \mathrm{~d} \tau \\ = & \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}+\frac{1}{2} \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}^{2} \\ & \quad+\frac{1}{2} \boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}^{2}+\frac{1}{3} \boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}^{3} \\ = & {\left[\boldsymbol{I}+\frac{1}{2} \boldsymbol{F}\left(t_{k-1}\right) T_{s}\right] \cdot\left[\boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) T T_{s}\right] \cdot\left[\boldsymbol{I}+\frac{1}{2} \boldsymbol{F}\left(t_{k-1}\right) T_{s}\right]^{\mathrm{T}}+\frac{1}{12} \boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}^{3} } \\ \approx & \left\{\left[\boldsymbol{I}+\frac{1}{2} \boldsymbol{F}\left(t_{k-1}\right) T_{s}\right] \boldsymbol{G}\left(t_{k-1}\right)\right\} \cdot\left[\boldsymbol{q}\left(t_{k-1}\right) T_{s}\right] \cdot\left\{\left[\boldsymbol{I}+\frac{1}{2} \boldsymbol{F}\left(t_{k-1}\right) T_{s}\right] \boldsymbol{G}\left(t_{k-1}\right)\right\}^{\mathrm{T}}\end{aligned} E===[ηk1ηk1T]=tk1tkΦ(tk,τ)G(τ)q(τ)GT(τ)ΦT(tk,τ)dτtk1tk[I+F(tk1)(tkτ)]G(tk1)q(tk1)GT(tk1)[I+F(tk1)(tkτ)]Tdτtk1tkG(tk1)qGT(tk1)dτ+tk1tkG(tk1)q(tk1)GT(tk1)FT(tk1)(tkτ)dτ+tk1tkF(tk1)G(tk1)q(tk1)GT(tk1)(tkτ)dτ+tk1tkF(tk1)G(tk1)q(tk1)GT(tk1)FT(tk1)(tkτ)2 dτG(tk1)q(tk1)GT(tk1)Ts+21G(tk1)q(tk1)GT(tk1)FT(tk1)Ts2+21F(tk1)G(tk1)q(tk1)GT(tk1)Ts2+31F(tk1)G(tk1)q(tk1)GT(tk1)FT(tk1)Ts3[I+21F(tk1)Ts][G(tk1)q(tk1)GT(tk1)TTs][I+21F(tk1)Ts]T+121F(tk1)G(tk1)q(tk1)GT(tk1)FT(tk1)Ts3{ [I+21F(tk1)Ts]G(tk1)}[q(tk1)Ts]{ [I+21F(tk1)Ts]G(tk1)}T
如果时间极短,还可以再简化:
E [ η k − 1 η k − 1 T ] ≈ G ( t k − 1 ) ⋅ [ q ( t k − 1 ) T s ] ⋅ G T ( t k − 1 ) F ( t k − 1 ) T s ≪ I \mathrm{E}\left[\boldsymbol{\eta}_{k-1} \boldsymbol{\eta}_{k-1}^{\mathrm{T}}\right] \approx \boldsymbol{G}\left(t_{k-1}\right) \cdot\left[\boldsymbol{q}\left(t_{k-1}\right) T_{s}\right] \cdot \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) \quad \boldsymbol{F}\left(t_{k-1}\right) T_{s} \ll \boldsymbol{I} E[ηk1ηk1T]G(tk1)[q(tk1)Ts]GT(tk1)F(tk1)TsI

4、最终离散化结论

在这里插入图片描述

扫描二维码关注公众号,回复: 15916605 查看本文章

或等价表示为:

在这里插入图片描述

两者都满足:
E [ ( Γ k − 1 W k − 1 ) ( Γ k − 1 W k − 1 ) T ] = G ( t k − 1 ) ⋅ [ q ( t k − 1 ) T s ] ⋅ G T ( t k − 1 ) = E [ ( Γ k − 1 ′ W k − 1 ′ ) ( Γ k − 1 ′ W k − 1 ′ ) T ] \mathrm{E}\left[\left(\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1}\right)\left(\boldsymbol{\Gamma}_{k-1} \boldsymbol{W}_{k-1}\right)^{\mathrm{T}}\right]=\boldsymbol{G}\left(t_{k-1}\right) \cdot\left[\boldsymbol{q}\left(t_{k-1}\right) T_{s}\right] \cdot \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right)=\mathrm{E}\left[\left(\boldsymbol{\Gamma}_{k-1}^{\prime} \boldsymbol{W}_{k-1}^{\prime}\right)\left(\boldsymbol{\Gamma}_{k-1}^{\prime} \boldsymbol{W}_{k-1}^{\prime}\right)^{\mathrm{T}}\right] E[(Γk1Wk1)(Γk1Wk1)T]=G(tk1)[q(tk1)Ts]GT(tk1)=E[(Γk1Wk1)(Γk1Wk1)T]

5、常见简单随机过程离散化

1.一阶马尔可夫: X ˙ ( t ) = − β X ( t ) + w ( t ) X k = a 1 X k − 1 + W k − 1 \dot{X}(t)=-\beta X(t)+w(t) \quad X_{k}=a_{1} X_{k-1}+W_{k-1} X˙(t)=βX(t)+w(t)Xk=a1Xk1+Wk1

2.二阶马尔可夫: X ¨ ( t ) = − 2 β X ˙ ( t ) − β 2 X ( t ) + w ( t ) X k = a 1 X k − 1 + a 2 X k − 2 + W k − 1 \ddot{X}(t)=-2 \beta \dot{X}(t)-\beta^{2} X(t)+w(t) \quad X_{k}=a_{1} X_{k-1}+a_{2} X_{k-2}+W_{k-1} X¨(t)=2βX˙(t)β2X(t)+w(t)Xk=a1Xk1+a2Xk2+Wk1

3.随机游走: X ˙ ( t ) = w ( t ) X k = X k − 1 + W k − 1 \dot{X}(t)=w(t) \quad X_{k}=X_{k-1}+W_{k-1} X˙(t)=w(t)Xk=Xk1+Wk1

4.随机常值: X ˙ ( t ) = 0 X k = X 0 \dot{X}(t)=0 \quad X_{k}=X_{0} X˙(t)=0Xk=X0

6、实际物理信号的噪声单位

在这里插入图片描述

  • τ \tau τ 表示相关时间,很多时候等于 1 1 1,所以 − 1 / τ -1 / \tau 1/τ 可能被省略
  • q − U / s / H z \sqrt{q}-\mathrm{U} / \mathrm{s} / \sqrt{Hz } \mathrm{} q U/s/Hz 为激励噪声密度,描述激励噪声本身。 U / S \mathrm{U} / \sqrt{ S} U/S 随机游走噪声系数,是想描述 X X X 的噪声。描述的主体不同。比如惯导中有:

在这里插入图片描述

二、连续时间量测方程离散化

连续量测方程的只是理论上的抽象,没有实际意义

连续量测模型
Z ( t ) = H ( t ) X ( t ) + v ( t ) E [ v ( t ) ] = 0 , E [ v ( t ) v T ( τ ) ] = r ( t ) δ ( t − τ ) \boldsymbol{Z}(t)=\boldsymbol{H}(t) \boldsymbol{X}(t)+\boldsymbol{v}(t) \quad \mathrm{E}[\boldsymbol{v}(t)]=\mathbf{0}, \quad \mathrm{E}\left[\boldsymbol{v}(t) \boldsymbol{v}^{\mathrm{T}}(\tau)\right]=\boldsymbol{r}(t) \delta(t-\tau) Z(t)=H(t)X(t)+v(t)E[v(t)]=0,E[v(t)vT(τ)]=r(t)δ(tτ)
t k − 1 t_{k-1} tk1 t k t_{k} tk 时间段,两边积分平均:
1 T s ∫ t k − 1 t k Z ( τ ) d τ = 1 T v ∫ t k − 1 t k H ( τ ) X ( τ ) + v ( τ ) d τ = 1 T v ∫ t k − 1 t k H ( τ ) X ( τ ) d τ + 1 T s ∫ t k − 1 t k v ( τ ) d τ \frac{1}{T_{s}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{Z}(\tau) \mathrm{d} \tau=\frac{1}{T_{v}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{H}(\tau) \boldsymbol{X}(\tau)+\boldsymbol{v}(\tau) \mathrm{d} \tau=\frac{1}{T_{v}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{H}(\tau) \boldsymbol{X}(\tau) \mathrm{d} \tau+\frac{1}{T_{s}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{v}(\tau) \mathrm{d} \tau Ts1tk1tkZ(τ)dτ=Tv1tk1tkH(τ)X(τ)+v(τ)dτ=Tv1tk1tkH(τ)X(τ)dτ+Ts1tk1tkv(τ)dτ
离散化记为: Z k ≈ H k X k + V k \boldsymbol{Z}_{k} \approx \boldsymbol{H}_{k} \boldsymbol{X}_{k}+\boldsymbol{V}_{k} ZkHkXk+Vk

观测噪声均值
E [ V k ] = E [ 1 T s ∫ t k − 1 t k v ( τ ) d τ ] = 1 T s ∫ t k − 1 t k E [ v ( τ ) ] d τ = 0 \mathrm{E}\left[\boldsymbol{V}_{k}\right]=\mathrm{E}\left[\frac{1}{T_{s}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{v}(\tau) \mathrm{d} \tau\right]=\frac{1}{T_{s}} \int_{t_{k-1}}^{t_{k}} \mathrm{E}[\boldsymbol{v}(\tau)] \mathrm{d} \tau=\mathbf{0} E[Vk]=E[Ts1tk1tkv(τ)dτ]=Ts1tk1tkE[v(τ)]dτ=0
观测噪声协方差
E [ V k V j T ] = E [ ( 1 T s ∫ t k − 1 t k v ( τ ) d τ ) ( 1 T s ∫ t j − 1 t j v ( s ) d s ) T ] = 1 T s 2 ∫ t k − 1 t k ∫ t j − 1 t j E [ v ( τ ) v T ( s ) ] d s   d τ = 1 T s 2 ∫ t k − 1 t k ∫ t j − 1 t j r ( τ ) δ ( s − τ ) d s   d = 1 T s 2 ∫ t k − 1 t k r ( τ ) δ k j   d τ ≈ r ( t k ) T s δ k j ≜ R k δ k j \begin{aligned} \mathrm{E}\left[\boldsymbol{V}_{k} \boldsymbol{V}_{j}^{\mathrm{T}}\right] & =\mathrm{E}\left[\left(\frac{1}{T_{s}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{v}(\tau) \mathrm{d} \tau\right)\left(\frac{1}{T_{s}} \int_{t_{j-1}}^{t_{j}} \boldsymbol{v}(s) \mathrm{d} s\right)^{\mathrm{T}}\right] \\ & =\frac{1}{T_{s}^{2}} \int_{t_{k-1}}^{t_{k}} \int_{t_{j-1}}^{t_{j}} \mathrm{E}\left[\boldsymbol{v}(\tau) \boldsymbol{v}^{\mathrm{T}}(s)\right] \mathrm{d} s \mathrm{~d} \tau=\frac{1}{T_{s}^{2}} \int_{t_{k-1}}^{t_{k}} \int_{t_{j-1}}^{t_{j}} \boldsymbol{r}(\tau) \delta(s-\tau) \mathrm{d} s \mathrm{~d} \\ & =\frac{1}{T_{s}^{2}} \int_{t_{k-1}}^{t_{k}} \boldsymbol{r}(\tau) \delta_{k j} \mathrm{~d} \tau \approx \frac{\boldsymbol{r}\left(t_{k}\right)}{T_{s}} \delta_{k j} \triangleq \boldsymbol{R}_{k} \delta_{k j}\end{aligned} E[VkVjT]=E (Ts1tk1tkv(τ)dτ)(Ts1tj1tjv(s)ds)T =Ts21tk1tktj1tjE[v(τ)vT(s)]ds dτ=Ts21tk1tktj1tjr(τ)δ(sτ)ds d=Ts21tk1tkr(τ)δkj dτTsr(tk)δkjRkδkj
离散化量测间隔越小,等效出来的量测方差 R k \boldsymbol{R}_{k} Rk 越大

三、连续时间Kalman滤波

连续的函数可以认为是离散函数,但离散间隔 t k − 1 t_{k-1} tk1 t k t_{k} tk 趋于 0 0 0 ;推导不是太严格,但比较直观。

1、连续状态空间模型

函数模型
{ X ˙ ( t ) = F ( t ) X ( t ) + G ( t ) w ( t ) Z ( t ) = H ( t ) X ( t ) + v ( t ) \left\{\begin{array}{l}\dot{\boldsymbol{X}}(t)=\boldsymbol{F}(t) \boldsymbol{X}(t)+\boldsymbol{G}(t) \boldsymbol{w}(t) \\ \boldsymbol{Z}(t)=\boldsymbol{H}(t) \boldsymbol{X}(t)+\boldsymbol{v}(t)\end{array}\right. { X˙(t)=F(t)X(t)+G(t)w(t)Z(t)=H(t)X(t)+v(t)
随机模型
{ E [ w ( t ) ] = 0 , E [ w ( t ) w T ( τ ) ] = q ( t ) δ ( t − τ ) E [ v ( t ) ] = 0 , E [ v ( t ) v T ( τ ) ] = r ( t ) δ ( t − τ ) E [ w ( t ) v T ( τ ) ] = 0 \left\{\begin{array}{l}\mathrm{E}[\boldsymbol{w}(t)]=\mathbf{0}, \quad \mathrm{E}\left[\boldsymbol{w}(t) \boldsymbol{w}^{\mathrm{T}}(\tau)\right]=\boldsymbol{q}(t) \delta(t-\tau) \\ \mathrm{E}[\boldsymbol{v}(t)]=\mathbf{0}, \quad \mathrm{E}\left[\boldsymbol{v}(t) \boldsymbol{v}^{\mathrm{T}}(\tau)\right]=\boldsymbol{r}(t) \delta(t-\tau) \\ \mathrm{E}\left[\boldsymbol{w}(t) \boldsymbol{v}^{\mathrm{T}}(\tau)\right]=\mathbf{0}\end{array}\right. E[w(t)]=0,E[w(t)wT(τ)]=q(t)δ(tτ)E[v(t)]=0,E[v(t)vT(τ)]=r(t)δ(tτ)E[w(t)vT(τ)]=0

2、离散时间Kalman滤波

  1. 状态一步预测: X ^ k / k − 1 = Φ k / k − 1 X ^ k − 1 \hat{\boldsymbol{X}}_{k / k-1}=\boldsymbol{\Phi}_{k / k-1} \hat{\boldsymbol{X}}_{k-1} X^k/k1=Φk/k1X^k1
  2. 状态一步预测均方误差: P k / k − 1 = Φ k / k − 1 P k − 1 Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T \boldsymbol{P}_{k / k-1}=\boldsymbol{\Phi}_{k / k-1} \boldsymbol{P}_{k-1} \boldsymbol{\Phi}_{k / k-1}^{\mathrm{T}}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^{\mathrm{T}} Pk/k1=Φk/k1Pk1Φk/k1T+Γk1Qk1Γk1T
  3. 滤波增益: K k = P k / k − 1 H k T ( H k P k / k − 1 H k T + R k ) − 1 \boldsymbol{K}_{k}=\boldsymbol{P}_{k / k-1} \boldsymbol{H}_{k}^{\mathrm{T}}\left(\boldsymbol{H}_{k} \boldsymbol{P}_{k / k-1} \boldsymbol{H}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} Kk=Pk/k1HkT(HkPk/k1HkT+Rk)1
  4. 状态估计: X ^ k = X ^ k / k − 1 + K k ( Z k − H k X ^ k / k − 1 ) \hat{\boldsymbol{X}}_{k}=\hat{\boldsymbol{X}}_{k / k-1}+\boldsymbol{K}_{k}\left(\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{k / k-1}\right) X^k=X^k/k1+Kk(ZkHkX^k/k1)
  5. 状态估计均方误差: P k = ( I − K k H k ) P k / k − 1 \boldsymbol{P}_{k}=\left(\boldsymbol{I}-\boldsymbol{K}_{k} \boldsymbol{H}_{k}\right) \boldsymbol{P}_{k / k-1} Pk=(IKkHk)Pk/k1

3、增益矩阵的连续化

将离散方程里的量测噪声 R k \boldsymbol{R}_{k} Rk 换成连续方程里的 r ( t k ) T s \frac{\boldsymbol{r}\left(t_{k}\right)}{T_{s}} Tsr(tk) 得:
K k = P k H k T R k − 1 = P k H k T [ r ( t k ) T s ] − 1 = T s P k H k T r − 1 ( t k ) \boldsymbol{K}_{k}=\boldsymbol{P}_{k} \boldsymbol{H}_{k}^{\mathrm{T}} {\color{red}\boldsymbol{R}_{k}^{-1}}=\boldsymbol{P}_{k} \boldsymbol{H}_{k}^{\mathrm{T}}{\color{red}\left[\frac{\boldsymbol{r}\left(t_{k}\right)}{T_{s}}\right]}^{-1}={\color{red}T_{s} }\boldsymbol{P}_{k} \boldsymbol{H}_{k}^{\mathrm{T}} {\color{red}\boldsymbol{r}^{-1}\left(t_{k}\right)} Kk=PkHkTRk1=PkHkT[Tsr(tk)]1=TsPkHkTr1(tk)
T s T_s Ts 除到左边,求 T s T_s Ts 趋于 0 0 0 的极限:
K ( t ) = lim ⁡ T s → 0 K k T s = lim ⁡ T s → 0 P k H k T r − 1 ( t k ) = P ( t ) H T ( t ) r − 1 ( t ) \boldsymbol{K}(t)=\lim \limits_{T_{s} \rightarrow 0} \frac{\boldsymbol{K}_{k}}{T_{s}}=\lim \limits_{T_{s} \rightarrow 0} \boldsymbol{P}_{k} \boldsymbol{H}_{k}^{\mathrm{T}} {\color{red}\boldsymbol{r}^{-1}\left(t_{k}\right)}=\boldsymbol{P}(t) \boldsymbol{H}^{\mathrm{T}}(t) {\color{red}\boldsymbol{r}^{-1}(t)} K(t)=Ts0limTsKk=Ts0limPkHkTr1(tk)=P(t)HT(t)r1(t)
即离散方程的增益 K k {K}_{k} Kk 除以时间间隔 T s T_s Ts 记成连续方程的增益;如果 T s T_s Ts 趋于 0 0 0 , K k {K}_{k} Kk 也趋于 0,时间很短,预测很小,量测的修正自然也很小。

4、状态估计的连续化

将一阶的状态转移矩阵带入:
X ^ k = Φ k / k − 1 X ^ k − 1 + K k ( Z k − H k Φ k / k − 1 X ^ k − 1 ) = [ I + F ( t k − 1 ) T s ] X ^ k − 1 + K k { Z k − H k [ I + F ( t k − 1 ) T s ] X ^ k − 1 } = X ^ k − 1 + F ( t k − 1 ) X ^ k − 1 T s + K k [ Z k − H k X ^ k − 1 − H k F ( t k − 1 ) X ^ k − 1 T s ] \begin{aligned} \hat{\boldsymbol{X}}_{k} & ={\color{green}\boldsymbol{\Phi}_{k / k-1} }\hat{\boldsymbol{X}}_{k-1}+\boldsymbol{K}_{k}\left(\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} {\color{green}\boldsymbol{\Phi}_{k / k-1}} \hat{\boldsymbol{X}}_{k-1}\right) \\ & ={\color{green}\left[\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right) T_{s}\right]} \hat{\boldsymbol{X}}_{k-1}+\boldsymbol{K}_{k}\left\{\boldsymbol{Z}_{k}-\boldsymbol{H}_{k}{\color{green}\left[\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right) T_{s}\right]} \hat{\boldsymbol{X}}_{k-1}\right\} \\ & ={\color{red}\hat{\boldsymbol{X}}_{k-1}}+\boldsymbol{F}\left(t_{k-1}\right) \hat{\boldsymbol{X}}_{k-1} T_{s}+\boldsymbol{K}_{k}\left[\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{k-1}-\boldsymbol{H}_{k} \boldsymbol{F}\left(t_{k-1}\right) \hat{\boldsymbol{X}}_{k-1} T_{s}\right]\end{aligned} X^k=Φk/k1X^k1+Kk(ZkHkΦk/k1X^k1)=[I+F(tk1)Ts]X^k1+Kk{ ZkHk[I+F(tk1)Ts]X^k1}=X^k1+F(tk1)X^k1Ts+Kk[ZkHkX^k1HkF(tk1)X^k1Ts]
X ^ k − 1 {\color{red}\hat{\boldsymbol{X}}_{k-1}} X^k1 减到左边, k k k 时刻的值,减去 k − 1 k-1 k1 时刻的值,除以 T s T_s Ts,求 T s T_s Ts 趋于 0 0 0 的极限,就是连续的方程:
X ^ ˙ ( t ) = lim ⁡ T s → 0 X k − X k − 1 T s = lim ⁡ T s → 0 F ( t k − 1 ) X ^ k − 1 + K k T s [ Z k − H k X ^ k − 1 − H k F ( t k − 1 ) X ^ k − 1 T s ] = F ( t ) X ^ ( t ) + K ( t ) [ Z ( t ) − H ( t ) X ^ ( t ) ] \begin{aligned} \dot{\hat{\boldsymbol{X}}}(t) & =\lim \limits_{T_{s} \rightarrow 0} \frac{\boldsymbol{X}_{k}-\boldsymbol{X}_{k-1}}{T_{s}}=\lim \limits_{T_{s} \rightarrow 0} \boldsymbol{F}\left(t_{k-1}\right) \hat{\boldsymbol{X}}_{k-1}+\frac{\boldsymbol{K}_{k}}{T_{s}}\left[\boldsymbol{Z}_{k}-\boldsymbol{H}_{k} \hat{\boldsymbol{X}}_{k-1}-\boldsymbol{H}_{k} \boldsymbol{F}\left(t_{k-1}\right) \hat{\boldsymbol{X}}_{k-1} T_{s}\right] \\ & =\boldsymbol{F}(t) \hat{\boldsymbol{X}}(t)+\boldsymbol{K}(t)[\boldsymbol{Z}(t)-\boldsymbol{H}(t) \hat{\boldsymbol{X}}(t)]\end{aligned} X^˙(t)=Ts0limTsXkXk1=Ts0limF(tk1)X^k1+TsKk[ZkHkX^k1HkF(tk1)X^k1Ts]=F(t)X^(t)+K(t)[Z(t)H(t)X^(t)]

5、均方差阵的连续化

将一阶的状态转移矩阵带入:
P k = ( I − K k H k ) ( Φ k / k − 1 P k − 1 Φ k / k − 1 T + Γ k − 1 Q k − 1 Γ k − 1 T ) = ( I − K k H k ) { [ I + F ( t k − 1 ) T s ] P k − 1 [ I + F ( t k − 1 ) T s ] T + G ( t k − 1 ) ⋅ q ( t k − 1 ) T s ⋅ G T ( t k − 1 ) } = P k − 1 + F ( t k − 1 ) P k − 1 T s + P k − 1 F T ( t k − 1 ) T s + G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) T s + O ( T s 2 ) − K k H k [ P k − 1 + O ( T s ) ] \begin{aligned} \boldsymbol{P}_{k} & =\left(\boldsymbol{I}-\boldsymbol{K}_{k} \boldsymbol{H}_{k}\right)\left({\color{green}\boldsymbol{\Phi}_{k / k-1}} \boldsymbol{P}_{k-1} {\color{green}\boldsymbol{\Phi}_{k / k-1}^{\mathrm{T}}}+\boldsymbol{\Gamma}_{k-1} \boldsymbol{Q}_{k-1} \boldsymbol{\Gamma}_{k-1}^{\mathrm{T}}\right) \\ & =\left(\boldsymbol{I}-\boldsymbol{K}_{k} \boldsymbol{H}_{k}\right)\left\{ {\color{green}\left[\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right) T_{s}\right]} \boldsymbol{P}_{k-1}{\color{green}\left[\boldsymbol{I}+\boldsymbol{F}\left(t_{k-1}\right) T_{s}\right]^{\mathrm{T}}}+\boldsymbol{G}\left(t_{k-1}\right) \cdot \boldsymbol{q}\left(t_{k-1}\right) T_{s} \cdot \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right)\right\} \\ & ={\color{red}\boldsymbol{P}_{k-1}}+\boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{P}_{k-1} T_{s}+\boldsymbol{P}_{k-1} \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}+\boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right) T_{s}+O\left(T_{s}^{2}\right)-\boldsymbol{K}_{k} \boldsymbol{H}_{k}\left[{\boldsymbol{P}_{k-1}}+O\left(T_{s}\right)\right]\end{aligned} Pk=(IKkHk)(Φk/k1Pk1Φk/k1T+Γk1Qk1Γk1T)=(IKkHk){ [I+F(tk1)Ts]Pk1[I+F(tk1)Ts]T+G(tk1)q(tk1)TsGT(tk1)}=Pk1+F(tk1)Pk1Ts+Pk1FT(tk1)Ts+G(tk1)q(tk1)GT(tk1)Ts+O(Ts2)KkHk[Pk1+O(Ts)]
同理,将 P k − 1 {\color{red}P_{k-1}} Pk1 减到左边, k k k 时刻的值,减去 k − 1 k-1 k1 时刻的值,除以 T s T_s Ts,求 T s T_s Ts 趋于 0 0 0 的极限,就是连续的方程:
P ˙ ( t ) = lim ⁡ T s → 0 P k − P k − 1 T s = lim ⁡ T s → 0 F ( t k − 1 ) P k − 1 + P k − 1 F T ( t k − 1 ) + G ( t k − 1 ) q ( t k − 1 ) G T ( t k − 1 ) − K k T s H k P k − 1 = F ( t ) P ( t ) + P ( t ) F T ( t ) + G ( t ) q ( t ) G T ( t ) − K ( t ) H ( t ) P ( t ) = F ( t ) P ( t ) + P ( t ) F T ( t ) − K ( t ) r ( t ) K T ( t ) + G ( t ) q ( t ) G T ( t ) \begin{aligned} \dot{\boldsymbol{P}}(t) & =\lim \limits_{T_{s} \rightarrow 0} \frac{\boldsymbol{P}_{k}-\boldsymbol{P}_{k-1}}{T_{s}}=\lim \limits_{T_{s} \rightarrow 0} \boldsymbol{F}\left(t_{k-1}\right) \boldsymbol{P}_{k-1}+\boldsymbol{P}_{k-1} \boldsymbol{F}^{\mathrm{T}}\left(t_{k-1}\right)+\boldsymbol{G}\left(t_{k-1}\right) \boldsymbol{q}\left(t_{k-1}\right) \boldsymbol{G}^{\mathrm{T}}\left(t_{k-1}\right)-\frac{\boldsymbol{K}_{k}}{T_{s}} \boldsymbol{H}_{k} \boldsymbol{P}_{k-1} \\ & =\boldsymbol{F}(t) \boldsymbol{P}(t)+\boldsymbol{P}(t) \boldsymbol{F}^{\mathrm{T}}(t)+\boldsymbol{G}(t) \boldsymbol{q}(t) \boldsymbol{G}^{\mathrm{T}}(t)-\boldsymbol{K}(t) \boldsymbol{H}(t) \boldsymbol{P}(t) \\ & =\boldsymbol{F}(t) \boldsymbol{P}(t)+\boldsymbol{P}(t) \boldsymbol{F}^{\mathrm{T}}(t)-\boldsymbol{K}(t) \boldsymbol{r}(t) \boldsymbol{K}^{\mathrm{T}}(t)+\boldsymbol{G}(t) \boldsymbol{q}(t) \boldsymbol{G}^{\mathrm{T}}(t)\end{aligned} P˙(t)=Ts0limTsPkPk1=Ts0limF(tk1)Pk1+Pk1FT(tk1)+G(tk1)q(tk1)GT(tk1)TsKkHkPk1=F(t)P(t)+P(t)FT(t)+G(t)q(t)GT(t)K(t)H(t)P(t)=F(t)P(t)+P(t)FT(t)K(t)r(t)KT(t)+G(t)q(t)GT(t)

此方程也称:矩阵黎卡蒂(Riccati)方程,下面简单介绍一下Riccati方程:

标量Riccati方程

矩阵Riccati方程
P ˙ ( t ) = F ( t ) P ( t ) + P ( t ) F T ( t ) − P ( t ) H T ( t ) r − 1 ( t ) H ( t ) P ( t ) + G ( t ) q ( t ) G T ( t ) \dot{\boldsymbol{P}}(t)=\boldsymbol{F}(t) \boldsymbol{P}(t)+\boldsymbol{P}(t) \boldsymbol{F}^{\mathrm{T}}(t)-\boldsymbol{P}(t) \boldsymbol{H}^{\mathrm{T}}(t) \boldsymbol{r}^{-1}(t) \boldsymbol{H}(t) \boldsymbol{P}(t)+\boldsymbol{G}(t) \boldsymbol{q}(t) \boldsymbol{G}^{\mathrm{T}}(t) P˙(t)=F(t)P(t)+P(t)FT(t)P(t)HT(t)r1(t)H(t)P(t)+G(t)q(t)GT(t)
Kalman滤波里的 P P P 一定是对称阵,转置还是本身,所以都没写

简记为: P ˙ = F P + P F F T − P R P + Q \dot{\boldsymbol{P}}=\boldsymbol{F P}+\boldsymbol{P F} \boldsymbol{F}^{\mathrm{T}}-\boldsymbol{P} \boldsymbol{R P}+\boldsymbol{Q} P˙=FP+PFFTPRP+Q

它的解等价于 (化非线性问题为线性求解):
P = Y D − 1  其中  [ Y ˙ D ˙ ] = [ F Q R − F T ] [ Y D ] \boldsymbol{P}=\boldsymbol{Y} \boldsymbol{D}^{-1} \quad \text { 其中 } \quad\left[\begin{array}{c} \dot{\boldsymbol{Y}} \\ \dot{\boldsymbol{D}} \end{array}\right]=\left[\begin{array}{cc} \boldsymbol{F} & \boldsymbol{Q} \\ \boldsymbol{R} & -\boldsymbol{F}^{\mathrm{T}} \end{array}\right]\left[\begin{array}{l} \boldsymbol{Y} \\ \boldsymbol{D} \end{array}\right] P=YD1 其中 [Y˙D˙]=[FRQFT][YD]

验证如下:
Y = P D Y ˙ = P ˙ D + P D ˙ P ˙ = Y ˙ D − 1 − P D ˙ D − 1 = ( F Y + Q D ) D − 1 − P ( R Y − F T D ) D − 1 = F Y D − 1 + Q − P R Y D − 1 + P F T = F P + Q − P R P + P F T \begin{aligned} \boldsymbol{Y} & =\boldsymbol{P D} \\ \dot{\boldsymbol{Y}} & =\dot{\boldsymbol{P}} \boldsymbol{D}+\boldsymbol{P} \dot{\boldsymbol{D}} \\ \dot{\boldsymbol{P}} & =\dot{\boldsymbol{Y}} \boldsymbol{D}^{-1}-\boldsymbol{P} \dot{\boldsymbol{D}} \boldsymbol{D}^{-1}=(\boldsymbol{F} \boldsymbol{Y}+\boldsymbol{Q D}) \boldsymbol{D}^{-1}-\boldsymbol{P}\left(\boldsymbol{R} \boldsymbol{Y}-\boldsymbol{F}^{\mathrm{T}} \boldsymbol{D}\right) \boldsymbol{D}^{-1} \\ & =\boldsymbol{F} \boldsymbol{Y} \boldsymbol{D}^{-1}+\boldsymbol{Q}-\boldsymbol{P} \boldsymbol{R} \boldsymbol{Y} \boldsymbol{D}^{-1}+\boldsymbol{P} \boldsymbol{F}^{\mathrm{T}}=\boldsymbol{F P}+\boldsymbol{Q}-\boldsymbol{P} \boldsymbol{R} \boldsymbol{P}+\boldsymbol{P} \boldsymbol{F}^{\mathrm{T}}\end{aligned} YY˙P˙=PD=P˙D+PD˙=Y˙D1PD˙D1=(FY+QD)D1P(RYFTD)D1=FYD1+QPRYD1+PFT=FP+QPRP+PFT

但线性化后此矩阵微分方程没有初等解,只有毕卡积分级数解:

时变状态/矩阵方程 X ˙ ( t ) = F ( t ) X ( t ) \dot{\boldsymbol{X}}(t)=\boldsymbol{F}(t) \boldsymbol{X}(t) X˙(t)=F(t)X(t) 的毕卡积分级数解:

上面方程两边积分得:
X ( t ) = X ( 0 ) + ∫ 0 t F ( τ ) X ( τ ) d τ \boldsymbol{X}(t) =\boldsymbol{X}(0)+\int_{0}^{t} \boldsymbol{F}(\tau) {\color{red}\boldsymbol{X}(\tau)} \mathrm{d} \tau X(t)=X(0)+0tF(τ)X(τ)dτ
但此方程右边还含有未知量,迭代一次,将 X ( τ ) {\color{red}\boldsymbol{X}(\tau)} X(τ) 替换成上式
X ( t ) = X ( 0 ) + ∫ 0 t F ( τ ) [ X ( 0 ) + ∫ 0 τ F ( τ 1 ) X ( τ 1 ) d τ 1 ] d τ \boldsymbol{X}(t) =\boldsymbol{X}(0)+\int_{0}^{t} \boldsymbol{F}(\tau)\left[\boldsymbol{X}(0)+\int_{0}^{\tau} \boldsymbol{F}\left(\tau_{1}\right) {\color{red}\boldsymbol{X}\left(\tau_{1}\right) }\mathrm{d} \tau_{1}\right] \mathrm{d} \tau X(t)=X(0)+0tF(τ)[X(0)+0τF(τ1)X(τ1)dτ1]dτ
里面又含未知变量 X ( τ 1 ) {\color{red}\boldsymbol{X}\left(\tau_{1}\right) } X(τ1) ,再进行替换。反复迭代,一直存在未知变量,最后就变成无穷级数,而且还是无穷重积分
= X ( 0 ) + ∫ 0 t F ( τ ) d τ X ( 0 ) + ∫ 0 t F ( τ ) ∫ 0 τ F ( τ 1 ) X ( τ 1 ) d τ 1   d τ = ⋯ = [ I + ∫ 0 t F ( τ ) d τ + ∫ 0 t F ( τ ) ∫ 0 τ F ( τ 1 ) d τ 1   d τ + ∫ 0 t F ( τ ) ∫ 0 τ F ( τ 1 ) ∫ 0 τ 1 F ( τ 2 ) d τ 2   d τ 1   d τ + ⋯   ] X ( 0 ) \begin{aligned} & =\boldsymbol{X}(0)+\int_{0}^{t} \boldsymbol{F}(\tau) \mathrm{d} \tau \boldsymbol{X}(0)+\int_{0}^{t} \boldsymbol{F}(\tau) \int_{0}^{\tau} \boldsymbol{F}\left(\tau_{1}\right) \boldsymbol{X}\left(\tau_{1}\right) \mathrm{d} \tau_{1} \mathrm{~d} \tau=\cdots \\ & =\left[\boldsymbol{I}+\int_{0}^{t} \boldsymbol{F}(\tau) \mathrm{d} \tau+\int_{0}^{t} \boldsymbol{F}(\tau) \int_{0}^{\tau} \boldsymbol{F}\left(\tau_{1}\right) \mathrm{d} \tau_{1} \mathrm{~d} \tau+\int_{0}^{t} \boldsymbol{F}(\tau) \int_{0}^{\tau} \boldsymbol{F}\left(\tau_{1}\right) \int_{0}^{\tau_{1}} \boldsymbol{F}\left(\tau_{2}\right) \mathrm{d} \tau_{2} \mathrm{~d} \tau_{1} \mathrm{~d} \tau+\cdots\right] \boldsymbol{X}(0) \\ \end{aligned} =X(0)+0tF(τ)dτX(0)+0tF(τ)0τF(τ1)X(τ1)dτ1 dτ==[I+0tF(τ)dτ+0tF(τ)0τF(τ1)dτ1 dτ+0tF(τ)0τF(τ1)0τ1F(τ2)dτ2 dτ1 dτ+]X(0)
前面括号内的矩阵就是从 0 0 0 时刻转移到 t t t 时刻的状态转移矩阵:
Φ ( t , 0 ) = I + ∫ 0 t F ( τ ) d τ + ∫ 0 t F ( τ ) ∫ 0 τ F ( τ 1 ) d τ 1   d τ + ∫ 0 t F ( τ ) ∫ 0 τ F ( τ 1 ) ∫ 0 τ 1 F ( τ 2 ) d τ 2   d τ 1   d τ + ⋯ \boldsymbol{\Phi}(t, 0) =\boldsymbol{I}+\int_{0}^{t} \boldsymbol{F}(\tau) \mathrm{d} \tau+\int_{0}^{t} \boldsymbol{F}(\tau) \int_{0}^{\tau} \boldsymbol{F}\left(\tau_{1}\right) \mathrm{d} \tau_{1} \mathrm{~d} \tau+\int_{0}^{t} \boldsymbol{F}(\tau) \int_{0}^{\tau} \boldsymbol{F}\left(\tau_{1}\right) \int_{0}^{\tau_{1}} \boldsymbol{F}\left(\tau_{2}\right) \mathrm{d} \tau_{2} \mathrm{~d} \tau_{1} \mathrm{~d} \tau+\cdots Φ(t,0)=I+0tF(τ)dτ+0tF(τ)0τF(τ1)dτ1 dτ+0tF(τ)0τF(τ1)0τ1F(τ2)dτ2 dτ1 dτ+

可以省略高阶项进行近似,或者有时候高阶项就为 0 0 0

  • 一般情况下不可交换 F ( τ ) F ( τ 1 ) ≠ F ( τ 1 ) F ( τ ) \boldsymbol{F}(\tau) \boldsymbol{F}\left(\tau_{1}\right) \neq \boldsymbol{F}\left(\tau_{1}\right) \boldsymbol{F}(\tau) F(τ)F(τ1)=F(τ1)F(τ), 上式即为最终毕卡级数解;

  • 可交换时 F ( τ ) F ( τ 1 ) = F ( τ 1 ) F ( τ ) \boldsymbol{F}(\tau) \boldsymbol{F}\left(\tau_{1}\right)=\boldsymbol{F}\left(\tau_{1}\right) \boldsymbol{F}(\tau) F(τ)F(τ1)=F(τ1)F(τ) (特殊如常值 F ( τ ) = F ) \left.\boldsymbol{F}(\tau)=\boldsymbol{F}\right) F(τ)=F), 才有闭合解:

    可交换时,多重积分等于单重积分的 n n n 次方,除以 n n n 的阶乘分之一

∫ 0 τ 1 F ( τ 1 ) ⋯ ∫ 0 τ n F ( τ n ) d τ n ⋯ d τ 1 = 1 n ! [ ∫ 0 τ 1 F ( τ ) d τ 1 ] n Φ ( t , 0 ) = I + 1 1 ! ∫ 0 t F ( τ ) d τ + 1 2 ! [ ∫ 0 t F ( τ ) d τ ] 2 + 1 3 ! [ ∫ 0 t F ( τ ) d τ ] 3 + ⋯ = e ∫ 0 t F ( τ ) d τ 40 \begin{array}{l} \int_{0}^{\tau_{1}} \boldsymbol{F}\left(\tau_{1}\right) \cdots \int_{0}^{\tau_{n}} \boldsymbol{F}\left(\tau_{n}\right) \mathrm{d} \tau_{n} \cdots \mathrm{d} \tau_{1}=\frac{1}{n !}\left[\int_{0}^{\tau_{1}} \boldsymbol{F}(\tau) \mathrm{d} \tau_{1}\right]^{n} \\ \boldsymbol{\Phi}(t, 0)=\boldsymbol{I}+\frac{1}{1 !} \int_{0}^{t} \boldsymbol{F}(\tau) \mathrm{d} \tau+\frac{1}{2 !}\left[\int_{0}^{t} \boldsymbol{F}(\tau) \mathrm{d} \tau\right]^{2}+\frac{1}{3 !}\left[\int_{0}^{t} \boldsymbol{F}(\tau) \mathrm{d} \tau\right]^{3}+\cdots=\mathrm{e}^{\int_{0}^{t} F(\tau) \mathrm{d} \tau} 40 \end{array} 0τ1F(τ1)0τnF(τn)dτndτ1=n!1[0τ1F(τ)dτ1]nΦ(t,0)=I+1!10tF(τ)dτ+2!1[0tF(τ)dτ]2+3!1[0tF(τ)dτ]3+=e0tF(τ)dτ40

6、连续时间Kalman滤波方程汇总

K ( t ) = P ( t ) H T ( t ) r − 1 ( t ) X ^ ˙ ( t ) = F ( t ) X ^ ( t ) + K ( t ) [ Z ( t ) − H ( t ) X ^ ( t ) ] P ˙ ( t ) = F ( t ) P ( t ) + P ( t ) F T ( t ) − K ( t ) r ( t ) K T ( t ) + G ( t ) q ( t ) G T ( t ) \begin{array}{l}\boldsymbol{K}(t)=\boldsymbol{P}(t) \boldsymbol{H}^{\mathrm{T}}(t) \boldsymbol{r}^{-1}(t) \\ \dot{\hat{\boldsymbol{X}}}(t)=\boldsymbol{F}(t) \hat{\boldsymbol{X}}(t)+\boldsymbol{K}(t)[\boldsymbol{Z}(t)-\boldsymbol{H}(t) \hat{\boldsymbol{X}}(t)] \\ \dot{\boldsymbol{P}}(t)=\boldsymbol{F}(t) \boldsymbol{P}(t)+\boldsymbol{P}(t) \boldsymbol{F}^{\mathrm{T}}(t)-\boldsymbol{K}(t) \boldsymbol{r}(t) \boldsymbol{K}^{\mathrm{T}}(t)+\boldsymbol{G}(t) \boldsymbol{q}(t) \boldsymbol{G}^{\mathrm{T}}(t) \\\end{array} K(t)=P(t)HT(t)r1(t)X^˙(t)=F(t)X^(t)+K(t)[Z(t)H(t)X^(t)]P˙(t)=F(t)P(t)+P(t)FT(t)K(t)r(t)KT(t)+G(t)q(t)GT(t)

连续时间Kalman滤波方程中的状态估计和方差都是微分方程,相求结果得解微分方程。

离散时间Kalman滤波方程中的状态估计和方差可以认为是差分方程。

在这里插入图片描述

与确定性系统的状态观测器非常像

猜你喜欢

转载自blog.csdn.net/daoge2666/article/details/131054453
今日推荐