Sn. elektronikmuh yazdığınız fonksiyon bloğu güzel fakat Util kütüphanesinde hazır PID fonksiyonu var şu şekilde:
FB_PID(
ACTUAL:= ,
SET_POINT:= ,
KP:= ,
TN:= ,
TV:= ,
Y_MIN:= ,
Y_MAX:= ,
RESET:= ,
Y=> ,
LIMITS_ACTIVE=> ,
OVERFLOW=> );
Elimde hidrolik bir silindir var. Ben bu silindiri oransal valfler ile kontrol ediyorum. eğim sensoründen aldıgım dataya göre pwm çıkışlarım değişiyor. Buna göre de valfler kontrol edilip piston ileri ya da geri hareket ediyor. Oransallık ile eğim fazla iken hızlı eğim düştükçe yavaşlayarak en son duran bir dengeleme sistemi yaptım. Ama silindirin debisi düştüğünde bir ton ayarlama yapmam gerekiyor yeni baştan.
Amacım PID kullanarak sistem ne olursa olsun bi set değer koyup her türlü aynı şekilde çalışsın. DEbiyi değiştirmem ağırlığı değiştirmem vs. etkilemesin yazılımımı.