《卫星定位技术与方法》
课程设计报告书
1
目录
一 作业任务 ....................................................................................................... 3
二 计算原理 ....................................................................................................... 3
2.1 卫星轨道坐标计算 ............................................................................... 3
2.2 GPS 单点定位数学模型 ......................................................................... 5
三 程序设计 ....................................................................................................... 7
四 感想体会 ....................................................................................................... 7
五 附录 ............................................................................................................... 8
5.1 运行结果截图 ....................................................................................... 8
5.2 程序代码 ............................................................................................. 10
2
一 作业任务
Point positioning programming based on pseudo-range and station coordinate
computation
Requirements:
1. Provide the scripts of your program(提供原程序)
2. Compute the coordinate at the given station in Beijing using the provided
observation and navigation files
二 计算原理
2.1 卫星轨道坐标计算
1. 计算平均角速度
其中, 由卫星星历获得。
2. 规划时刻
已知(由广播星历获得), 为 GPS 周秒。
3. 平近点角
已知,由卫星广播星历获得。
4. 偏近点角
迭代求解:初始值取 E=M,以弧度为单位。
5. 真近点角
3
003nnnGMna(1)n0kttt(2)0tt0kkMMnt(3)0MsinkkkEMeE(4)21sinarctancoskkkeEVEe(5)
6. 升交点角距
其中, 为近地点角距。
7. 轨道向径
8. 扰动改正
a) 升交点角距离改正
b) 轨道向径改正
c) 轨道顷角改正
其中, 为参考时刻的升交角距。
9. 改正后的各项值
a) 改正后的升交点角距
b) 改正后的轨道向径
c) 改正后的轨道倾角
10. 卫星在升交点轨道直角坐标系中的坐标
11. 升交点经度
其中,
, :升交点赤经变化率, :GPS 周开始
时刻的升交点经度。
12. 卫星在地固坐标系的空间直角坐标
4
kkV(6)(1cos)kkraeE(7)00cos2sin2uuCuSCC(8)00cos2sin2rrCrSCC(9)00cos2sin2iiCiSCC(10)0kkuU(11)(1cos)kkrraeE(12)0()kikiiIDOTt(13)cossinkkkkkkxrUyrU(14)'000()()KeeeeVttVt(15)57.292115146710/eVrads'0
展开可得:
2.2 GPS 单点定位数学模型
由于接收机测量的是伪距,在观测值中存在着接收机钟差,加之测量点的三维坐标为待
求值,一共有 4 个未知数。要求解出这 4 个未知数,必须有 4 个方程式。为此,要实现单点
绝对定位必须同时观测 4 颗卫星,才能组成定位的基本方程。
1. 设 为伪距观测量, 为接收机到卫星的真距离, 为接收机钟差,则观测方程如
下:
即:
式中,假定伪距观测量 已经过对流层改正和电离层改正。
为卫星的瞬
时地心坐标,可由卫星星历电文中求出;
为接收机的地心坐标,是待求量。
2. 为了求解方便和数据处理的需要,将式
写成泰勒级数展开形式,得:
即:
其中,
,
,
5
()()0KkKKKkKXxYRRiyZ(16)coscossinsincoscossinKkKkkKKkKkkKKkkXxyiYxyiZyi(17)pjjiipc(18)222()()()jjjjiiiiXXYYZZ(19)p(,,)jjjXYZ(,,)iiiXYZ(19)0jjjjjiiiiiiiiiiiXYZXYZ(20)0jjjjjiiiiiiiiLXMYNZ(20)00jjiijiXXL00jjiijiYYM00jjiijiZZN2220000()()()jjjjiiiiXXYYZZ
3. 线性观测方程的形式如下:
4. 假如采用四颗卫星观测量解算,可以得到伪距定位的基本方程为:
由上式写出误差方程,即:
其中,
,
,
5. 解误差方程式,可得:
6. 计算改正后的测站坐标值
处理过程通常需反复迭代计算,直到满足规定的限差为止。
7. 精度评定
单位权中误差计算如下:
方差如下:
6
0jjjjjiiiiiiiiiPLXMYNZc(21)1111102222200111iiiiiiiiiiiiimmmmmiiiiiiPXLMNYLMNPZcLMNP(22)ˆVAYL(23)111212111iiiiiimmmiiiLMNLMNALMN1102200iiiimmiiPPLPˆiiiiXXYXc1ˆ()TTYAPAAPL(24)000TTTiiiXYZXYZXYZ(25)04TVPVmn(26)21ˆ0()TYDmAPA(27)
三 程序设计
1. 本次 GPS 单点定位作业采用 C#语言编程实现,以达到更好的界面效果。编程的基本
目标是能够计算卫星轨道坐标和测站点坐标,可以在窗体界面的 listview 控件中
显示坐标并且可以以文本文件的形式导出。程序的大致步骤如下:1、要读取观测
数据文件和卫星星历文件,将其中有用的信息存储到数组里。2、对各个历元,找
出最佳的卫星星历数据,并计算卫星坐标。3、利用卫星坐标和伪距信息,计算各
历元下的测站坐标,迭代计算,直至改正数满足要求。
2. 具体程序代码和运行结果截图详见附录。
图 1 程序界面设计
四 感想体会
经过本次 GPS 单点定位的编程作业,使我对 GPS 单点定位的原理有了进一步的理解,
对通过单点定位的方式解算 GPS 测站坐标的步骤有了大致的掌握,同时也提高了编程能
力。对于书本上所学的东西,都必须要付诸于实践才能更好得去理解它,就比如说此次
的作业,假如只看了下理论,也许不久后就会遗忘,只有一步一步操作过才能掌握得更
牢固。在本次的编程过程中,遇到了不少的问题,其中主要是由于对编程语言不够熟悉
所导致的。比如,对于文件的读取和写入就费了一番功夫,查了各种资料,最终才完成
了这一步骤。还有数据的组织问题,怎样才能合理高效得实现数据的存储使用,也是比
7
较重要的。对于这个问题,我最终新建了多种类,来存储不同类别的变量。然后就是如
何实现变量值在各类之间传递的问题,假如在同一个类文件中,在各类的外部建立的变
量就可以解决,但是本次的作业新建了多个类文件,最终我才用了建立静态变量的的方
式来引用其他文件中的变量值。在编程的过程中,类似于上述问题的问题我遇到了很多,
大部分能够解决,实在有问题的就尽量避开。归根结底还是由于对 C#不够熟练,以后
还要继续加强学习。
五 附录
5.1 运行结果截图
程序界面设计如下
图 2 程序界面
打开观测数据文件和卫星星历文件,计算测站坐标。
8