第三章:惯性测量单元(IMU)原理
各位同学,今天我们来聊聊飞控系统里最核心的传感器——IMU。说白了,它就是飞行器的「内耳」,负责感知自身的运动状态。没有它,无人机就是个瞎子。
我刚开始做飞控那会儿,总觉得IMU数据读出来就能直接用。结果第一次试飞,飞机在天上晃得像喝醉了酒。后来才明白,不理解IMU的工作原理,你连数据都读不懂。
3.1 加速度计工作原理
加速度计测量的是比力(Specific Force),不是单纯的速度变化率。这个概念很多人搞混。
想象一个弹簧挂着的小球。当整个系统加速时,小球会偏离平衡位置。加速度计内部就是类似的微机械结构——质量块被微小的悬臂梁支撑着。
核心公式:
a_measured = a_true - g
其中 g 是重力加速度矢量。静止时,加速度计测到的是 1g 向上的力,而不是 0。
我在项目中遇到过一个问题:无人机悬停时,加速度计输出是 (0, 0, -9.8) m/s²。新手往往以为这是故障,其实完全正常。因为加速度计测的是「支撑力」,不是「重力」。
避坑指南:
我曾经调试一架四旋翼,发现加速度计Z轴读数总偏小0.2m/s²。排查了三天,最后发现是安装面的胶水厚度不均匀,导致传感器倾斜了0.5度。嗯,机械安装的精度比你想象的重要得多。
3.2 陀螺仪工作原理
陀螺仪测量角速度,单位是 rad/s 或 °/s。MEMS陀螺仪的原理是科里奥利效应——一个振动的质量块在旋转时会产生垂直于振动方向的位移。
你想想看,这其实挺巧妙的。让一个质量块以固定频率振动,当整个芯片旋转时,质量块会受到科里奥利力,产生可测量的位移。电容检测这个位移,就能算出角速度。
| 参数 | 消费级IMU | 工业级IMU | 战术级IMU |
|---|---|---|---|
| 零偏稳定性 | 10-100 °/h | 1-10 °/h | <0.1 °/h |
| 噪声密度 | 0.01 °/s/√Hz | 0.001 °/s/√Hz | 0.0001 °/s/√Hz |
| 典型价格 | $1-10 | $50-500 | $1000+ |
我个人习惯在选型时先看零偏稳定性。为什么?因为陀螺仪的零偏会直接积分到姿态误差里。一个 10°/h 的零偏,积分10分钟就是 1.67° 的漂移。对于需要长时间飞行的无人机来说,这误差不可接受。
3.3 磁力计工作原理
磁力计测量地球磁场,用来修正航向角。原理很简单:地球磁场从南极指向北极,在水平面上的分量指向磁北。
但实际用起来坑很多。我调试过一架测绘无人机,磁力计数据总是跳变。最后发现是机臂上的大电流导线产生的磁场干扰。嗯,这里要注意:电机电流、电池线、甚至螺丝刀的磁性都会影响磁力计。
重要提醒:
磁力计校准必须在无磁干扰的环境下进行。我曾经在金属架子上校准磁力计,结果飞出去航向误差达到 30°。后来改用木质支架,数据才正常。
3.4 IMU误差模型与校准
IMU的误差可以分为确定性误差和随机性误差。说白了,确定性误差可以标定补偿,随机性误差只能靠滤波。
3.4.1 确定性误差
- 零偏(Bias): 传感器静止时的输出偏移。加速度计零偏通常在 ±50mg,陀螺仪零偏在 ±5°/s。
- 尺度因子(Scale Factor): 输入输出比例偏差。比如输入 1g 加速度,输出 0.98g。
- 交叉耦合(Cross-axis): X轴加速度会在Y轴产生串扰。典型值 1-5%。
- 非线性(Nonlinearity): 输出与输入不成正比。通常 0.1-1% FS。
3.4.2 随机性误差
随机性误差用 Allan 方差分析。我常用的模型是:
// 陀螺仪随机误差模型
// 角度随机游走 (ARW): 0.01 °/√h
// 速率随机游走 (RRW): 0.1 °/h/√h
// 零偏不稳定性: 5 °/h
typedef struct {
float bias; // 零偏
float arw; // 角度随机游走
float rrw; // 速率随机游走
float bias_instab; // 零偏不稳定性
} GyroErrorModel;
3.4.3 六位置校准法
这是我最常用的加速度计校准方法。说白了,就是把传感器放在六个标准姿态下,记录数据,然后解算误差参数。
- 水平朝上:测量 (0, 0, +1g)
- 水平朝下:测量 (0, 0, -1g)
- 左侧朝上:测量 (0, +1g, 0)
- 右侧朝上:测量 (0, -1g, 0)
- 前倾朝上:测量 (+1g, 0, 0)
- 后倾朝上:测量 (-1g, 0, 0)
校准矩阵计算:
// 加速度计校准模型
// a_calibrated = K * (a_raw - b)
// K: 3x3 尺度+交叉耦合矩阵
// b: 3x1 零偏向量
// 最小二乘求解
// 已知:6个姿态的理论值 a_true
// 测量值:a_raw
// 求解:K 和 b
我曾经用这个方法校准了一批IMU,效果很好。但要注意:每个姿态至少采集30秒数据,取平均。数据采集太快,噪声会影响校准精度。
3.5 知识体系总览
下面这张图是我自己整理的IMU知识体系。你看,从物理原理到误差模型,再到校准方法,每一步都有坑,每一步都需要理解。
说实话,IMU这部分内容我讲了这么多年,每次备课都能发现新的理解。你想想看,一个几块钱的MEMS芯片,能测量地球自转的角速度(15°/h),这本身就是工程学的奇迹。
我的建议:
初学者不要急着跑算法。先把IMU数据读出来,画成波形,观察静止时的噪声、运动时的响应。我当年就是这么干的——盯着波形看了一周,比看十篇论文都有用。
好了,IMU的原理就讲到这里。记住:理解原理是第一步,校准是第二步,融合滤波是第三步。每一步都扎实了,你的飞控才能飞得稳。
公众号:蓝海资料掘金营,微信deep3321