PI den PID ye geçiş

Başlatan zamzam23, 07 Şubat 2011, 17:51:45

zamzam23

Bazım arkadaslar benı hatırlıor olabılır. bundan 2 ay once PI nedir PID nedir bilmiyordum öğrenmek için baya başlarını ağırttım.haklarını helal etsınler.
suankı sorum ıse şu:
motoru suan PI ile sürüyorum sorunsuz calısıor. anak PID ye gecıs yapıp motoru daha net kontrol etmek ıstıyorum.PI yaparken döngüyü timer içinde kullandım.PID yapmaya calısıken de bı turlu olmuyor hesaplar cok uzun sürüyor ya döngüyü timer içinden cıkarmalıyım yada hesapların kısa sürmesını sağlamalıyım. döngüyü timer içinden cıkarma taraftarı degılım her ne kadar karsı olsamda. cunku türev için belırlı bır dt süresi belırlıyorum. timer dısında olursa dt her seferınde farklı olur. yanlıs mı dusunuyorum?
veya işlemleri nasıl kısaltabılırım dıye dusundum. bolme ıslemını 2 vya katları seklınde yaparsam kaydırmayla bolme daha kısa sürer.baska ne yapılabılır ıslem suresını kısaltmak ıcın?fikirlerinizi beklıyorum

zamzam23

#1
evet türev alrken kı örnekleme süresindeki t


zamzam23

bir mesela daha var.mesela motor 3m/sn hızla donuyor. yavas donuyor yani. ben bunu elle durdurmak ıstedıgımde motor karsı koyuyor halıyle. zaten durdurmıyorum. burda mesele yok. ama motoru donus yonunde elımle hızlandırdıgımda sapıtıyor belırledıgım hızda degıl daha hızlı donuyor. bunun sebebı ne olabılır e nasıl engellerım? PI dongusu ıcersınde cıkan hatayı ve integralı sınırladım. daha baska bişiyi de mi sınırlamalıyım acaba?
hata=reff-hiz; 
     if(hata>20) hata=20;  if(hata<-20) hata=-20;
     integral=integral+hata;
     if(integral > 120) integral = 120; 
     else if(integral < -120) integral = -120;