[칼만 필터는 어렵지 않아] 07 시스템 모델

짜장범벅·2022년 10월 18일

Chapter 07 시스템 모델

7.1 시스템 모델

칼만 필터는 다음과 같은 선형 상태 모델을 대상으로 한다.
xk+1=Axk+wkx_{k+1}=Ax_k+w_k
zk=Hxk+vkz_k=Hx_k+v_k

여기서 각 변수는 다음과 같다.

  1. xk(n×1)x_k(n\times1): 상태 변수
    • 거리, 속도, 무게 등 우리가 관심있는 물리적인 변수
  2. zk(m×1)z_k(m\times1): 측정값
  3. A(n×n)A(n\times n): 시스템 행렬
    • 시간에 따라 시스템이 어떻게 움직이는지 나타내는 행렬
    • 시스템의 운동 방정식을 담고 있음
  4. H(m×n)H(m\times n): 출력 행렬
    • 측정값과 상대 변수의 관계를 나타냄
  5. wk(n×1)w_k(n\times1): 시스템 잡음
    • 시스템에 유입되어 있는 상태 변수에 영향을 주는 잡음
    • White Noise(모든 주파수 성분을 다 갖고 있는 Noise)
  6. vk(m×1)v_k(m\times 1): 측정 잡음
    • 센서에서 유입되는 측정 잡음
    • White Noise(모든 주파수 성분을 다 갖고 있는 Noise)

위 수식과 같이 시스템의 운동 방정식을 상태 변수 벡터에 대해 1차 차분 방정식으로 표현한 모델을 상태 공간 모델이라고 한다.

7.2 잡음의 공분산

잡음은 순전히 통계적 추정만 가능하다. 칼만 필터는 잡음은 평균이 0인 정규분포를 따른다고 가정한다. 따라서 분산만 알면 된다. 그렇기 때문에 상태 모델의 잡음은 다음과 같이 공분산 행렬로 표시된다.

  1. Q(In)Q(I_n): wkw_k의 공분산 행렬
  2. R(Im)R(I_m): vkv_k의 공분산 행렬

칼만 필터에서는 두 공분산 행렬을 설계 인자로 보고 시행착오를 통해 보정하면서 적절한 값을 찾는다.

Kk=PkHt(HPkHT+R)1K_k=P_k^-H^t(HP_k^-H^T+R)^{-1}
x^k=x^k+Kk(zkHx^k)\hat{x}_k=\hat{x}_k^-+K_k(z_k-H\hat{x}_k^-)

위 두 식에서 잡음이 커지면(분산이 커지면), 공분산 행렬 RR이 커지고, 칼만 이득 KkK_k은 줄어들고, 예측값의 반영 비율은 커진다. 즉, 외부 측정값의 영향을 덜 받게 되어 추정값의 변화가 줄어든다. 따라서 측정값의 영향을 덜 받고 완만한 추정값을 얻으려면 RR을 키우면 된다.

행렬 QQ는 아래의 오차 공분산 계산식에 등장한다.

Pk=APk1AT+QP_k^-=AP_{k-1}A^T+Q

행렬 QQ가 커지면 오차 공분산 예측값 PkP_k^-도 커지고, 칼만 이득 KkK_k도 커지고, 측정값의 반영 비율이 커진다. 따라서 측정값의 영향을 덜 받고 변화가 완만한 추정값을 얻고 싶다면 행렬 QQ를 줄여야 한다.

profile
큰일날 사람

0개의 댓글