상태 벡터 R과 V는 태양 중심 황도 좌표계 (Heliocentric ecliptic frame)에 상대적으로 정의된다. 이는 지구중심 적도 좌표계 (Geo-centric equatorial frame)과 매우 유사하다. 인력 중심(The center of attraction)으로써 지구를 태양으로 대체하고, 황도 평면이 지구 적도 평면을 대체하면 된다. 춘분선은 관성 X 축으로 동일하게 정의된다.
실제적인 항성간 임무를 설계하기 위해서는, 어떤 주어진 시간에서 행성의 상태 벡터를 결정할수 있어야만 한다. 그래서 테이블 [1]과 같은 궤도 성분이 제공된다.
주어지는 일자와 시간에서 행성의 상태 벡터를 결정하는 알고리즘은 다음과 같다.
1) 율리우스일 JD 계산하기
JD=J0+UT24
J0=367y−INT[74[y+INT(m+912)]]+INT(275m9)+d+1,721,013.5
2) J2000 시대로부터의 율리우스 일 T0 계산하기
T0=J0−2,451,54536,525
3) 성분 변화량 계산하기
x=x0+˙xT0
여기서 다음과 같은 어떤 시간에서의 행성의 궤도 성분 (Planetary orbital element)을 구하게 된다.
- a 장축단, semi-major axis
- e 이심률, eccentricity
- i 궤도 기울기, the inclination to the ecliptic plane
- Ω 승교점의 적경, the right ascension of the ascending node
- ˜ω 근일점의 경도, the longitude of perihelion
- L 평균 경도, the mean longitude
4) 장축 반지름 semi-major axis a와 이심률 e으로부터 비 각 운동량 specific angular momentum h 구하기
h=√μa(1−e2)
5) 근일점의 매개변수 argument of perihelion ω와 평균 이각 M 구하기
ω=˜ω−Ω
M=L−˜ω
6) 편심 이각 E와 전근점 이각 θ 구하기
평균 근점 이각 Me와 편심 이각 E의 관계는 다음과 같다. 이를 케플러 방정식이라 부른다.
Me=E−esinE
편심 이각 E와 진 근점 이각 θ간의 관계는 다음과 같다.
E2=√1−e1+etanθ2
θ=2tan−1(√1+e1−etanE2)
7) 다른 상태량을 통해서 태양 중심의 위치 벡터와 속도 벡터를 얻는다.
초점으로부터의 거리 r
r=h2μ11+ecosθ
시선 속도 Radial velocity vr
vr=μhesinθ
횡속도 Transverse velocity v⊥
vr=μh(1+ecosθ)
8) 태양좌표계 혹은 지구 좌표계에 고정하기
rx=h2μ11+ecosθ[cosθsinθ0]
vx=μh[−sinθe+cosθ0]
위에서 계산한 위치 벡터 rx와 속도 벡터 vx는 궤도 평면 상에서의 위치이다.
기준이 되는 고정 좌표계로 변환은 다음과 같다.
QXx=[cosΩcosω−sinΩsinωcosi−cosΩsinω−sinΩcosicosωsinΩsinisinΩcosω+cosΩsinωcosi−sinΩsinω+cosΩcosicosω−cosΩsinisinωsinisinicosωcosi]
태양중심, 혹은 지구 중심 좌표계로의 변환은 다음과 같다.
rX=QXxrx
vX=QXxvx
전체 코드는 다음과 같다,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
a = planet.x(1);
e = planet.x(2);
i = warp_360(planet.x(3));
Omega = warp_360(planet.x(4));
tilde_omega = warp_360(planet.x(5));
L = warp_360(planet.x(6));
mu = planet.mu + sun_mu;
h = sqrt(mu*a*(1-e.*e));
Sec2Day = 1/(24*60*60);
Day2Year= 1/(365.256);
D2R = pi/180;
R2D = 180/pi;
omega = warp_360(tilde_omega - Omega);
M = warp_360(L - tilde_omega);
E = warp_360(R2D*double(vpasolve((Eval - e * sin(Eval)) - M * D2R, Eval)));
theta = warp_360(2 * atan(sqrt((1-e)/(1+e))*tand(E/2)) * R2D);
rx = (h.*h/mu)/(1+e*cosd(theta))*[cosd(theta), sind(theta), 0];
vx = (h/mu) * [-sind(theta), e + cosd(theta), 0];
QxX = [ cosd(Omega)*cosd(omega)-sind(Omega)*sind(omega)*cosd(i), -cosd(Omega)*sind(omega)-sind(Omega)*cosd(i)*cosd(omega), sind(Omega)*sind(i);
sind(Omega)*cosd(omega)+cosd(Omega)*sind(omega)*cosd(i), -sind(Omega)*sind(omega)+cosd(Omega)*cosd(i)*cosd(omega), -cosd(Omega)*sind(i);
sind(omega)*sind(i), sind(i)*cosd(omega), cosd(i)];
|
cs |
예제 1) 2003년 8월 27일의 12hr UT의 지구와 화성의 거리를 계산해보자.
예제 2) 오늘 밤 자정, 경기 평택 어딘가에서의 달의 모습을 나타내어 보자.
오늘 밤 자정은 2023년 03월 13일 0hr KST
경기 평택 어딘가는 N 37.00000, E 127.000000 이라 하자.
[1] "Planetary Orbital Elements - Planetary Mean Orbits (J2000)" http://www.met.rdg.ac.uk/~ross/Astronomy/Planets.html
'개인공부 > 궤도역학' 카테고리의 다른 글
항성일과 회합일의 정리 (0) | 2023.04.29 |
---|---|
태양 주위의 가관측한 행성의 궤도 (0) | 2023.03.28 |
2D 상의 위성 궤도 모의하기 (0) | 2023.02.26 |
Orbital Mechanics, Ch.5 Preliminary Orbit Determination (0) | 2023.02.19 |
궤도 계산 2D - 2 : 태양-지구 궤도 (0) | 2023.02.19 |