본문 바로가기

유도항법제어23

칼만필터 알고리즘 칼만필터는 수학 알고리즘이다. 따라서 수학식 없이는 칼만필터를 사용할 수도 이해할 수도 없다. 그렇다고 칼만필터 유도과정을 자세히 이해할 필요까지는 없다. 결과만 잘 이해하고 있어도 칼만필터를 사용할 수 있다. 우선 칼만필터 알고리즘을 수학식으로 써 보겠다. 칼만필터는 다음과 같이 주어진 선형 동적 시스템 모델과 측정 모델, \[ \begin{align} & \mathbf{x}(k+1)= F(k) \mathbf{x}(k)+G(k) \mathbf{u}(k)+ \mathbf{w}(k) \\ \\ & \mathbf{z}(k)=H(k) \mathbf{x}(k)+ \mathbf{v}(k) \end{align} \] 을 이용하여, 시스템의 상태변수 \(\mathbf{x}(k)\)를 다음과 같이 시간 업데이트와 측정.. 2021. 3. 4.
칼만필터란 무엇인가 공대 출신이라면 칼만필터를 한번쯤은 들어 보았을 것이다. 조금 더 관심을 가진 사람이라면 칼만필터가 다음과 같은 일을 한다고 들었을 것이다. 칼만필터로 신호에 섞인 노이즈를 제거할 수 있다. 칼만필터로 센서가 측정하지 못하는 것도 추정할 수 있다. 칼만필터로 여러 센서를 융합하여 더 좋은 측정값을 만들 수 있다. 칼만필터로 기계 장치에 난 고장을 감지할 수 있다. 칼만필터로 적 항공기를 추적할 수 있다. 칼만필터로 선물 또는 주식의 가격을 예측할 수 있다. 이 정도라면, 칼만필터만 잘 다룰 줄 알면 뭔가 대단한 일을 할 수 있을 것 같다는 생각이 들 것이다. 그래서 칼만필터는 공대 출신에게 로망으로 알려져 있다. 실제로 칼만필터는 공학의 모든 분야에 걸친 막대한 영향력 때문에 추정 이론 분야의 가장 위대.. 2021. 3. 3.
[POD-4] Gappy POD 매트랩 예제 Gappy POD 방법을 이용하여 손상된 얼굴 사진을 복구해 보자. 코드는 매트랩으로 작성했다. (1) Extended Yale Face Database B에서 36명의 정면 얼굴 사진을 추출하여 스냅샷 행렬을 만든다. 데이터셋의 샘플 평균을 계산한다. X = yaleFace(:, 1:36); % 32,256 by 36 mu = mean(X,2); (2) 모든 데이터셋을 다음과 같이 치환한다. \[ \mathbf{y}^{(i)} = \mathbf{x}^{(i) } - \mathbf{\mu} \] (3) 데이터셋의 스냅샷 행렬을 만든다. \[ Y = [ \mathbf{y}^{(1) } \ \mathbf{y}^{(2) } \ \cdots \ \mathbf{y}^{(m) } ] \ \in \mathbb{R}^.. 2021. 3. 1.
[POD-3] 개피 적합직교분해 (gappy POD) 적합직교분해(POD) 또는 주성분 분석(PCA)은 \(n\)차원 공간상에서 \(d\)개의 POD 모드(mode) \(\mathbf{w}_1, \mathbf{w}_2, ..., \mathbf{w}_d\)로 구성된 부분 공간에 데이터 벡터 \(\mathbf{y}(t)\)를 투사(projection)할 때 투사 오차가 최소가 되도록 POD 모드를 결정하는 알고리즘이다. \[ \begin{align} \mathbf{y}^{(i)} & \approx \sum_{j=1}^d a_{ij} \mathbf{w}_j \\ \\ &= \begin{bmatrix} \mathbf{w}_1 & \mathbf{w}_2 & \cdots & \mathbf{w}_d \end{bmatrix} \begin{bmatrix} a_{i1} \\.. 2021. 3. 1.
[POD-2] 스냅샷 적합직교분해 (snapshot POD) 고전 적합직교분해(classical POD)는 공간은 이산화시켰지만 시간은 연속적이다. 하지만 실제 유체역학이나 구조해석 문제의 경우 벡터 필드는 일정한 시간 간격의 싯점에서 수치해석으로 계산된 데이터나 또는 측정된 데이터로 주어진다. 고전 POD의 또 다른 문제점은 차원이 \(n=10^8 \sim 10^{10}\)에 달하는 매우 고차원 행렬의 고유값과 고유벡터를 계산해야 하는데 있다. 이 정도 규모의 차원에서 이를 계산하는 것은 거의 불가능하다. 이러한 고전 POD의 단점을 극복하기 위한 방안으로 스냅샷(snapshot) POD가 개발되었다. 스냅샷 POD는 벡터 필드의 공간 뿐만 아니라 시간도 이산화시켰다는 데 특징이 있다. 스냅샷이란 일정한 싯점에서 수집한 데이터의 집합을 뜻한다. 먼저 벡터 필드 .. 2021. 3. 1.
[POD-1] 고전 적합직교분해 (classical POD) 적합직교분해(POD, proper orthogonal decomposition)은 본래 난류 유동(turbulent flow)에서 가장 에너지가 높은 모드를 추출하기 위해서 도입된 수학적인 기법이다. \(\mathbf{q}(\mathbf{p},t)\)를 위치벡터 \(\mathbf{p}\)와 시간 \(t\)를 독립변수로 하는 벡터 필드 (예를 들면 유동장에서의 속도 벡터)라고 하자. 이 벡터의 시간 평균을 \(\bar{\mathbf{q}}(\mathbf{p})\)라고 하면 벡터 필드가 평균을 기준으로 변동하는 성분(unsteady component)은 다음과 같이 기저함수(basis function)의 선형 조합으로 나타낼 수 있다. \[ \mathbf{q}(\mathbf{p},t)-\bar{\mathbf.. 2021. 2. 28.
주파수 응답 주파수 응답(frequency response)은 안정한 LTI(선형 시불변) 시스템에 싸인 또는 코사인 파형(sinusoids) 입력을 가했을 때 나오는 정정상태 응답(steady-state response)이다. 입력 \(u(t)\)가 시스템에 가해지는 시간이 \(t=-\infty\) 이라면 인과(causal) LTI 시스템의 출력은 다음과 같다. \[ y(t)= \int_{-\infty}^t h(t-\tau) u(\tau) \ d\tau \] 여기서 \(h(t)\)는 LTI 시스템의 임펄스 반응(impulse response)이다. 위 식에 의하면 시스템에 입력이 가해진 지 이미 무한대의 시간이 경과했으므로 시스템이 안정하다면, 시간 \(t\)에서의 반응은 이미 정정상태에 도달했다고 볼 수 있다. .. 2021. 2. 5.
정정상태 응답과 과도 응답 영어로 steady-state response를 정정상태 응답, transient response를 과도 응답이라고 번역한다. 정정상태는 시스템의 출력이 안정되어서 시간이 흘러도 같은 값을 유지하거나 같은 패턴의 출력이 나오는 상태를 말한다. 과도 응답이란 출력이 \(0\)부터 시작하여 정정상태 응답으로 가는 동안의 과도기 응답을 말한다. 영어를 한자로 번역하고 표기는 한글로만 하기 때문에 오해하기 쉬운 용어가 됐다. 정정 행렬이라는 용어도 있는데 이 때 '정정' 은 영어로 positive-definite이다. '양의 값으로 규정된' 이라는 뜻이다. 아무튼 둘 다 정정이라고 번역한다. ‘과도’는 일상 용어로는 과일 깍는 칼을 말한다. 응답은 response를 번역한 것인데 '반응' 이라고 하기도 한다. .. 2021. 2. 5.
포텐셜 필드 방법 포텐셜 필드(potential field)의 아이디어는 목표점으로 이끄는(attractive) 인공적인 포텐셜 필드와 장애물로부터 멀어지게 내보내는(repulsive) 인공적인 포텐셜 필드를 형상공간에 구축하여, 로봇이나 비행체가 장애물을 피하면서 목표점에 다가갈 수 있는 운행 방향을 찾아보자는 것이다. 인력(attractive) 포텐셜은 로봇이나 비행체를 목표점으로 끄는 목적을 지니고 있으며 보통 파라볼릭(parabolic) 형태와 원추(conical) 형태, 그리고 이 둘을 결합한 형태를 사용하고 있다. 파라볼릭 형태의 포텐셜 필드는 다음 식으로 주어진다. \[ U_{att1} (\mathbf{q})= \frac{1}{2} k_a \left\vert \mathbf{q}_{goal} - \mathbf{.. 2021. 1. 29.
RRT* (RRT Star) 알고리즘 RRT* 알고리즘은 RRT 알고리즘과 기본 뼈대는 동일하다. 다만 RRT와 두 가지 차이점이 있는데, 첫째는 부모(parent) 노드의 재선정이고 둘째는 트리의 재구성(rewire)이다. RRT에서는 \(\mathbf{q}_{new}\)와 가장 가까운 노드 \(\mathbf{q}_{near}\)가 부모(parent) 노드가 되었지만, RRT*에서는 \(\mathbf{q}_{new}\)를 중심으로 일정 반경에 있는 노드(그림에서 \(\mathbf{q}_1, \mathbf{q}_2, \mathbf{q}_3, \mathbf{q}_4, \mathbf{q}_5, \mathbf{q}_{near}\))를 뽑고, 그 노드들을 \(\mathbf{q}_{near}\)와의 비용(cost) 비교를 통해 가장 적은 비용을 가진.. 2021. 1. 29.