오차 공분산의 평가

확장 칼만 필터의 성능을 평가하기 위해서는 필터가 생성한 상태 추정 값이 실제 상태와 얼마나 차이가 나는지를 분석하는 것이 중요하다. 여기서 사용되는 핵심 개념은 오차 공분산 행렬 \mathbf{P}이다. \mathbf{P}는 추정 오차의 불확실성을 나타내며, 이 값이 작을수록 필터의 성능이 좋다는 것을 의미한다.

오차 \mathbf{e}는 실제 상태 \mathbf{x}와 추정된 상태 \hat{\mathbf{x}} 간의 차이로 정의된다:

\mathbf{e} = \mathbf{x} - \hat{\mathbf{x}}

오차 공분산 행렬 \mathbf{P}는 다음과 같이 정의된다:

\mathbf{P} = \mathbb{E}[\mathbf{e} \mathbf{e}^\top]

여기서 \mathbb{E}[\cdot]는 기대값을 의미하며, \mathbf{e} \mathbf{e}^\top는 오차의 외적이다. 이 행렬은 확장 칼만 필터에서 매우 중요한 역할을 하며, 각 시간 단계에서 필터의 신뢰도를 나타낸다.

선형화 오차

확장 칼만 필터는 비선형 시스템을 다루기 위해 선형화를 적용하는데, 이 과정에서 발생하는 오차가 필터의 성능에 영향을 미칠 수 있다. 시스템의 비선형성은 테일러 급수 전개를 통해 1차 근사로 표현되는데, 이로 인해 추가적인 고차 항들이 무시된다. 이 무시된 고차 항들은 필터 성능에 영향을 미치는 중요한 요인 중 하나이다.

예를 들어, 시스템의 상태 전이 방정식이 다음과 같이 주어졌다고 하자:

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

여기서 \mathbf{f}(\mathbf{x}_k, \mathbf{u}_k)는 비선형 함수이고, \mathbf{w}_k는 시스템 노이즈이다. 이 함수는 야코비 행렬 \mathbf{F}_k를 통해 다음과 같이 선형화된다:

\mathbf{F}_k = \frac{\partial \mathbf{f}}{\partial \mathbf{x}} \Bigg|_{\mathbf{x} = \hat{\mathbf{x}}_k}

하지만 이 선형화 과정에서 무시되는 고차 항들로 인해 실제 상태 변화와 추정된 상태 변화 사이에 차이가 발생하게 된다. 이를 '선형화 오차'라고 부르며, 필터의 오차 공분산에 직접적인 영향을 미친다.

초기화 오차

확장 칼만 필터의 성능은 초기 상태와 오차 공분산 행렬 \mathbf{P}_0의 초기값에 매우 민감하다. 초기화 과정에서 상태 변수와 공분산 행렬의 초기값이 적절하지 않다면, 필터는 수렴하지 않거나 비정상적인 결과를 도출할 수 있다. 특히 초기 상태 \hat{\mathbf{x}}_0와 실제 상태 \mathbf{x}_0 사이의 차이가 클 경우, 필터는 처음부터 큰 오차를 포함하게 되어 수렴 시간이 길어지거나 수렴하지 않는 문제를 초래할 수 있다.

따라서 초기값을 선택할 때는 시스템에 대한 사전 지식이나 측정값의 불확실성을 고려하여 적절히 설정해야 한다. 초기 공분산 행렬 \mathbf{P}_0는 시스템의 불확실성을 반영해야 하며, 다음과 같이 설정된다:

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

초기화 오차를 줄이기 위한 방법 중 하나는 여러 번의 실험을 통해 초기값을 조정하거나, 더 정교한 초기화 알고리즘을 사용하는 것이다.

상태 예측 오차

확장 칼만 필터에서 상태 예측은 다음 시간 단계의 상태를 추정하는 중요한 과정이다. 예측 단계에서 상태 변수는 시스템 모델을 통해 다음과 같이 예측된다:

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

하지만 시스템 모델 \mathbf{f}(\cdot)이 정확하지 않거나 비선형성이 강할 경우, 예측된 상태 \hat{\mathbf{x}}_{k+1|k}와 실제 상태 \mathbf{x}_{k+1} 사이에 오차가 발생한다. 이러한 오차는 특히 비선형 시스템에서 두드러지며, 필터의 추정 성능에 영향을 미칠 수 있다.

