# 제어 : 관측기와 상태 추정 (Control: Observers and State Estimation)

***

#### 상태 공간 모델

상태 추정은 주로 상태 공간 모델(State-Space Model)을 기반으로 이루어진다. 상태 공간 모델은 시스템의 동적 행동을 수학적으로 표현하는 방법으로, 일반적으로 선형 시스템의 경우 다음과 같은 형태를 갖는다:

$$
\dot{x}(t) = Ax(t) + Bu(t)
$$

$$
y(t) = Cx(t) + Du(t)
$$

여기서 $ x(t) $는 상태 벡터(State Vector), $ u(t) $는 입력(Input), $ y(t) $는 출력(Output)을 나타내며, $ A $, $ B $, $ C $, $ D $는 시스템 매트릭스(System Matrices)이다. 상태 공간 모델은 시스템의 내부 상태를 설명하는 변수들과 그 변수들이 시간에 따라 어떻게 변화하는지를 나타내는 데 유용하다.

#### 관측기 설계

관측기는 시스템의 내부 상태를 직접 측정할 수 없을 때, 측정 가능한 출력과 입력 데이터를 기반으로 시스템의 상태를 추정하는 도구이다. 선형 관측기의 경우, 가장 대표적인 형태는 루엔버거 관측기(Luenberger Observer)이다.

**루엔버거 관측기**

루엔버거 관측기는 다음과 같이 정의된다:

$$
\hat{x}(t) = A\hat{x}(t) + Bu(t) + L(y(t) - \hat{y}(t))
$$

$$
\hat{y}(t) = C\hat{x}(t)
$$

여기서 $ \hat{x}(t) $는 추정된 상태 벡터, $ L $은 관측기 이득(Observer Gain)이다. 관측기 이득 $ L $은 시스템의 상태 추정 오차 $ e(t) = x(t) - \hat{x}(t) $가 시간에 따라 감소하도록 설계된다. 이는 관측기 이득을 적절히 선택함으로써 달성되며, 이 과정은 일반적으로 폴 위치(Poles Placement)를 통해 이루어진다.

**칼만 필터**

비선형 또는 잡음이 있는 시스템의 경우, 루엔버거 관측기보다 더 정교한 방법이 필요하다. 칼만 필터(Kalman Filter)는 랜덤한 잡음이 포함된 선형 시스템에 대해 최적의 상태 추정을 제공한다. 칼만 필터는 다음 두 가지 단계로 구성된다:

1. **예측 단계 (Prediction Step):**

$$
\hat{x}(t|t-1) = A\hat{x}(t-1) + Bu(t-1)
$$

$$
P(t|t-1) = AP(t-1)A^T + Q
$$

여기서 $ \hat{x}(t|t-1) $은 이전 상태를 기반으로 한 현재 상태의 예측, $ P(t|t-1) $은 예측 오차 공분산 행렬이다. $ Q $는 프로세스 잡음 공분산(Process Noise Covariance)이다.

2. **갱신 단계 (Update Step):**

$$
K(t) = P(t|t-1)C^T(CP(t|t-1)C^T + R)^{-1}
$$

$$
\hat{x}(t|t) = \hat{x}(t|t-1) + K(t)(y(t) - C\hat{x}(t|t-1))
$$

$$
P(t|t) = (I - K(t)C)P(t|t-1)
$$

여기서 $ K(t) $는 칼만 이득(Kalman Gain), $ R $은 측정 잡음 공분산(Measurement Noise Covariance)이다. 칼만 필터는 이 두 단계를 반복적으로 수행하면서 상태를 추정하며, 잡음이 포함된 환경에서도 최적의 상태 추정을 제공한다.

#### 상태 추정의 안정성 및 수렴성

관측기나 필터의 상태 추정이 안정적으로 수렴하기 위해서는 몇 가지 조건이 필요하다. 특히, 시스템이 관측 가능성(Observability)을 만족해야 한다. 이는 시스템의 내부 상태를 외부 출력을 통해 유추할 수 있는지를 결정짓는 속성이다.

**관측 가능성 조건**

