비선형 시스템의 특성
확장 칼만 필터(Extended Kalman Filter, EKF)는 비선형 시스템의 상태를 추정하기 위한 대표적인 기법이다. 그러나, 이 필터는 본질적으로 비선형성을 다루는 데 한계가 존재한다. 기본 칼만 필터가 선형 시스템에 기반을 두고 있는 반면, EKF는 비선형 시스템을 처리하기 위해 시스템을 선형화하는 방식으로 접근한다. 이 과정에서 테일러 급수 전개를 사용하여 비선형 함수를 일차 근사화한다. 이러한 선형화 과정에서 발생하는 오차가 비선형성의 한계 중 하나이다.
비선형 시스템은 다음과 같이 표현될 수 있다:
여기서: - \mathbf{x}_k는 k 시점에서의 상태 벡터, - \mathbf{u}_k는 제어 입력, - \mathbf{z}_k는 측정 벡터, - \mathbf{f}는 상태 전이 함수, - \mathbf{h}는 측정 함수, - \mathbf{w}_k와 \mathbf{v}_k는 각각 과정 및 측정 노이즈이다.
비선형 함수 \mathbf{f}와 \mathbf{h}는 종종 매우 복잡한 구조를 가지고 있으며, 이를 정확하게 선형화하는 것은 불가능하다. EKF는 이러한 비선형 함수를 선형 근사하는데, 이 과정에서 발생하는 오차가 필터의 성능에 영향을 미치게 된다.
선형화 과정과 오차
EKF에서 비선형 함수 \mathbf{f}와 \mathbf{h}는 테일러 급수의 첫 번째 항을 이용하여 선형화된다. 예를 들어, 상태 전이 함수 \mathbf{f}(\mathbf{x}_k, \mathbf{u}_k)는 현재 상태 \mathbf{x}_k에서 일차 테일러 급수로 전개된다:
여기서 \mathbf{F}_k는 상태 전이 함수의 야코비 행렬로, 다음과 같이 정의된다:
측정 함수 \mathbf{h}(\mathbf{x}_k)도 비슷한 방식으로 선형화된다:
여기서 \mathbf{H}_k는 측정 함수의 야코비 행렬로, 다음과 같이 정의된다:
이러한 선형화는 비선형 함수의 실제 값과 근사 값 사이에 차이를 발생시킨다. 이 차이는 근사 오차로 이어지며, 시스템이 매우 비선형일 경우 이 오차는 커지게 된다. 결과적으로 필터의 성능이 저하될 수 있다.
큰 비선형성에서의 문제
EKF는 비선형 시스템을 선형화하여 처리하기 때문에, 시스템의 비선형성이 클수록 필터의 성능이 떨어진다. 이는 다음과 같은 상황에서 두드러진다:
- 빠르게 변화하는 시스템 동역학: 상태 전이 함수가 매우 빠르게 변화할 때, 선형 근사 오차가 커질 수 있다.
- 측정 노이즈가 큰 경우: 측정 함수에서 노이즈가 크게 포함되어 있으면, 선형 근사 오차가 누적되어 상태 추정이 부정확해질 수 있다.
- 강한 비선형성: 시스템의 상태와 제어 입력이 복잡하게 상호 작용하는 경우, 야코비으로 선형화한 모델이 실제 시스템을 잘 표현하지 못할 수 있다.
예를 들어, 각도와 같은 주기적 변수를 다루는 경우, 비선형성을 무시하고 선형화된 모델로 접근할 경우 큰 오차가 발생할 수 있다. 이러한 상황에서는 확장 칼만 필터의 근본적인 한계가 드러난다.
근사 오차의 누적
확장 칼만 필터에서 비선형 시스템을 다루는 방식은 시스템의 야코비 행렬을 계산하여 일차 근사화하는 것이다. 이 과정에서 발생하는 근사 오차는 한 번에 필터의 성능을 크게 저하시키지 않더라도, 반복적으로 적용될 경우 오차가 누적될 수 있다. 이는 특히 시간이 지남에 따라 필터의 상태 추정 성능이 점진적으로 악화되는 현상으로 나타난다. 이러한 누적 오차는 필터가 오랫동안 실행되었을 때 특히 문제를 일으킬 수 있다.
예측 단계에서의 근사 오차
예측 단계에서 상태 벡터는 다음과 같이 업데이트된다:
그러나, 실제 상태 벡터는 비선형 함수 \mathbf{f}의 정확한 결과와는 다르다. 선형 근사화된 상태 전이 함수 \mathbf{f}는 \mathbf{F}_k로 대체되며, 예측 과정에서의 누적 오차는 시간이 지날수록 커질 수 있다. 이는 특히 상태 전이가 매우 비선형일 때 더 심각하다.
업데이트 단계에서의 근사 오차
업데이트 단계에서도 마찬가지로 측정 함수 \mathbf{h}의 선형화로 인한 오차가 존재한다. 측정 업데이트는 다음과 같이 계산된다:
여기서 \mathbf{K}_k는 칼만 이득을 나타낸다. 측정 함수 \mathbf{h}(\hat{\mathbf{x}}_{k|k-1})는 선형 근사화된 형태로 사용되며, 비선형 시스템의 실제 측정값과의 차이를 정확히 반영하지 못할 수 있다. 이 역시 오차를 발생시키는 원인이다.
오차 공분산 행렬에서의 근사 오차
오차 공분산 행렬 \mathbf{P}_k는 다음과 같이 계산된다:
여기서 \mathbf{Q}_k는 과정 노이즈 공분산 행렬을 의미한다. 상태 전이 함수의 선형화로 인해 발생하는 오차는 오차 공분산 행렬의 계산에도 영향을 미치며, 시스템의 불확실성에 대한 잘못된 추정값을 제공할 수 있다. 즉, 비선형 시스템에서 정확한 오차 공분산 행렬을 유지하기 어렵고, 이는 필터의 상태 추정의 신뢰성을 감소시킨다.
야코비 행렬의 계산 복잡성
확장 칼만 필터는 비선형 함수를 처리하기 위해 매 순간마다 야코비 행렬을 계산해야 한다. 그러나, 비선형 시스템이 매우 복잡한 경우 야코비 행렬의 계산은 상당히 복잡해지며, 계산 비용이 증가한다. 특히 고차원 시스템에서는 야코비 행렬의 계산이 실시간 응용에서 큰 부담이 될 수 있다.
고차원 시스템에서의 문제
시스템의 차원이 높을수록 야코비 행렬의 계산이 더 어려워진다. 예를 들어, 상태 벡터의 차원이 n인 경우, 야코비 행렬은 n \times n 크기의 행렬로, 각 성분은 비선형 함수의 부분 도함수를 계산해야 한다. 이러한 도함수는 수치적으로 계산되거나, 시스템에 대한 수학적 분석을 통해 유도되어야 한다. 복잡한 시스템에서는 이러한 도함수를 구하는 과정 자체가 어려울 수 있으며, 계산 속도도 느려질 수 있다.
또한, 수치적 계산 방식으로 야코비 행렬을 계산할 경우 수치적 불안정성의 문제가 발생할 수 있다. 이는 작은 수치 오차가 야코비 행렬의 정확성에 영향을 미쳐, 필터의 전체 성능에 부정적인 영향을 미칠 수 있다.