[칼만 필터는 어렵지 않아] 05 추정 과정

짜장범벅·2022년 10월 18일

Chapter 05 추정 과정

이 장에서는 추정값 계산식을 저주파 통과 필터와 관련지어 설명한다.

5.1 추정값 계산

x^k=x^k+Kk(zkHx^k)\hat{x}_k=\hat{x}_k^-+K_k(z_k-H\hat{x}_k^-)

여기서 zkz_k는 측정값을 뜻하고 x^k\hat{x}_k^-는 예측값을 의미한다.

위 수식을 다시 정리하면 아래와 같다.

x^k=x^k+Kk(zkHx^k)\hat{x}_k=\hat{x}_k^-+K_k(z_k-H\hat{x}_k^-)
=x^k+KkzkKkHx^k=\hat{x}_k^-+K_kz_k-K_kH\hat{x}_k^-
=(IKkH)x^k+Kkzk=(I-K_kH)\hat{x}_k^-+K_kz_k

여기서 HH에 identity matrix를 가정하면 위 식은 아래와 같이 계산된다.

x^k=(IKk)x^k+Kkzk\hat{x}_k=(I-K_k)\hat{x}_k^-+K_kz_k

위 수식은 1차 저주파 통과 필터와 유사하다. 1차 저주파 통과 필터는 직전 추정값과 측정값에 가중치를 부여한 후 더해서 추정값을 계산한다. 마찬가지로 칼만 필터도 예측값인 x^k\hat{x}_k^-와 측정값인 zkz_k에 적절한 가중치를 곱한다음 더해서 최종 추정값을 계산한다.

5.2 변하는 가중치

x^k=x^k+Kk(zkHx^k)\hat{x}_k=\hat{x}_k^-+K_k(z_k-H\hat{x}_k^-)

위 수식을 계산하기 위해 예측값 x^k\hat{x}_k^-와 새로운 측정값 zkz_k가 있어야 한다. 또한 칼만 이득인 KkK_k를 알아야 한다. 칼만 이득은 아래와 같이 계산한다.

Kk=PkHt(HPkHT+R)1K_k=P_k^-H^t(HP_k^-H^T+R)^{-1}

1차 저주파 통과 필터에서는 추정값에 사용되는 가중치인 α\alpha가 상수였다. 반면 칼만 필터는 알고리즘을 반복하면서 칼만 이득 KkK_k를 새로 계산한다. 즉, 추정값 계산식의 가중치를 매번 다시 조정한다.

5.3 오차 공분산 계산

오차 공분산 계산식은 아래와 같다.

Pk=PkKkHPkP_k=P_k^--K_kHP_k^-

오차 공분산은 추정값이 정확한지 아닌지를 오차 공분산으로 판단할 수 있다. 다시 말해 오차 공분산은 칼만 필터의 추정값이 실제 참값과 얼마나 차이가 나는지를 보여주는 척도가 된다. 즉, PkP_k가 크면 추정 오차도 크고, 작으면 추정 오차도 작다. 이런 이유로 칼만 필터를 함수로 구현할 때는 추정값과 함께 오차 공분산도 출력으로 내보내는 경우가 종종 있다.

xkx_k와 추정값, 오차 공분산 사이에는 다음과 같은 관계가 성립한다.

xkN(x^k,Pk)x_k\sim N(\hat{x}_k,P_k)

즉, 변수 xkx_k는 평균이 x^k\hat{x}_k이고 공분산이 PkP_k인 정규 분포를 따른다는 뜻이다. 따라서 앞서 말한 PkP_k가 크면 추정 오차가 크게 된다.

profile
큰일날 사람

0개의 댓글