资源简介
本代码利用Python语言实现根据卫星星历参数实现卫星定位功能。注:代码中个参数值是特定值须具体情况而改动
代码片段和文件信息
‘‘‘
T0=239050.7223
T=244800sa开方=5153.65531,ei(偏心率)=0.005912038265i0=0.9848407943
S0(t0时刻升交赤经)=1.038062244,w=-1.717457876M0=-1.064739758dn=4.249105564*e-9
di=7.422851197*10e-51dS=-8.151768125*10e-9Cuc=3.054738045*10e-7Cus=2.237036824*10e-6
Crc=350.53125Crs=2.53125Cic=-8.381903172*10e-8Cis=8.940696716*10e-8
u(开普勒常数)=3.986005*e14
wie=7.2921151467*10e-5
‘‘‘
import math
import numpy.matlib
def cordinateComputer():
Cuc = 3.054738045 * 1e-7
Cus = 2.237036824 * 1e-6
Crs = 2.53125
Crc = 350.53125
Cic = -8.381903172 * 1e-8
Cis = 8.940696716 * 1e-8
i0 = 0.9848407943
di = 7.422851197 * 1e-51
S0= 1.038062244
dS = -8.151768125 * 1e-9
wie = 7.2921151467 * 1e-5
f=1/298.257223563
Re=6378137
#近地点角
w = -1.717457876
#给定时刻
t0=244800;
#参考时间
t=239050.7223;
tk=t-t0;
a=math.pow(5153.655312);
#开普勒常数
u=3.986005*1e14;
n0=math.sqrt(u/math.pow(a3));dn=4.249105564*1e-9#平均运动角速度修正量
#t0时刻
m0=-1.064739758
#平近点角
mk=m0+(n0+dn)*tk
#偏心率
ei=0.005912038265
#利用拉格朗日级数求解开普勒方程求出ek=mk+ei*sin(ek)
ek=mk+ei*math.sin(mk)+math.pow(ei2)/(4*math.cos(mk)*math.sin(mk))\
+math.pow(ei3)/(6*(6*math.pow(math.cos(mk)2)*math.sin(mk))-3*math.pow(math.sin(mk)3))\
+math.pow(ei4)/24*(24*math.pow(math.cos(mk)3)*math.sin(mk)-40*math.cos(mk)*math.pow(math.sin(mk)3))\
+math.pow(ei5)/120*(65*math.pow(math.sin(mk)5)+120*math.pow(math.cos(mk)4)*math.sin(mk)-440*math.pow(math.cos(mk)2)*math.pow(math.sin(mk)3));
#根据偏近点和真近点关系计算真近角
fk1=math.sqrt(1-math.pow(ei2))*math.sin(ek);
fk2=math.cos(ek)-ei;
fk=math.atan(fk1/fk2);
‘‘‘
计算升交点角距uk地心距rk和轨道倾角以及三个坐标
‘‘‘
#升交点角距
uk=w+fk+Cuc*math.
评论
共有 条评论