Kalman Filtresi MatLab Uygulama Kodları

2.569 Kişi Okudu

Kalman filtresini matlab üzerinde geliştirme daha hızlı bir şekilde anlayıp çözümlemek için yapılmış bir çalışmadır. Matlab üzerinde komutları değiştirip debug yapıp bu başarılı filtrenin nasıl çalıştığı anlamak için yapılmıştır. Kodlar tamamen C diline hızlı bir şekilde uyarlanabilir şekilde tasarlanmıştır.

Yukarıdaki şekilde mavi olan renk kalman filtresine girecek olan veriler, yeşil renkte bulunan grafik ise kalman filtresinden çıkan veriler.

Kalman katsayısı 1-0 arasında değiştirilerek filtrenin özelliği ayarlanabilir.

Yararlandığım kaynaklar;

1-)  İbrahim Çayır OĞLU – Kalman Filtresi ve Programlama 2012

2-)  Why You Should Use The Kalman Filter Tutorial – Pokemon Example

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Hazırlayan: Ahmet Yasin CİVAN
% Tarih     : 03.03.2017
% Yer       : Afyon Karahisar / Uydukent
%       www.ahmetyasincivan.com
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear
clc

hata_kovaryansi = 1;
kalman_katsayisi = 0.1;
onceki_kalman = 0;

olculen_veri =  [0.39 0.50 0.48 0.29 0.25 0.32 0.34 0.48 0.41 0 0.10 0.20 1 1.5 1.7 0.39 0.50 0.48 0.29 0.25 0.32 0.34 ]
uzunluk = length(olculen_veri)

kalman_tahmin_sakla = [1:1:uzunluk]


a=0;
for y = [1:uzunluk]

a=a+1;    
kalman_kazanci = hata_kovaryansi/(hata_kovaryansi+ kalman_katsayisi);
kalman_tahmin  = onceki_kalman + (kalman_kazanci*(olculen_veri(a)-onceki_kalman));
hata_kovaryansi = (1-kalman_kazanci)*hata_kovaryansi;
onceki_kalman = kalman_tahmin;

kalman_tahmin_sakla(a) = kalman_tahmin;

end


plot ( 1:uzunluk ,olculen_veri ,1:uzunluk , kalman_tahmin_sakla )

Yayınlayan

Ahmet Yasin CİVAN

Mekatronik Mühendisi, Gömülü Yazılım Geliştiricisi.