forked from poliastro/validation
-
Notifications
You must be signed in to change notification settings - Fork 0
/
eci2tod.m
59 lines (52 loc) · 2.13 KB
/
eci2tod.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
%
% ----------------------------------------------------------------------------
%
% function eci2tod
%
% this function transforms a vector from the mean equator mean equinox frame
% (j2000) to the true equator true equinox of date (tod).
%
% author : david vallado 719-573-2600 25 jun 2002
%
% revisions
% vallado - consolidate with iau 2000 14 feb 2005
%
% inputs description range / units
% reci - position vector eci km
% veci - velocity vector eci km/s
% aeci - acceleration vector eci km/s2
% ttt - julian centuries of tt centuries
% ddpsi - correction for iau2000 rad
% ddeps - correction for iau2000 rad
%
% outputs :
% rtod - position vector of date
% true equator, true equinox km
% vtod - velocity vector of date
% true equator, true equinox km/s
% atod - acceleration vector of date
% true equator, true equinox km/s2
%
% locals :
% prec - matrix for eci - mod
% deltapsi - nutation angle rad
% trueeps - true obliquity of the ecliptic rad
% meaneps - mean obliquity of the ecliptic rad
% omega - rad
% nut - matrix for mod - tod
%
% coupling :
% precess - rotation for precession mod - eci
% nutation - rotation for nutation tod - mod
%
% references :
% vallado 2001, 216-219, eq 3-654
%
% [rtod,vtod,atod] = eci2tod ( reci,veci,aeci,ttt,ddpsi,ddeps );
% ----------------------------------------------------------------------------
function [rtod,vtod,atod] = eci2tod ( reci,veci,aeci,ttt,ddpsi,ddeps );
[prec,psia,wa,ea,xa] = precess ( ttt, '80' );
[deltapsi,trueeps,meaneps,omega,nut] = nutation(ttt,ddpsi,ddeps);
rtod=nut'*prec'*reci;
vtod=nut'*prec'*veci;
atod=nut'*prec'*aeci;