ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [칼만 필터는 어려워] 07. 칼만 필터 시스템 모델
    항법연구실/칼만필터 2026. 3. 10. 11:46

    * 칼만필터는 어렵지 않아(지은이 김성필) 책을 보고 학습한 내용을 정리한 글입니다. 

     

    앞서 칼만 필터 알고리즘에 대해 다루며, '칼만 필터는 사실 시스템 모델에 달려있다고 해도 과언이 아니다'라고 표현할만큼 시스템 모델은 중요하다. 그런데 시스템 모델의 의미가 무엇인지부터 짚고 넘어가야한다. 특히 기계, 제어 관련 전공이 아닌 필자는 이 시스템 모델이라는 개념을 이해하기가 어려웠다. 특히 시스템 모델을 이해하기 위해서는 선형 시스템, 상태 모델이라는 개념을 이해하고 있어야한다. (상태 모델의 개념을 이해하고 관련 수식의 의미를 읽어낼 수 있어야하는 정도의 이해력이 필요하다.) 

     

     

    선형 시스템(Linear System)과 상태 모델(State-space Model)

    ❚  선형 시스템: 예측 가능한 직선 

    선형 시스템은 입력과 출력의 관계가 직선(Line)처럼 명확한 시스템을 의미한다. 예를 들어 원인 a의 결과 A가 나오고, 원인 b의 결과 B가 나오면 a,b를 동시에 주었을 때 결과는 반드시 A+B가 되어야한다. 또한 a가 2a가 되면 결과도 정확히 2A가 된다. 행렬 연산에서도 이러한 선형적 관계가 성립된다. 

     

    칼만 필터에서 등장하는 행렬 연산을 통해 선형 시스템을 이해할 수 있다. 

     

    칼만 필터(기본형)는 '이 세상의 물리 법칙은 행렬 곱셈으로 설명 가능하다'는 가정 하에 만들어졌다. 시스템이 선형이면 아무리 복잡한 위치, 속도 관계도 A라는 행렬 하나에 다 몰아넣고 곱해서 다음 위치를 예측할 수 있는 계산의 단순함을 이용하기 위해서이다. 

     

    ❚  상태 모델: 현재를 정의하는 최소한의 정보 

    상태 모델은 시스템의 현재 상황을 상태 변수(State Variable)라는 숫자들의 묶음으로 정의하고 이 변수들이 시간에 따라 어떻게 변하는지 추적하는 방식이다.

     

    ① 상태 변수(x): 최소한의 정보

    어떤 물체의 미래를 예측하기 위해 현재 알아야하는 핵심적인 정보의 세트이다. 예를 들어, 인공위성의 다음 위치를 예측하기 위해 [현재 위치]만으로는 부족하다. [위치, 속도 ... (그 외의 궤도 요소)]등을 알아야한다. 이때 이 묶음을 상태 벡터 x라고 부른다. 

     

    ② 상태 천이 방정식: 미래를 그리는 공식 

     

    앞서 말한 인공위성의 다음 위치를 예측하기 위한 상태 천이 방정식을 나타낸 것이다. 

     

     


    시스템 모델 

    시스템 모델을 가장 간단하게 표현해보자면 '수학적 법칙'이라고 말할 수 있다. 결국 칼만 필터 또한 실생활에 있는 문제를 가져와 예측하고 추정하여 실제와 가깝게 수학적으로 추정해나가는 것이다. 그리고 이 '수학적'을 담당하는 것이 시스템 모델이다. 사실상 칼만 필터 또한 알고리즘을 따르는 하나의 체계 개념이므로 수학적 모델을 구축하는 것이 관건이다. 

     

    당연한 말이지만 한번 더 정리해보자면, 시스템 모델은 필터 종류에 따라 정해진 것이 아니라 무엇을 추적하느냐(용도)에 따라 설계자가 직접 만드는 것이다. 예를 들어 자동차를 추적한다면 자동차의 물리 법칙을 모델로 쓰고, 주가를 예측한다면 경제 지표의 변화 규칙을 모델로 사용한다. 

     

    칼만 필터라는 예측, 추정 과정을 거치는 알고리즘은 이미 정해진 수학적 틀이고, 이 틀 안에 어떤 지식(물리 법칩)을 집어넣는가가 바로 시스템 모델의 핵심이다. 칼만 필터에서 사용하는 선형 상태 모델과 시스템 모델을 살펴보자. 

     

     

    식 1


    식 2

     

    상태 변수, (n x 1)열벡터 
    측정값, (m x 1)열 벡터 
    시스템 행렬, (n x n) 행렬 
    출력 행렬, (m x n) 행렬 
    시스템 잡음, (n x 1) 열벡터 
    측정 잡음, (m x 1) 열벡터  

     

     

    여기서 n x 1 형식의 행렬은 모두 열벡터라고 표현한다. 칼만 필터에서 위치, 속도 같은 여러 '상태'를 하나의 벡터에 순서대로 담아두기 때문에 '벡터'라고 표현한다. 

     

    상태 변수는 거리, 속도, 무게 등 앞으로 추정하고자 하는 물리적인 변수의 모음이라고 이해할 수 있다. 

    또한 잡음은 칼만 필터에서 중요한 역할을 한다. 그리고 모든 잡음을 백색 잡음(모든 주파수에서 동일한 세기로 발생하는 무작위적 잡음)으로 w는 시스템에 유입되어 상태 변수에 영향을 주는 잡음, v는 센서에서 유입되는 측정 잡음을 뜻한다. 

    A는 시스템의 운동 방정식, 즉 실제 모델을 담고 있는 모든 성분이 상수인 행렬이다. 따라서 A는 시간에 따라 시스템이 어떻게 움직이는가를 나타낸다. H는 측정값과 상태변수의 관계를 나타내어 측정값에 상태 변수가 어떻게 반영되어 있는지를 이 행렬이 규정한다. 

     

     식 1, 2은 상태 공간 모델으로 시스템의 운동 방정식을 상태 변수 벡터에 대한 1차 미분 방정식으로 표현한 모델을 의미한다. 쉽게 풀어서 말해보자면, 복잡한 고차 미분 방정식을 컴퓨터가 풀기 쉬운 1차 행렬 방정식으로 쪼갠 모델이다. 

     

    이게 왜 '상태 공간' 모델이냐면 .. 시스템의 현재 상황을 결정하는 최소한의 변수들을 모은 것이 바로 상태 변수이다. 이 변수들이 좌표축이 되는 가상의 공간을 상태 공간이라고 하고, 시스템이 변화한다는 것은 이 공간 안에서 점(벡터)이 이동하는 것을 의미한다. 

     

     

    그럼 앞서 봤던 칼만 필터 알고리즘에서 시스템 모델과 관련 있는 부분 2군데를 뜯어보자 

     

    첫 번째는 I단계에 있는 추정값 예측식이다. 

    7.3

    시스템의 미래를 결정하는 식으로 현재 상태(t=k)에 물리 법칙(A)를 적용하면 다음 상태(t = k+1)가 된다. 그러나 불확실성이 존재하는 것을 잊지 말자. 

     

    두 번째는 III단계, 추정값 계산에 포함되어 있다. bold체로 시스템 모델 식을 표시하였다. 

    7.4

    이 항은 시스템 모델 7.2식과 관련이 있다. 최종 추정값을 계산할 때, 실제값과 예측값의 차이(잔차)를 나타낸다. 

    7.3, 7.4식은 잡음항이 빠져있는 것만 다를 뿐, 7.1, 7.2 식과 연관되어 있음을 한 눈에 파악할 수 있다. 

     

     

     

    잡음의 공분산 

    잡음 신호는 다음 값을 예측할 수 없고 온전히 경험에 따라(=통계적으로) 추정만 가능하다. 그래서 잡음을 표현하기 위해 통계학이 필요하다. 칼만 필터에서 잡음은 평균이 0인 정규 분포를 따른다는 가정을 가지므로 잡음의 분산만 알면 된다. 잡음의 공분산은 한마디로 우리가 다루는 오차가 얼마나 믿을 수 있는지, 없는지를 나타내는 수치이다. 크게 시스템 자체의 불안정성을 나타내는 Q와 센서의 부정확함을 나타내는 R로 나뉜다. 

     

     

    Q: w의 공분산 행렬, ( n x n ) 대각행렬 

    R: v의 공분산 행렬, ( m x m) 대각행렬 

     

     

    ❚ 시스템 잡음 공분산(Q) 

    우리가 세운 물리 법칙인 시스템 모델이 현실과 얼마나 차이가 날 수 있는지를 의미한다.

    예를 들어 내 계산으로는 위성이 10m를 가야하는데, 태양풍, 중력 등의 외력으로 인해 조금 더 멀리 가거나 덜 갈 수 있다라는 모델의 불확실성을 의미한다. 

    Q가 커질수록 칼만 이득은 커지므로 측정값이 추정값에 반영되는 비율은 커진다.  

     

    ❚ 측정 잡음 공분산(R) 

    사용중인 센서에서 발생하는 데이터에 섞인 노이즈의 크기이다. 예를 들어 센서가 10.1m라고 알려줬지만, 해당 센서는 0.5m정도는 왔다갔다한다는 센서의 오차 범위를 보여준다. R이 크면 센서로 측정한 측정값의 신뢰도가 떨어진다. 그렇기에 예측값을 더 신뢰하게 되고, R이 작으면 센서의 정확도가 높아지므로 측정값을 그대로 따라간다. 반응은 빠르지만 노이즈까지 그대로 출력된다. 

    R이 커질수록 칼만 이득은 작아지므로 측정값이 추정값에 반영되는 비율이 작아진다. 

     

     

    결국 칼만 필터에서 이 두 공분산의 상대적인 비율을 통해 예측값 vs 측정값 중 어떤 값에 힘을 실을지가 정해진다. 칼만 이득값이 정해지는 요인이 바로 이 잡음의 공분산이다. 물론 행렬 Q,R은 잡음의 특성을 정확히 반영하여 구성하는 것이 정석이지만, 사실 오차를 정확히 반영하기 쉽지 않다(사실상 불가능하다!). 따라서 해당 시스템에 대한 경험과 지식을 바탕으로 두 행렬을 칼만 필터의 설계 인자로 보고 시행 착오 과정을 통해 보정하며 적절한 값을 찾아야한다는 것이다. 

     

     

     

    그럼 이 적절한 값을 찾기 위한 적절한 기준을 살펴보자. 칼만 필터 알고리즘을 다시 보면 II 칼만 이득 계산식이 나온다. 이 칼만 이득 계산식에서 행렬 R이 등장한다. 

     

    해당 식을 스칼라라고 가정하고 -1제곱을 분모로 내려주면 

     

    R과 칼만 필터의 관계를 정리할 수 있다. R이 커지면 칼만 이득은 작아진다. 그럼 추정 값은 어떻게 될까 ? 5장에서 배웠던 식을 가져왔다. 

     

    칼만 이득이 작아지면 추정값 계산에서 측정값에 반영되는 비율이 작아지는 반면, 예측값에 반영되는 비율이 커진다. 외부 영향을 줄이고 민감도를 줄이지만 잡음 제거 특성을 뛰어나게 하고 싶다면 행렬 R을 키우면 된다.

     

     

    그럼 행렬 Q는 어떨까? 행렬 Q는 오차 공분산의 예측값 계산 식에 등장한다. 

     

    행렬 Q가 커지면 P(오차 공분산)이 커진다. 칼만 이득 계산식에서 P가 커지면 어떻게 되는지를 알아보기 위해, 분자에 대해 모든 인수를 나누어주었다. 

     

    그럼 P가 커질 때, 칼만 이득 K 또한 커지는 것을 알 수 있다. 따라서 추정값은 측정값을 더 많이 반영하므로 측정값의 영향을 덜 받고 완만한 결과를 얻기 위해서는 Q값을 줄여야한다. (R과 반대이다) 

     

     

    행렬 Q와 R의 의미를 생각해보면 사실상 당연한 결과이다. Q는 시스템 잡음 공분산, 즉 모델의 신뢰도를 나타내며 R은 측정 잡음 공분산, 즉 센서의 신뢰도를 나타내는 것이다. 분산이 작으면 평균과 현재 추정값의 차이가 작다는 것을 의미하므로 Q,R이 작을 때 각각의 성능을 잘 사용할 수 있다. Q가 작으면 시스템의 신뢰도가 좋으므로 예측값에 더 큰 비중을 두고, R이 작으면 센서의 신뢰도가 좋으므로 측정값에 큰 비중을 두는 것이다. 

     


    아직 시스템 모델을 완전히 이해하기는 어렵다. 그러나 칼만 필터라는 수학적 체계에서 사용하는 A,H,Q,R을 어떻게 정의하는가에 따라 우리가 원하는 대상을 실제와 유사하게 모사하고 추정할 수 있다. 그렇기에 이 행렬들을 설계하는 과정이 칼만 필터의 성능을 결정하는 핵심이 된다. 

Designed by Tistory.