본문 바로가기

전체 글350

상대 궤도요소 (Relative Orbital Elements) - 2 chief 위성의 궤도가 원궤도 또는 근 원궤도(near-circular orbit)일 경우, 시간 \(t=t_0\) 에서 주어진 상대 궤도요소(ROM, relative orbital elements) \(\delta \kappa\) 를 이용하면 Hill 좌표계에서 상대 위치벡터 \(\delta \vec{r}=x\hat{o}_1+y\hat{o}_2+z\hat{o}_3\) 를 다음 식으로 표현할 수 있다 (https://pasus.tistory.com/240). \[ \begin{align} x & \approx a \delta a-a \lVert \delta \vec{e} \rVert_2 \cos (u-\varphi) \tag{1} \\ \\ y & \approx -\frac{3}{2} ua \delta.. 2023. 2. 7.
상대 궤도요소 (Relative Orbital Elements) - 1 식 (1)로 주어지는 Clohessy-Wiltshire(CW) 방정식 \[ \begin{align} & \ddot{x}-3n^2 x-2n \dot{y}=0 \tag{1} \\ \\ & \ddot{y}+2n\dot{x}=0 \\ \\ & \ddot{z}+n^2 z=0 \end{align} \] 의 해는 다음과 같았다 (https://pasus.tistory.com/239). \[ \begin{align} & x(t)= \frac{\dot{x}_0}{n} \sin nt- \left( 3x_0+\frac{2}{n} \dot{y}_0 \right) \cos nt+ \frac{2}{n} (2nx_0+ \dot{y}_0 ) \tag{2} \\ \\ & y(t)=2 \left( 3x_0+ \frac{2}{n} \do.. 2023. 2. 4.
CW 방정식 (Clohessy-Wiltshire Equations) chief 위성에서 deputy 위성의 까지의 거리가 지구중심에서 chief 위성까지의 거리보다 매우 작은 경우 chief 위성에 대한 deputy 위성의 상대 운동을 Hill 좌표계로 표현하면 다음과 같았다. \[ \begin{align} & \ddot{x}- \left( \frac{2\mu}{r^3} + \frac{h^2}{r^4} \right) x+ \frac{2(\vec{r} \cdot \vec{v} ) h}{r^4 } y- 2 \frac{h}{r^2 } \dot{y} = f_1 \tag{1} \\ \\ & \ddot{y}+ \left( \frac{\mu}{r^3} - \frac{h^2}{r^4} \right) y - \frac{2(\vec{r} \cdot \vec{v} ) h}{r^4 } x +.. 2023. 1. 27.
상대 궤도운동 방정식 (Relative Orbit Equation of Motion) 우주공학의 미래라고 불리는 분산 우주시스템(distributed space system)은 단일 위성으로는 불가능한 임무를 수행하기 위해서 두 개 이상의 위성을 집단적으로 사용하는 시스템이다. 분산 우주시스템의 임무 개념의 예로서 궤도상(on-orbit) 서비스, 우주 상황 인식, 분산 군집(swarm) 기반 센싱, 위성 편대비행(formation flying), 랑데부 및 도킹 등을 들 수 있다. 분산 우주 시스템의 장점은 여러 위성 간의 상대 운동을 활용하는 데서 발생한다. 따라서 상대 운동을 표현하기 위한 좌표계와 기준 위성이 필요하다. 보통 분산 우주시스템의 임무가 지구를 중심으로 수행되므로 관성 좌표계로는 지구중심 관성좌표계(ECI, earth-centered inertial frame)를 사용.. 2023. 1. 20.
[DI-2] 내부 동역학 (Internal Dynamics) 다음과 같은 \(\mathbf{x}(t) \in \mathbb{R}^n\), \(\mathbf{u}(t) \in \mathbb{R}^p\), \(\mathbf{y}(t) \in \mathbb{R}^p\) 인 정방형 선형 시스템에 대해서 \[ \begin{align} & \dot{\mathbf{x}} = A \mathbf{x}+B \mathbf{u} \tag{1} \\ \\ & \mathbf{y}=C \mathbf{x} \end{align} \] DI(Dynamic Inversion, 모델 역변환) 제어입력은 다음과 같이 계산되었다. \[ \mathbf{u}=(CB)^{-1} (\nu -CA \mathbf{x} ) \tag{2} \] 여기서 \(\nu\) 는 보조입력(auxiliary input)이다. 식.. 2023. 1. 20.
[DI-1] 동적 역변환 (Dynamic Inversion) 전통적으로 비행제어 법칙은 게인 스케줄링(gain scheduling) 기법을 이용하여 설계되었다. 게인 스케줄링은 선형제어 설계 방법을 비선형 시스템에 적용하기 위한 것으로서 제어 게인(gain)을 작동 조건에 따라 다르게 설계하는 기법이다. 게인 스케줄링에서는 다양한 비행조건에서 선형화된 여러 개의 운동 모델에 기반하여 제어 게인을 설계한 후 비행조건에 따라서 제어 게인을 변화시킨다. 이를 이용하면 선형제어 시스템의 작동 영역을 일부로 한정시키지 않고 비행영역(flight envelope) 전체로 확장시킬 수 있다. 게인 스케줄링을 이용한 제어 시스템은 일반적인 제어 시스템과 달리 제어 게인이 비행 조건에 따라 변하기 때문에 설계하는데 시간이 많이 걸리고 반복하는데 비용이 많이 들며 공학적 경험에 크.. 2023. 1. 4.
비선형 시스템과 매니폴드 (Manifold) 시스템이 선형 시불변이면 시스템의 고유값(eigenvalue)을 이용하여 쉽게 안정성을 판별할 수 있었다. 시스템이 비선형일 경우에도 평형상태에 대해서 선형화를 한 후에 평형상태 근방에서 로컬 안정성을 판별할 수 있을 것이다. 다음과 같은 비선형 시스템이 있다고 하자. \[ \dot{\mathbf{x}} = \mathbf{f}( \mathbf{x}) \tag{1} \] 여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수이다. 또한 \(\mathbf{x}_e\) 를 시스템 (1)의 평형점(equilibrium point)이라고 하자. \[ \mathbf{f}( \mathbf{x}_e )=0 \tag{2} \] 이제 새로운 변수를 \(\mathbf{y}= \mathbf{x}-\.. 2023. 1. 1.
선형 시스템과 부분공간 (Subspace) 다음과 같이 상태변수의 선형 미분 방정식으로 표현되는 운동 방정식이 있다고 하자. \[ \dot{\mathbf{x}}=A \mathbf{x} \tag{1} \] 여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수, \(A \in \mathbb{R}^{n \times n}\) 는 상수 행렬이다. 이 시스템의 해는 다음과 같다. \[ \mathbf{x}(t)= e^{At} \mathbf{x}(0) \tag{2} \] 이전 포스트에서는 행렬지수함수(matrix exponential) \(e^{At}\) 의 계산에 대해서 알아보았다 (https://pasus.tistory.com/233). 시스템 (1)의 운동 특성은 행렬 \(A\) 의 고유값과 고유벡터에 따라 달라진다. 먼저 행.. 2022. 12. 27.
행렬지수함수 (Matrix Exponential) 계산 행렬 \( A \in \mathbb{R}^{n \times n}\) 의 행렬지수함수(matrix exponential) \(e^{At}\) 는 다음과 같이 정의된다. \[ e^{At}=I+At+\frac{1}{2} A^2 t^2+\frac{1}{3!} A^3 t^3 + \cdots \tag{1} \] 몇가지 특별한 형식을 갖는 행렬 \(A\) 의 지수함수를 계산해보고, 일반적인 행렬에 대한 계산으로 확장시켜 보도록 한다. 먼저 \(A\) 가 대각행렬일 경우다. \[ A= \begin{bmatrix} \lambda_1 & 0 & 0 \\ 0 & \lambda_2 & 0 \\ 0 & 0 & \lambda_3\end{bmatrix} \tag{2} \] 이 때는 \[ A^n= \begin{bmatrix} \la.. 2022. 12. 24.
[Continuous-Time] 최적제어 예제 간단한 최적제어 문제를 풀어보고자 한다. 최적제어 문제는 최종시간이 설정된(fixed) 값으로 주어지는지 아닌지, 그리고 최종 상태변수가 설정된 값으로 주어지는지 아닌지에 따라 다양하게 분류할 수 있다. 대개의 경우 초기시간과 상태변수 초기값은 설정된 값으로 주어진다. 먼저 최종시간과 최종 상태변수가 모두 주어진 경우다. 연속시간 비선형 시스템의 최적제어의 필요조건을 정리한 다음 표에 의하면, 이 경우 경계조건은 자동으로 만족된다. 일정한 속력 \(V\) 로 움직이는 비행체가 있다. 제어 목적은 비행체가 출발지에서 출발하여 비행 시간 \(t_f\) 가 경과한 후 목적지에 최소의 에너지를 사용하여 도착시키는 것이다. 그림에 비행체와 목적지, 출발지간의 기하하적인 관계가 나와 있다. 비행체의 운동 방정식은 .. 2022. 12. 14.
[Continuous-Time] 최적제어 문제 최적제어(optimal control)문제는 여러 가지 물리적인 제약조건을 만족하면서 어떤 성능지표(performance index) 또는 목적함수(objective function)를 최적화하도록 동적 시스템(dynamic system)의 제어변수(control variable)을 결정하는 문제이다. 제약조건(constraints)은 동적 시스템의 동역학과 함께 시스템 제어변수 및 상태변수의 경로 제약조건(path constraints), 상태변수의 초기값(initial value) 및 최종값(final value)에 관한 제약조건(constraint on the initial and final states)을 모두 포함한다. 목적함수는 설계자가 의도한대로 시스템을 움직이면서 의도한 성능을 발휘할 수 .. 2022. 12. 13.
[MPC] MPC를 위한 두가지 QP 모델 - 2 MPC(model predictive control) 문제를 최적화 문제인 QP(quadratic program)문제로 변환할 때 널리 사용되는 일반적인 방법( https://pasus.tistory.com/229 )은 모델이 조밀해져서 문제의 구조가 손실되는 단점이 있다. 고속 MPC(fast MPC)에서는 QP 문제로 변환할 시 적절한 변수 재정렬을 사용하여 희소(sparse)구조를 최대로 이용할 수 있도록 특별한 방법으로 변환하며, 최적화 기법을 적용할 시 warm start, fixed iteration, early termination등의 휴리스틱 기법을 이용하여 MPC 계산량을 대폭 줄이는 방법을 사용한다. fast MPC알고리즘은 스탠퍼드의 Boyd 교수와 그 제자의 논문인 'Fast Mod.. 2022. 12. 3.
[MPC] MPC를 위한 두가지 QP 모델 - 1 MPC는 다음과 같은 제약조건을 갖는 선형 시스템에서 \[ \begin{align} & \mathbf{x}_{t+1}=A \mathbf{x}_t+B \mathbf{u}_t \tag{1} \\ \\ & \mathbf{y}_t=C \mathbf{x}_t \\ \\ & \ \ \ \ \ \mathbf{u}_{min} \le \mathbf{u}_{t+i} \le \mathbf{u}_{max}, \ \ \ i=0, ... , N-1 \tag{2} \\ \\ & \ \ \ \ \ \mathbf{y}_{min} \le \mathbf{y}_{t+i} \le \mathbf{y}_{max}, \ \ \ i=1, ... , N \end{align} \] 매 시간 스텝마다 다음 목적함수가 일정 성능 예측구간 \([t, \ t.. 2022. 11. 30.
[MPC] 모델예측제어 개요 동적 최적화(dynamic optimization) 문제는 최적제어(optimal control) 문제라고도 하는데 매우 광범위한 영역에서 사용되고 있다. 예를 들면 인공위성을 궤도에 올리는 위한 가장 효율적인 연료 사용 전략이나 화학 공정 시설을 가동하는 가장 경제적인 방법을 찾는 문제 등을 들 수 있다. 이러한 동적 최적화 문제의 기본 가정은 동적 모델(dynamic model)이 주어진다는데 있다. 동적 모델의 예로서 다음과 같이 이산시간(discrete-time) 차분 방정식(difference equation)으로 표현된 비선형 시스템을 들 수 있다. \[ \mathbf{x}_{t+1}=\mathbf{f}(\mathbf{x}_t, \mathbf{u}_t) \tag{1} \] 여기서 \(\math.. 2022. 11. 28.