S

Pic Basicde Zaman

Başlatan sbrntk, 27 Aralık 2012, 03:26:31

sbrntk

Arkadaşlar Pic Basic ile pid kontrol yapmaya çalışıyorum ancak Türev alma işleminde iki ölçüm arasındaki farkı zamana bölüyoruz bu işlemi yaparken bu iki ölçüm arasındaki zamanı nasıl hesaplayabilirim yada bulabilirim bilen varsa yardımcı olabilirmi.
Bir de varsa pic basic dilinde yazılmış pid örnekleri arıyorum her türlüsü işimi görür.
selametle...

ete

#1
Zamanı zaten sen belirliyorsun. İki ölçüm arasına bir gecikme koymak zorundasın. Bu 100 ms olanileceği gibi 1000 ms yani 1 saniyede olabilir tamamen senin sisteminin tepki süresine bağlı. Mesela bir DS18b20 sensörü kullanıyor olsam. Her bir algılama süresi zaten 750 ms. Oluyor ohalde en az 1000 ms lik bir gecikme koymalıyım. Başka bir sistemde bu süre daha uzun veya daha kısa olabilir.
Süreyi illaki kendin hesaplamak zorunda isen, süre başlangıcında TMR1 sayacını sıfırla ve aktive et. Süre sonunda sayac değerini kendi değişkenine aktar. Çalışma frekansına bağlı olarak sayacın bölme oranını doğru ayarlamalısın. Sayacağın süre 65 ms den büyük 130 ms den küçük ise bölme oranı 1/2 olmalı daha büyük süreler için bölme oranı artırılmalıdır. Süreyi tahmin edemiyor isen. 1/1bölme oranı ile başla süre sonunda Tmr1 taşma bayrağını kontrol et taşmış ise süre beklediğinden uzun demektir. Hemen bölme oranını değiştir ve yeniden bak. Böylece taşma olmayan oran doğru oran olmuş olur.
Ete

sbrntk

çok saolasın sanırım gayet iyi anladım olayı.

Hattuşa

Alıntı yapılan: sbrntk - 27 Aralık 2012, 03:26:31
Arkadaşlar Pic Basic ile pid kontrol yapmaya çalışıyorum ancak Türev alma işleminde iki ölçüm arasındaki farkı zamana bölüyoruz bu işlemi yaparken bu iki ölçüm arasındaki zamanı nasıl hesaplayabilirim yada bulabilirim bilen varsa yardımcı olabilirmi.
Bir de varsa pic basic dilinde yazılmış pid örnekleri arıyorum her türlüsü işimi görür.
selametle...

ustam micro işlemcilerle türev alma ile ilgili bildiğiniz formuller varsa paylaşırmısınız?

sbrntk

#4
HATA=REFERANS-ÖLÇÜM
ORANSAL=KP*HATA
E=(İLKÖLÇÜM+ÖLÇÜM1+ÖLÇÜM2+....)/ÖLÇÜMSAYISI
INTEGRAL=KI*E*HATA
DYDT=(ÖLÇÜM-YENİÖLÇÜM)/SÜRE
TÜREV=KD*DYDT*HATA

E            ilk ölçümden itibaren yapılan tüm ölçümlerin toplamının ölçüm sayısına bölünmesi oluyor
DYDT      ise iki ölçüm arasındaki farkın zamana bölünmesi işlemi.

matematikte vardır ya hani bir fonksiyonun bir noktadaki türevi onun eğimini veriyordu. burda bahsettiğimiz işlemde aslında fonsiyonun eğimini bulmak :D
bu konularda ETE hocam daha iyi bilir bende onun daha önce yazdıklarından yola çıkarak yaptım
daha yeniyim bu konuda yanlışım olmuş olabilir ama ben böyle yaptım.
selametle...

Powered by EzPortal