본문 바로가기
항공우주/우주역학

[CR3BP] 주기궤도 (Periodic Orbit)의 조건

by 깊은대학 2023. 7. 4.

라그랑지 포인트 L1, L2 및 L3에서 선형화 운동방정식의 해석 결과, 초기값을 잘 설정한다면 주기궤도(periodic orbit)가 형성될 수 있다는 것을 알았다 (https://pasus.tistory.com/273). 하지만 선형화 운동방정식은 라그랑지 포인트에서 가까운 영역에서만 유효하기 때문에 보다 넓은 범위에서도 주기궤도를 만들 수 있는지는 더 분석해 봐야 한다.

다시 CR3BP의 무차원화된 비선형 운동방정식으로 돌아가 보자. (https://pasus.tistory.com/147).

 

(1)x¨2y˙x=(1μ)(x+μ)r13μ(x+μ1)r23y¨+2x˙y=(1μ)yr13μyr23z¨=(1μ)zr13μzr23

여기서

(2)r1=(x+μ)2+y2+z2r2=(x+μ1)2+y2+z2

 

이다.

식 (1)은 yy,  tt 의 변환에 대해서 불변(invariance)이다. 즉 해당 변환에 대해서 미분 방정식이 동일하다는 얘기다. 확인해 보기 위해서 y=Y, t=τ 로 놓자. 그러면

 

(3)x˙=dxdt=dxdτ=x,    y˙=dydt=dYdτ=Yx¨=d2xdt2=d2xdτ2=xy¨=ddt(dydt)=ddτ(dYdτ)=d2Ydτ2=Yz¨=d2zdt2=d2zdτ2=z

 

이 된다. 식 (3)을 식 (2)에 대입하면 동일한 r1r2 값이 얻어지고 식 (1)에 대입하면 미분방정식은 다음과 같이 된다.

 

(4)x2Yx=(1μ)(x+μ)r13μ(x+μ1)r23Y2x+Y=(1μ)Yr13+μYr23z=(1μ)zr13μzr23

 

식 (4)와 (1)을 비교해면 동일한 식이라는 것을 알 수 있다. 즉 식 (1)은 yy,  t=t 의 변환에 대해서 불변이다. 따라서 만약 식 (1)의 해(solution)가 (x(t), y(t), z(t), x˙(t), y˙(t), z˙(t)) 이라면 (x(t), y(t), z(t), x˙(t), y˙(t), z˙(t)) 도 해가 된다. 여기서 주목할 점은 두 해는 (xz) 평편에 대해서 대칭이라는 것이다.

 

 

따라서 만약 (xz) 평편에서 수직으로 출발하고 일정 시간이 지난 후 다시 (xz) 평편에 수직으로 도착하도록 초기조건을 설정한다면 다음 그림과 같이 (xz) 평면에 대칭인 주기궤도(periodic orbit)를 만들 수 있을 것이다.

 

 

궤적이 (xz) 평편에서 수직으로 출발해야 하므로 주기궤도를 위한 초기조건은 다음과 같아야 한다.

 

(5)x(t0)=[x(t0)y(t0)z(t0)x˙(t0)y˙(t0)z˙(t0)]=[x00z00vy00]

 

또한 주기가 T 인 주기 궤도를 위한 조건은 다음과 같아야 한다.

 

(6)x(T/2)=[x(T/2)0z(T/2)0vy(T/2)0]

 

따라서 라그랑지 포인트 L1, L2 및 L3에서 주기궤도를 설계하기 위해서는 주기궤도를 위한 조건식 (6)이 성립하도록 초기조건 (5)를 설정하면 된다.

하지만 상태벡터 x(t) 에 대한 초기조건의 추측값 x(t0) 가 단번에 식 (6)의 형태대로 궤적을 생성할 가능성이 거의 없기 때문에, 궤적이 (xz) 평편을 통과할 때까지 수치적분을 수행한 후 평면을 수직으로 통과하는지 확인하면서 초기값 x(t0) 를 보정해야 한다. 이 때 사용되는 방법이 미분보정(differential correction)이다.

 

 

편의상 식 (1)의 운동방정식을 다음과 같이 벡터 형식으로 표현한다.

 

(7)x˙(t)=f(x(t))

 

그리고 초기값 x(t0) 일 때의 궤적을. x(t;x(t0)) 로 표현한다. 그리고 약간의 섭동이 포함된 초기값 x(t0)+δx(t0) 일 때 시간 t+δt 까지 전개한 궤적을 x(t+δt;x(t0)+δx(t0)) 로 표현하자. 그러면 두 궤적 사이의 차이 δx(t+δt) 는 다음과 같다.

 

(8)δx(t+δt)=x(t+δt;x(t0)+δx(t0))x(t;x(t0))

 

시간 t1+δt1 에서 δx(t1+δt1) 을 계산하기 위해서 위 식을 테일러 시리즈를 1차항에서 절삭하면 다음과 같이 된다.

 

(9)δx(t1+δt1)=x(t1;x(t0))+x(t1,x(t0))x(t0)δx(t0)   +x(t1,x(t0))tδt1+HOTx(t1;x(t0))x(t1,x(t0))x(t0)δx(t0)+x(t1,x(t0))tδt1

 

여기서 x(t1,x(t0))tx˙(t1)=f(x(t1)) 과 같고, x(t1,x(t0))x(t0)t=t1 에서 계산한 값으로서 δt1=0 일 때의 상태천이행렬 Φ(t1,t0) 과 같다. 상태천이행렬 Φ(t1,t0) 은 식 (7)을 궤적 x(t) 에서 선형화한 미분방정식의 상태천이행렬이다 (https://pasus.tistory.com/276).

 

(10)δx˙(t)=fx|x(t)δx(t)

 

이제 초기값 식 (5)에서 출발한 궤적이 시간 t1=T2에서 식 (6)으로 주어지는 주기궤도의 조건식에 부합하는 값이 될 수 있도록 미분보정을 이용하여 초기값을 조정해 보자. 초기값 x(t0)+δx(t0) 가 주어졌을 때 궤적이 (xz) 평편을 통과하는 시간 t1+δt1 에서 상태변수는 다음과 같이 계산된다.

 

(11)x(t1+δt1;x(t0)+δx(t0))       =x(t1;x(t0))+Φ(t1,t0)δx(t0)+f(x(t1))δt1

 

식 (11)이 일반적인 미분보정 또는 슈팅방법에서 사용하는 식과 다른 점이 있는데 바로 δt1 이다. 일반적인 미분보정에서는 최종시간 tf 가 고정된 값이다. 하지만 여기서는 초기값을 변경하면 (xz) 평편을 통과하는 시간이 달라지기 때문에 최종시간은 상수가 아니라 변수다.

 

 

식 (5)로 주어지는 초기값이 (xz) 평편을 수직으로 통과한다는 보장이 없기 때문에 x(t1;x(t0)) 는 다음과 같이 주어질 것이다.

 

(12)x(t1;x(t0))=[x10z1vx1vy1vz1]

 

여기서 y1=0 인 이유는 궤적이 (xz) 평편을 통과하는 시간 t1 에서의 값이기 때문이다. (xz) 평편을 수직으로 통과하려면 식 (6)의 주기궤도 조건식과 같이 vx1=vz1=0 으로 만들어야 한다. 그래서 초기값을 δx(t0) 만큼 변경하려고 한다. δx(t0) 는 다음과 같다.

 

(13)δx(t0)=[δx00δz00δvy00]

 

그러면 (xz) 평편을 통과하는 시간도 δt1 만큼 바뀔 것이다. 여기서 목표는 식 (11)에서 x(t1+δt1;x(t0)+δx(t0)) 값이 다음과 같이 되도록 δx(t0) 를 계산하는 것이다.

 

(14)x(t1+δt1;x(t0)+δx(t0))=[x0z0vy0]

 

여기서 (x, z, vy) 는 미지의 값으로서 어떤 특정한 값이 되도록 하는게 목표가 아니다. 목표는 vx=vz=0 으로 만드는 것이다.

식 (11)에 의하면 δx(t0) 은 다음식으로 계산할 수 있다.

 

(15)δx(t1+δt1)=Φ(t1,t0)δx(t0)+f(x(t1))δt1

여기서

δx(t1+δt1)=[x0z0vy0][x10z1vx1vy1vz1]=[δx10δz1δvx1δvy1δvz1]

 

이다. 위 식을 풀어 쓰면 다음과 같다.

 

(16)0=Φ21δx0+Φ23δz0+Φ25δvy0+vy1δt1δvx1=Φ41δx0+Φ43δz0+Φ45δvy0+v˙x1δt1δvz1=Φ61δx0+Φ63δz0+Φ65δvy0+v˙z1δt1

 

여기서 Φij 는 상태천이행렬 Φ(t1,t0) 의 성분이다. δx1, δz1, δvy1 식을 제외한 이유는 보정할 필요가 없기 때문이다. 식 (16)에 의하면 식이 3개, 미지수는 4개이다. 따라서 미지수를 줄이기 위하여 x0 는 고정시킨다. 즉 δx0=0 로 놓는다, 그러면 식 (16)은 다음과 같이 된다.

 

(17)0=Φ23δz0+Φ25δvy0+vy1δt1δvx1=Φ43δz0+Φ45δvy0+v˙x1δt1δvz1=Φ63δz0+Φ65δvy0+v˙z1δt1

 

식 (17)에서 (δz0, δvy0) 을 계산한 후 초기값을 다음식으로 업데이트한 다음,

 

(18)z0  z0+δz0vy0  vy0+δvy0

 

위 프로세스를 반복하면 주기궤도를 만드는 초기값 x(t0) 를 계산해 낼 수 있다.

 

 

댓글