Processing math: 100%
반응형

하루를 24시간이라 하자.

1 day = 24 hours = 1,440 mins = 86,400 mins

공전면에 대한 자전축 기울기 ϵearth=23.44

항성일 Sidereal day 86164.0905sec, 23.9344696 hrs

Orbital Parameters

근일점 Perihelion rp=147.095106km

원일점 Aphelion ra=152.100106km

최고 궤도 속력 vp=30.29km

최저 궤도 속력 va=29.29km

공전 궤도 이심률 Orbit eccentricity eearth=0.0167282

e=rarpra+rp

장반경 Semi-major axis a=(rp+ra)/2=149.597.5106km

단반경 Semi-minor axis b=a1e2=149.576.6106km

태양의 GM GMs=132,712.0106km3/sec2

지구의 GM GMe=0.39860106km3/sec2

mu=GMs+GMe=132.712.4106km3/sec2

비 각 운동량 Specific Angular Momentum h=4,455.5100106km2/s

h=rpvp=ravaorr=1μh21+ecosθh=rpμ(1+e)

항성 공전 주기 Sidereal orbit period Te=365.256days=8766.134hrs

T=2πμa3/2=2πμ2(h1e2)3

항성 자전 주기(항성일) Sidereal rotation period, Revolution Period te=23.9345hrs

태양일 Solar day 1day=11/te1/Te=24.0000hrs

태양일은 회합 주기를 구하는 방법으로 구할 수 있다.

 

공전 궤도 경사 Orbit inclination imoon=0.00

 

Orbital Motion (1)

태양과 지구에 대해, 공전 궤도를 보면 다음과 같다.

항성 자전 주기 te와 태양일 SD에 대해서 애니메이션을 그려보면 다음과 같다.

지구의 항성 자전 주기 기준으로 볼 때, 지구는 항상 일정한 위상을 보인다.

항성 자전 주기 기준으로 태양에 대한 지구의 위치와 진행 방향, 그리고 지구의 방위각

태양일은 지구의 회합일이므로 지구의 위상은 항상 태양을 바라보는 형태로 나타나게 된다.

태양일 기준으로 태양에 대한 지구의 위치와 진행 방향, 그리고 지구의 방위각

애니메이션 코드는 다음과 같다.

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
%% Basic Parameters
clc;clear;
 
SD = 24*60*60; % Solar day
Twe_sun   = 609.12  * 60*60;
Twe_earth = 23.9345 * 60*60; % Sidereal rotation period 
Twe_moon  = 655.720 * 60*60; % Sidereal rotation period
 
% Earth - Moon
% fprintf("Earth - Moon Orbit\n");
% relation = "Earth-Moon";
% ra = 0.4055E6;
% rp = 0.3633E6;
% Twe_body = Twe_earth;
% Twe_sat  = Twe_moon;
% i = 5.14;
% GM_m = 0.004900E6;
% GM_e = 0.398600E6;
% mu = GM_m + GM_e;
 
% Sun - Earth
fprintf("Sun - Earth Orbit\n");
relation = "Sun-Earth";
rp = 147.095E6;
ra = 152.100E6;
Twe_body = Twe_sun;
Twe_sat  = Twe_earth;
GM_s = 132712E6;
GM_e = 0.39860E6;
te = 23.9345 * 60*60;
= 0.000;
mu = GM_s + GM_e;
 
= (ra - rp)/(ra + rp);
= sqrt(rp * mu * (1 + e * cos(0)));
= (2 * pi / power(mu,2)) * power(h/sqrt(1-e*e),3);
 
fprintf("GM        \t:%15.6f 10^6 km2/sec \n",mu/1E6);
fprintf("Semi-major\t:%15.6f 10^6 km \n",ra/1E6);
fprintf("Semi-minor\t:%15.6f 10^6 km \n",rp/1E6);
fprintf("Periods\n");
fprintf("- Sidereal Rotation ------ Sidereal Orbit ------ Sidereal Rotation ---\n"); 
fprintf("%15.2f sec - %15.2f sec - %15.2f sec \n", Twe_body, T, Twe_sat);
fprintf("%15.6f hrs - %15.6f hrs - %15.6f hrs \n", Twe_body/3600, T/3600, Twe_sat/3600);
fprintf("%15.6f day - %15.6f day - %15.6f day \n", Twe_body/(24*60*60), T/(24*60*60), Twe_sat/(24*60*60));
 
