Unutulan Geçmiş

    Tarihe Kayıt Düşmesi açısından, saygıdeğer Melih Karakelle tarafından bir forum sitesinde (www.pistbasi.com) önerdiği bir yöntemi aktarmak istiyorum. Yöntem KALMAN filtresi ile alakalı bir fikir alışverişi sonrasında vermiştir. Birkaç yerde kullandığım başarılı bir yöntemdir.
Benim yöntem çok basit, bilgisayar programcısının can simididir unutulan değişken filtresi, hayat boyu binlerce yerde kullanmışımdır heralde. 
Yöntem şöyle; 
int X[10]; // bu array değişkenimiz olsun
yeniX = sensör_verisi; // bu da okuduğumuz değer olsun
for (i=0;i<9;i++) // 9 kere döngüyü döndürelim{
{
    j = 8 - i; //8 den 0 e doğru geriye saydıralım
    X[j+1] = X[j] ; // Her seferinde eski X[j] değerini bir eskisinin yerine taşıyalım
}
veya aynı for işleminin daha az işlemci yükü gerektireni
X[9] = X[8];
X[8] = X[7];
X[7] = X[6];
X[6] = X[5];
X[5] = X[4];
X[4] = X[3];
X[3] = X[2];
X[2] = X[1];
X[1] = X[0];

 

Böylece her değişkeni bir alta taşıdık (bunun daha farklı yolu da var ama bu anlatılması en kolayı) 
X[0] = yeniX ; // böylece ilk değer son sensör verisi oldu
 
OrtalamaX = SUM(X) / 10; // tüm X değerlerini toplayıp 10 a bölüyoruz.
 
ve elimizde en son 10 değerin ortalaması ile elde edilmiş OrtalamaX değeri kalıyor
 
Yöntem bukadar basit, bu yöntemin en büyük avantajı işlemci yükünün minimum olmasında, yukarıdaki halinden daha fazla optimize etmek de mümkün ve bu hali ile saniyede binlerce kez ölçüm alıp işlemeni mümkün kıldığı için en önemli sorun olan sensör parazitlerini ve titreşimi de gidermek çok kolay oluyor.
 
Ayrıca sensör çıkışında lowpass filtre kullanırsan bu tip yazılımsal taklaları daha da azaltman mümkün. Ben çıkışlarda 100kOhm direnç ve 100nF kondansatör kullanıyorum, çıkış sinyalini oldukça iyi yumşatıyor (30hz civarında) , eğer daha yavaş ve yumuşak sinyaller istersen 1 megaohm direnç kullan.
Hiçbir yazılımsal filtre gerçek bir kondansatör ve dirençten daha güzel sinyal yumşatamaz, bu yüzden analog sensörler hala dijitallerden daha kullanışlı.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: