$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.数学平台误差方程  数学平台误差方程可由四元数方法得到:    式中,  由于计算误差引起的姿态角误差;  由于姿态误差角本身引起的交叉祸合误差  陀螺漂移误差。 直接对 , 求微分即可得到 , 的表达式。定义  数学平台的误差姿态角矢量:   展开后,得数学平台误差方程: