Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Kontrol Teorisi - Matematiği => Konuyu başlatan: mesutyanik - 09 Nisan 2016, 16:21:09

Başlık: Kalman Filtresi
Gönderen: mesutyanik - 09 Nisan 2016, 16:21:09
Arkadaşlar merhabalar;

Sinyal işleme üzerine çalışıyorum elimde hareket halinde tartım yapan bir sistemin load cellinden alınmış olan gürültülü bir veri var. Ben bu gürültülü veriyi adaptif filtreler ile süzmek istiyorum. Adaptif filtre çeşidi olarak önceliğim kalman filtresi ama diğer adaptif filtreleme algoritmaları da benim işimi görebilir. Yardımlarınızı bekliyorum.
Başlık: Ynt: Kalman Filtresi
Gönderen: Emre_Tuncay_ - 09 Nisan 2016, 18:10:56
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx (http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx)
burada kalman ile alakalı hesaplamalar var ben ivme sensöründe kullanmıştım
Başlık: Ynt: Kalman Filtresi
Gönderen: zengdai - 10 Nisan 2016, 13:02:17
//kodlar pic ccs ile yazıldı
//ham_deger=sensörden aldığın ham değer
//formülsel ifadelerde geçen A ve H gibi değerler 1 alındı.
//r değeri yine tahmini bir değer atıyorsun 0.5 almıştım. değişitirip etkisini görebilirsin
//en sonda güncellediğin pk ve xk değerlerini bir sonraki aşamada kullanmak için xk[0],pk[0] ya atıyorsun
// programın başında pk[0]=10000;xk[0]=200; değerlerini verdim. Xk sensörün ilk çıktısı gibi farzet,
//değişitirip  etkisini gör. Çok iyi hatırlamıyorum


pk[0]=pk[0]+0.0004;//0.0004 matematiksel formüllerde ifade edilen Q değeridir.Tahmini değerdir. Değiştirip etkisini //görebilirsin.
kalmank=(float)((pk[0])/(pk[0]+r));//kalmank kalman katsayısı oluyor
xk[1]=(float)xk[0]+(float)kalmank*(float)((float)ham_deger-(float)xk[0]);//çıktının filtreli hali
pk[1]=(1-kalmank)*pk[0];//bir sonrakinde kullanmak için güncelliyor pk yı
pk[0]=pk[1];
xk[0]=xk[1];

//Allah muvaffak etsin. Dua etmeyi unutma :)
Başlık: Ynt: Kalman Filtresi
Gönderen: mesutyanik - 10 Nisan 2016, 18:02:26
Çok teşekkür ederim kafama takılan bir nokta var ben buradaki q ve r değerlerinin matematiksel olarak nasıl hesaplanacağını bilmek istiyorum. Çünkü onlar olmayınce filtre düzgün çalışmıyor. Onların nasıl hesaplandığını da açıklamam gerekiyor.
Başlık: Ynt: Kalman Filtresi
Gönderen: maodon - 10 Nisan 2016, 23:17:48
bant geçirip  o bantı yukseltmek istiyorsak nasıl olur
Başlık: Ynt: Kalman Filtresi
Gönderen: zengdai - 10 Nisan 2016, 23:20:40
http://home.wlu.edu/~levys/kalman_tutorial/ (http://home.wlu.edu/~levys/kalman_tutorial/)
burda A dan z ye hepsini anlatıyor ben burdan öğrenmiştim. hatta interaktif grafikler var. değerleri değiştirip etkilerini grafik üstünde görebilirsin. tek sensör filtreleme olarak kullanacaksan q ve r değerlerini rastgele atadığını neredeyse iyi hatırlıyorum.
http://www.ibrahimcayiroglu.com/Dokumanlar/Makale_BilgiPaylasim/(1-2012)-Kalman_Filtresi_Ve_Bir_Programlama_Ornegi-Ibrahim_CAYIROGLU.pdf (http://www.ibrahimcayiroglu.com/Dokumanlar/Makale_BilgiPaylasim/(1-2012)-Kalman_Filtresi_Ve_Bir_Programlama_Ornegi-Ibrahim_CAYIROGLU.pdf)
burda ise şöyle bir ifade kullanmış "Adım 2'deki denklemlerde ise en zor belirlenecek katsayılar R ve Q dur. R'yi bulmak daha kolaydır. Çünkü biz genellikle etraftaki gürültüden çoğunlakla eminizdir. Fakat Q değerini ise ortaya çıkarmak o kadar kolay değildir. Ve bu aşamada özel bir metod veremiyoruz. "


şu yayınada bak isytersen Filter Parameters and Tuning başlığı altında
https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf (https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf)
tuning gibi bir ifade kullanıyor