伪距单点定位
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//卫星的PRN号
public CalTime NavDate;
//历元
public double ClockDeviation;
//卫星钟的偏差(s)
public double ClockDrifting;
//卫星钟的漂移(s/s)
public double ClockDriftVelocity; //卫星钟的漂移速度(s/s2)
//第一个观测记录的时刻
}
算法实现
2、读取O文件
public struct ObsDataInfo //观测数据文件信息
{
public CalTime ObsDate;
//该记录的历元时刻
public int Tag;
//历元标志
public int NumOfSate;
//本历元的卫星数
public int[] PRN;
//一个观测历元的卫星列表
public string Satellite;
//卫星列表
public string[] DataRec;
//对应的本历元卫星的观测数据
public double[,] Obsfakedata; //数组记录一个观测历元的伪距观测值
}
算法实现
3、定位解算
① 用广播星历参数计算卫星位置 ② 计算间接平差中的B,l ③ 计算接收机坐标、钟差改正数 ④ 循环步骤②、③计算单历元定位结果 ⑤ 循环进行各个历元的定位解算 ⑥ 删除计算定位中明显错误的结果 ⑦ 求定位平均值
已知坐标
误差Δ
X(m) 4097218.07141455 4097217.731933006 0.339
Y(m) 4429125.64424231 4429118.352011596 7.292
Z(m) -2065776.03338743 -2065770.737160930 -5.296
定位误差:9.019(m)
伪距单点定位 学习汇报
目录
定位
算法
定位
存在
原理
实现
结果
问题
定位原理
伪距观测方程
定位原理
伪距观测方程线性化
定位原理
伪距观测方程线性化
定位原理
伪距单点定位
定位原理
伪距单点定位
算法实现
1、读取N文件
public struct NavDataHeader //导航电文文件头
{
public string Version;
public double mPos;
//点位误差
public double RecClo;
//接收机钟差
public double GDOP;
//几何精度因子
}
# 定位结果可另存为文本文档方便查看
定位结果
1、各历元定位结果
定位结果
2、中误差
定位结果
3、GDOP
定位结果
4、与已知坐标比较
解算坐标
//RENIX格式的版本号
public string DataType;
//文件类型
public string[] CreateDataInfo;
//创建本数据文件的相关信息
}
算法实现
1、读取N文件
public struct NavDataObs //导航电文文件数据
{
public int PRN;
public double[] BroTrack_1;
//广播轨道1数据
public double[] BroTrack_2;
//广播轨道2数据
public double[] BroTrack_3;
//广播轨道3数据
public double[] BroTrack_4;
//广播轨道4数据百度文库
public double[] BroTrack_5;
算法实现
4、结果输出
public struct Result //结构体用来存储每一个观测历元的平差结果
{
public CoordCartesian RecPos; //一个观测历元计算出的接收机位置
public double m0;
//单位权中误差
public double mX, mY, mZ, mRC; //方向中误差,接收机钟差中误差
//标志的近似位置
public double AntHeight;
//天线高
public int ObsDataTypeNum;
//观测数据类型数
public string[] ObsDataType;
//观测数据类型
public double Interval;
//历元间隔
public string TimeOfFirstObs;
//广播轨道5数据
public double[] BroTrack_6;
//广播轨道6数据
public double[] BroTrack_7;
//广播轨道7数据
}
算法实现
2、读取O文件
public struct ObsDataHeader //观测数据文件头信息
{
public double Version;
//RENIX格式的版本号
public string DataType;
//文件类型
public string MarkerName;
//天线标志的名称
public string MarkerNumber;
//天线标志编号
public string[] AntInfo;
//天线序列号及类型
public double[] AppoxPosXYZ;
需要完善。
End!
再见
存在问题
1
O 文 件 读 取 模 块 没 有 通 用 性 。 例 如 RINEX 版 本不同,对应的P1、P2、C1在O文件里的位置也
不同,造成读取数据错误。
2
定位解算模块运行原理模糊,理论知识薄弱。 例如不清楚如何计算卫星位置,另外对最小二乘
平差方法需要重点复习。
3
代码内部逻辑关系仍需完善。在分析中发现 当有的观测数据不全时,程序对数据的处理有误,