%% Calculate states
syms Eval;
 
we_sat  = 2*pi / Twe_sat;
we_body = 2*pi / Twe_body;
dt = Twe_sat;
% dt = SD;
% dt = 60*60;
scale_bar = rp * 0.01;
for i = 0 : dt : floor(T)
    t = i; % Seconds
    
    % Rotation Angle from Revolution Period
    Ae_body = we_body * t;
    Ae_sat  = we_sat  * t;
    
    % Anomaly as a function of time
    Me = warp_2pi(2 * pi * t / T);
    E = double(vpasolve((Eval - e * sin(Eval)) - Me, Eval));
    theta = 2 * atan(sqrt((1+e)/(1-e))*tan(E/2));
%     fprintf("T %8.2f hrs : E %6.1f D / t %6.1f D \n",t/(3600), E*57.296,theta*57.296);
    fprintf("T %8.2f days : E %6.1f D / t %6.1f D \n",t/(24*3600), E*57.296,theta*57.296);
    
    % Properties from true anomaly
    r  = (h*h/mu)/(1+e*cos(theta));
    r_vec = [ra * (cos(theta) - e),   rp * sin(theta)];
    ur_vec = r_vec/norm(r_vec);
    vr = (mu/h)*e*sin(theta);     % Radial component of velocity
    vt = (mu/h)*(1+e*cos(theta)); % Transverse component of velocity
    v  = norm([vr vt]);
    vr_vec = vr * ur_vec;
    vt_vec = vt * [-ur_vec(2) ur_vec(1)];
    v_vec = vr_vec + vt_vec;
    
    % Show me
    figure(1);
    angles = [0:10:360];
    % Position of Planet
    plot(ra * cos(theta),   rp * sin(theta),'xr');hold on; grid on;
    % Line from origin to planet
    plot([ra*e, ra * cos(theta)], [0 rp * sin(theta)],':r');
    % Velocity vector of Planet
    plot(ra * cos(theta)+[0, v_vec(1)] *scale_bar,...
         rp * sin(theta)+[0, v_vec(2)] *scale_bar,'b');
    plot(ra * cos(theta)+[0, vr_vec(1)]*scale_bar,...
         rp * sin(theta)+[0, vr_vec(2)]*scale_bar,'m');    % Vr
    plot(ra * cos(theta)+[0, vt_vec(1)]*scale_bar,...
         rp * sin(theta)+[0, vt_vec(2)]*scale_bar,'m');    % Vt
    % Focus of eclipse
    plot([ ra*e],[0],'or'); % 1st Focus
    plot([-ra*e],[0],'ok'); % 2nd Focus
    % Phase of Smaller planet
    plot(ra * cos(theta)+[0, cos(pi+Ae_sat)]*scale_bar*30.0,...
         rp * sin(theta)+[0, sin(pi+Ae_sat)]*scale_bar*30.0,'g');
    % Phase of Bigger planet
    plot(ra*e+[0, cos(pi+Ae_body)]*scale_bar*30.0,...
         0   +[0, sin(pi+Ae_body)]*scale_bar*30.0,'g');    % 00
    
    plot(ra,0,'kx');
    plot(0,rp,'kx');
    plot(ra * cosd(angles), rp * sind(angles),'--r');   % Main Path
    plot(ra * cosd(angles), ra * sind(angles),':k');    % Mean Circle
    
    str = sprintf("Rp %6.4f E6 km", rp/1E6); text(ra*0.6, rp*1.3str);
    str = sprintf("Ra %6.4f E6 km", ra/1E6); text(ra*0.6, rp*1.2str);
%     str = sprintf("T  %6.3f hrs", T/(60*60)); text(ra*0.6, rp*1.1str);
    str = sprintf("T  %6.3f days", T/(24*60*60)); text(ra*0.6, rp*1.1str);
%     title_string = sprintf("%s : Time %8.2f hrs : E %7.2f D / t %7.2f D",relation, t/(60*60), E*57.296, theta*57.296);
    title_string = sprintf("Time %8.2f days : E %7.2f D / t %7.2f D",t/(24*60*60), E*57.296, theta*57.296);
    title(title_string);
%     legend({"Position","Course","Heading"},"Location","Best");
    hold off;
    % break;
    drawnow;
end
fprintf("End\n");
cs

 

끝.

 

 

[1] https://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html

728x90

+ Recent posts