GPS 单点定位算法
黄劲松
1. 读取导航电文信息。
2. 读取观测值(假定同时对 k 颗卫星进行了观测),可一次将某一观测历元的所有卫星的
观测数据读入。注意,如果观测值的观测时刻的年号是用 2 位数字表示的,需要转换成
用 4 位数字表示。(假定信号接收时刻为 RT )
3. 给定待定点的初始(近似)坐标(
以将这些值的均设为 0。即
X Y Z 和初始(近似)的接收机钟差 rtδ 。通常可
,
,
T
)
=
=
=
=
0
0
0
0
X
Y
Z
tδ
R
4. 选取第一颗卫星的观测值,假定其伪距为 jSρ ,在这里 0
j = 。
5. 根据所选取观测值所属的卫星和观测时间获取相应的卫星星历数据,要求该星历数据的
TOE 距观测历元时刻最近。
6. 计算近似的信号传播时间 jSτ ,可采用下式计算。
S
j
S
j
R
S
j
c
−
=
δ δ
t
t
+
为相应的伪距观测值;
τ ρ
其中:
ρ
j
δ
t
δ
t
为真空中的光速,取
c
为相应卫星的钟差;
=
为接收机的钟差;
R
S
c
j
2.99792458 10 m s
8
×
7. 计算信号发射时刻。
8. 计算卫星在信号发射时刻时在该时刻时的地固系下的位置(
jS
T
=
T τ
−
R
S
j
X Y
,
S
j
S
j
,
Z
)
T
T
S j
。
9. 通过绕 z 轴的旋转变换,计算卫星在信号发射时刻时在信号接收时刻时的地固系下的位
置。
α
∆
sin
α
∆
cos
0
0
0
1
X
Y
Z
j
'
j
'
'
j
α
∆
cos
α
∆
sin
0
j
j
j
X
Y
Z
= −
其中:
α ωτ
∆ = ⋅
ω
为地球自转速度,在
WGS84
ω
系下 =
7.2921151467 10 rad s
×
−
5
。
10. 重新计算信号传播时间 jSτ ,可采用下式计算。
S
j
R c
j
S
τ =
其中:
R
为相应卫星与待定点之间的计算距离。
)
2
(
+
X
S
j
Y
)
2
(
+
Y
S
j
Z
−
Z
S
j
R
=
(
S
j
X Y
,
(
S
j
X
S
j
S
,
Z
−
)
j
T
−
(
)
2
T
S j
S
j
S
j
,
Z
)
T
的取值为
S
j
X Y
,
11. 重新进行 7 – 10,直到所计算出的信号传播时间收敛为止。
12. 计算与相应卫星有关的误差方程系数。具体为:
(
(
(
−
X X
S
j
−
Y Y
−
Z Z
S
j
S
j
)
)
)
R
R
R
=
=
=
=
j
j
j
j
S
b
0
S
b
1
S
b
2
S
b
3
1.0
13. 计算 O-C 值 l 。具体为:
S
j
l
=
ρ
S
j
−
S
j
R
+ ⋅
c
δ
t
S
j
− ⋅
c
δ
t
R
14. 形成法方程。注意,这里只是根据与相应卫星有关的误差方程系数,逐步形成法方程。
具体算法为:1
1因为,法方程各部分具有下面的形式:
( )
n
(
=
)
1, 2
j
j
T
b l
;
×
4 4
×
4 1
;
m
=
N
T
B L
)
(
其中:
n
(
其中:
=
j
1, 2
j
)
m
T
b l
b
k
−
1
∑
=
1 0
i
−
1
k
∑
=
1 0
i
=
⋅
S
1
i
1
j
b
S
1
i
2
j
;
=
1 0,1, 2,3;
j
=
2 0,1, 2,3
j
⋅
l
S
i
1
;
S
b
i
m
1
=
m
0,1, 2,3
S
j
N
=
S
−
1
j
+
n
S
j
;
当 时,
=
j
S
−
1
j
N
=
0
(
N
)
S
j
n
(
(
S
j
=
j
S
b
m
j
S
b
n
T
B L
)
T
b l
S
=
j
=
T
B L
⋅
b l
m
⋅
(
(
n m
,
0
( )
)
( )
S
j
)
,
m n
S
−
1
j
)
S
j
)
;
(
×
4 4
+
T
b l
m
;
×
4 1
表示矩阵中第 行第 列的元素
m
n
表示矩阵中第 行的元素
m
m
15. 选取下一颗卫星的观测值,假定其伪距为 jSρ 。
16. 重复 5 – 15,直到处理完所有观测值的观测方程为止。
17. 解算法方程,计算出被估参数近似值的改正数(
)
x y z δρ , R
,
,
,
R
T
δρ 为由于接收机钟差
所造成的距离误差。
18. 计算出被估参数(
X Y Z tδ 。并将它们分别当作下次迭代计算时的待定点的近似坐
,
,
,
T
)
R
标和近似的接收机钟差。
0
=
=
=
+
+
+
X
X
0
Y Y
Z
Z
δ δ δρ
=
t
x
y
z
0
+
t
0
R
R
c
19. 重新 4 – 18,直到所计算出的被估参数收敛为止。