$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>*hh
$PGRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*hh
$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>*hh
利用GPS25LVS模块,在户外采集了大约40分钟的静止的导航数据,将电脑和GPS25LVS模块相连,波特率为4800。异步串行数据输入。RS-232 电平,最大输入电压范围为-25 异步串行数据输出。RS-232 电平,提供NMEA 0183 版本2.0 的数据。 利用如下程序提取GPS的位置和速度: fuction [posiG,veloG]=gps(t); fid=fopen('D:\\综合设计\%ungelivable.dat'); tline='test'; if ~ischar(tline) %如果读到某行不是字符串 则说明数据结束 误差图形绘制结束 la=0; lo=0; end while(1) if strncmp('$GPRMC',tline,6); la=str2double(tline(17:25)); lo=str2double(tline(29:38)); posiG=lalotoposi(la,lo); %调用函数,将经纬度转换为米制位置信息 veloe=-str2double(tline(42:46))*sin(str2double(tline(48:52)))*1852/60; %节转换成米/秒 velon=str2double(tline(42:46))*cos(str2double(tline(48:52)))*1852/60; veloG=[veloe;velon;0]; if(k==t) k=k+1; break; else continue; end end end 所提取的数据将用来进行卡尔曼滤波,以对惯性导航的信息进行修正。 3.3、组合导航结果分析 3.3.1陀螺、加表和GPS的数据来源 由上述IMU数据处理及补偿模型,编写M文件,创建函数readIMU读取并处理相关数据,并将处理完的数据储存于文件imu.dat中;至于GPS的数据来源,则是由函数readGPS完成,主要是读取数据文件sensor.dat中的数据后筛选出经度、纬度和高度三个数据,处理后存放于一个位置矩阵中返回。 3.3.2捷联误差解算流程 a.速度误差方程 速度误差方程可由比力方程求微分得到: 式中, 是姿态误差角引起的与比力的耦合误差; 是导航参数误差引起的错误的牵连加速度; 是导航参数误差引起的错误的哥氏加速度; 是由于高度误差而引入的重力加速度计算误差; 是加速度计零位测最误差。 定义速度矢量为: 则展开后,误差方程为: b.位置误差方程 可由经纬度方程直接求导得到: c.数学平台误差方程 数学平台误差方程可由四元数方法得到: 式中, 由于计算误差引起的姿态角误差; 由于姿态误差角本身引起的交叉祸合误差 陀螺漂移误差。 直接对 , 求微分即可得到 , 的表达式。定义 数学平台的误差姿态角矢量: 展开后,得数学平台误差方程: