
022、EKF在姿态估计中的应用从一次炸机事故说起去年夏天,我在调试一架四轴飞行器时遇到了一个诡异的问题:飞机在悬停状态下,每隔30秒左右就会突然剧烈抖动一次,像是被人猛地推了一把。地面站日志显示,姿态角在抖动瞬间出现了约15度的跳变,然后迅速恢复。IMU数据看起来正常,加速度计和陀螺仪都没有明显的异常脉冲。我花了整整三天排查这个问题。先是怀疑电机干扰,换了电调;又怀疑机架共振,加了减震球;甚至怀疑是GPS信号异常导致的位置估计出错。最后,当我打印出EKF的协方差矩阵时,才发现了端倪——在抖动发生前,姿态角协方差突然增大了一个数量级,然后滤波器“慌”了,开始过度相信加速度计,导致姿态瞬间被拉偏。这个案例让我深刻意识到:EKF不是黑盒子,它的每一个参数、每一个矩阵都直接影响着飞行的生死。今天我们就来聊聊EKF在姿态估计中的应用,重点讲那些教科书上不会写的坑。为什么是EKF而不是互补滤波很多初学者会问:互补滤波简单高效,为什么还要用EKF?我的回答是:如果你只做玩具级的飞控,互补滤波完全够用。但当你需要处理以下场景时,EKF是唯一的选择:飞行器在做剧烈机动时,加速度计受到的运动加速度远大于重力加速度,互补滤波会直接“晕掉”需要融合磁力计数据来修正航向角,但磁力计容易受干扰,需要动态调整权重传感器存在非高斯噪声,或者需要估计陀螺仪零偏等状态量EKF的本质是:用状态预测来“猜”下一时刻的姿态,然后用观测值来“修正”这个猜测。关键在于,它同时估计