본문 바로가기

전체 글321

[PSOC-10] 라다우 유사 스펙트럴 (RPM) 기반 최적제어 라다우 유사 스펙트럴 방법(RPM, Radau pseudospectral method)에서는 \(N\) 개의 LGR(Legendre-Gauss-Radau) 포인트를 콜로케이션 포인트로 사용하고, LGR 포인트에 \(\tau_{N+1}=1\) 점을 포함한 것을 보간점으로 사용한다. LGR 포인트는 \(N\) 차 르장드르(Legendre) 다항식과 \((N-1)\) 차 르장드르 다항식의 합인 \(P_N (\tau)+P_{N-1} (\tau)\) 의 해로 구성되어 있다. 라다우 유사 스펙트럴 방법에서는 상태변수 \(\mathbf{x}(\tau)\) 를 \( N \) 차 라그랑지 다항식으로 근사화한다. \[ \mathbf{x}( \tau ) \approx \mathbf{X} (\tau)= \sum_{i=1}^{.. 2023. 7. 18.
[PSOC-9] 로바토 유사 스펙트럴 (LPM) 기반 최적제어 로바토 유사 스펙트럴 방법(LPM, Lobatto pseudospectral method)에서는 콜로케이션 포인트와 보간점이 동일하다. \(N\) 개의 LGL(Legendre-Gauss-Lobatto) 포인트를 콜로케이션 포인트와 보간점으로 모두 사용한다. LGL 포인트는 \((N-1)\) 차 르장드르(Legendre) 미분 다항식 \(\dot{P}_{N-1} (\tau)\) 의 해와 \(\tau=-1, \ \tau=1\) 로 구성되어 있다. 로바토 유사 스펙트럴 방법에서는 상태변수 \(\mathbf{x}(\tau)\) 를 \((N-1)\)차 라그랑지 다항식으로 근사화한다. \[ \mathbf{x}( \tau ) \approx \mathbf{X} (\tau)= \sum_{i=1}^N \mathbf{X}_.. 2023. 7. 17.
[PSOC-8] 유사 스펙트럴 기반 최적제어 문제 연속시간 최적제어에 사용되는 두 가지 유형의 수치적 방법 중 직접방법(direct method)은 최적제어 문제에서 상태변수와 제어입력을 이산화(discretization)시켜 비선형 프로그래밍 문제(NLP, nonlinear programming problem)로 바꾸는 것이다. 유사 스펙트럴 방법(pseudospectral method)은 지난 10여년 동안 최적제어 분야에서 널리 사용된 직접방법 중의 하나로서 콜로케이션 포인트(collocation point)와 보간점(interpolating point)을 이용하는 것이 핵심이다. 지금까지 살펴본 수학적 배경지식인 라그랑지 보간 다항식, 가우시안 쿼드래처, 유사 스펙트럴 방법 등을 간략히 요약한 다음에 연속시간 최적제어 문제를 비선형 프로그래밍 문.. 2023. 7. 17.
[CR3BP] 헤일로 궤도 (Halo Orbit) 계산 헤일로 궤도(halo orbit)는 라그랑지 포인트 L1, L2, L3 포인트를 중심으로 형성되는 3차원 주기궤도(periodic orbit)이다. 앞서 살펴본 주기궤도의 조건 (https://pasus.tistory.com/277)에 따라 헤일로 궤도는 (x-z) 평면에 대해 대칭이고, (x-z) 평면을 직각으로 통과한다. 따라서 시간 \(t_0\) 의 초기조건과 주기 \(T\) 의 반인 시간 \(T/2\) 에서의 상태벡터는 다음과 같아야 한다. \[ \mathbf{x}(t_0 )= \begin{bmatrix} x(t_0 ) \\ y(t_0 ) \\ z(t_0 ) \\ \dot{x}(t_0 ) \\ \dot{y}(t_0 ) \\ \dot{z}(t_0 ) \end{bmatrix}= \begin{bmatr.. 2023. 7. 14.
[CR3BP] 리야프노프 궤도 (Lyapunov Orbit) 계산 리야프노프 궤도(Lyapunov orbit)는 (x-y) 평면에서 라그랑지 포인트 L1, L2, L3를 중심으로 공전하는 주기궤도(periodic orbit)이다. 앞서 살펴본 주기궤도의 조건 (https://pasus.tistory.com/277)에 따라 리야프노프 궤도는 x축에 대해 대칭이고, x축을 직각으로 통과한다. 따라서 시간 \(t_0\) 의 초기조건과 주기 \(T\) 의 반인 시간 \(T/2\) 에서의 상태벡터는 다음과 같아야 한다. \[ \mathbf{x}(t_0 )= \begin{bmatrix} x(t_0) \\ y(t_0) \\ \dot{x}(t_0) \\ \dot{y}(t_0) \end{bmatrix} = \begin{bmatrix} x_0 \\ 0 \\ 0 \\ v_{y0} \end.. 2023. 7. 11.
Matlab ODE에 추가 파라미터 전달 및 이벤트 설정하기 일반적으로 매트랩(Matlab)에서 수치적분하고자 하는 ODE 함수의 구조는 다음과 같다. dxdt = odefun(t,x) 여기서 odefun은 함수의 이름, t 는 시간, x 는 함수의 상태변수다. 함수에서 t 를 계산에 사용하지 않더라도 t 와 x 를 모두 입력값으로 받아야 한다. 그런데 만약 t 와 x 이외에 파라미터가 더 필요하다면 어떻게 해야 할까. 예를 들면, 다음과 같은 함수가 있다. \[ \begin{align} \dot{\mathbf{x}}(t) &= \begin{bmatrix} \dot{x} \\ \dot{y} \\ \dot{v}_x \\ \dot{v}_y \end{bmatrix} = \mathbf{f}(\mathbf{x}(t)) \tag{1} \\ \\ &= \begin{bmatri.. 2023. 7. 9.
[CR3BP] 주기궤도 (Periodic Orbit)의 조건 라그랑지 포인트 L1, L2 및 L3에서 선형화 운동방정식의 해석 결과, 초기값을 잘 설정한다면 주기궤도(periodic orbit)가 형성될 수 있다는 것을 알았다 (https://pasus.tistory.com/273). 하지만 선형화 운동방정식은 라그랑지 포인트에서 가까운 영역에서만 유효하기 때문에 보다 넓은 범위에서도 주기궤도를 만들 수 있는지는 더 분석해 봐야 한다. 다시 CR3BP의 무차원화된 비선형 운동방정식으로 돌아가 보자. (https://pasus.tistory.com/147). \[ \begin{align} & \ddot{x}-2 \dot{y}-x= - \frac{(1-\mu)(x+\mu)}{r_1^3 }- \frac{\mu (x+\mu-1)}{r_2^3} \tag{1} \\ \\ &.. 2023. 7. 4.
미분보정 (Differential Correction) 미분보정(differential correction)은 슈팅방법(shooting method)으로도 불린다. 기본적으로 미분방정식의 경계값 문제(boundary value problem)를 초기값 문제(initial value problem)로 바꾸어 해를 구하는 방법이다. 다음과 같은 비선형 미분방정식이 있다. \[ \dot{\mathbf{x}}(t)= \mathbf{f}(\mathbf{x}(t)) \tag{1} \] 여기서 초기값 \(\mathbf{x}(t_0 )\) 은 일부만 주어지거나 또는 주어지지 않았다고 가정한다. 대신 정해진 시간 \(t_f\) 에서 경계값 \(\mathbf{x}_d\) 가 주어졌다고 가정한다. 문제는 시간 \(t_f\) 에서 \(\mathbf{x}(t_f )=\mathbf{.. 2023. 7. 3.
심플렉틱 행렬 (Symplectic Matrix) 심플렉틱 행렬(symplectic matrix)은 다음식을 만족하는 정사각형 행렬 \( M \in \mathbb{R}^{2n \times 2n}\) 으로 정의한다. \[ M^T JM=J \tag{1} \] 여기서 \[ J= \begin{bmatrix} 0 & I_n \\ -I_n & 0 \end{bmatrix} \] 이고 \(I_n\) 은 \(n \times n\) 단위행렬이다. 심플렉틱 행렬은 다음과 같은 몇가지 특징을 갖는다. 첫째 심플렉틱 행렬의 행렬식(determinant)은 항상 \(1\) 이다. 증명은 다음과 같다. 식 (1)에서 \[ \begin{align} \det ⁡J = 1 &= \det⁡(M^T ) \det⁡ J \det⁡ M \tag{2} \\ \\ &=(\det ⁡M )^2 \en.. 2023. 7. 1.
상태천이행렬 (State Transition Matrix) 과 Floquet 정리 다음과 같이 선형 시불변 (LTI, linear time-invariant) 시스템이 있다. \[ \dot{\mathbf{x}}(t)=A \mathbf{x}(t) \tag{1} \] 여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수, \(A \in \mathbb{R}^{n \times n}\) 는 상수 행렬이다. 이 시스템의 해는 다음과 같다 (https://pasus.tistory.com/234). \[ \mathbf{x}(t)=e^{A(t-t_0)} \mathbf{x} (t_0) \tag{2} \] 이번에는 다음과 같은 선형 시변(LTV, linear time-varying) 시스템의 해를 구해보자. \[ \dot{\mathbf{x}}(t)=A(t) \mathbf{x}.. 2023. 6. 30.
[CR3BP] 리야프노프 궤도, 헤일로 궤도, 그리고 리사주 궤도 라그랑지 포인트 L1, L2 및 L3에서의 선형화 운동방정식은 다음과 같았다 (https://pasus.tistory.com/272). \[ \begin{align} & \delta \ddot{x}-2 \delta \dot{y}-(1+2c_2 ) \delta x=0 \tag{1} \\ \\ & \delta \ddot{y}+2 \delta \dot{x}+(-1+c_2 ) \delta y=0 \\ \\ & \delta \ddot{z}+c_2 \delta z=0 \end{align} \] 여기서 \[ c_2= \frac{(1-\mu)}{|x_0+\mu|^3 }+ \frac{\mu}{ |x_0+\mu-1|^3 } \tag{2} \] 이다. 식 (1)에서 \(\delta x, \ \delta y\) 운동을 벡터 .. 2023. 6. 27.
[CR3BP] L1, L2 및 L3 포인트에서의 궤도 운동 CR3BP의 선형화된 운동방정식을 이용하여 라그랑지 포인트(Lagrange point) L4 및 L5 포인트는 (중립) 안정 평형점이지만, L1, L2 및 L3 포인트는 불안정한 평형점이라는 것을 확인했다 (https://pasus.tistory.com/271). 하지만 L1, L2 및 L3 포인트의 고유값(eigenvalue) 분석에 의하면 평형점 주위에 주기 궤도(periodic orbit)가 존재함을 시사한다. 즉 특정한 초기조건을 설정하면 불안정한 운동 모드를 배제하고 주기 운동을 하는 모드만을 나타나게 할 수가 있다. 라그랑지 포인트에서의 선형화 운동방정식은 다음과 같다. \[ \begin{align} & \delta \ddot{x}-2 \delta \dot{y} = -\bar{U}_{xx} \.. 2023. 6. 25.
[CR3BP] 라그랑지 포인트 안정성 해석 CR3BP의 무차원화된 운동방정식은 다음과 같았다 (https://pasus.tistory.com/147). \[ \begin{align} & \ddot{x}-2 \dot{y} = -\bar{U}_x \tag{1} \\ \\ & \ddot{y}+2 \dot{x} = -\bar{U}_y \\ \\ & \ddot{z} = -\bar{U}_z \end{align} \] 여기서 \[ \begin{align} & U_{eff}= -\frac{1}{2} (x^2+y^2 ) - \frac{1-\mu}{r_1} - \frac{\mu}{r_2} - \frac{1}{2} \mu (1-\mu) \\ \\ & r_1= \sqrt{(x+\mu)^2+y^2+z^2 } \\ \\ & r_2= \sqrt{(x+\mu-1)^2+y^2.. 2023. 6. 22.
[CR3BP] 힐의 영역 (Hill’s Region) 원궤도 제한 삼체문제(CR3BP)는 질량중심을 중심으로 원궤도 운동을 하는 두 개의 기본 질점에 의해 생성된 중력장에서 제3의 질점의 운동을 기술한다. CR3BP의 무차원화된 운동방정식은 다음과 같았다 (https://pasus.tistory.com/147). \[ \begin{align} & \ddot{x}-2\dot{y}- x= - \frac{(1-\mu)(x+\mu) }{r_1^3 }- \frac{\mu (x+\mu-1)}{ r_2^3 } \tag{1} \\ \\ & \ddot{y}+2 \dot{x}-y= - \frac{(1-\mu)y}{r_1^3 }- \frac{\mu y}{ r_2^3 } \\ \\ & \ddot{z}=- \frac{(1-\mu )z}{r_1^3 }- \frac{\mu z}{ r.. 2023. 6. 19.