Kalman filtresi, önceki ve şu anki verileri kullanarak sonraki verilerin tahmin edilmesidir.
Filtre iki kısımdan oluşur. Tahmin etme ve düzeltme.
Tahmin Etme:
Çıkışın ve Hata Kovaryasyonunun tahmini yapılır.
x(k) = x(k-1) + u(k)
e(k) = e(k-1) + Q
x(k): çıkış tahmini değeri
x(k-1): önceki durumun çıkış değeri
u(k): kontrol sinyali
e(k): hata kovaryasyon tahmini değeri
e(k-1): önceki durumun hata kovaryasyonu
Q: sistemden kaynaklı hata
Düzeltme:
Düzeltme adımında, önceki durumun verilerine göre kalman kazancı hesaplanır. Kalman kazancına göre, Çıkış ve Hata kovaryasyon değerinde düzeltme yapılır.
Kk = e(k) / ( e(k) + R )
x(k) = x(k) + Kk * ( z(k) - x(k) )
e(k) = ( 1 - Kk ) * e(k)
Kk: Kalman Kazancı
R: Ölçümden kaynaklı hata
z(k): Sensörden ölçülen değer
x(k): Hesaplanan kalman çıkışı
e(k): Hesaplanan hata kovaryasyonu
Sistem modelinin doğruluğunun arttılması ve ölçüm hatalarının azaltılması ile kalman filtresinin sonuçları iyileşir.
C dili için örnek: