2D 상의 위성 궤도 모의하기

시간 경과에 따른 움직임은 다음 조건으로 궤도를 도는 위성에 대해 시뮬레이션됩니다.

주축의 근지점 반경 $r_p=9,600 \text{km}$

짧은 종단 반경 원점 반경 $r_a=21,000 \text{km}$

상수 $\mu=398,600$

궤도 운동에 대한 변수 계산

편심 $e$

$$e=\frac{r_a – r_p}{r_a + r_p} = 0.3725 $$

각운동량 $h$는 근지점 조건에서 계산됩니다.

$$h = \sqrt{r_p \mu \left(1 + e\right) }= 72,472 \text{km2/s}\leftarrow r=\frac{h^2}{\mu } \frac{1}{ 1 + e \text{cos}\theta}$$

궤도 주기 $T$

$$T=\frac{2 \pi}{\mu^2} \left( \frac{h}{\sqrt{1-e^2}} \right)^3 = 18,834 \text{초} = 5 .23 \text{시간}$$

시간 경과에 따른 변칙 계산

정의는 다음과 같습니다.

  • $\theta$ : 진이상, 진이상
  • $M_e$ : 중간이상, 중간이상
  • $E$ : 괴상한 이상 현상

시간 참조로 인해 $t \rightarrow M_e \rightarrow E \rightarrow \theta$를 순서대로 계산해야 합니다.

평균 이상 $M_e$와 시간 $t$의 관계는 다음과 같다.

$$M_e = \frac{\mu^2}{h^3} \left(1-e^2 \right)^{3/2} t = \frac{2\pi}{T}t$$

평균 이상 $M_e$와 편심 이상 $E$의 관계는 다음과 같다.

이를 케플러 방정식이라고 합니다.

$$M_e = Ee\text{sin} E$$

편심 이상 $E$와 진 근점 이상 $\theta$의 관계는 다음과 같다.

$$\frac{E}{2} = \sqrt{\frac{1-e}{1+e}} \text{tan}\frac{\theta}{2}$$

$$\theta = 2 \text{tan}^{-1}\left( \sqrt{\frac{1+e}{1-e}} \text{tan} \frac{E}{2} \right )$$

진정한 근지점 이상에서 속성 계산

초점 거리 $r$
$$r= \frac{h^2}{\mu} \frac{1}{1+e \text{cos}\theta }$$

방사 속도 $v_r$

$$v_r = \frac{\mu}{h} e \text{sin}\theta$$

횡속도 $v_{\perp}$

$$v_r = \frac{\mu}{h} \left(1+ e \text{cos}\theta \right)$$

MATLAB에서의 구현

위의 배열에 따라 구현된 코드는 다음과 같다.

참고로 평균 이상과 실제 이상은 vpasolve()를 이용하여 계산하였다.

하나
2
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
%% 기본 매개변수
= 21000;
Rp = 9600;
= 398600;
이자형 = (라 Rp)/(라 + rp);
시간 = 제곱 (rp ** (하나 + 이자형 * 왜냐하면 (0)));
= (2 * 파이 / 전력(뮤,2)) * 힘 (H/정사각형(하나이자형*이자형));
fprintf(“GM \t:%10.2f km2/s \n”,뮤);
fprintf(“하프 사이즈\t:%10.2f km \n”,라);
fprintf(“세미 마이너\t:%10.2f km \n”,rp);
fprintf(“기간 \t:%10.2f 초 \n”,티);
%% 상태 계산
심스등급;
~을 위한= 0 : 200 : 바닥(2*티)
= 나;
%변칙 ~처럼 시간의 함수
= warp_2pi(2 * 파이 */ 티);
이자형 = 더블(vpasolve((평가 이자형 * 죄(평가)) i, 평가));
세타 = 2 * atan(sqrt((하나+이자형)/(하나비))*갈색(E/2));
fprintf(“T %6.2fs : E %6.1fD / t %6.1f D \n”t, e*57296세타*57296);
%형질 에서 진실 변칙
아르 자형 = (시간*시간/무)/(하나+이자형*cos(세타));
r_vec = (라 * (코사인세타) 전자), Rp * sin(세타));
ur_vec = r_vec/규범(r_vec);
VR = (뮤/시간)*이자형*죄(세타); 속도의 % 반경 성분
vt = (뮤/시간)*(하나+이자형*cos(세타)); 속도의 % 가로 성분
V = norm((vr vt));
vr_vec = VR * ur_vec;
vt_vec = vt * (ur_vec(2) ur_vec(하나));
v_vec = vr_vec + vt_vec;
% 보여줘
수치(하나);
각도 = (0:10:360);
속성 (( ra*이자형),(0),‘또는’); 붙잡다; 그리드 온; % 초점 포인트
구성((*이자형),(0),‘좋아요’); % 초점 포인트
행동 (ra,0,‘kx’);
구성(0,rp,‘kx’);
재산 * cosd(각도), rp * (각도),‘–아르 자형’); % 기본 경로
재산 * cosd(각도), ra * (각도),‘:케이’); % 가운데 원
재산 * cos(세타), rp * 죄 (세타),‘xr’); % 가리키다
재산 * 코사인(세타)+(0vr_vec(하나))*10000,…
Rp * 죄 (세타)+(0vr_vec(2))*10000,‘중’); % VR
재산 * 코사인(세타)+(0vt_vec(하나))*10000,…
Rp * 죄 (세타)+(0vt_vec(2))*10000,‘중’); %Vt
재산 * 코사인(세타)+(0v_vec(하나))*10000,…
Rp * 죄 (세타)+(0v_vec(2))*10000,‘비’); % 속도 벡터
속성 ((라*어, 라 * cos(세타)), (0 Rp * 죄 (세타)),‘:아르 자형’);
텍스트(라*07Rp*2.,‘R_p 9.6 E3km’);
텍스트(라*07Rp*2.0,‘R_a 2.1 E4km’);
텍스트(라*07Rp*하나.7,‘티 5.23’);
텍스트(라*07Rp*하나.4,‘18,834초’ );
제목 문자열 = 스프린트프(“시간 %6.0f 초: E %7.2f D/t %7.2f D”t, e*57296세타*57296);
제목(제목 문자열);
기다리다;
% 부서지다;
CS

안타깝게도 Colorscript는 MATLAB을 지원하지 않습니다.

결과

코드를 실행한 결과는 다음과 같습니다.

두 사이클을 실행합니다.


끝.