본문 바로가기

전체 글369

정적 자세결정: Davenport의 q-방법 앞서 살펴본 TRIAD는 두 개의 측정 단위벡터를 이용하여 우주비행체의 자세를 결정하였다 (https://pasus.tistory.com/302). 만약 두 개 이상의 단위벡터를 측정할 수 있다면 모든 측정 벡터를 이용할 수 있도록 TRIAD 방법을 개선해야 할 것이다. 예를 들면 많은 항성을 동시에 추적할 수 있는 별센서를 사용한다면 다수의 단위벡터가 측정된다. Wahba는 센서의 불확실성으로 인해 발생하는 오류를 최소화하는 방식으로 다수의 측정 단위벡터를 처리하는 방법에 대한 문제를 정립했다. \(n\) 개의 측정 단위벡터를 \(\hat{s}_k, \ k=1, ..., n\) 이라고 하자. 그리고 이 벡터를 기준좌표계 \(\{a\}\) 와 동체좌표계 \(\{b\}\) 로 표현한 벡터를 각각 \(\ma.. 2023. 10. 22.
정적 자세결정 (Static attitude determination): TRIAD 유도항법제어(GNC, guidance, navigation, and control) 분야에서 자세(attitude)란 기준좌표계(reference frame)를 기준으로 3차원 공간에서 항공기 또는 우주비행체 등 운동체에 부착된 동체좌표계(body frame)가 어떤 방향으로 정렬되어 있는 지를 말한다. 자세를 표현하기 위한 방법으로는 오일러각(Euler angles), 방향코사인행렬(DCM, direction cosine matrix), 쿼터니언, 로드리게스 파라미터 등이 있다. 자세를 표현한다 함은 기본적으로 기준좌표계가 동체좌표계와 일치하려면 기준좌표계의 어느 축을 중심으로 얼마만큼 회전해야 하는 지를 나타낸다고 보면 된다. 센서의 측정값으로부터 자세를 계산해야 하는데, 이에 관련된 용어가 두 가지.. 2023. 10. 19.
볼텍스 유동 (Vortex flow) 2차원 평면에서 속도 포텐셜이 다음과 같이 주어지는 유동을 포인트(point) 볼텍스 유동(와류, vortex flow)이라고 한다. \[ \phi(r, \theta)= K \theta \tag{1} \] 여기서 \(r, \theta\) 는 극좌표계(polar coordinates)의 좌표이고 \(K\) 는 임의의 상수다. 식 (1)은 다음과 같이 라플라스 방정식을 만족한다. \[ \nabla^2 \phi= \frac{\partial^2 \phi}{\partial r^2 }+ \frac{1}{r} \frac{ \partial \phi}{\partial r} +\frac{1}{r^2} \frac{ \partial^2 \phi}{\partial \theta^2 }=0 \tag{2} \] 따라서 볼텍스 유동은.. 2023. 10. 15.
포텐셜 유동 (Potential flow) 유동장의 모든 지점에서 vorticity(와도)가 \(0\) 이면 비회전 유동 (irrotational flow)이라고 한다 (https://pasus.tistory.com/207). \[ \nabla \times \mathbf{V}=0 \tag{1} \] 벡터의 미분 관계식에 의하면 속도벡터가 비회전 벡터장(irrotational vector filed)이라면 속도벡터는 어떤 스칼라장(scalar field) \(\phi(x,y,z,t)\) 의 그래디언트(gradient)와 같다. 즉, 다음 식이 성립한다. \[ \mathbf{V}(x,y,z,t)= \nabla \phi(x,y,z,t) \tag{2} \] 물론 그 반대도 성립한다. 즉 속도벡터가 어떤 스칼라장의 그래디언트라면 속도벡터장은 비회전이다. .. 2023. 10. 13.
켈빈의 순환 정리 (Kelvin’s Circulation Theorem) 다음 그림과 같이 유동장에 고정된 폐곡선 \(C\) 가 있다고 하자. \(\mathbf{V}\) 와 \(d \mathbf{s}\) 는 각각 \(C\) 의 한 점에서의 유체의 속도와 미소 선분벡터를 의미한다. 순환(circulation) \(\Gamma\) 는 유동장에 고정된 폐곡선 \(C\) 를 반시계 방향으로 따라가며 유체의 속도를 선 적분한 것으로 정의한다. \[ \Gamma = -\oint_C \mathbf{V} \cdot d \mathbf{s} \tag{1} \] 순환의 정의에서 마이너스(\(-\)) 부호를 사용한 이유는 선 적분은 관례상 시계반대 방향이 플러스(\(+\))인 반면 항공역학에서는 시계 방향을 플러스(\(+\))로 보기 때문이다. 책에 따라서는 마이너스 부호를 사용하지 않고 정의하는.. 2023. 10. 10.
이류(advection), 대류(convection), 확산(diffusion) 장(field)은 위치와 시간의 함수를 의미한다. 예를 들어서 스칼라장(scalar field)는 공간상의 모든 위치에 시간에 따라 변하는 스칼라 값을 대응시키는 함수이고, 벡터장(vector field)은 공간상의 모든 위치에 시간에 따라 변하는 벡터 값을 대응시키는 함수를 의미한다. 스칼라장의 예로서 밀도 함수 \(\rho =\rho (x,y,z,t)\) 를, 벡터장의 예로서 공기의 속도벡터 함수 \(\mathbf{V}=\mathbf{V}(x,y,z,t)\)를 들 수 있겠다. 이제 유체의 운동과 관련된 용어인 advection, convection, diffusion에 대해서 알아보자. 먼저 advection은 이류라고 번역한다. 이류는 유체의 운동을 통하여 유체의 물리량이 이동하는 것을 의미한다. .. 2023. 10. 7.
[PSOC-12] 예제 : 램버트 문제 (Lambert’s problem) 램버트 문제(Lambert's problem)는 이체문제(two-body problem)에서 유도된 기본 궤도 미분 방정식에 대한 2점 경계값 문제(TPBVP, two-point boundary value problem)이다. \[ \begin{align} & \frac{d^2 \mathbf{r}}{dt^2 }+ \frac{ \mu}{ (\sqrt{\mathbf{r} \cdot \mathbf{r} })^3} \mathbf{r}=0 \tag{1} \\ \\ & \mathbf{r}(t_0 )= \mathbf{r}_0, \ \ \ \mathbf{r}(t_f )=\mathbf{r}_f, \ \ \ t_0, \ t_f \ \mbox{given} \end{align} \] 여기서 \(\mu\) 는 중력 파라미터, .. 2023. 9. 23.
상태공간 방정식과 전달함수 모든 선형 시불변 (LTI, linear time-invariant) 시스템은 다음과 같이 상태공간 방정식(state-space equation)으로 표현할 수 있다. \[ \begin{align} \dot{\mathbf{x}}(t) &=A \mathbf{x}(t)+B\mathbf{u}(t) \tag{1} \\ \\ \mathbf{y}(t) &=C \mathbf{x}(t)+D \mathbf{u}(t), \ \ \ t \ge 0 \end{align} \] 여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\), \(\mathbf{u}(t) \in \mathbb{R}^p\), \( \mathbf{y}(t) \in \mathbb{R}^q\) 이고 \(A, B, C, D\) 는 상수 행렬이다. 이.. 2023. 9. 22.
최적유도법칙과 비례항법유도 (PNG) 최종 속도가 설정된 최적유도법칙(https://pasus.tistory.com/293)과 최종 속도가 설정되지 않은 최적유도법칙(https://pasus.tistory.com/294)을 '유도'해 보았다. 편의상 표적이 고정된 경우와 표적이 등속 운동을 하는 경우를 분리하여 각각의 최적유도법칙을 다시 써 보겠다. 먼저 표적이 정지 고정된 경우의 비행체의 운동방정식과 최적 유도법칙은 다음과 같다. \[ \begin{align} & \dot{\mathbf{r}}_m = \mathbf{v}_m \tag{1} \\ \\ & \dot{\mathbf{v}}_m= \mathbf{g}_m+ \mathbf{a}_m \\ \\ \\ & \mathbf{a}_{mV} (t)= \frac{6}{t_{go}^2 } \left( .. 2023. 9. 20.
최적유도법칙 (Optimal Guidance Law): 최종 속도 미설정 이전 포스트(https://pasus.tistory.com/293)와 유사한 문제를 풀어본다. 차이점은 최종 시간에서 속도벡터에 관한 제약조건이 없는 경우이다. 편의상 운동 방정식을 다시 쓴다. \[ \begin{align} & \dot{\mathbf{r}}= \mathbf{v} \tag{1} \\ \\ & \dot{\mathbf{v}}= \mathbf{g}(\mathbf{r})+\mathbf{a} \end{align} \] 여기서 \(\mathbf{r}\) 과 \(\mathbf{v}\) 는 각각 관성좌표계에 대한 위치벡터와 속도벡터를 나타낸다. \(\mathbf{a}\) 는 제어 가속도, \(\mathbf{g}(\mathbf{r})\) 은 비행체 또는 미사일에 작용하는 중력 가속도로서 위치의 함수이다... 2023. 9. 17.
최적 유도법칙 (Optimal Guidance Law): 최종 속도 설정 중력장에서 비행체 또는 미사일의 운동 방정식은 다음과 같이 주어진다. \[ \begin{align} \dot{\mathbf{r}} &= \mathbf{v} \tag{1} \\ \\ \dot{\mathbf{v}} &= -\frac{\mu}{r^3} \mathbf{r}+ \mathbf{a} \\ \\ &= \mathbf{g}( \mathbf{r})+ \mathbf{a} \end{align} \] 여기서 \(\mathbf{r}\) 과 \(\mathbf{v}\) 는 각각 관성좌표계에 대한 위치벡터와 속도벡터를 나타낸다. \(\mathbf{a}\) 는 제어 가속도, \(\mu\) 는 중력파라미터, \(\mathbf{g}(\mathbf{r})\) 은 비행체 또는 미사일에 작용하는 중력 가속도로서 위치의 함수이다. .. 2023. 9. 16.
[PtrNet] Pointer Net 구조 조합 최적화(combinatorial optimization)는 개별 개체의 조합으로 이루어진 목적함수의 최대값(또는 최소값)을 구하는 문제이다. 대표적인 예로서는 TSP(traveling salesman problem, 순회외판원문제), Job-shop Scheduling, Knapsack Problem(배낭문제) 등이 있다. 참고로 세가지 문제를 간략히 설명하면 다음과 같다. TSP 는 \(n\) 개의 서로 다른 도시의 좌표 \((x, y)\) 가 주어졌을 때, 각 도시를 한번씩 모두 방문하는 최단 경로를 찾는 문제다. Job-shop Scheduling은 수행해야 하는 일련의 작업과 이러한 작업을 수행하는 데 필요한 도구 세트가 주어졌을 때, 모든 작업이 완료될 때까지 걸리는 총 시간을 최소화하기 .. 2023. 9. 12.
[seq2seq] 어텐션이 포함된 seq2seq 모델 Sequence-to-sequence (seq2seq) 모델에서 인코더(encoder)는 입력 시퀀스를 고정된 길이를 갖는 컨텍스트 벡터로 압축하고, 디코더(decoder)는 이를 사용하여 전체 출력 시퀀스를 생성한다. 컨텍스트 벡터는 인코더의 맨 마지막 시퀀스 스텝(시간스텝)에서 생성되며, 인코더와 디코더를 연결하는 유일한 통로이자 인코더가 입력 시퀀스에서 취득한 모든 정보가 흐르는 길목이다.    기존 seq2seq 모델은 인코더와 디코더가 컨텍스트 벡터로만 연결되기 때문에 두가지 문제가 발생한다.    첫번째 문제는 고정된 길이를 갖는 1개의 컨텍스트 벡터만으로는 디코더로 전달하는 정보의 양이 제한되거나 소실된다는 점이다. 이를 병목(bottleneck) 현상이라고 하는데 입력 시퀀스가 매우 길어서.. 2023. 8. 23.
[seq2seq] 간단한 seq2seq 모델 구현 Sequence-to-sequence 또는 seq2seq 모델은 입력 시퀀스(sequence)를 출력 시퀀스로 변환하는 신경망 모델이다. seq2seq 모델은 한 도메인의 시퀀스를 다른 도메인의 시퀀스로 변환해야 하는 기계 번역, 대화 시스템, 질문 응답, 텍스트 요약, 이미지 또는 비디오 캡셔닝, 음성인식, 시계열 예측과 같은 분야에서 큰 성공을 거두었다. 기본적으로 seq2seq 모델은 인코더(encoder)와 디코더(decoder), 그리고 두 블록을 연결하는 컨텍스트 벡터(context vector)로 구성되어 있다. 인코더는 입력 시퀀스에 대한 정보를 고정된 길이를 갖는 컨텍스트 벡터로 압축한다. 컨텍스트 벡터는 디코더가 정확한 예측을 수행하는 데 도움이 되는 방식으로 구축된다. 디코더는 컨텍스.. 2023. 8. 17.