2、惯性导航基础(上):加速度计与陀螺仪的工作原理、比力方程与角速度测量、IMU的误差模型

各位同学,欢迎来到惯性导航的第一课。说实话,惯性导航是组合导航的“灵魂”。你GPS信号丢了,靠什么撑?靠IMU。你飞控姿态稳不稳,靠什么?还是靠IMU。所以这一章,咱们把IMU的底细摸清楚。

我个人习惯把IMU拆成两样东西来看:加速度计和陀螺仪。一个管“线运动”,一个管“角运动”。咱们一个一个说。

2.1 加速度计的工作原理

加速度计测量的是什么?很多人会脱口而出:“加速度呗。” 嗯,对了一半。它测量的其实是比力(Specific Force),也就是物体受到的惯性力与重力的合力,再除以质量。说白了,就是单位质量上受到的“非引力外力”。

为什么会这样?你想想看,一个自由落体的加速度计,它输出是0。因为它和重力一起往下掉,内部检测质量处于“失重”状态。所以加速度计测不到重力,它测的是“除了重力以外的力”。

常见的加速度计有几种:

  • 压阻式:利用硅微结构的应力变化,电阻值改变。优点是便宜,缺点是温漂大。我在早期做飞控时用过,温度一变,零偏就飘,后来果断换了。
  • 电容式:检测质量位移改变电容。精度高,功耗低,是目前MEMS IMU的主流。
  • 谐振式:频率变化反映加速度。精度最高,但成本也高,一般用在战术级IMU里。

咱们做低成本无人机,用的基本都是MEMS电容式加速度计。比如MPU6050、ICM-20602这些,都是电容式的。

核心公式:比力方程

加速度计的输出 f 可以表示为:

f = a - g

其中 a 是载体相对于惯性空间的加速度,g 是重力加速度矢量。注意符号!我见过不少新手把符号搞反,结果姿态解算出来是倒着的。

我的经验: 在无人机上电初始化时,加速度计读到的值应该是 [0, 0, 9.8] 左右(如果z轴朝上)。如果读出来是 [-9.8, 0, 0],说明你的坐标系定义和芯片坐标系没对齐。我曾经因为这个排查了整整一下午,最后发现是安装方向转了90度。

2.2 陀螺仪的工作原理

陀螺仪测量角速度。在MEMS世界里,它靠的是科里奥利效应(Coriolis Effect)。

简单说:一个质量块在某个方向上高速振动,当载体旋转时,质量块会受到一个垂直于振动方向和旋转轴方向的力,这个力就是科里奥利力。通过检测这个力的大小,就能反推出角速度。

嗯,这里要注意:MEMS陀螺仪测的是角速度,不是角度。你要得到角度,得对时间积分。而积分就会带来漂移——这是所有低成本IMU的痛点。

常见的陀螺仪类型:

  • 振动式MEMS陀螺:目前消费级和工业级无人机的绝对主力。比如InvenSense、Bosch、ST的产品线。
  • 光纤陀螺(FOG):精度高,但体积大、成本高,一般用在工业级或军用级。
  • 激光陀螺(RLG):顶级精度,但价格感人,咱们做低成本的基本不用想。

对于低成本无人机,我们关注的是MEMS陀螺的这几个指标:

指标 典型值(消费级) 典型值(工业级) 说明
量程 ±250 ~ ±2000 °/s ±500 ~ ±1000 °/s 无人机一般用±500或±1000就够
零偏稳定性 10 ~ 100 °/h 1 ~ 10 °/h 这个值决定了你能纯惯性飞多久
角度随机游走 0.1 ~ 1 °/√h 0.01 ~ 0.1 °/√h 影响姿态估计的噪声水平

避坑指南: 我曾经在一个项目中选了某款号称“工业级”的MEMS陀螺,零偏稳定性标称5°/h。结果实际测试时,温度从25°C升到60°C,零偏直接漂了50°/h。后来仔细看手册才发现,那个5°/h是在恒温条件下测的。所以,一定要看全温范围的指标,别被实验室数据忽悠了。

2.3 IMU的误差模型

好了,现在你知道加速度计和陀螺仪怎么工作的了。但实际器件不是理想的,它们有误差。咱们做组合导航,必须把这些误差建模出来,才能在滤波器中补偿掉。

IMU的误差模型,我习惯分成两大类:确定性误差随机性误差

2.3.1 确定性误差

这类误差可以通过标定来消除。主要包括:

  • 零偏(Bias):即使没有输入,传感器也有输出。比如陀螺静止时读出来不是0,而是某个常数。
  • 比例因子(Scale Factor):实际输入和输出之间的比例关系不是严格的1:1。比如你转100°/s,它可能读出102°/s。
  • 交叉耦合(Cross-axis Sensitivity):X轴的输入会在Y轴上产生输出。说白了就是轴没对准。
  • 非线性度:输出和输入不是严格的线性关系。

标定方法有很多,六位置法、速率法、温箱标定等等。对于低成本无人机,我建议至少做零偏和比例因子的标定,效果立竿见影。

2.3.2 随机性误差

这类误差是随机的,无法完全消除,只能通过滤波来抑制。主要包括:

  • 角度随机游走(Angle Random Walk, ARW):陀螺白噪声积分后产生的角度误差。说白了就是噪声越积越大。
  • 速率随机游走(Rate Random Walk, RRW):零偏的缓慢漂移,通常建模为一阶马尔可夫过程。
  • 量化噪声:ADC量化带来的误差,一般影响较小。

常用的IMU误差模型(离散时间形式):

ω_meas = ω_true + b_g + n_g
a_meas = a_true + b_a + n_a

其中:
b_g(k+1) = b_g(k) + w_bg   (陀螺零偏随机游走)
b_a(k+1) = b_a(k) + w_ba   (加速度计零偏随机游走)
n_g ~ N(0, σ_g²)           (陀螺白噪声)
n_a ~ N(0, σ_a²)           (加速度计白噪声)
w_bg ~ N(0, σ_bg²)         (零偏驱动噪声)
w_ba ~ N(0, σ_ba²)         (零偏驱动噪声)

这个模型,就是咱们后面做卡尔曼滤波的基础。你想想看,如果不建模零偏的随机游走,滤波器会把零偏当成真实角速度去积分,角度误差会越来越大。所以,一定要把零偏也作为状态量来估计

我的建议: 拿到一款新的IMU,先做Allan方差分析。它能帮你把ARW、RRW、零偏稳定性这些参数都提取出来。我每次换IMU芯片,第一件事就是跑Allan方差,看看这个芯片的“底子”怎么样。如果ARW太大,说明噪声水平高,后面滤波器的协方差矩阵就要设大一些。

2.4 小结

这一章咱们讲了加速度计和陀螺仪的工作原理,比力方程和角速度测量,还有IMU的误差模型。说白了,就是让你明白:IMU不是完美的,它有各种误差。但只要我们理解了这些误差的来源和特性,就能通过标定和滤波来补偿它们。

下一章,咱们会讲惯性导航的“核心算法”——姿态解算和捷联惯导更新。到时候你会看到,今天讲的误差模型是怎么用到实际代码里的。

好,今天就到这里。有问题随时交流。