4、传感器基础(上):加速度计工作原理、加速度计测量模型、加速度计误差分析
各位同学,欢迎来到传感器基础部分。
说实话,飞控算法里最让我头疼的,不是那些复杂的卡尔曼滤波,也不是PID调参,而是——传感器。你算法写得再漂亮,传感器数据是脏的,那输出就是垃圾。今天咱们先啃加速度计这块硬骨头。
4.1 加速度计工作原理
加速度计到底怎么测加速度的?
说白了,它内部有个微小的“质量块”,用弹簧挂着。你想想看,当整个芯片加速时,质量块会因为惯性往反方向跑,弹簧被拉伸或压缩。这个位移量被转换成电信号,就得到了加速度值。
我当年刚入行时,一直有个误区:以为加速度计测的是“运动加速度”。其实不是。它测的是“比力”——也就是物体受到的合力减去重力。嗯,这里要注意:静止时它测的是1g向上的加速度,而不是0。
常见的MEMS加速度计有三种实现方式:
- 电容式:利用梳齿结构,位移改变电容。精度高,功耗低,最常用。
- 压阻式:利用硅的压阻效应。抗冲击好,但温漂大。
- 热对流式:加热气体,靠热对流检测。便宜,但响应慢。
我个人习惯用电容式,比如MPU6050、ICM-20602这些。项目中踩过坑——有一次选了热对流式的,结果无人机一翻身,数据直接飘飞了。
4.2 加速度计测量模型
搞懂了原理,咱们得建立数学模型。这是做姿态解算的基础。
理想情况下,加速度计的输出可以写成:
a_meas = a_true + g + n
其中:
a_meas:传感器读到的值a_true:真实的运动加速度g:重力加速度向量(在导航系下是[0,0,g])n:噪声
但实际项目中,模型要复杂得多。我一般用这个扩展模型:
a_meas = S * (a_true + g) + b + n + v
这里:
S:尺度因子矩阵(对角阵,各轴可能不同)b:零偏(bias)v:振动噪声(高频)
为什么会这样?因为MEMS工艺做不到完美对称。我测过一批MPU6050,X轴和Y轴的尺度因子差了0.3%。你想想看,这0.3%在积分10秒后,位置误差能到多少?
核心要点:加速度计在静态时,测量值就是重力向量在机体坐标系下的投影。这是姿态解算的“绝对参考”。
4.3 加速度计误差分析
误差这东西,你躲不掉,只能认识它、补偿它。
我把加速度计的误差分成三类:
4.3.1 确定性误差
这类误差可以标定补偿。包括:
- 零偏(Bias):输出不为0时的固定偏移。我见过最离谱的,某国产传感器零偏达到200mg。
- 尺度因子误差:实际灵敏度与标称值的偏差。
- 轴间非正交:三个敏感轴不是完美的90度。
我曾经在六面法标定时,发现Z轴和X轴有0.5度的非正交角。如果不补偿,姿态解算会引入周期性误差。
4.3.2 随机误差
这类误差靠滤波处理。主要有:
- 白噪声:高频随机波动,用低通滤波器搞定。
- 随机游走:零偏随时间缓慢漂移。这是最恶心的,我见过温度变化10度,零偏漂了30mg。
我的经验:对于随机游走,别指望一次标定管终身。建议每次上电后做5秒静态采集,取平均作为当前零偏。这叫“上电自标定”。
4.3.3 环境敏感误差
嗯,这里要注意,MEMS对温度、振动非常敏感。
| 误差来源 | 典型影响 | 应对方法 |
|---|---|---|
| 温度变化 | 零偏漂移,可达±50mg | 温度补偿模型 |
| 振动 | 高频噪声叠加 | 低通滤波+陷波器 |
| 电源噪声 | 输出纹波 | LDO供电+去耦电容 |
我曾经在四旋翼上遇到过:电机一推油门,加速度计Z轴数据直接跳了0.2g。查了半天,是电源纹波干扰。后来加了LC滤波,问题解决。
避坑指南:千万不要把加速度计直接贴在电机或螺旋桨附近。高频振动会让你的数据完全不可用。我见过有人把飞控板用泡沫胶减震,效果比硬连接好很多。
4.4 小结
这一节咱们讲了加速度计的原理、模型和误差。说白了,传感器就是一把尺子,你得知道它准不准、偏多少、怎么补偿。
下一节咱们讲陀螺仪,那玩意儿更坑——零偏漂移比加速度计大一个数量级。做好准备。
公众号:蓝海资料掘金营,微信deep3321