PID denetleyicisinin ayrılmaz bir parçası anlamıyorum


12

PID denetleyicisinin ayrılmaz bir parçasını anlamıyorum. Bu sahte kodu Wikipedia'dan alalım:

previous_error = 0
integral = 0 
start:
  error = setpoint - measured_value
  integral = integral + error*dt
  derivative = (error - previous_error)/dt
  output = Kp*error + Ki*integral + Kd*derivative
  previous_error = error
  wait(dt)
  goto start

İntegral başlangıçta sıfıra ayarlanır. Ve sonra döngüde hatayı zamana entegre ediyor. Ayar noktasında (pozitif) bir değişiklik yaptığımda, hata pozitif olur ve integral zaman içinde değerleri (en baştan) "yiyecektir". Ama anlamadığım şey, hata sıfıra geri döndüğünde, integral parçanın hala bir miktar değeri (zaman içinde entegre hatalar) olacaktır ve yine de kontrolörün çıkış değerine katkıda bulunacaktır, ancak olmamalıdır, çünkü hata sıfırsa, PID çıkışı da sıfır olmalıdır, değil mi?

Birisi bana bunu açıklayabilir mi lütfen?

Yanıtlar:


16

İntegral teriminin temel amacı, kararlı durum hatasını ortadan kaldırmaktır. Normal durumda, küçük bir kararlı durum hatası olacaktır ve integral esas olarak bu hatayı ortadan kaldırmak için kullanılır. Bununla birlikte, hata 0'a ulaştığında integralin yine de pozitif olacağı ve sizi aşacağını doğrudur. Sonra aşma sonra integral tekrar aşağı gitmeye başlayacaktır. Bu, integral teriminin olumsuz etkisidir. Bu yüzden her zaman bir denge vardır ve aşırı aşımın mümkün olduğunca küçük olduğundan ve sabit durum hatasının en aza indirildiğinden emin olmak için PID denetleyicisini ayarlamanız gerekir. Türev terimi burada devreye giriyor. Türev terimi, sistemdeki aşımı en aza indirmeye yardımcı olur.


8
Kararlı durum hatasına iyi bir örnek, bir eklemdeki sürtünmedir. PD denetleyicinizin hedef eklem açısınıza yakın yerleştiğini, ancak sürtünme nedeniyle oraya ulaşamadığını varsayalım. "I" terimi yavaşça oluşacak ve sonunda sürtünmenin üstesinden gelmek için yeterince büyük bir girdi oluşturacaktır.
Ben

2
Başka bir örnek, direksiyondaki yanlılıktır. Direksiyon kontrolünde hafif bir önyargı olduğu ortaya çıkarsa veya lastik sırtı tarzı robotlar için, bir lastik sırtı, kontrolör bunları aynı değere ayarlamasına rağmen diğerinden biraz daha yavaş döner, bir sapma olacaktır. Düzgün ayarlanan integral terimi bunu düzeltir.
ViyanaMike

8

Kolunuzda bir PID denetleyicisi kurduğunuzu ve önünüzde bir fincan kahve tutabileceğinizi düşünün.

  • Orantılı eleman, el pozisyonunuza göre kol gücünüzü çok yüksek veya çok düşük olarak kontrol eder.
  • Türev elemanı, bu kuvveti zaten ne kadar hızlı hareket ettiğinize bağlı olarak ayarlayacaktır, böylece hedefinizi aşmazsınız.
  • İntegral element yerçekiminin etkilerini telafi edecektir; onsuz, fincan oransal kuvvetin yerçekimi kuvvetine eşit olduğu yerde dinlenirdi.

Sıkıştığınız kodun bir kısmı, sistemin bir şekilde kahvenin ağırlığını ölçmesi gerektiği gibi görünüyor ve bunu yapmanın bir yolu, zaman içinde konum hatasını biriktirmektir. Çoğu PID denetleyicisinin, tümleşik öğenin boyutu üzerinde makul bir sınır belirlemek için ek bir terimi vardır.


2
+1. "hata sıfırsa, PID çıkışı da sıfır olmalıdır, değil mi?" Ian'ın açıkladığı gibi, kahve fincanı mükemmel konumda olsa ve hata sıfır olsa bile, PID'nin çıktısının o bardağı yerinde tutmak için biraz yukarı doğru kuvvete sahip olması gerekir.
David Cary

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.