<이 포스팅은 Matlab이 제공하는 Understanding Kalman Filter을 번역 및 요약한 자료입니다. 출처는 https://www.youtube.com/watch?v=4OerJmPpkRg 입니다.>
Understanding Kalman Filters, Part 2: State Observers
상태 추정
- 우리가 직접적으로 측정하지 못하는 상태를 추정하는 것 말한다.
- 추정 상태는 수식에서 문자 위에 hat을 씌워서 표현한다.
###예시1
- 지구에서 달으로 가기 위해 로켓 엔진의 내부 온도를 알아야 한다.
- 내부 온도는 로켓에 얼마나 연료를 주입해야 하는지 알려주기 때문이다.
- 내부 온도를 직접적으로 측정할 수는 없고, 대신 외부 온도는 측정 가능하다.
- 즉, 우리는 주입 연료량과 외부 온도를 알 수 있다.
- 내부 온도를 추정하기 위해서는 더 많은 정보가 필요하다.
- 우리가 연료 주입량과 외부 온도와의 수학적 관계를 안다면, 주입한 연료에 대한 외부 온도의 추정 값을 구할 수 있다.
- 수학적 모델이 엔진 내부 온도를 포함한다면, 내부 온도의 추정값 또한 알 수 있다.
- 그러나 수학적 모델은 실제 모델을 근사한 것이기 때문에, 불확실성(uncertainty)에 따른 오차가 발생한다.
- 우리의 목표는 실제 외부 온도와 외부 온도의 추정값의 오차를 최소화하는 것이다.
- 이는 우리의 모델을 실제에 수렴하게 만들기 때문이다.
- 모델이 실제와 수렴한다면, 내부 온도의 추정값과 실제 내부 온도값 또한 수렴할 것이다.
- 위 그림의 feedback control system에서, 우리는 controller K를 이용, 외부 온도와 그 추정값의 에러를 0으로 만들 것이다.
- 왼쪽 그림의 파란색 부분이 상태 추정기이다.
- controller K로 폐루프를 만듦으로써, 우리는 외부온도와 그 추정값의 오차를 0으로 만들 것이고, 이는 내부 온도 추정값을 참값에 수렴하게 한다.
정리하면,
- 엔진의 내부 온도를 직접적으로 측정할 수는 없다.
- 하지만 얼마나 연료를 주입하는지는 알 수 있으므로, 수학적 모델을 사용해 출력(외부온도)을 추정할 수 있다.
- 추정 출력과 실제 측정 값을 비교할 수 있다.
- 문제는 출력과 그 추정 값을 최소화해주는 controller K를 구하는 것이다.
- 위 그림은 상태 추정기를 수학적으로 표현한 식이다.
- 목표는 x hat을 x로 수렴하게 만드는 것이다.
- 양 변을 적분해서, exponential 함수로 만들 수 있다.
- (A-KC)가 음수 값이라면 시간이 갈수록 e_obs가 0으로 수렴한다.
- e_obs가 0으로 수렴하면, 우리가 목표한대로 x hat이 x로 수렴하게 된다.
- 위 식에서 우리는 K를 조정함으로서 error 함수의 decay rate를 제어할 수 있다.
- 만약 decay rate가 A 행렬에만 연관된다면(K가 없다면), 모델의 불확실성으로 인해 A를 정확히 알지 못할 때, error가 얼마나 빨리 사라질지를 제어할 수 없다.
- 따라서 feedback 제어기는 이 수식에 대한 더 많은 제어권을 부여하며, 에러가 0으로 빠르게 수렴하게 할 수 있다.
- 아까 말했듯이, 에러가 0으로 수렴한다는 건 x hat이 참 값으로 수렴한다는 것과 동치이다.
- gain K를 구하는 최적의 방법은 칼만필터를 이용하는 것이다.
'엔지니어' 카테고리의 다른 글
[공유] 영상처리 엔지니어 면접 질문 모음 (1) | 2021.08.18 |
---|---|
[칼만필터] 4. 최적 상태 추정 알고리즘(칼만필터 알고리즘) (0) | 2020.05.24 |
[칼만필터]] 3. 최적 상태 추정기(Optimal State Estimator) (0) | 2020.05.24 |
[칼만필터] 1. 칼만필터란 무엇인가? (0) | 2020.05.24 |