1、状态估计概述:什么是状态估计?为什么飞行控制需要状态估计?状态估计与滤波的关系
大家好,欢迎来到这门课的第一讲。
咱们直接开门见山。今天要聊的,是飞行控制算法里最基础、也最绕不开的一个话题——状态估计。
我做了这么多年飞控,坦白讲,刚入行那会儿,觉得状态估计就是个「黑盒子」。传感器数据进来,姿态、位置就出来了。后来自己踩了坑,才明白这玩意儿有多关键。你想想看,一架四旋翼在天上飞,它怎么知道自己朝哪个方向?靠什么判断自己是不是在往下掉?
嗯,答案就是状态估计。
1.1 什么是状态估计?
说白了,状态估计就是「猜」。
但不是瞎猜。它是利用我们已有的数学模型,结合传感器测回来的数据,去推断系统内部那些我们无法直接测量或者测量不准的物理量。
举个例子。你手里有一架无人机。你装了个GPS,它能告诉你大概的位置,误差可能一两米。你还装了个加速度计,它能告诉你加速度。但你想知道无人机当前的速度,怎么办?
直接对加速度积分?可以,但积分会漂移,时间一长,速度值就飞到天上去了。直接用GPS差分算速度?也可以,但GPS更新频率低,而且有噪声。
这时候,状态估计就派上用场了。它把加速度计的积分结果和GPS的测量结果「揉」在一起,取长补短,最终给出一个比任何一个单独传感器都准的速度估计值。
核心定义:状态估计,就是利用系统的动态模型和带噪声的观测数据,对系统内部状态进行最优推测的过程。
这里的「状态」,指的是能完整描述系统运动的一组最小变量。对于飞行器来说,通常包括:
- 姿态:滚转角、俯仰角、偏航角
- 位置:x、y、z 坐标
- 速度:三个轴向的速度分量
- 角速度:三个轴的旋转角速度
- 有时候还包括加速度计和陀螺仪的偏置
1.2 为什么飞行控制需要状态估计?
这个问题,我当年带过一个实习生,他问过我一模一样的话。他的原话是:「传感器不是直接能读到角度和位置吗?为什么还要估?」
我当时带他去飞了一架 Pixhawk 的无人机。我故意把加速度计和陀螺仪的数据直接拿来用,没做任何滤波。结果飞机一起飞就开始剧烈抖动,不到三秒就翻了。
他一下子就明白了。
飞行控制需要状态估计,原因其实就三条:
- 传感器太「吵」了。你拿一个 MPU6050 陀螺仪,静止不动的时候,读出来的角速度可能还在 ±0.5°/s 之间跳。直接拿这个数据去控制,飞控会疯掉的。
- 有些状态根本测不到。比如飞行器的真实姿态角,没有哪个传感器能直接输出一个完美的欧拉角。磁力计受干扰,加速度计受振动,陀螺仪会漂移。你只能靠估计。
- 传感器会失效。GPS 信号被遮挡、光流传感器在暗处罢工、气压计受气流扰动……这些我都遇到过。没有状态估计,任何一个传感器掉线,飞机就失控了。
我的经验:我曾经在室内飞一架视觉导航的无人机。当时光线突然变暗,光流传感器直接失效。幸好状态估计器里融合了IMU数据,靠着惯性推算,硬是撑了十几秒,直到飞机手动降落。如果没有状态估计,那架飞机就交代了。
所以,飞行控制本质上是一个闭环反馈的过程。控制器需要知道「现在飞机是什么状态」,才能决定「下一步该怎么控制」。而状态估计,就是那个给控制器提供「真实状态」的桥梁。
1.3 状态估计与滤波的关系
好,聊到这里,你可能会问:「那滤波又是什么?跟状态估计是一回事吗?」
嗯,这个问题问得好。很多人把这两个词混着用,其实它们有区别,但关系非常紧密。
我打个比方你就明白了。
- 滤波,就像你戴了一副降噪耳机。它的目标是把信号里的噪声去掉,让信号变干净。比如低通滤波,把高频噪声滤掉,留下低频的真实信号。
- 状态估计,则像是你闭着眼睛,靠耳朵听声音,来判断自己走到了房间的哪个位置。它不仅要滤掉噪声,还要结合你对房间布局的了解(模型),去推测你当前的位置(状态)。
所以,滤波是状态估计的一种手段,但不是全部。
经典的卡尔曼滤波器,本质上就是一个状态估计器。它做的事情是:
- 用模型预测下一步的状态(预测步)
- 用传感器测量值来修正这个预测(更新步)
- 在这个过程中,它自动完成了滤波——把测量噪声和模型误差都考虑进去了
你可以这样理解:
| 概念 | 范围 | 典型方法 |
|---|---|---|
| 滤波 | 更宽泛,泛指去除噪声 | 低通滤波、高通滤波、带通滤波、滑动平均 |
| 状态估计 | 更具体,包含模型和观测 | 卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波、粒子滤波 |
注意:千万不要以为「滤波」就是简单的低通滤波。在飞控里,如果你只用低通滤波去处理陀螺仪数据,那姿态估计的精度会非常差。因为低通滤波会引入相位延迟,导致控制响应变慢。我见过有人这么干,结果飞机飞起来像喝醉了酒一样晃。
我个人习惯把状态估计看作一个「框架」,而滤波是框架里的一个「工具」。这个框架里,你还可以加入传感器校准、异常值剔除、时间同步等等。但最核心的,还是那个把模型和测量融合起来的算法——也就是我们后面要重点讲的卡尔曼滤波。
好了,这一讲的内容就到这里。总结一下:
- 状态估计就是「猜状态」,但猜得有依据
- 飞控离不开状态估计,因为传感器不完美,有些状态测不到
- 滤波是状态估计的「心脏」,但状态估计比滤波更广义
下一讲,我们会深入卡尔曼滤波的数学原理。到时候我会带你们手推一遍公式,别怕,其实没那么难。