예측 오차를 줄이기 위해서는 시스템 모델을 개선하거나, 비선형성에 대한 더 높은 차수의 근사를 도입하는 방법을 고려할 수 있다. 또한, 시스템 모델의 불확실성을 반영하기 위해 더 정교한 노이즈 모델링이 필요할 수 있다.

관측 오차

확장 칼만 필터는 예측된 상태와 실제 관측값을 비교하여 상태를 업데이트한다. 이 과정에서 관측 모델의 비선형성이나 센서 노이즈로 인해 오차가 발생할 수 있다. 관측 모델 \mathbf{h}(\mathbf{x}_k)가 비선형인 경우, 다음과 같이 야코비 행렬 \mathbf{H}_k로 선형화된다:

\mathbf{H}_k = \frac{\partial \mathbf{h}}{\partial \mathbf{x}} \Bigg|_{\mathbf{x} = \hat{\mathbf{x}}_k}

관측 업데이트 단계는 다음과 같이 표현된다:

\mathbf{y}_k = \mathbf{z}_k - \mathbf{h}(\hat{\mathbf{x}}_{k|k-1})

여기서 \mathbf{z}_k는 관측된 값이고, \mathbf{h}(\hat{\mathbf{x}}_{k|k-1})는 예측된 관측값이다. 이때 발생하는 차이 \mathbf{y}_k는 "관측 잔차"로 불리며, 이는 필터 성능에 중요한 역할을 한다.

관측 오차는 센서의 품질, 관측 환경, 그리고 관측 모델의 불완전성에서 기인할 수 있다. 특히 비선형 관측 모델의 경우, 선형화 과정에서 무시된 고차 항으로 인해 실제 관측값과 예측된 관측값 사이에 오차가 발생할 수 있다.

시스템 노이즈와 관측 노이즈의 영향

확장 칼만 필터는 시스템 노이즈 \mathbf{w}_k와 관측 노이즈 \mathbf{v}_k를 처리하기 위해 설계되었다. 이 노이즈는 각각 시스템 모델과 관측 모델의 불확실성을 반영하며, 각각 공분산 행렬 \mathbf{Q}_k\mathbf{R}_k로 표현된다.

\mathbf{Q}_k = \mathbb{E}[\mathbf{w}_k \mathbf{w}_k^\top]
\mathbf{R}_k = \mathbb{E}[\mathbf{v}_k \mathbf{v}_k^\top]

시스템 노이즈와 관측 노이즈가 필터의 성능에 미치는 영향은 매우 크다. 노이즈 공분산 행렬 \mathbf{Q}_k\mathbf{R}_k의 값이 과소 추정되면 필터가 과신하게 되어 잦은 업데이트를 발생시킬 수 있으며, 과대 추정될 경우 필터의 응답이 느려지거나 비효율적으로 작동할 수 있다. 적절한 노이즈 모델링은 필터 성능 향상의 핵심 요소이다.

시간 지연 문제

확장 칼만 필터는 실시간 시스템에 적용될 때 시간 지연 문제를 겪을 수 있다. 예를 들어, 센서 데이터가 실제 측정 시점보다 지연되어 전달되거나, 계산 복잡도로 인해 필터의 계산 시간이 지연되는 경우가 있다. 시간 지연은 시스템 상태 추정의 정확도를 크게 저하시킬 수 있다.

시간 지연 문제를 해결하기 위한 방법 중 하나는 필터의 계산 속도를 최적화하거나, 지연을 보상할 수 있는 알고리즘을 사용하는 것이다. 필터의 계산 시간이 시스템 요구 사항을 만족하지 못할 경우, 필터는 추정 오차를 줄이는 대신 성능 저하를 초래할 수 있다.

드리프트 문제

확장 칼만 필터는 장시간 운영 시 드리프트 현상을 경험할 수 있다. 이는 필터가 장기적으로 특정 방향으로 오차가 누적되어, 필터의 상태 추정값이 실제 상태와 점차 멀어지는 현상이다. 이러한 드리프트는 다음과 같은 원인으로 발생할 수 있다:

드리프트 문제를 완화하기 위해서는 주기적인 재설정이나 보정 작업이 필요하다. 예를 들어, 추가적인 참조 센서를 사용하거나, 필터를 주기적으로 초기화하여 누적된 오차를 제거할 수 있다.