卡尔曼录波器 :2. Fata Fusion, covarince Matrix, state space, observation

卡尔曼录波器 :2. Fata Fusion, covarince Matrix, state space, observation

卡尔曼滤波器 数据融合 协方差矩阵状态空间方程 观测器

Data Fusion 数据融合

两个或者多个测量仪器 ,两者都会存在着测量误差,测量的标准差是服从正态分布
z 1 = 30 g   σ = 2 g z 2 = 32 g   σ = 4 g z_1= 30g\space \sigma=2g\\ z_2 = 32g\space\sigma=4g z1=30g σ=2gz2=32g σ=4g
根据上面的测量值,估计真实值 z ^ = ? \widehat{z} = ? z =?

可以采用卡尔曼的思想设计
z ^ = z 1 + K ( z 2 − z 1 )   k [ 0 , 1 ] (1) \widehat{z} = z_1 + K(z_2-z_1)\space k[0,1]\tag{1} z =z1+K(z2z1) k[0,1](1)
可以看出来
k = 0 :   z ^ = z 1 k = 1 :   z ^ = z 2 k = 0:\space \widehat{z} = z_1\\ k = 1:\space \widehat{z} = z_2 k=0: z =z1k=1: z =z2
求解合适的K使得 σ z \sigma_z σz最小, v a r ( z ^ ) var(\widehat{z}) var(z )最小,其中因为两个测量工具是相互独立的因此 z 1 , z 2 z_1,z_2 z1,z2也是相互独立的
σ z 2 = v a r ( z 1 + K ( z 2 − z 1 ) ) = v a r ( z 1 − K z 1 + K z 2 ) = v a r ( ( 1 − K ) z 1 + K z 2 ) = v a r ( ( 1 − K ) z 1 ) + v a r ( K z 2 ) = ( 1 − k ) 2 v a r ( z 1 ) + K 2 v a r ( z 2 ) = ( 1 − K ) 2 σ 1 2 + K 2 σ 2 2 \begin{align} \sigma^2_z&=var(z_1 + K(z_2 - z_1))\\ &=var(z_1-Kz_1+Kz_2)\\ &=var((1-K)z_1 + Kz_2)\\ &=var((1-K)z_1)+var(Kz_2)\\ &=(1-k)^2var(z_1)+K^2var(z_2)\\ &=(1-K)^2\sigma^2_1 + K^2\sigma^2_2\\ \end{align} σz2=var(z1+K(z2z1))=var(z1Kz1+Kz2)=var((1K)z1+Kz2)=var((1K)z1)+var(Kz2)=(1k)2var(z1)+K2var(z2)=(1K)2σ12+K2σ22
为了求得 σ z \sigma_z σz最小,对K求导
d σ z 2 d K = 0 − 2 ( 1 − K ) σ 1 2 + 2 K σ 2 2 = 0 K ( σ 1 2 + σ 2 2 ) = σ 1 2 K = σ 1 2 σ 1 2 + σ 2 2   =   0.2 \frac{d\sigma^2_z}{dK} = 0\\ -2(1-K)\sigma^2_1 + 2K\sigma^2_2 = 0\\ K(\sigma^2_1+\sigma^2_2)=\sigma^2_1\\ K = \frac{\sigma^2_1}{\sigma^2_1+\sigma^2_2}\space =\space 0.2 dKdσz2=02(1K)σ12+2Kσ22=0K(σ12+σ22)=σ12K=σ12+σ22σ12 = 0.2
K K K带入到(1)式中,就可以把最优的估计值求解出来,即
估计值: z ^ = z 1 + K ( z 2 − z 1 ) = 30 + 0.2 ( 32 − 30 ) = 30.4 方差: σ z 2 = ( 1 − 0. 2 2 ) 2 2 + 0. 2 2 4 2 = 3.2 \begin{align} &估计值:\widehat{z} = z_1 + K(z_2 - z_1) = 30 + 0.2 (32-30) = 30.4 \\ &方差:\sigma^2_z = (1-0.2^2)2^2+0.2^24^2 = 3.2 \end{align} 估计值:z =z1+K(z2z1)=30+0.2(3230)=30.4方差:σz2=(10.22)22+0.2242=3.2
以上的过程就是数据融合

协方差矩阵

协方差矩阵就是把方差和协方差在一个矩阵中表现出来,突出了变量之间的联系

举个例子:

球员身高 x x x体重 y y y年龄 z z z
瓦尔迪1797433
奥巴梅扬1878031
萨拉赫1757128
平均180.37530.7

