본문 바로가기

유도항법제어/데이터기반제어15

OKID (Observer Kalman Filter Identification) OKID(Observer Kalman Filter Identification)는 시간 영역에서 비선형 시스템의 입력-출력 데이터를 이용하여 상태공간 이산시간(discrete-time) 선형 모델을 식별(identification)하는 알고리즘이다. OKID는 1990년대 초 NASA의 Juang에 의해 처음 개발된 이래 다양한 항공기 모델을 식별하는 데 이용되어 왔으며, 완벽한 트림 조건이 아닌 경우나 센서 노이즈가 있는 경우에도 매우 효과적으로 모델을 식별할 수 있는 것으로 알려졌다. OKID는 ERA(eigensystem realization algorithm)의 확장판으로서 ERA 알고리즘이 가진 두 가지 기본 제한 사항을 해결했다. 제한 사항이란 시스템의 초기값이 \(0\) 이어야 한다는 것과 시.. 2023. 3. 25.
ERA (Eigensystem Realization Algorithm) Ho-Kalman 식별 알고리즘에서는 임펄스 반응(impulse response)을 이용하여 마코프 파라미터(Markov parameters)를 측정하였다. 그렇다면 일반적인 입출력 데이터를 이용하여 마코프 파라미터를 획득하는 방법은 없을까. 다음과 같이 미지의 이산시간(discrete-time) 선형 시스템이 있다고 하자. \[ \begin{align} & \mathbf{x}_{k+1}=A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ & \mathbf{y}_k=C \mathbf{x}_k+D \mathbf{u}_k \end{align} \] 여기서 \(\mathbf{x}_k \in \mathbb{R}^n\), \(\mathbf{u}_k \in \mathbb{R}^p\), \.. 2023. 3. 25.
Ho-Kalman 식별 알고리즘 다음과 같이 미지의 이산시간(discrete-time) 선형 시스템이 있다고 하자. \[ \begin{align} & \mathbf{x}_{k+1}=A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ & \mathbf{y}_k=C \mathbf{x}_k+D \mathbf{u}_k \end{align} \] 여기서 \(\mathbf{x}_k \in \mathbb{R}^n\), \(\mathbf{u}_k \in \mathbb{R}^p\), \(\mathbf{y}_k \in \mathbb{R}^q\), \(A \in \mathbb{R}^{n \times n}\), \(B \in \mathbb{R}^{n \times p}\), \(C \in \mathbb{R}^{q \times n}\.. 2023. 3. 24.
마코프 파라미터 (Markov Parameters) 다음과 같이 이산시간(discrete-time) 선형 시스템이 있다고 하자. \[ \begin{align} & \mathbf{x}_{k+1}=A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ & \mathbf{y}_k=C \mathbf{x}_k+D \mathbf{u}_k \end{align} \] 여기서 \(\mathbf{x}_k \in \mathbb{R}^n\), \(\mathbf{u}_k \in \mathbb{R}^p\), \(\mathbf{y}_k \in \mathbb{R}^q\), \( A \in \mathbb{R}^{n \times n}\), \(B \in \mathbb{R}^{n \times p}\), \(C \in \mathbb{R}^{q \times n}\), .. 2023. 3. 22.
[DMD-3] DMDior 입출력이 포함된 확장 DMD인 DMDio (DMD with input/output) 알고리즘을 유도해 보았다 (https://pasus.tistory.com/225). 원래 시스템을 식별한 후에 축소 모델 (ROM, reduced order model)로 근사화 하는 순서였다. 이번에는 이와 약간 다른 접근 방법을 사용해 보고자 한다. 바로 축소 모델을 식별하는 방법이다. 이러한 방법을 DMDior (DMDio for reduced order model)라고 한다. 식별하고자 하는 미지의 이산시간 시스템이 식 (1)과 같이 표현된다고 하자. \[ \begin{align} \mathbf{x}_{k+1} &= A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ \mathbf{y}_.. 2022. 11. 8.
[DMD-2] DMDio 표준 DMD의 한 가지 제한 사항은 시스템의 운동을 바꾸거나 측정할 수 있는 외부 입력과 출력이 포함된 모델을 생성할 수 없다는 것이다. 이제 표준 DMD 방법을 확장하여 입력과 출력이 포함된 시스템 모델을 식별해 보도록 한다. 이와 같이 입출력이 포함된 확장 DMD를 DMDio (DMD with input/output)이라고 한다. 모델 입력과 출력이 포함된 시스템의 동적 특성을 이해하는 것은 제어기 설계 및 센서 배치 문제의 기본 전제 사항이다. 식별하고자 하는 미지의 이산시간 시스템이 식 (1)과 같이 표현된다고 하자. \[ \begin{align} & \mathbf{x}_{k+1}=A \mathbf{x}_k+B \mathbf{u}_k \tag{1} \\ \\ & \mathbf{y}_k=C \mat.. 2022. 10. 31.
[DMD-1] 동적모드분해 (Dynamic Mode Decomposition) 전통적인 제어이론은 시스템의 수학적인 운동 모델을 요구한다. 운동 모델은 물리 법칙으로부터 해석적으로 유도할 수 있지만 입출력 데이터에 기반해서 수치적으로 얻을 수도 있다. 수치 데이터로부터 시스템의 운동 모델을 구하는 것을 시스템 식별(system identification) 또는 모델 식별이라고 한다. 시스템 식별 방법에는 ERA, OKID, QMC등 몇 가지가 있는데, 그 중 하나가 동적모드분해 (DMD, dynamic mode decomposition)이다. DMD는 수치 시뮬레이션 또는 스냅샷(snapshot) 측정 데이터를 사용하여 선형 시스템의 수학적 모델을 식별하고 동적 특성을 추출하는 기법이다. 식별하고자 하는 미지의 이산시간 시스템이 식 (1)과 같이 표현된다고 하자. 일단 자율 시스템.. 2022. 10. 26.
[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.