1. PSINS工具箱中的SINS/GNSS组合导航解析
作为一名从事惯性导航系统开发多年的工程师,我经常使用PSINS工具箱进行算法验证和工程实现。这个由西北工业大学严恭敏教授团队开发的Matlab工具箱,已经成为国内惯性导航领域研究和工程应用的标杆工具。今天重点分享工具箱中SINS/GNSS组合导航的几种典型状态空间模型,以及实际工程中的使用心得。
组合导航的核心在于通过卡尔曼滤波融合惯性导航系统(SINS)和全球导航卫星系统(GNSS)的测量数据。根据不同的应用场景和精度需求,我们需要设计不同维数的状态方程和观测方程。PSINS工具箱中常见的153、183和193三种模型编号,分别代表15维状态量+3维观测量、18维状态量+3维观测量、19维状态量+3维观测量的组合方式。
提示:状态量的维度选择直接影响滤波器的计算复杂度和估计精度,需要根据实际应用场景的精度需求和计算资源进行权衡。
2. 基础15维状态模型(153)详解
2.1 状态量构成与物理意义
15维状态模型是组合导航中最基础的配置,其状态向量包含五大类误差量,每类都是3维空间向量:
失准角误差(3维):表示导航坐标系与真实地理坐标系之间的微小角度偏差,通常记作ϕ = [ϕE ϕN ϕU]^T,分别对应东、北、天三个方向。在实际系统中,1毫弧度的失准角会导致约1m的位置误差(在1km距离上)。
速度误差(3维):载体速度的测量偏差δV = [δVE δVN δVU]^T。这些误差主要来源于加速度计的测量噪声和初始对准误差。
位置误差(3维):经纬高表示的定位偏差δP = [δL δλ δh]^T。其中纬度误差δL和经度误差δλ需要转换为弧度单位。
陀螺漂移(3维):陀螺仪的常值零偏εb = [εbx εby εbz]^T,是导致姿态误差随时间累积的主要因素。
加速度计零偏(3维):加速度计的常值零偏∇b = [∇bx ∇by ∇bz]^T,直接影响速度解的精度。
2.2 观测模型设计
在153模型中,通常采用GNSS提供的三维位置或三维速度作为观测量。观测方程可以表示为:
Z = H*X + V其中H矩阵的设计取决于使用的观测量类型。当使用位置观测时:
H = [zeros(3,6) eye(3) zeros(3,6)]当使用速度观测时:
H = [zeros(3,3) eye(3) zeros(3,9)]V表示观测噪声,其协方差矩阵需要根据GNSS接收机的性能指标合理设置。
2.3 工程实现要点
在实际工程中应用153模型时,有几个关键点需要注意:
初始对准精度:失准角的初始值对滤波收敛速度影响很大。静态情况下,建议先进行粗对准和精对准,将初始失准角控制在1度以内。
传感器误差标定:陀螺和加速度计的常值零偏应提前在实验室环境下标定,并在初始化时预补偿。
过程噪声调参:Q矩阵中的陀螺随机游走和加速度计随机游走参数需要根据IMU的实际性能设置。典型的高端战术级IMU参数为:
- 陀螺角度随机游走:0.001°/√h
- 加速度计速度随机游走:50μg/√Hz
3. 增强18维状态模型(183)解析
3.1 状态扩展原理
18维模型在15维基础上增加了3维距离误差状态,主要用于处理GNSS信号传播过程中的动态误差。这些误差包括:
- 电离层延迟变化率
- 对流层延迟变化率
- 多路径效应变化率
数学上,新增的状态量可以表示为δd = [δd1 δd2 δd3]^T,分别对应三个正交方向的距离误差率。
3.2 动态环境下的优势
在车辆、船舶等动态载体应用中,183模型相比153模型具有明显优势:
- 高动态适应性:能够更好地补偿载体机动导致的伪距率测量误差
- 抗干扰能力:对GNSS信号短时遮挡或干扰具有更强的鲁棒性
- 收敛速度:在机动条件下,滤波器收敛速度可提高30%以上
3.3 实现注意事项
使用183模型时需要特别注意:
- 观测方程调整:H矩阵需要扩展为[zeros(3,6) eye(3) zeros(3,6) eye(3)]
- 过程噪声设置:新增状态量的过程噪声需要根据环境动态性调整,典型值为0.1-1 m/s^1.5
- 计算量评估:状态维数增加导致计算量约增长20%,需评估处理器性能是否满足实时性要求
4. 高级19维状态模型(193)应用
4.1 时间误差建模
19维模型在18维基础上增加了1维时钟漂移状态δt,用于估计接收机时钟与GNSS系统时间之间的偏差变化率。这对于使用低成本晶振的接收机尤为重要,因为其时钟稳定性可能较差。
时钟漂移的状态方程通常建模为一阶马尔可夫过程:
d(δt)/dt = -β*δt + w其中β为相关时间的倒数,w为驱动白噪声。
4.2 机动辅助对准
在实际应用中,我们发现适当增加载体机动可以显著提高卡尔曼滤波的对准速度。这是因为:
- 机动提供了更丰富的观测信息
- 可观测性矩阵的秩增加
- 能更快分离出陀螺漂移和加速度计零偏
典型的机动策略包括:
- "S"形路线行驶
- 加速-匀速-减速循环
- 航向角变化机动
4.3 多源融合实现
在PSINS工具箱中实现193模型时,可以采用如下代码结构:
% 初始化19维状态 ins = insinit(zeros(19,1), ts); ins.tauG = 3600; % 陀螺相关时间 ins.tauA = 3600; % 加速度计相关时间 ins.tauD = 600; % 距离误差相关时间 ins.tauT = 1800; % 时钟漂移相关时间 % 卡尔曼滤波配置 kf = kfinit(ins, 'dyn', '19state'); kf.Qt = diag([imu.arw, imu.vrw, 1e-4, 1e-5])^2;5. 工程实践中的问题与对策
5.1 滤波器发散处理
在实际测试中,我们经常遇到滤波器发散问题,主要原因包括:
模型失配:IMU误差模型过于简化
- 解决方案:增加二阶马尔可夫过程建模
观测异常:GNSS信号受到干扰
- 解决方案:引入新息检测和自适应滤波
数值不稳定:矩阵运算出现病态
- 解决方案:采用平方根滤波算法
5.2 计算优化技巧
针对嵌入式平台的计算限制,我们总结了以下优化经验:
- 矩阵稀疏性利用:Q和H矩阵通常很稀疏,可使用稀疏矩阵存储
- 并行计算:将预测和更新步骤分配到不同核处理
- 降维处理:在动态较低时段可临时降为15维模型
5.3 典型参数配置参考
根据不同的IMU等级,推荐以下参数设置:
| IMU等级 | 陀螺零偏(°/h) | 加速度计零偏(mg) | Q矩阵比例因子 |
|---|---|---|---|
| 消费级 | 10-100 | 5-50 | 1.5-2.0 |
| 工业级 | 1-10 | 0.5-5 | 1.0-1.5 |
| 战术级 | 0.1-1 | 0.05-0.5 | 0.8-1.2 |
| 导航级 | 0.01-0.1 | 0.005-0.05 | 0.5-1.0 |
6. 不同应用场景的模型选择建议
根据多年工程经验,针对不同应用场景建议如下模型选择策略:
车载导航:
- 城市环境:推荐183模型,处理多路径效应
- 高速公路:153模型足够,计算量更小
无人机应用:
- 高机动飞行:必须使用193模型
- 平稳飞行:183模型可满足需求
航海应用:
- 开阔海域:153模型
- 近岸/港口:183模型处理多路径
室内外无缝定位:
- 需结合UWB等传感器,建议扩展至21维状态
在PSINS工具箱中切换不同模型非常方便,只需修改初始化参数:
% 15维模型 kf15 = kfinit(ins, 'dyn', '15state'); % 18维模型 kf18 = kfinit(ins, 'dyn', '18state'); % 19维模型 kf19 = kfinit(ins, 'dyn', '19state');实际项目中,我们通常会先使用高阶模型进行初始对准,然后根据运行环境动态切换模型维度,在精度和计算效率之间取得平衡。