卡尔曼滤波

2025 年 1 月 6 日 星期一(已编辑)
/ ,
2

卡尔曼滤波

公式理解

用上一次结果进行预测, 并使用观测值进行当前结果的修正

公式

predict

先验估计
x^t=Fx^t1+But1\hat{x}_t^- = F\hat{x}_{t-1} + Bu_{t-1}
先验估计协方差
Pt=FPt1FT+QP_t^- = FP_{t-1}F^T + Q

x: 需要求值的矩阵
u: 输入
F: 状态转移矩阵
Q: 估计误差 (估计误差的协方差) | cov(w,w) = w

update

卡尔曼增益
Kt=PtHT(HPtHT+R)1K_t = P_t^-H^T (HP_t^-H^T + R)^{-1}

更新先验值
x^t=x^t+Kt(ytHx^t)\hat{x}_t = \hat{x}_t^- + K_t(y_t - H\hat{x}_t^-)
Pt=(IKtH)PtP_t = (I-K_tH)P_t^-

y: 观测值 (仪器结果)
  y的维数不一定和x相同 (z是观测数据, 比如只有位置 没有速度、加速度)

H: 观测矩阵
R: 观测误差

超参数设置

Q R

K 简化后 KQ/Q+RK ~ Q/Q+R

P0P_0 x0x_0

协方差矩阵

系统内每两个随机变量之间的关系
PtP_t
=cov(x^t,x^t)= cov(\hat{x}_t^-, \hat{x}_t^-)
=cov(Fx^t1+But1+w,Fx^t1+But1+w)= cov(F\hat{x}_{t-1} + Bu_{t-1} + w, F\hat{x}_{t-1} + Bu_{t-1} + w)
=Fcov(x^t1,x^t1)F1+Q= Fcov(\hat{x}_{t-1}, \hat{x}_{t-1})F^{-1} + Q
=FPt1FT+Q= FP_{t-1}F^T + Q

othrer

物理模型怎么构建? (预测值)

实践步骤

  1. 选择状态量、观测量
  1. 构建预测模型

  2. 初始化参数

  3. 迭代

  4. 调整超参数

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...