求解方差:
方差: σ x 2 = 1 3 ( ( 179 − 180.3 ) 2 + ( 187 − 180.3 ) 2 + ( 175 − 180.3 ) 2 ) = 24.89 σ y 2 = 1 3 ( ( 74 − 75 ) 2 + ( 80 − 75 ) 2 + ( 71 − 75 ) 2 ) = 14 σ z 2 = 1 3 ( ( 33 − 30.7 ) 2 + ( 31 − 30.7 ) 2 + ( 28 − 30.7 ) 2 ) = 4.22 协方差: σ x σ y = 1 3 ( ( 179 − 180.3 ) ( 74 − 75 ) + ( 187 − 180.3 ) ( 80 − 75 ) + ( 175 − 180.3 ) ( 71 − 75 ) ) = 18.7 = σ y σ x σ x σ z = σ z σ x = 4.4 σ y σ z = σ z σ y = 3.3 \begin{align} 方差:&\sigma^2_x = \frac{1}{3}((179 - 180.3)^2 + (187-180.3)^2+(175-180.3)^2)=24.89\\ &\sigma^2_y = \frac{1}{3}((74 - 75)^2 + (80-75)^2+(71-75)^2)=14\\ &\sigma^2_z = \frac{1}{3}((33 - 30.7)^2 + (31-30.7)^2+(28-30.7)^2)=4.22\\ 协方差:&\sigma_x\sigma_y = \frac{1}{3}((179 - 180.3)(74-75)+(187-180.3)(80-75)+(175-180.3)(71-75))=18.7=\sigma_y\sigma_x\\ &\sigma_x\sigma_z = \sigma_z\sigma_x = 4.4\\ &\sigma_y\sigma_z = \sigma_z\sigma_y = 3.3\\ \end{align} 方差:协方差:σx2=31((179180.3)2+(187180.3)2+(175180.3)2)=24.89σy2=31((7475)2+(8075)2+(7175)2)=14σz2=31((3330.7)2+(3130.7)2+(2830.7)2)=4.22σxσy=31((179180.3)(7475)+(187180.3)(8075)+(175180.3)(7175))=18.7=σyσxσxσz=σzσx=4.4σyσz=σzσy=3.3
协方差矩阵的形式:
KaTeX parse error: Undefined control sequence: \matrix at position 11: p=\left[ \̲m̲a̲t̲r̲i̲x̲{ \sigma^2_x&\s…
如何利用矩阵的变换计算协方差?编程中有可能用到

首先我们要引入一个过渡矩阵
KaTeX parse error: Undefined control sequence: \matrix at position 13: a = \left[ \̲m̲a̲t̲r̲i̲x̲{ x_1&y_1&z_1\\…

P = 1 3 a T a P =\frac{1}{3}a^Ta P=31aTa
协方差矩阵说明了什么?说明两个变量之间的关系

状态空间 state space

现代控制理论就是以状态空间

弹簧阻尼系统

查看源图像

m x ¨ + B x ˙ + k x = F m x ¨ + B x ˙ + k x = u   u : i n p u t m\ddot{x}+B\dot{x}+kx=F\\ m\ddot{x}+B\dot{x}+kx =u\space u:input mx¨+Bx˙+kx=Fmx¨+Bx˙+kx=u u:input
状态变量state:
$$
\begin{align}\label{2}
使得:x_1 &= x\
x_2 &= \dot{x}\
这样:\dot{x}_1 &= x_2\
\dot{x}_2 &= \ddot{x} = \frac{1}{m}u-\frac{B}{m}\dot{x}-\frac{k}{m}x\
&=\frac{1}{m}u-\frac{B}{m}x_2-\frac{1}{m}x_1

\end{align}
$$
这样就用两个一阶方程把状态表示出来了

测量(measurement)

z 1 = x = x 1  位置 z 2 = x ˙ = x 2  速度 \begin{align} z_1 = x =x_1\space 位置\\ z_2 =\dot{x}=x_2\space 速度 \end{align} z1=x=x1 位置z2=x˙=x2 速度
把上述的式子用矩阵的形式进行表达
KaTeX parse error: Undefined control sequence: \matrix at position 8: \left[\̲m̲a̲t̲r̲i̲x̲{\dot{x}_1\\\do…
归纳一下就是(以下是一种连续的表达形式
X ˙ t = A X t + B u t Z t = H X t \begin{align} \dot{X}_{t}&=AX_{t}+Bu_t\\ Z_t&=HX_t \end{align} X˙tZt=AXt+But=HXt
体现了随着时间的变化

如果离散的话
X k = A X k − 1 + B u k Z k = H X k \begin{align} X_k &=AX_{k-1}+Bu_k\\ Z_k&=HX_k \end{align} XkZk=AXk1+Buk=HXk

下标 k , k − 1 , k 1 k,k-1,k_1 k,k1,k1时间单位代表的是采样时间,不是从连续系统下直接抄过来,需要根据采样时间进行调整

因为系统存在着很多不确定性,因此把上述式子变成:

过程噪声:process noise ω k − 1 \omega_{k-1} ωk1

测量噪声:Measurement noise ν k \nu_k νk
X k = A X k − 1 + B u k + ω k − 1 Z k = H X k + ν k \begin{align} X_k &=AX_{k-1}+Bu_k+\omega_{k-1}\\ Z_k&=HX_k+\nu_k \end{align} XkZk=AXk1+Buk+ωk1=HXk+νk
在这两个都不确定的情况下,如何去估计一个精确的 x ^ k = ? \hat{x}_k=? x^k=?

就是卡尔曼滤波器要解决的问题。。。

结合数据融合的例子,就是手上有一个不太准的测量结果,一个不太准的估计结果,找到一个比他们两个误差都要小的结果,这就是卡尔曼的一个应用实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值