卡尔曼滤波器(15) -- 多维卡尔曼滤波器(状态更新方程)

本文深入探讨了多维卡尔曼滤波器中的状态更新方程,通过矩阵形式进行展示,并提供了具体实例来说明如何根据观测数据更新状态估计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

This blog is translated from https://www.kalmanfilter.net/default.aspx.
It’s an excellent tutorial about Kalman Filter written by Alex Becker.


目录
卡尔曼滤波器(1) – 背景知识
卡尔曼滤波器(2) – α−β−γ滤波器(例1)
卡尔曼滤波器(3) – α−β−γ滤波器(例2)
卡尔曼滤波器(4) – α−β−γ滤波器(例3&例4&总结)
卡尔曼滤波器(5) – 一维卡尔曼滤波器(介绍)
卡尔曼滤波器(6) – 一维卡尔曼滤波器(例5&完整模型)
卡尔曼滤波器(7) – 一维卡尔曼滤波器(例6)
卡尔曼滤波器(8) – 一维卡尔曼滤波器(例7&例8)
卡尔曼滤波器(9) – 多维卡尔曼滤波器(前言&预备)
卡尔曼滤波器(10) – 多维卡尔曼滤波器(状态外推方程)
卡尔曼滤波器(11) – 多维卡尔曼滤波器(线性动态系统模型)
卡尔曼滤波器(12) – 多维卡尔曼滤波器(协方差外推方程)
卡尔曼滤波器(13) – 多维卡尔曼滤波器(测量方程)
卡尔曼滤波器(14) – 多维卡尔曼滤波器(简短总结)
卡尔曼滤波器(15) – 多维卡尔曼滤波器(状态更新方程)
卡尔曼滤波器(16) – 多维卡尔曼滤波器(协方差更新方程)
卡尔曼滤波器(17) – 多维卡尔曼滤波器(卡尔曼增益)
卡尔曼滤波器(18) – 多维卡尔曼滤波器(简化的协方差更新方程)
卡尔曼滤波器(19) – 多维卡尔曼滤波器(总结)
卡尔曼滤波器(20) – 多维卡尔曼滤波器(例9)



这部分是本教程最短的。关于状态更新方程的详细描述已经在 “α−β−γ滤波器” 和 “一维卡尔曼滤波器” 讲过。

矩阵形式的状态更新方程: x ^ n , n = x ^ n , n − 1 + K n ( z n − H x ^ n , n − 1 ) \pmb{\hat{x}_{n,n}} = \pmb{\hat{x}_{n,n-1}} + \pmb{K_n}(\pmb{z_n} - \pmb{H} \pmb{\hat{x}_{n,n-1}}) x^n,nx^n,nx^n,n=x^n,n1x^n,n1x^n,n1+KnKnKn(znznznHHHx^n,n1x^n,n1x^n,n1)其中:
x ^ n , n \pmb{\hat{x}_{n,n}} x^n,nx^n,nx^n,n 是在时刻 n n n 的估计系统状态向量
x ^ n , n − 1 \pmb{\hat{x}_{n,n-1}} x^n,n1x^n,n1x^n,n1 是在时刻 n − 1 n-1 n1 的预测系统状态向量
K n \pmb{K_n} KnKnKn 是卡尔曼增益
z n \pmb{z_n} znznzn 是测量值
H \pmb{H} HHH 是观察矩阵(observation matrix)


除了矩阵形式的卡尔曼增益以外,你应该熟悉状态更新方程中的所有成分,稍后我们会推导卡尔曼增益。

你需要注意这里的维度,例如,如果状态向量有 5 个维度,而仅有 3 个纬度是可测量的(第1,第3,第5个状态): x ( n ) = [ x 1 x 2 x 3 x 4 x 5 ] z ( n ) = [ z 1 z 2 z 3 ] \pmb{x(n)} = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ x_4 \\ x_5 \end{bmatrix} \pmb{z(n)} = \begin{bmatrix} z_1 \\ z_2 \\ z_3 \end{bmatrix} x(n)x(n)x(n)=x1x2x3x4x5z(n)z(n)z(n)=z1z2z3

观察矩阵是一个 3 × 5 3 \times 5 3×5 的矩阵: H = [ 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ] \pmb{H} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} HHH=100000010000001

更新(innovation) z n − H x ^ n , n − 1 \pmb{z_n} - \pmb{H}\pmb{\hat{x}_{n,n-1}} znznznHHHx^n,n1x^n,n1x^n,n1)得到: z n − H x ^ n , n − 1 = [ z 1 z 2 z 3 ] − [ 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 ] [ x ^ 1 x ^ 2 x ^ 3 x ^ 4 x ^ 5 ] = [ ( z 1 − x ^ 1 ) ( z 3 − x ^ 3 ) ( z 5 − x ^ 5 ) ] \pmb{z_n} - \pmb{H}\pmb{\hat{x}_{n,n-1}} = \begin{bmatrix} z_1 \\ z_2 \\ z_3 \end{bmatrix} - \begin{bmatrix} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \hat{x}_1 \\ \hat{x}_2 \\ \hat{x}_3 \\ \hat{x}_4 \\ \hat{x}_5 \end{bmatrix} = \begin{bmatrix} (z_1 - \hat{x}_1) \\ (z_3 - \hat{x}_3) \\ (z_5 - \hat{x}_5) \end{bmatrix} znznznHHHx^n,n1x^n,n1x^n,n1=z1z2z3100000010000001x^1x^2x^3x^4x^5=(z1x^1)(z3x^3)(z5x^5)

卡尔曼增益的维度应该为 5 × 3 5 \times 3 5×3


状态更新方程的维度

下面的表展示了状态更新方程变量的维度

变量(variable)描述(Description)维度(Dimension)
x \pmb{x} xxx状态向量(state vector) n x × 1 n_x \times 1 nx×1
z \pmb{z} zzz输出向量(output vector) n z × 1 n_z \times 1 nz×1
H \pmb{H} HHH观察矩阵(observation matrix) n z × n x n_z \times n_x nz×nx
K \pmb{K} KKK卡尔曼增益(kalman gain) n x × n z n_x \times n_z nx×nz
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值