单点定位程序说明.docVIP

  • 15
  • 0
  • 约 4页
  • 2018-05-01 发布于河南
  • 举报
这是精心收集的精品经典资料,值得下载保存阅读!

GPS单点定位程序文档说明 一 程序说明 本程序的基本功能是利用测站接收机获取的观测文件(O文件),结合相应历元下的卫星导航文件(N文件)来计算测站点在WGS-84坐标系下的坐标。 所用编程语言为C++,编程环境为VC++6.0。 二 单历元卫星坐标计算流程图 三 程序设计流程图 读取广播星历数据 读观测文件的一个历元数据 近似的用户位置坐标 计算接收机(用户)坐标 满足限差 N Y 文件完毕 将计算结果写入文件 N Y 关闭文件 读取观测值数据 根据观测历元和卫星号读取相应的广播星历 信号发射时刻卫星位置和卫星钟差 电离层、对流层延迟的计算 四 程序模块说明 对类的说明 PointPosition类 double GetDelta_t(CommonTime Toe,CommonTime Toc); 用于计算两个历元时刻的时间间隔 CoorCartesian ComputeSatCoor(double Tk,OneNavData oneNaveData); 利用导航数据计算卫星坐标 BoolGetPreciseSatCoor(CommonTimeObsTime,CoorCartesianSitecoor , CoorCartesian Satcoor,OneNavData oneNavData,double SatClkBais); 通过迭代得到新号发送时刻的卫星坐标 double ComputeSatClkBias(double SendTime_Tk,OneNavData oneNavData); 计算卫星的钟差改正 Factor ComputeFactors(CoorCartesian Sitecoor, CoorCartesian Satcoor, double satClkBias,double Tr, double TropDelay, double ionDelay, double p1); 计算组建法方程需要的各个元素 double ComputeTropDelay(CoorCartesian SatCoor,CoorCartesian SitCoor); 计算对流层误差 double ComputeIonDelay(const double L1,const double L2); 计算电离层误差 2.ReadObsData类 ReadObsFile(const string FileName); ObsFileHeader ReadObsHeader(const string FileName); 读取观测文件的头文件部分 EntirObsData ReadObsData(const string FileName); 读取观测文件的数据部分 3.ReadNavData类 NavFileHeader ReadNavHeader(const string FileName); 读取导航文件的头文件部分 AllNavData ReadNavData(const string FileName); 读取导航文件的数据部分 OneNavData SelectEpochNavData(AllNavData allNavData,string SatPrn,CommonTime ObsTime) 查找并获取要计算的观测历元下的导航数据 程序模块的连接关系 1.分别用文件流打开相应的观测数据文件和星历文件; 2.调用ReadObsFile.ReadObsHeader()读取观测文件头文件; 3.调用ReadObsFile.ReadObsData()按照观测历元读取观测数据; 4调用ReadNavFile.ReadNavHeader()读取导航文件的头文件部分; 5调用ReadNavFile.ReadNavData()读取导航文件的数据部分; 6 利用循环并调用ReadNavFile. SelectEpochNavData()获取观测历元的导航数据 7 调用PointPosition.ComputeSatCoor()计算卫星坐标 8利用PointPosition.ComputeFactor()计算法方程的各个元素 9迭代得到结果。 五 程序的不足之处 程序较多的出现类调其他类中的方法,从而类的独立性较差。 在坐标系统中,只进行了空间直角坐标系和大地坐标系的转换,空间直角坐标系和测站坐标系的转换,没有完全整理坐标转换。 计算的精度较低。 只利用GPS卫星的观测数据并没有利用Glonass卫星的观测数据,从而使数据为得到充分利用。

文档评论(0)

1亿VIP精品文档

相关文档