第三讲:传感器模型——加速度计、陀螺仪、磁力计的工作原理与误差特性
各位同学,欢迎来到第三讲。
上一讲我们聊了坐标系和姿态表示,那些是数学工具。这一讲,我们来聊聊真正的硬件——传感器。说白了,姿态解算的“原材料”就是从这三个家伙来的:加速度计、陀螺仪、磁力计。
我刚开始做飞控那会儿,总觉得算法是万能的,传感器数据拿过来直接用。结果呢?飞起来不到三秒就炸机了。后来才明白,不懂传感器的脾气,再牛的算法也是白搭。
3.1 加速度计:感知重力,但别太信它
加速度计测量的是比力,也就是物体受到的惯性力与引力的合力。在静止或匀速运动时,它测到的就是重力加速度g。
它的核心原理,说白了就是一个质量块挂在弹簧上。你加速,质量块就往后拽,弹簧形变,输出电信号。MEMS加速度计用的是微小的硅结构,电容变化来感知位移。
关键点:加速度计只能提供俯仰和横滚的参考,不能直接给出偏航角。因为重力方向始终向下,你绕着重力轴转,它根本感觉不到。
我在项目中遇到过一个问题:无人机在剧烈机动时,加速度计输出的数值乱七八糟。为什么?因为机体本身的加速度太大了,把重力信号给淹没了。你想想看,一个在水平方向急加速的飞机,加速度计会以为它在倾斜。
3.1.1 误差特性
- 零偏(Bias):静止时输出不为0。我见过最差的传感器,零偏能达到0.1g,也就是10%的误差。
- 尺度因子误差:实际输出与理论值的比例偏差。比如你输入1g,它输出1.02g。
- 噪声:高频白噪声为主。这个好办,低通滤波就能压下去。
- 振动整流误差:这个最坑。高频振动会被整流成直流偏置,导致姿态估计漂移。
避坑指南:我曾经在四轴机臂上直接贴加速度计,电机一转,数据全废了。后来加了减震海绵,效果立竿见影。记住,加速度计对振动极其敏感,安装时一定要做好隔振。
3.2 陀螺仪:角速度的忠实记录者
陀螺仪测量的是角速度,单位是°/s。它的原理是科里奥利效应——一个振动的质量块,当它旋转时,会受到一个垂直于振动方向的力。测这个力的大小,就能算出角速度。
嗯,这里要注意:陀螺仪测的是角速度,不是角度。要得到角度,你得积分。而积分,就是误差累积的开始。
个人经验:我习惯把陀螺仪称为“短跑冠军,长跑废物”。短时间内它非常准,但时间一长,积分误差会让你怀疑人生。
3.2.1 误差特性
| 误差项 | 描述 | 影响 |
|---|---|---|
| 零偏稳定性 | 静止时输出随时间漂移 | 角度积分误差随时间线性增长 |
| 角度随机游走 | 白噪声积分后变成随机游走 | 角度估计方差随时间增大 |
| 温度漂移 | 零偏随温度变化 | 冷启动时误差大 |
| 非线性 | 大角速度下输出失真 | 剧烈旋转时姿态不准 |
说白了,陀螺仪的误差模型可以简化为:
ω_measured = ω_true + bias + noise + temperature_drift
你想想看,如果bias是0.1°/s,积分10秒,角度误差就是1°。积分100秒,就是10°。这就是为什么纯陀螺仪积分不能长时间工作的原因。
3.3 磁力计:找北的指南针,但别太依赖它
磁力计测量的是磁场强度,单位是μT(微特斯拉)。它的原理是霍尔效应或磁阻效应。说白了,就是磁场变化会引起材料电阻或电压的变化。
磁力计的作用是提供偏航角的绝对参考。加速度计给不了偏航,陀螺仪积分会漂,那就靠磁力计来拉回来。
核心问题:磁力计太容易被干扰了。电机电流、电源线、铁磁材料,甚至你旁边飞过的另一架无人机,都会让它输出异常。
3.3.1 误差特性
- 硬铁干扰:永磁体或带磁性的材料产生的固定偏置。表现为测量球心偏移。
- 软铁干扰:铁磁材料对磁场的扭曲。表现为测量球变成椭球。
- 罗差:机体自身磁场随姿态变化而变化。
- 噪声:低频噪声为主,比加速度计和陀螺仪都大。
我曾经踩过的坑:有一次在室内调试,磁力计数据一直不对。查了半天,发现地板下面有钢筋。还有一次,电池绑得太靠近磁力计,导致偏航角一直偏了15°。所以,磁力计的安装位置一定要远离大电流线和铁磁物质。
3.4 三种传感器的互补关系
讲到这里,你应该能感受到:这三种传感器各有各的毛病,但恰好又能互补。
| 传感器 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| 加速度计 | 长期稳定,不漂移 | 动态响应差,受振动影响 | 静态或慢速运动时的姿态参考 |
| 陀螺仪 | 动态响应快,短期精度高 | 积分漂移,长期不准 | 快速姿态变化的跟踪 |
| 磁力计 | 提供绝对偏航参考 | 易受干扰,噪声大 | 偏航角的长期校正 |
说白了,姿态解算的核心思想就是:用陀螺仪做短期预测,用加速度计和磁力计做长期校正。这就是互补滤波和卡尔曼滤波的底层逻辑。
我的建议:在实际项目中,不要指望任何一个传感器是完美的。你要做的,是理解它们的脾气,然后用算法把它们的长处发挥出来,短处抑制住。下一讲我们会详细讲怎么融合它们,敬请期待。
好,这一讲就到这里。记住:传感器是姿态解算的根基,根基不稳,算法再花哨也是空中楼阁。