[Control] 칼만 필터
책 '칼만 필터는 어렵지 않아'의 두 번째 장은 칼만 필터 기초입니다. 이 장에서는 선형 칼만 필터의 알고리즘에 대해 설명하고 있습니다.
Ch 04 칼만 필터
칼만 필터의 이론은 수학, 통계, 제어에 대한 배경 지식을 필요로 합니다. 하지만 칼만 필터의 구현은 공식화되어 있어 어렵지 않습니다. 이 책에서는 이론보다는 적용에 초점을 맞추었습니다.
4.1 칼만 필터 알고리즘
4.2 칼만 필터 알고리즘의 계산 과정
칼만필터는 측정값을 이용하여 추정값을 내기 위해 사용됩니다. 이때 시스템 모델은 칼만필터에서 가정하는 값이 아닌 적용하는 시스템에 따라 엔지니어가 설계해야 하는 부분입니다. 시스템 모델이 실제와 얼마나 유사한지가 칼만필터의 성능에 큰 영향을 미칩니다.
칼만 필터를 의미를 기준으로 나누면 예측과정, 측정과정 두 개로 나눌 수 있습니다.
- 예측과정: I 단계가 예측과정으로 직전 추정값( x ̂_(k-1))과 오차 공분산(P_(k-1))를 입력받아 예측값 (x ̂_k^-, P_k^-)을 반환합니다.
- 추정과정: II, III, IV 단계가 여기에 해당하고, 예측값 (x ̂_k^-, P_k^-)과 측정값(z_k)을 입력받아 추정값과 오차공분산을 반환합니다.
Ch 05 추정과정
5.1 추정값 계산 & 5.2 변하는 가중치
III 단계 추정값 계산 식을 보면 1차 저주파 통과 필터와 비슷한 형태를 하고 있습니다.
이 식에 따르면 K의 크기에 따라 측정값이 추정값에 반영되는 정도가 결정됩니다. 칼만 필터는 K_k가 매 스텝마다 업데이트되는 것이 특징입니다.
5.3 오차 공분산 계산
칼만 필터에서는 IV 단계 오차 공분산 계산식을 통해 오차 공분산을 계산합니다.
참값 x_k는 평균이 x^_k이고, 공분산이 P_k인 정규분포를 따릅니다. 그러므로 오차 공분산은 칼만필터 추정값이 실제 참값과 얼마나 차이가 나는지를 보여주는 척도가 됩니다. 그러므로 P_k의 크기에 따라 오차의 크기를 유추할 수 있어 검증 과정에서 P_k를 확인하기도 합니다.
Ch 06 예측 과정
6.1 예측값 계산 & 6.2 예측과 추정의 차이
예측값은 위 첨자 -(빼기)를 붙여 표시합니다.
이전에 배운 평균, 이동평균, 저주파 통과 필터는 이전 추정 값을 이용해 다음 추정 값을 계산합니다. 그러나 칼만 필터는 이전 추정값을 이용해 예측값을 계산하고, 예측값을 통해 다음 추정값을 계산한다는 특징이 있습니다. 이때 예측값을 사전 추정값(priori estimate), 추정값을 사후 추정값(posteriori estimate)라고도 합니다.
6.3 추정값 계산식의 재해석
위 식을 보면 '칼만필터는 측정값의 예측 오차로 예측값을 적절히 보정하고, 최종 추정값 계산에 반영한다'라고 해석할 수 있습니다. 이때 칼만 이득은 예측값을 얼마나 보정할지 결정하는 인자가 됩니다.
그러므로 칼만 필터의 성능에 가장 큰 영향을 주는 요소는 예측값의 정확성이고, 정확한 시스템 모델을 구성하는 것이 중요합니다.
Ch 07 시스템 모델
시스템 모델은 우리가 다루는 문제를 수학적으로 나타낸 것입니다. 선형 시스템(linear system)과 상태 모델(state model)에 대한 이해가 필요합니다.
7.1 시스템 모델
칼만 필터에서는 선형 시스템을 대상으로 합니다. 선형 시스템을 State space model로 나타내면 위 식으로 나타낼 수 있습니다. 우리가 대상으로 하는 시스템을 위 식에 맞춰 표현하는 것이 중요합니다. 주로 기구학(Kinematics) 또는 동역학(Dymanics)에 기반하여 모델을 설계합니다.
7.2 잡음의 공분산
칼만 필터에서는 잡음(noise)이 평균이 0인 정규분포를 따른다고 가정합니다. 이때 Q와 R은 튜닝 파라미터로 노이즈는 공분산 행렬을 의미합니다.
- Q: 시스템 노이즈(w_k)의 공분산 행렬 (nxn) 대각 행렬
- R: 측정 노이즈(v_k)의 공분산 행렬 (mxm) 대각 행렬
R이 추정값에 미치는 영향
R이 커짐 -> K_k가 작아짐 -> 측정값(z_k)이 추정값에 적게 반영됨.
R이 측정 노이즈의 분산을 의미하므로 R이 커지면 측정값이 부정확하고 가정하는 것이 됩니다. 그러므로 측정값이 부정확할 때는 측정값을 적게 반영하고 예측값을 더 많이 반영하게 됩니다.
Q가 추정값에 미치는 영향
Q가 커짐 -> P-_k가 커짐 -> K_k가 커짐 -> 예측값(x^_k)이 추정값에 적게 반영됨.
Q가 시스템 노이즈의 분산을 의미하므로 Q가 커지면 예측값이 부정확하고 가정하는 것이 됩니다. 그러므로 예측값이 부정확할 때는 측정값을 더 많이 반영하고, 예측값을 적게 반영하게 됩니다.