민감도 분석 개요

확장 칼만 필터(Extended Kalman Filter, EKF)의 초기 추정값은 필터의 성능에 매우 중요한 요소이다. 초기 상태 추정값이 정확하지 않으면 필터가 수렴하는 데 어려움을 겪을 수 있으며, 이는 전체 시스템의 성능 저하로 이어질 수 있다. 이러한 민감도를 이해하고 관리하는 것이 EKF의 성능을 향상시키는 데 필수적이다.

초기 추정값은 필터의 초기화 과정에서 설정되며, 일반적으로 다음과 같이 표현된다.

\hat{\mathbf{x}}_0 = \mathbf{x}_0 + \mathbf{w}_0

여기서:

초기 추정값의 민감도를 분석하는 과정은 주로 \mathbf{w}_0의 크기와 분포에 따른 필터 성능 변화를 평가하는 데 초점을 맞춘다.

초기 상태 오차의 전파

EKF에서 상태 추정의 예측 및 업데이트 과정은 비선형 시스템 모델을 기반으로 한다. 이때, 초기 상태 오차 \mathbf{w}_0는 필터가 반복적으로 예측 및 업데이트를 수행하면서 시스템의 다른 상태 변수로 전파된다. 상태 변수 \mathbf{x}_k의 예측값은 다음과 같은 일반적인 형태로 나타낼 수 있다.

\hat{\mathbf{x}}_{k+1|k} = f(\hat{\mathbf{x}}_{k|k}, \mathbf{u}_k) + \mathbf{q}_k

여기서:

하지만 초기 상태 오차 \mathbf{w}_0가 존재하는 경우, 실제로 필터가 예측하는 상태는 아래와 같이 오차를 포함하게 된다.

\hat{\mathbf{x}}_{k+1|k} = f(\hat{\mathbf{x}}_{k|k} + \mathbf{w}_0, \mathbf{u}_k) + \mathbf{q}_k

이 식을 테일러 급수로 근사하면 초기 오차가 어떻게 시간에 따라 전파되는지 더 명확히 볼 수 있다. 첫 번째 차수로 근사하면 다음과 같이 표현할 수 있다.

\hat{\mathbf{x}}_{k+1|k} \approx f(\hat{\mathbf{x}}_{k|k}, \mathbf{u}_k) + \frac{\partial f}{\partial \mathbf{x}_k} \mathbf{w}_0

여기서 \frac{\partial f}{\partial \mathbf{x}_k}는 상태 전이 함수 f(\cdot)의 야코비 행렬이다. 이 근사식을 통해 초기 상태 오차 \mathbf{w}_0가 이후 상태 예측에 어떻게 영향을 미치는지 알 수 있으며, 특히 이 오차가 야코비 행렬에 의해 증폭되거나 감소할 수 있다는 점을 확인할 수 있다.

초기 상태 오차의 공분산

확장 칼만 필터에서 상태 변수의 불확실성은 공분산 행렬 \mathbf{P}_k로 나타낸다. 초기 상태 오차 \mathbf{w}_0의 민감도는 이 공분산 행렬의 초기값 \mathbf{P}_0에도 크게 의존한다. EKF의 공분산 행렬은 필터가 상태를 추정할 때 불확실성의 정도를 나타내며, 시간에 따라 다음과 같이 예측된다.

\mathbf{P}_{k+1|k} = \mathbf{F}_k \mathbf{P}_{k|k} \mathbf{F}_k^T + \mathbf{Q}_k

여기서:

초기 추정값의 오차 \mathbf{w}_0는 이 공분산 행렬 \mathbf{P}_0를 통해 필터의 전반적인 성능에 영향을 미친다. 만약 초기 공분산 행렬이 너무 작게 설정되면, 필터는 초기 추정값에 지나치게 자신감을 가지게 되어 이후의 관측치를 잘 반영하지 못하게 된다. 반대로, 초기 공분산 행렬이 너무 크게 설정되면 필터는 초기 상태를 신뢰하지 않고, 불필요한 노이즈를 반영할 수 있다.

따라서, 초기 공분산 행렬 \mathbf{P}_0의 설정은 필터 성능의 핵심 요소 중 하나이며, 일반적으로 다음과 같이 나타낼 수 있다.

\mathbf{P}_0 = E[(\hat{\mathbf{x}}_0 - \mathbf{x}_0)(\hat{\mathbf{x}}_0 - \mathbf{x}_0)^T]

이 식은 초기 상태 추정값 \hat{\mathbf{x}}_0와 실제 상태 \mathbf{x}_0 사이의 오차 공분산을 나타낸다. 초기 상태 오차가 클수록, 필터의 초기 공분산 행렬 \mathbf{P}_0도 그에 맞게 커야 한다.

초기 추정값 설정의 실무적 고려사항

실제 응용에서 초기 추정값을 설정할 때, 정확한 초기 상태를 얻는 것이 어렵거나 불가능한 경우가 많다. 이러한 상황에서 필터가 안정적으로 수렴하도록 초기 공분산 행렬을 설정하는 전략이 필요하다.

1. 경험적 초기화

많은 경우, 초기 상태의 추정값은 시스템에 대한 사전 경험을 바탕으로 설정된다. 예를 들어, 이동 로봇의 위치 추정 문제에서 초기 위치는 대략적인 GPS 좌표나 IMU 센서의 출력을 기반으로 추정할 수 있다. 이때, 초기 공분산 행렬은 시스템의 특성에 따라 경험적으로 결정된다.

2. 관측 가능성 분석

초기 추정값에 대한 민감도를 줄이기 위한 또 다른 방법은 관측 가능성 분석이다. 시스템의 초기 상태가 충분히 관측 가능하지 않다면, 필터가 수렴하는 데 어려움을 겪을 수 있다. 관측 가능성이 높은 상태에서 필터를 시작할 수 있도록 초기화를 신중히 수행하는 것이 중요하다.

3. 추가 필터링 단계 도입

초기 상태 오차가 큰 경우, 초기 몇 단계 동안 추가적인 필터링을 도입할 수 있다. 이를 통해 필터가 수렴할 수 있는 시간을 주고, 이후의 상태 추정을 더 정확하게 만들 수 있다. 예를 들어, 초기 몇 단계 동안 관측치의 영향을 크게 반영하는 전략을 사용할 수 있다.