第三章:惯性测量单元(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 六位置校准法

这是我最常用的加速度计校准方法。说白了,就是把传感器放在六个标准姿态下,记录数据,然后解算误差参数。

  1. 水平朝上:测量 (0, 0, +1g)
  2. 水平朝下:测量 (0, 0, -1g)
  3. 左侧朝上:测量 (0, +1g, 0)
  4. 右侧朝上:测量 (0, -1g, 0)
  5. 前倾朝上:测量 (+1g, 0, 0)
  6. 后倾朝上:测量 (-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电容检测 重力分离 陀螺仪 科里奥利效应 振动质量块 角速度积分 磁力计 地磁场测量 磁北定向 硬磁/软磁干扰 IMU误差模型 确定性误差:零偏/尺度/交叉耦合 随机性误差:Allan方差分析 温度漂移补偿 校准方法 六位置法(加速度计) 速率法(陀螺仪) 椭圆拟合(磁力计)

说实话,IMU这部分内容我讲了这么多年,每次备课都能发现新的理解。你想想看,一个几块钱的MEMS芯片,能测量地球自转的角速度(15°/h),这本身就是工程学的奇迹。

我的建议:

初学者不要急着跑算法。先把IMU数据读出来,画成波形,观察静止时的噪声、运动时的响应。我当年就是这么干的——盯着波形看了一周,比看十篇论文都有用。

好了,IMU的原理就讲到这里。记住:理解原理是第一步,校准是第二步,融合滤波是第三步。每一步都扎实了,你的飞控才能飞得稳。


公众号:蓝海资料掘金营,微信deep3321