시스템이 관측 가능하다는 것은, 초기 상태 $ x(0) $를 일정 시간 동안의 출력 $ y(t) $와 입력 $ u(t) $로부터 완전히 결정할 수 있다는 것을 의미한다. 선형 시스템의 경우, 관측 가능성은 다음과 같은 관측 가능성 행렬(Observability Matrix) $ O $의 계수(rank)로 결정된다:

$$
O = \begin{bmatrix} C \ CA \ CA^2 \ \vdots \ CA^{n-1} \end{bmatrix}
$$

이 행렬의 계수가 상태 벡터의 차원과 동일하다면, 시스템은 완전히 관측 가능하다고 할 수 있다.

**관측기의 안정성**

관측기가 안정적으로 작동하려면, 추정 오차 $ e(t) = x(t) - \hat{x}(t) $가 시간에 따라 수렴해야 한다. 이때, 관측기 설계에서 중요한 점은 관측기 이득 $ L $을 적절히 설계하여, 오차 동역학 $ \dot{e}(t) = (A - LC)e(t) $의 고유값(Eigenvalues)이 모두 좌반평면에 위치하도록 만드는 것이다. 이는 상태 피드백 제어기 설계와 유사하며, 고유값 배치 방법을 사용할 수 있다.

#### 확장 칼만 필터

비선형 시스템에서는 선형 칼만 필터가 적합하지 않을 수 있다. 이 경우 확장 칼만 필터(Extended Kalman Filter, EKF)가 사용된다. 확장 칼만 필터는 비선형 시스템을 국소적으로 선형화하여 칼만 필터를 적용하는 방식이다.

**시스템 모델의 비선형성**

비선형 시스템은 다음과 같이 표현될 수 있다:

$$
\dot{x}(t) = f(x(t), u(t))
$$

$$
y(t) = h(x(t), u(t))
$$

여기서 $ f(\cdot) $와 $ h(\cdot) $는 비선형 함수이다. 확장 칼만 필터는 이 비선형 함수를 테일러 급수의 첫 번째 항으로 근사하여, 국소적인 선형 모델을 이용해 칼만 필터를 적용한다.

**선형화 과정**

확장 칼만 필터에서 사용되는 선형화는 야코비안 행렬(Jacobian Matrix)을 계산하는 방식으로 이루어진다. 상태 $ x $와 입력 $ u $에 대해 다음과 같이 야코비안 행렬을 계산한다:

$$
A\_k = \left. \frac{\partial f(x, u)}{\partial x} \right|\_{\hat{x}\_k, u\_k}
$$

$$
C\_k = \left. \frac{\partial h(x, u)}{\partial x} \right|\_{\hat{x}\_k, u\_k}
$$

이러한 방법으로 선형화된 시스템에 대해, 앞서 설명한 칼만 필터의 예측 및 갱신 단계를 적용하여 상태를 추정하게 된다.

#### 상태 추정기의 설계 방법론

상태 추정기의 설계는 시스템의 특성에 따라 달라질 수 있으며, 설계 방법론은 크게 두 가지로 나뉜다: 해석적 설계(Analytical Design)와 최적화 기반 설계(Optimization-based Design).

**해석적 설계**

해석적 설계 방법은 시스템 모델이 정확하게 알려져 있을 때 주로 사용되며, 관측기 이득 $ L $을 이론적인 해석을 통해 결정한다. 이는 시스템의 고유값을 원하는 위치에 배치하거나, 칼만 필터에서 공분산 행렬의 선택을 통해 이루어진다.

**최적화 기반 설계**

모델 불확실성이 크거나 잡음 환경이 복잡한 경우, 최적화 기법을 사용하여 상태 추정기의 성능을 극대화할 수 있다. 이는 목적함수(Objective Function)를 설정하고, 이를 최소화하는 방식으로 관측기 또는 필터의 파라미터를 조정하는 방식으로 이루어진다.

***

관련 자료:

* Luenberger, D. G. (1966). Observing the state of a linear system. *IEEE Transactions on Military Electronics*, 8(2), 74-80.
* Kalman, R. E. (1960). A new approach to linear filtering and prediction problems. *Journal of Basic Engineering*, 82(1), 35-45.
* Anderson, B. D. O., & Moore, J. B. (1979). *Optimal Filtering*. Prentice-Hall.
* Simon, D. (2006). *Optimal State Estimation: Kalman, H Infinity, and Nonlinear Approaches*. John Wiley & Sons.
