4. 捷联惯导系统(SINS)基本原理与误差方程
捷联惯导,说白了就是把惯性测量单元(IMU)直接“绑”在飞行器上。跟平台式惯导不一样,它没有物理的稳定平台。我刚开始接触这个的时候,总觉得少了那个平台,精度肯定不行。后来才发现,这恰恰是它的精髓——用数学算法代替了机械结构。
4.1 捷联惯导的核心思想
你想想看,传统的平台惯导,陀螺和加速度计是装在一个物理平台上的。这个平台通过伺服电机,始终跟踪着导航坐标系。捷联惯导呢?它把IMU直接固定在机体上。陀螺测的是机体的角速度,加速度计测的是机体的比力。
那怎么得到导航信息?全靠计算机算。用陀螺测的角速度去更新姿态矩阵,再用这个矩阵把加速度计的比力投影到导航坐标系,最后积分得到速度和位置。
核心公式(姿态更新):
C_b^n(t + Δt) = C_b^n(t) · exp(∫ ω_nb^b dt)
其中 C_b^n 是姿态矩阵,ω_nb^b 是机体相对导航系的角速度在机体系下的投影。
嗯,这里要注意。实际工程中,我们不会直接算矩阵指数。我习惯用四元数来更新姿态,计算量小,还避免了万向节锁死的问题。
4.2 姿态更新算法
姿态更新是捷联惯导最核心的一步。陀螺输出的是角增量,我们需要把它转换成姿态变化。
常用的方法有:
- 欧拉角法:直观,但有奇点。俯仰角±90°时,航向角就解不出来了。我做过一个高机动飞行器的项目,用欧拉角直接炸了。
- 方向余弦矩阵法:无奇点,但9个参数,计算量大。早期计算机性能不够时,这是个硬伤。
- 四元数法:4个参数,无奇点,计算量适中。我个人强烈推荐这个。
我的经验:四元数更新时,一定要做归一化。我曾经因为忘了归一化,导致姿态漂移越来越严重。查了三天才找到问题。归一化公式很简单:
q = q / ||q||
每次更新后都做一次,养成习惯。
4.3 速度与位置更新
速度更新,说白了就是对比力积分。但这里有个坑——你得先把加速度计测的比力从机体系转换到导航系。
f^n = C_b^n · f^b
然后减去哥氏加速度和重力加速度,才是真正的运动加速度。
v̇^n = f^n - (2ω_ie^n + ω_en^n) × v^n + g^n
位置更新就更直接了,对速度积分就行。但要注意,纬度、经度、高度是三个不同的量,更新公式略有差异。
避坑指南:我曾经在高度通道上吃过亏。纯惯导的高度通道是不稳定的,误差会随时间发散。如果你只靠惯导算高度,几分钟后误差就能到几百米。必须用气压高度计或GPS来修正。
4.4 捷联惯导的误差方程
为什么要研究误差方程?说白了,就是为了做组合导航。卡尔曼滤波需要知道系统的误差传播规律。
误差方程包括三个部分:
- 姿态误差方程:描述平台失准角的传播
- 速度误差方程:描述速度误差的传播
- 位置误差方程:描述位置误差的传播
我直接给出一组常用的线性化误差方程(在导航坐标系下):
姿态误差:
φ̇ = -ω_in^n × φ + δω_in^n - C_b^n · ε^b
速度误差:
δv̇ = f^n × φ + C_b^n · ∇^b - (2ω_ie^n + ω_en^n) × δv + δg^n
位置误差:
δL̇ = δv_N / (R_M + h)
δλ̇ = δv_E / ((R_N + h) · cosL)
δḣ = -δv_D
其中 ε^b 是陀螺漂移,∇^b 是加速度计零偏。这两个是惯导最主要的误差源。
4.5 误差方程的物理意义
你仔细看姿态误差方程。第一项 -ω_in^n × φ 说明什么?它表示平台失准角会随着地球自转和载体运动而旋转。第二项 δω_in^n 是导航系计算误差引起的。第三项 -C_b^n · ε^b 就是陀螺漂移直接导致的姿态误差。
我举个例子。假设你的陀螺有0.01°/h的常值漂移。在纯惯导模式下,一小时后的姿态误差大约是0.01°。听起来不大?但速度误差会随着时间累积,位置误差更是随时间平方增长。
关键结论:
- 陀螺漂移 → 姿态误差 → 速度误差 → 位置误差(误差传播链)
- 加速度计零偏 → 速度误差 → 位置误差
- 位置误差会反馈到姿态误差(通过 δω_in^n)
4.6 知识体系结构图
下面这张图,是我梳理的捷联惯导核心逻辑。你看一眼就能明白整个系统的数据流和误差传播路径。
4.7 工程中的几个关键点
做捷联惯导,有几个地方特别容易出问题:
- 圆锥误差补偿:高动态环境下,角速度积分会有不可交换性误差。我建议用多子样算法来补偿。
- 划船误差补偿:线振动和角振动耦合产生的速度误差。跟圆锥误差类似,也需要特殊处理。
- 初始对准:捷联惯导启动时,需要知道初始姿态。粗对准用重力矢量和地球自转角速度矢量,精对准用卡尔曼滤波。
- 传感器标定:陀螺和加速度计的零偏、标度因数、安装误差,都得标定。我见过一个项目,因为安装误差没标定,导航精度直接降了一个数量级。
我的建议:如果你刚开始做捷联惯导,先从低动态场景入手。把姿态更新、速度更新、位置更新这三个模块调通,再考虑误差补偿和组合导航。一步一步来,别想一口吃成胖子。
捷联惯导的误差方程,说白了就是告诉我们:误差从哪里来,怎么传播,怎么抑制。搞懂了这些,组合导航的卡尔曼滤波器设计就水到渠成了。