1. EKF基础回顾:从线性到非线性的思维跃迁
各位同学,欢迎来到《多旋翼飞控EKF姿态估计深度解析》的第一章。
说实话,每次讲EKF,我都习惯先带大家回顾一下卡尔曼滤波的根基。为什么?因为我在实际项目中见过太多人——包括我自己早期——直接套用EKF公式,结果飞控在天上飘得跟喝醉了似的。嗯,那感觉,真不好受。
所以这一章,咱们把地基打牢。我会用我自己的理解方式,把状态空间模型、线性卡尔曼、再到EKF的扩展,掰开了讲清楚。
1.1 状态空间模型:你总得知道系统长什么样
做飞控,说白了就是在跟「状态」打交道。什么是状态?就是能完整描述系统当前情况的一组数值。
拿四旋翼来说,它的状态包括:
- 姿态角:横滚、俯仰、偏航
- 角速度:三个轴的转动速率
- 位置与速度:当然,姿态估计里我们更关注前者
状态空间模型,就是用数学语言把这些状态串起来。它由两个方程组成:
状态方程:xk = A·xk-1 + B·uk-1 + wk-1
观测方程:zk = H·xk + vk
这里:
- xk 是k时刻的状态向量
- A 是状态转移矩阵——描述上一时刻状态如何影响当前
- B 是控制输入矩阵——你给油门,系统怎么响应
- uk-1 是控制输入
- w 是过程噪声——模型总有不完美的地方
- zk 是观测值,比如加速度计读数
- H 是观测矩阵——把状态映射到观测空间
- v 是观测噪声——传感器也不是完美的
我个人习惯,把状态方程想象成「预测」,观测方程想象成「修正」。这两个步骤,就是卡尔曼滤波的灵魂。
1.2 线性卡尔曼滤波:五个公式走天下
线性卡尔曼滤波,是EKF的基石。它假设系统是线性的,噪声是高斯白噪声。在这个前提下,五个公式就能搞定最优估计。
我当年第一次看这五个公式,觉得像天书。后来做项目多了,发现其实就是两个阶段:
预测阶段(时间更新)
- 状态预测:x̂k|k-1 = A·x̂k-1|k-1 + B·uk-1
- 协方差预测:Pk|k-1 = A·Pk-1|k-1·AT + Q
更新阶段(测量更新)
- 卡尔曼增益:Kk = Pk|k-1·HT·(H·Pk|k-1·HT + R)-1
- 状态更新:x̂k|k = x̂k|k-1 + Kk·(zk - H·x̂k|k-1)
- 协方差更新:Pk|k = (I - Kk·H)·Pk|k-1
我的小技巧:卡尔曼增益K,你可以理解为「相信传感器多一点,还是相信模型多一点」。K大,信传感器;K小,信模型。我在调参时,经常盯着这个值看,它能告诉你系统是不是快发散。
你想想看,这五个公式其实就干了一件事:用观测数据修正模型预测。但问题来了——现实世界哪有那么多线性系统?
1.3 从线性到非线性:为什么我们需要EKF
四旋翼的姿态动力学,是典型的非线性系统。为什么?
- 姿态角的变化涉及三角函数(sin、cos)
- 陀螺仪的测量模型包含角速度的乘积项
- 加速度计在非水平状态下,重力分量会耦合到各个轴
线性卡尔曼滤波处理不了这些。你硬套的话,估计出来的姿态角会慢慢漂移,最后完全不可信。我早期踩过这个坑——飞控悬停时,明明飞机是平的,姿态角却显示有10度倾斜。查了半天,发现就是非线性没处理好。
所以,我们需要一种方法,把非线性问题「近似」成线性问题来处理。这就是EKF的核心思想。
1.4 EKF的核心思想:线性化 + 卡尔曼滤波
EKF的做法,说白了就是:在当前估计点附近,用泰勒展开把非线性函数线性化。
具体来说:
- 对于非线性状态方程 f(x),我们在 x̂k-1|k-1 处做一阶泰勒展开
- 对于非线性观测方程 h(x),我们在 x̂k|k-1 处做一阶泰勒展开
- 然后用展开后的雅可比矩阵替代原来的A和H
数学框架长这样:
非线性系统模型:
xk = f(xk-1, uk-1) + wk-1
zk = h(xk) + vk
线性化后的EKF递推:
Fk-1 = ∂f/∂x |x̂k-1|k-1
Hk = ∂h/∂x |x̂k|k-1
然后,把F和H代入标准卡尔曼滤波的五个公式中,就得到了EKF。
注意:EKF的线性化是一阶近似。如果系统非线性太强,或者你的估计点离真实值太远,这个近似就会失效。我曾经在无人机做大机动飞行时遇到过——角速度太大,线性化误差累积,最后EKF直接发散。所以,EKF不是万能的,它要求系统「弱非线性」。
1.5 知识体系总览
为了让你对本章内容有个整体印象,我画了一张图。它把状态空间模型、线性KF、EKF的关系串了起来:
从这张图你可以看到,整个知识脉络是:状态空间模型 → 线性KF → 发现非线性问题 → EKF线性化解决。这也是我设计这门课的逻辑——不跳步,一步步来。
1.6 本章小结
好了,第一章的内容就到这里。我们回顾了:
- 状态空间模型的两个方程——预测和观测
- 线性卡尔曼滤波的五个公式——预测两步,更新三步
- 为什么飞控需要EKF——因为姿态动力学是非线性的
- EKF的核心思想——在当前估计点做泰勒展开,用雅可比矩阵替代线性模型
下一章,我们会深入飞控的传感器模型——陀螺仪、加速度计、磁力计,它们各自有什么特性?噪声怎么建模?这些是EKF能跑起来的前提。咱们到时候细聊。
公众号:蓝海资料掘金营,微信deep3321