第二章:惯性传感器原理
各位同学,今天我们来聊聊惯性传感器的那些事儿。说实话,我在飞控这行摸爬滚打十几年,传感器原理这块是绕不开的坎。你想想看,没有靠谱的传感器,再牛的算法也是空中楼阁。
2.1 加速度计工作原理
加速度计,说白了就是测量物体加速度的器件。但这里有个坑——它测的其实是比力,不是单纯的运动加速度。
核心公式: a_measured = a_true - g
其中g是重力加速度矢量。静止时,加速度计测到的是1g向上的加速度。
我记得刚入行那会儿,有个同事死活想不通:为什么水平放置的加速度计会读到9.8m/s²?其实是因为地球引力在作怪。加速度计的敏感质量块受到重力作用,产生形变,输出对应的电压信号。
常见的加速度计类型有:
- 电容式:利用质量块位移改变电容值。我项目中用得最多,温漂小,线性度好。
- 压阻式:利用压阻效应。响应快,但温度敏感。
- MEMS电容式:现在消费级产品的主流。便宜、体积小,但噪声大一些。
避坑指南: 我曾经在选型时忽略了一个问题——加速度计的带宽。飞控需要至少100Hz的更新率,但有些低成本传感器只有50Hz带宽,结果导致控制延迟,飞机抖得像筛子。
2.2 陀螺仪工作原理
陀螺仪测的是角速度,单位是°/s。它的原理比加速度计复杂一些,核心是科里奥利效应。
嗯,这里要注意:MEMS陀螺仪内部有一个高速振动的质量块。当外界施加角速度时,质量块会受到科里奥利力,产生垂直于振动方向的位移。通过检测这个位移,就能算出角速度。
我个人习惯把陀螺仪分为三类:
- 机械陀螺:老式转子结构,精度高但体积大。现在基本淘汰了。
- 光纤陀螺:利用萨格纳克效应。工业级产品,价格感人。
- MEMS陀螺:消费级和部分工业级的主力。我最近的项目全用的这种。
重要提醒: 陀螺仪有个天生的毛病——零偏不稳定性。你开机时读到的零位,和运行半小时后的零位,可能差好几度每秒。这就是为什么飞控必须用加速度计和磁力计来修正陀螺的漂移。
我记得有一次做无人机巡检项目,陀螺仪零偏突然跳变,导致航向角以每分钟5°的速度漂移。幸亏有磁力计做融合,不然飞机就飞丢了。
2.3 磁力计工作原理
磁力计,也叫电子罗盘,测的是地磁场矢量。它的原理其实很简单——霍尔效应或磁阻效应。
磁阻式磁力计内部有四个磁阻传感器组成惠斯通电桥。外界磁场变化时,磁阻材料的电阻值改变,电桥输出对应的电压。
你想想看,地磁场强度大约0.5-0.6高斯,而电机产生的磁场可能高达几十高斯。这就是为什么磁力计在飞控上特别容易受干扰。
关键参数:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 量程 | ±8高斯 | 地磁场约0.5高斯 |
| 分辨率 | 0.1毫高斯 | 够用 |
| 更新率 | 100Hz | 与陀螺同步 |
| 噪声密度 | 0.1毫高斯/√Hz | 越低越好 |
我曾经踩过一个坑:把磁力计装在离电机太近的位置。结果电机一启动,磁力计读数直接饱和,航向角乱跳。后来我把传感器移到机臂末端,远离磁场源,问题才解决。
2.4 传感器误差模型
传感器不是完美的,它们都有误差。我习惯把误差分为两类:确定性误差和随机性误差。
2.4.1 确定性误差
- 零偏:传感器静止时的输出偏移。可以标定补偿。
- 标度因数误差:实际增益与理想增益的偏差。比如你输入1°/s,输出却是1.02°/s。
- 交叉耦合:一个轴的输入影响到另一个轴的输出。说白了就是串扰。
- 非线性:输入输出不是完美的直线关系。
2.4.2 随机性误差
- 角度随机游走:陀螺的积分噪声,随时间累积。
- 速率随机游走:角速度的慢变漂移。
- 量化噪声:ADC量化带来的误差。
- 零偏不稳定性:低频漂移,最难处理。
实用技巧: 我建议用艾伦方差来分析陀螺的随机误差。它能帮你区分不同类型的噪声,从而选择合适的滤波策略。比如角度随机游走大的传感器,适合用互补滤波;零偏不稳定性大的,得用卡尔曼滤波。
下面这张图展示了传感器误差的典型模型结构:
2.4.3 误差建模与补偿
在实际项目中,我通常用下面的模型来描述加速度计和陀螺仪的误差:
// 加速度计误差模型
a_meas = S * (a_true + b_a + n_a)
// 其中:
// S - 标度因数矩阵(含交叉耦合)
// b_a - 零偏矢量
// n_a - 高斯白噪声
// 陀螺仪误差模型
w_meas = S_g * (w_true + b_g + n_g + w_rw)
// 其中:
// w_rw - 角度随机游走项
// b_g - 零偏,随时间慢变
实战经验: 我曾经在量产阶段发现同一批传感器,零偏差异能达到标称值的3倍。后来我要求供应商提供每颗传感器的出厂标定数据,在飞控初始化时做个体补偿。效果立竿见影,航向精度提升了40%。
说白了,传感器误差模型就是告诉你:别指望传感器是完美的。你得接受它的不完美,然后用算法去弥补。我个人习惯在飞控启动时做一次静态标定,记录零偏;飞行过程中再用卡尔曼滤波实时估计剩余的误差项。
嗯,关于传感器原理,今天就聊到这儿。这些内容看起来枯燥,但都是飞控算法的基石。你想想看,没有这些基础,后面那些花哨的滤波和控制算法,都是空中楼阁。
公众号:蓝海资料掘金营,微信deep3321