惯性导航精解算程序
项目介绍
本项目是一款针对捷联式惯性导航系统(SINS)设计的高精度数值解算软件。程序通过对惯性传感器(陀螺仪和加速度计)原始增量数据的精密处理,实现对载体姿态、速度和位置的动态重构。该程序不仅涵盖了惯性导航的核心运动学编排,还集成了复杂的误差补偿算法和地球物理模型,适用于航空航天、车载及舰载导航系统的精度评估与离线轨迹处理。
功能特性
- 高精度地球模型:基于WGS-84参考椭球参数,动态计算不同纬度和高度下的地球自转角速率投影、子午圈/卯酉圈曲率半径以及局部重力加速度。
- 误差模拟与鲁棒性测试:支持注入陀螺仪零偏、加速度计零偏以及随采样频率变化的白噪声,用于测试解算算法在非理想传感器数据下的表现。
- 补偿算法:实现双子样旋转矢量算法与划船效应补偿,有效消除高频振动环境下的角增量与速度增量误差。
- 全球定位解算:提供完整的经纬度及高度解算能力,计算过程中严密考虑哥氏力与向心力补偿。
- 结果可视化与误差分析:自动化生成导航参数曲线,并将解算结果与仿真真值进行对比,量化姿态(俯仰、横滚、偏航)、速度及位置的随时间漂移特性。
使用方法
- 基础配置:在程序开头配置仿真参数,如采样频率(默认100Hz)、仿真总时长及子样补偿数。
- 初始状态定义:设置载体的初始地理坐标(经纬高)、初始运动状态(东、北、天向速度)以及初始姿态角。
- 传感器误差设置:根据需求调整陀螺仪和加速度计的零偏及噪声水平。
- 执行解算:运行主脚本,程序将自动生成仿真IMU原始数据,随后进入惯导编排主循环进行实时解算。
- 结果分析:程序运行结束后,将自动弹出两组图表:第一组展示解算得到的姿态、速度、位置轨迹;第二组展示各项导航参数相对于真值的误差曲线。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件要求:通用办公电脑即可,程序采用向量化计算,对内存要求较低。
- 依赖项:程序为自包含设计,所有核心数学变换函数(四元数乘法、旋转矩阵转换等)均已在脚本内部实现,无需安装额外的工具箱。
算法实现细节
- 环境初始化:
程序首先严格定义了WGS-84物理常数,包括地球长短半径、扁率、第一离心率及自转速度。这些参数是所有导航计算的物理基准。
- IMU数据仿真逻辑:
程序通过反向运动学原理生成测试数据。在考虑载体处于地球静态的前提下,计算地球自转角速率在机体系的投影以及重力加速度对比力的影响,并叠加用户定义的传感器确定性误差(零偏)和随机误差(白噪声)。
- 捷联惯导精解算循环:
本程序的核心逻辑运行在一个双子样更新循环中,具体步骤如下:
- 增量处理:提取两个连续采样周期内的角增量与速度增量,利用二阶补偿算法计算等效旋转矢量,修正锥次效应。
- 地球参数动态更新:根据当前时刻的高度和纬度,实时修正子午圈半径RMh、卯酉圈半径RNh以及局部重力数值gL。
- 速度更新:将机体系下的速度增量转换至导航系,并严密补偿哥氏加速度(因载体在转动地球上运动产生的力)和重力加速度的综合影响。
- 姿态更新:采用四元数法进行姿态更新,不仅考虑了机体系相对于惯性系的转动,还修正了导航系(地理坐标系)因载体位置改变而产生的坐标系旋转。通过规范化处理防止四元数计算中的漂移。
- 位置更新:采用梯形积分法,结合更新后的速度与曲率半径计算地理坐标(经纬度)的增量。
- 关键辅助函数:
- 坐标变换:实现了欧拉角、四元数、方向余弦矩阵之间的相互转换逻辑,严格遵循3-1-2(偏航-横滚-俯仰)的旋转顺序。
- 四元数运算:内置四元数乘法逻辑,实现了姿态更新从机体系到导航系的严密代数传递。
- 地球模型函数:封装了复杂的重力公式和曲率半径公式,确保每一计算周期内的物理环境参数达到精解算要求。
结果评估
程序最终输出的误差分析图表是评估系统性能的关键。通过水平位置误差(单位:米)以及姿态误差(单位:度)的变化趋势,用户可以清晰观测到由传感器零偏引起的导航误差随时间的线性或二次增长特性,这为后续组合导航算法(如卡尔曼滤波)的参数设计提供了重要的基准参考。