卫星轨道位置计算
根据广播星历计算卫星位置
广播星历为n,p,g为后缀的文件,精度在分米到米级,常常用在spp定位中。
计算卫星运动的平均角速度
首先根据广播星历给出的参数
A
\sqrt A
A计算参考时刻
t
o
e
{t_{oe}}
toe的平均角速度
n
0
{{\rm{n}}_0}
n0:
n
0
=
G
M
(
A
)
3
{{\rm{n}}_0} = {{\sqrt {GM} } \over {{{(\sqrt A )}^3}}}
n0=(A)3GMG是万有引力常数,M是地球总质量,GM=3.986005×10^14。
再根据广播星历中给定的摄动参数n’计算观测时刻卫星的平均角速度:
n
=
n
0
+
n
’
n = {n_0} + n’
n=n0+n’
计算观测瞬间的平近点角M
M
=
M
0
+
n
(
t
−
t
o
e
)
M = {M_0} + n(t - {t_{oe}})
M=M0+n(t−toe)M0为参考时刻
t
o
e
{t_{oe}}
toe的平近点角,由广播星历给出。
这里用参考时刻而不用近地点时刻的原因:广播星历每两小时更新一次,将参考时刻设置在中间时刻,则外推时间间隔均小于等于1小时,如果用近地点时刻,外推可能达到6小时。简单模型也可获得精度较高的结果。
计算偏近点角M
弧度表示的开普勒方程: E = M + e sin E E = M + e\sin E E=M+esinE角度表示的开普勒方程: E ∘ = M ∘ + ρ ⋅ e sin E ∘ {E^ \circ } = {M^ \circ } + \rho \cdot e\sin {E^ \circ } E∘=M∘+ρ⋅esinE∘
计算真近点角
cos f = cos E − e 1 − e cos E \cos f = {{\cos E - e} \over {1 - e\cos E}} cosf=1−ecosEcosE−e sin f = 1 − e 2 sin E 1 − e cos E \sin f = {{\sqrt {1 - {e^2}} \sin E} \over {1 - e\cos E}} sinf=1−ecosE1−e2sinEe为卫星轨道的偏心率,由广播星历给出. f = arctan 1 − e 2 sin E cos E − e f = \arctan {{\sqrt {1 - {e^2}} \sin E} \over {\cos E - e}} f=arctancosE−e1−e2sinE
计算升交角距
u ′ = ω + f u' = \omega + f u′=ω+f ω \omega ω为近地点角距,由广播星历给出。
计算摄动改正项
广播星历中给出了6个摄动参数:
C
u
c
,
C
u
s
,
C
r
c
,
C
r
s
,
C
r
s
,
C
i
s
{C_{uc}},{C_{us}},{C_{rc}},{C_{rs}},{C_{rs}},{C_{is}}
Cuc,Cus,Crc,Crs,Crs,Cis
可以求出由J2项而引起的升交角距u的改正项、卫星矢径r的改正项和卫星轨道倾角i的摄动改正项
δ
u
=
C
u
c
cos
2
u
′
+
C
u
s
sin
2
u
′
{\delta _u} = {C_{uc}}\cos 2u' + {C_{us}}\sin 2u'
δu=Cuccos2u′+Cussin2u′
δ
r
=
C
r
c
cos
2
u
′
+
C
r
s
sin
2
u
′
{\delta _r} = {C_{rc}}\cos 2u' + {C_{rs}}\sin 2u'
δr=Crccos2u′+Crssin2u′
δ
i
=
C
i
c
cos
2
u
′
+
C
i
s
sin
2
u
′
{\delta _i} = {C_{ic}}\cos 2u' + {C_{is}}\sin 2u'
δi=Ciccos2u′+Cissin2u′
进行摄动改正
u = u ′ + δ u u = u' + {\delta _u} u=u′+δu r = u ′ + δ r = a ( 1 − e cos E ) + δ r r = u' + {\delta _r} = a(1 - e\cos E) + {\delta _r} r=u′+δr=a(1−ecosE)+δr i = i 0 + δ i + d i d t ( t − t o e ) i = {i_0} + {\delta _i} + {{di} \over {dt}}(t - {t_{oe}}) i=i0+δi+dtdi(t−toe)a为卫星轨道长半径,i0为参考时刻 t o e {t_{oe}} toe 的轨道倾角,由广播星历中的开普勒六参数给出,di/dt为i的变化率,由广播星历中的摄动九参数给出。
计算卫星在轨道面坐标系中的位置
轨道平面直角坐标系中(坐标原点位于地心,X轴指向升交点)卫星的平面直角坐标系:
x
=
r
cos
u
{\rm{x}} = r\cos u
x=rcosu
y
=
r
sin
u
y = r\sin u
y=rsinu
计算观测瞬间升交点的经度L
若参考时刻 t o e {t_{oe}} toe 时升交点赤经为 Ω t o e {\Omega _{{t_{oe}}}} Ωtoe,升交点对时间的变化率为 Ω ˙ \dot \Omega Ω˙(从广播星历的摄动参数中给出),则观测瞬间t的升交点赤经为: Ω = Ω t o e + Ω ˙ ( t − t o e ) \Omega = {\Omega _{{t_{oe}}}} + \dot \Omega (t - {t_{oe}}) Ω=Ωtoe+Ω˙(t−toe)设本周开始时刻(星期日0时)格林尼治恒星时为 G A S T w e e k GAS{T_{week}} GASTweek,观测瞬间时间为 G A S T = G A S T w e e k + w e t GAST = GAS{T_{week}} + {w_e}t GAST=GASTweek+wet, w e {w_e} we=7.292115×10^-5rad/s,为地球自转速度;t为周内秒,假设地球自转为完全匀速,则 L = Ω − G A S T = Ω t o e − G A S T w e e k + Ω ˙ ( t − t o e ) − w e t = Ω 0 + ( Ω ˙ − w e ) t − Ω ˙ t o e L = \Omega - GAST = {\Omega _{{t_{oe}}}} - GAS{T_{week}} + \dot \Omega (t - {t_{oe}}) - {w_e}t = {\Omega _0} + (\dot \Omega - {w_e})t - \dot \Omega {t_{oe}} L=Ω−GAST=Ωtoe−GASTweek+Ω˙(t−toe)−wet=Ω0+(Ω˙−we)t−Ω˙toe广播星历中给出的 Ω 0 {\Omega _0} Ω0,即与本周开始时刻之差。
计算卫星在瞬时地球坐标系中的位置
通过两次旋转求解
计算卫星在协议地球坐标系中的位置
在定位中,常常需要多次计算卫星的位置和速度,每个历元都如上述计算则需要占用较多的内存和计算时间。常常用多项式来拟合时间上的卫星坐标,这样只需要保存系数即可。切比雪夫多项式拟合效果最佳,且两端的近似性很好。
精密星历计算卫星位置
精密星历也称为精密轨道,为sp3文件。精度可以达到毫米级。
通常是15min来给出卫星在空间的三维坐标、三维运动速度及卫星钟改正数等。观测瞬间卫星位置及运动速度采用内插法,常用拉格朗日内插。