#该库使用Matlab的编写,面向对象编程,一共有X个库
该工具包使用国际制单位。为了设计者直观理解,角度用deg,deg转rad全部封装进了库里,不需要设计者考虑。
例如调用光速:constants.AstroConstants.c
时间系统对象的初始化输入为UTC(协调世界时间)和地理经度。时间数据类型为datetime或double(秒)。 UTC可以是数组,地理经度目前要求是标量。
UTC = datetime(2019,11,27,21,10,10);
lambda = 24.583;
timesystem = timeSystem.TimeSystem(UTC,lambda)
timesystem =
TimeSystem with properties:
UTC: 2019-11-27 21:10:10
lambdaG: 24.5830
lambda: 24.5830
TAI: 2019-11-27 21:10:11
TT: 2019-12-30 01:35:08
TDT: 2019-12-30 01:35:08
ET: 2019-12-30 01:35:08
UT1: 2019-11-27 21:10:10
Smean: 6.2995e+08
S: 6.2995e+08
smean: 6.2995e+08
s: 6.2995e+08
根据
- 测站纬度、真太阳时、海拔(或高程)
- 航天器方位角、高低角、距离、方位角变化率、高低角变化率和距离变化率
算出
- 测站位置(在地心惯性系下)
- 航天器方向余弦(测站地平坐标系下)
- 航天器位置(在地心惯性系下)
- 航天器速度(在地心惯性系下)
注意,纬度和海拔数据必须是标量,其余可以是数组
preprocessing = orbitDefine.Preprocessing(latitude,timesystem.s/3600*15,altitude,azimuth,elevation,distance,Dazimuth,Delevation,Ddistance)
preprocessing =
Preprocessing with properties:
Glatitude: 0.1024
s: [30×1 double]
altitude: 0
azimuth: [30×1 double]
elevation: [30×1 double]
distance: [30×1 double]
Dazimuth: [30×1 double]
Delevation: [30×1 double]
Ddistance: [30×1 double]
stationPos: [30×3 double]
spacecraftDir: [30×3 double]
spacecraftPos: [30×3 double]
spacecraftVel: [30×3 double]
orbitDefine.usingSinglePosVel(r0,v0,UTC(1))
ans =
usingSinglePosVel with properties:
a: 9.2000e+06
e_: [3×1 double]
e: 0.1200
Omega: 126.0000
omega: 36.9999
i: 96.5000
tao: 2019-11-27 18:28:09
f0: 51.1051
E0: 7.0366
M0: 6.9545
h: [3×1 double]
p: 9.0675e+06
输入地心惯性坐标系下测站位置和航天器方向,以及当地真恒星时和初始时刻的UTC,求得轨道要素。
orbit_L = orbitDefine.LaplaceMethod(preprocessing.stationPos,preprocessing.spacecraftDir,timesystem.s)
orbit_L =
LaplaceMethod with properties:
r0: [3×1 double]
v0: [3×1 double]
orbitDefine.usingSinglePosVel(orbit_L.r0,orbit_L.v0,timesystem.UTC(1))
orbit_L =
LaplaceMethod with properties:
r0: [3×1 double]
v0: [3×1 double]
a: 8.2619e+06
e: 0.0456
Omega: 60.2791
omega: 129.6670
i: 54.9207
tao: 2019-11-27 19:53:45
f0: 217.5681
E0: 219.1920
M0: 220.8440
输入地心惯性坐标系下航天器位置,以及初始时刻的UTC,求得轨道要素。
orbit=orbitDefine.usingMultiPos(preprocessing.spacecraftPos,UTC)
orbit =
usingMultiPos with properties:
a: 8.2099e+06
e: 0.0491
Omega: 60.2193
omega: 134.1086
i: 54.9040
tao: 2019-11-27 19:56:00
f0: 213.2022
E0: 214.7746
M0: 216.3779
p: 8.1901e+06