第2章 惯性导航原理(上):牛顿力学在导航中的应用、加速度计与陀螺仪的工作原理、比力方程与角速度测量
各位同学,欢迎来到第二章。
上一章我们聊了组合导航的整体框架,说白了就是GPS和INS怎么「搭伙过日子」。今天咱们要深入INS的核心——惯性导航原理。这部分内容,我当年在学校学的时候觉得特别枯燥,全是公式推导。但后来真正做项目才发现,这些原理就是你的「内功心法」。内功不扎实,后面调参、写代码、排查故障,你根本无从下手。
好,咱们开始。
2.1 牛顿力学在导航中的应用
惯性导航的根基是什么?就是牛顿力学。你想想看,一个物体在空间里运动,只要知道它初始的位置、速度,再测量出它每一瞬间的加速度,理论上就能算出它任何时刻的位置和速度。这就是惯导最朴素的思想。
具体来说,我们用到的是牛顿第二定律:F = ma。但导航里我们不关心力F,我们关心的是加速度a。加速度计直接测量比力(后面会讲),然后积分得到速度,再积分得到位置。
嗯,这里要注意一个关键点:积分会累积误差。加速度计有零偏,陀螺仪有漂移,这些误差经过两次积分,位置误差会随时间的三次方增长。我刚开始做惯导时,看着仿真数据里位置误差像火箭一样往上窜,心里直发毛。后来才明白,这就是惯导的「原罪」——没有外部修正,它注定会发散。所以才有组合导航的必要。
核心公式(一维情况):
速度: v(t) = v(0) + ∫ a(t) dt
位置: p(t) = p(0) + ∫ v(t) dt
实际系统中,我们处理的是离散采样,所以积分变成了累加。
2.2 加速度计的工作原理
加速度计测量的是什么?很多人会脱口而出:「加速度啊!」
其实不对。加速度计测量的是比力(Specific Force),也就是单位质量上受到的惯性力与引力的合力。用公式表达:
f = a - g
其中f是比力(加速度计输出),a是物体相对于惯性空间的加速度,g是重力加速度。
为什么不是直接测加速度?我举个例子你就明白了。你把加速度计平放在桌面上,它输出的是0吗?不是!它输出的是1g(约9.8 m/s²)向上的比力。因为桌面支撑着它,抵消了重力。如果它真的测加速度,静止时应该是0才对。
所以,要从比力中提取真正的运动加速度,必须扣除重力。这就是比力方程的核心思想。
我的经验:在工程实现中,扣除重力这一步最容易出问题。尤其是初始对准时,如果姿态角有微小误差,重力矢量投影到导航坐标系就会偏差,导致水平通道出现虚假加速度。我曾经在一个无人机项目里,就是因为初始对准时俯仰角差了0.1度,结果悬停时水平位置漂了十几米。排查了两天才找到原因。
2.3 比力方程详解
比力方程是惯导解算的「宪法」。它描述了载体坐标系下的比力测量值如何转换到导航坐标系,并扣除有害加速度(哥里奥利加速度、向心加速度等)。
完整形式如下(导航系取东北天):
v̇ⁿ = C_bⁿ · fᵇ - (2ω_ieⁿ + ω_enⁿ) × vⁿ + gⁿ
别被这个公式吓到,咱们拆开看:
- v̇ⁿ:导航系下的速度变化率(我们要的加速度)
- C_bⁿ · fᵇ:把加速度计测的比力从载体系转到导航系
- (2ω_ieⁿ + ω_enⁿ) × vⁿ:哥里奥利加速度和向心加速度,地球自转和载体运动引起的「虚假力」
- gⁿ:重力加速度
说白了,就是:真实加速度 = 测量比力(转坐标系) - 各种乱七八糟的干扰项 + 重力。
我做车载导航时,低速场景下哥里奥利项很小,经常直接忽略。但做高精度航空导航时,这一项必须精确补偿,否则几分钟就偏出几百米。
2.4 陀螺仪的工作原理
陀螺仪测量角速度。常见的类型有:
| 类型 | 原理 | 精度 | 典型应用 |
|---|---|---|---|
| 机械陀螺 | 高速转子,定轴性 | 极高(0.001°/h) | 潜艇、战略导弹 |
| 光纤陀螺(FOG) | Sagnac效应 | 高(0.01~1°/h) | 航空、航海 |
| 激光陀螺(RLG) | Sagnac效应(环形激光) | 高(0.001~0.1°/h) | 高端航空、航天 |
| MEMS陀螺 | 科里奥利振动 | 低(1~100°/h) | 手机、汽车、消费级无人机 |
MEMS陀螺现在用得最多,便宜、体积小。但它的零偏稳定性差,温度漂移大。我做过一个项目,MEMS陀螺在常温下零偏0.5°/s,温度升到60度就变成2°/s。如果不做温度补偿,导航结果根本没法看。
避坑指南:陀螺仪的零偏是惯导系统最大的敌人。我曾经在调试一个低成本IMU时,发现陀螺零偏在开机后前10分钟会缓慢变化(这叫「温漂」)。如果不做初始对准后的零偏估计,导航误差会迅速累积。我的建议是:每次开机后,让IMU静止2-3分钟,采集数据做零偏标定。别急着动。
2.5 角速度测量与姿态更新
有了陀螺仪的角速度测量值,我们就可以更新载体的姿态。常用的方法有三种:
- 欧拉角法:直观,但有万向锁问题(俯仰角接近±90度时失效)
- 方向余弦矩阵法:无奇点,但计算量大(9个参数)
- 四元数法:无奇点,计算量小(4个参数),工程中最常用
我个人习惯用四元数。姿态更新公式如下:
q̇ = 0.5 · q ⊗ ω
其中q是四元数,ω是角速度矢量(写成四元数形式),⊗表示四元数乘法。
离散化后,常用一阶龙格-库塔法:
q(k+1) = q(k) + 0.5 · Δt · q(k) ⊗ ω(k)
嗯,这里要注意:四元数必须归一化。每次更新后,计算误差累积会导致四元数模长偏离1,必须重新归一化。否则姿态会慢慢扭曲。我见过有人忘了这步,结果导航跑了半小时,姿态角漂了十几度。
核心要点总结:
- 加速度计测比力,不是加速度。要扣除重力才能得到真实加速度。
- 陀螺仪测角速度,积分得到角度。但零偏误差会随时间累积。
- 比力方程是惯导解算的核心,必须理解每一项的物理含义。
- 姿态更新推荐用四元数法,记得归一化。
好了,这一章的内容就到这里。下一章我们讲惯性导航原理(下),重点聊初始对准和捷联惯导解算的完整流程。到时候我会拿一个实际的IMU数据,带大家手撕代码。
记住,这些原理看起来枯燥,但它们是组合导航的「地基」。地基不牢,后面盖再高的楼也是危房。有问题随时在群里讨论,我看到就会回。