卫星导航定位算法与程序设计_单点定位程
序流程
GPS 单点定位程序流程
一、计算流程
1、 读取RINEX N 文件,将所有星历放到一个列表(数组)ephlst 中。
2、 读取RINEX O 文件,读取一个历元观测值epoch
3、
数据预处理
根据epoch 中的卫星号和历元时刻R T 在ephlst 查找相应的卫星星历, 准则3600.0R T TOE -<s 。
4、
程序初始化,置测站概略位置为r X ,接收机钟差初值r dt 。
000r r r X X Y X cdt Z cdt ⎡⎤⎢⎥
⎡⎤⎢⎥
==⎢⎥⎢⎥
⎣⎦⎢⎥
⎣⎦第一次迭代,取000000X ⎡⎤
⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 5、 选择epoch 中一颗卫星i S 观测值,设其伪距为i S ρ 6、
计算卫星i S 的信号发射的概略时刻i s T 方法如下:
a) 卫星i S 的信号传播时间:0/i i i S S S r c dt dt τρ=-+;i S dt 为卫星钟差,需要进行
相对论改正;
b) 卫星i S 的信号发射时刻:0i i S S R T T τ=-; c) 卫星i S 在i S T 时刻的位置()()
i i i
i
i
S i
T S S S S S T X T X Y Z =;
d) 对卫星位置()i i S S X T 进行地球自转改正,得到()
i
i S S w X T ; e) 根据()
i i S S w X T 和测站概略位置r X 计算卫星和测站的几何距离i S R
f) 根据几何距离i S R 求信号传播时间1/i i S S R c τ=。
g) 如果10710i i S S ττ--< ,则退出迭代。
11i i S S R T T τ=-即为卫星信号发射时刻。
h) 否则01i i S S ττ= ,回带到b)进行迭代。
7、
求卫星i S 方向余弦
()()()01
2
3
,,,1i
i
i
i
i
i
i
i
i
i
S S S S S S S S S S X X Y Y Z Z b b
b
b
R
R
R
---====
8、
求卫星i S 在观测方程式中的余数项:
i i i i S S S S trop iono RTCM l R c dt d d D ρ=-+⋅--+
其中:
hopfield 0i
i i S i S i S i trop iono RTCM S R S c dt S d d D ρ⋅——卫星的伪距观测值;
——卫星到测站的几何距离;——以米表示的卫星的钟差;
——对流层延迟改正量,单位米,用简化的模型计算;
——电离层延迟改正量,单位米,采用无电离层伪距组合观测值时,此项为;——对伪距的差分改正值,此处为0;
9、
选择epoch 中下一颗卫星j S 观测值,设其伪距为j S
ρ
10、 重复第6—9步,计算每颗卫星的系数和余数项
11、 将所有卫星的系数组成误差方程,以(),,,r x y z cdt 为未知参数进行求解,
形式应该是:AX L =
[]
()
0001110
1
0120120121110,1,,1i i i i S S S S S S T
S S S S S S b b b b b b A X x
y
z cdt L l l l b b b i svnum ⎡⎤⎢⎥⎢⎥⎡⎤===⎣
⎦
⎢⎥⎢⎥⎢⎥⎣⎦=-
12、 求解法方程()()1ˆT T X
A PA A PL -=,求出定位结果 0000ˆˆˆi r r i X X x
Y Y y X Z Z z cdt cdt cdt ⎡⎤+⎡⎤⎢⎥
⎢⎥+⎢⎥⎢
⎥==⎢⎥⎢⎥+⎢
⎥⎢⎥+⎢⎥⎣⎦⎣⎦
13、 与0X 进行比较,判断位置差值,
a) 如果各分量差值>0.001m ,则令0i X X =,返回第6步继续迭代计算。
b) 若小于则退出迭代。
14、 输出该历元定位结果。
15、 继续下一历元计算,下一历元的坐标初始值= 上一历元的定位结果。
16、 返回2,直到全部历元计算完毕。
二、程序流程图
2.1总体流程图
2.2 卫星信号发射时刻迭代的流程图。