Tüm yazılar
Genel

PID Nedir? P, PI ve PID Farkını Bir Tankın Başında Anlattım

P, PI ve PID arasındaki farkı formülle değil, bir tankın seviyesini sürerek anlatıyorum: offset nedir, integral neden salınım yapar, derivative neden gürültüyü büyütür. Aynı sistemi tarayıcıda çalışan 3D simülatörde siz de kurabilirsiniz.

PID Nedir? P, PI ve PID Farkını Bir Tankın Başında Anlattım

İki sene önce yeni bir mühendis arkadaşım bana bir şey sordu: “Abi, P ile PI arasında ne fark var? Kitapta ‘integral, sabit hatayı sıfırlar’ diyor; bunu sahada ne demek?”

Cevabı yazıyla anlatmak istedim bir süre. Sonra kabullendim: bu iş yazıyla öğrenilmiyor, elle hissediliyor. O gün bu simülatörü yaptım — tam da bu sorunun cevabı olsun diye: PID Kontrol Simülatörü.

Bugün bu farkı, simülatördeki tankın başında, adım adım anlatıyorum.

Tankı Tanıyalım

Simülatördeki sistem basit: bir tank, üstünden giren bir pompa, altından çıkan bir deşarj. Tek değişkenimiz tank seviyesi. Tek amacımız seviyeyi hedefte tutmak.

Gerçek tesisler bu kadar dürüst değildir. Ama ilk defa PID öğreniyorsanız, dürüst sistemle başlamak doğru olan: gürültü, gecikme, yedeklilik — bunların hepsi ek gürültüdür. Temel farkı görmeye başlamadan önce gürültüyü eklemek, her şeyi aynı anda öğrenmeye çalışmaya benzer.

Sistem şöyle çalışıyor:

Kontrolör bu kararı üç terimle alır: P, I ve D. Birer birer gidelim.

P: “Hata ne kadar büyükse, o kadar sert bas”

P terimi, hatanın kendisiyle orantılı çıkış verir. Hata 5 birimse 5 kat, 10 birimse 10 kat bastırır.

Simülatörde kontrol türünü P yapın, Kp’yi 1.0 bırakın. Hedef 60, seviye 0’dan başlar. Tank dolmaya başlar, hedefe yaklaşıyor… ve sonra durur. Ama hedefde durmaz. 60’ın biraz altında, mesela 52’de, kararır.

İşte burada “offset” kavramı doğar.

Offset, P’nin en bilinen karakteridir. P, hata sıfır olmadan çalışamaz — çünkü çıkışı hataya bağlıdır. Hata sıfır olursa çıkış da sıfır olur. Tankın boş kalmaması için pompanın sürekli açık kalması gerekir; ama P’nin pompayı sürekli açık bırakabilmesi için sürekli hata olması gerekir. Sonuç: seviye, hedefin altında, kalıcı olarak bir yerde kararır.

Kp’yi 3, 5, 8’e çektikçe ne olacağını izleyin: tank hedefe daha da yaklaşıyor, ama hiç varamıyor — hem de salınıma giriyor. P’yi artırınca offset daralır ama salınım büyür. Bir noktada sistem kararsızlaşır.

Kural 1: P tek başına kullanıldığında, sistem hedefin tam üstüne oturamaz. Kalan bu kalıcı hataya offset denir. Kp’yi artırmak offseti daraltır ama salınımı büyütür.

Günlük hayattan: direksiyona dönmek P gibidir. Ne kadar çok saptıysanız, o kadar sert dönersiniz. Ama P tek başıyla düz gitmezsiniz — sürekli hafif bir sapma payı bırakmanız gerekir.

I: “Kalan hatayı zamana yayarak sıfırla”

Offset’in çözümü, ikinci terim: I, integral.

I, hatayı süreye çarpar. Yani “şu an kaç hatalısın” değil, “şu ana kadar toplamda ne kadar hatalıydın” der. Hata küçük ama sürekliysa, I o hatayı zamanla biriktirip pompayı biraz daha açar. Sonunda seviye tam 60’a oturur. Offset kalkar.

Simülatörde PI’ye geçin ve izleyin: seviye artık hedefde kalıcı olarak duruyor. Ama dikkatli olun — I’ı güçlendirdikçe (Ti’yi küçülttükçe) sisteme “daha fazlasını yap” emri veriyorsunuz. Tank hedefe biraz erken geliyor, I birikmeye devam ediyor, tank aşırı doluyor, sonra düzeltme başlıyor, sonra eksik… Salınım.

İşte I’nın ikilemi:

Ti kaydırıcısıyla oynayın: 60’a çekin, 10’a çekin, 5’e çekin. 10 ile 5 arasındaki farkı grafikte izleyin — 5’te sistem “aç” davranmaya başlıyor.

Kural 2: I, offseti sıfırlar. Ama I’ı artırırken sistemi izleyin; salınımın sıklığı artıyorsa, I fazla. Doğru I, offseti kaldırır ve sönümlenmesini bırakır.

D: “Değişim hızına bak, erken frenle”

Üçüncü terim, D, derivative. D, hatanın büyüklüğüne değil, değişim hızına bakar.

“Seviye hedefe gidiyor ama hızla yaklaşıyor” derse, D çıkışı azaltıp fren yapar. “Seviye hedefe gidiyordu ama yön değiştirdi” derse, D karşı tarafa bastırır.

Simülatörde PID’e geçin, Kp 1.0, Ti 8, Td 0’da başlayın. Sonra Td’yi 1, 2, 3 yapın. Grafikte şunu görürsünüz: seviye hedefe yaklaştıkça fren yapıyor, tersi yönde gitmeden duruyor. Salınım sönümleniyor.

Ama D’nin bir pahası var: D, değişimi ölçer. Değişim, ham verinin gürültüsüne de dahildir. Gerçek bir sensörünüzde gürültü varsa, D o gürültüyü de ölçer ve çıkışa yansıtır. Valf titremeye başlar.

Bu yüzden saha’da D’yi dikkatli kullanırız. Gecikmesi büyük, gürültüsü az olan proseslerde D işe yarar; gürültülü proseslerde D çoğu zaman kapalı tutulur. Ayrıntısını bu yazıda anlatıyorum: Sahada PID Ayarı: Tank Terliyordu, Operatör Bana ‘Abi Ayarla’ Dedi.

Kural 3: D, salınımı sönümler ama gürültüyü büyütür. Gürültülü sensörlere D uygulamak, valfi gürültüye oynatmaktır.

Deneme Sırası

Simülatörde bu sırayı izlemenizi öneriyorum:

  1. P modu, Kp 1.0 — Tankın offsetle oturduğunu gör. Offseti yazın.
  2. P modu, Kp 4.0 — Offset daralıyor; salınım büyüyor. Kararsızlık yaklaşıyor.
  3. PI modu, Kp 1.0, Ti 8 — Offset kalkıyor; sistem biraz salınıp sönümleniyor.
  4. PI modu, Ti 3 — Salınım artıyor; “fazla I” hissi.
  5. PID modu, Td 0 → 2 — Salınım sönümleniyor; D’nin fren etkisi.
  6. Disturbans düğmesine bas — Deşarj aniden artıyor; kontrolörün seviyeyi geri getirmesini izle. P’de yeni bir offset oluştuğunu fark et — işte bu, I’ın asıl işiydi: bozucuya karşı da offset sıfırlamak.

Bu altı adım, sınıf saatiyle anlatılan tüm teoriye bedeldir. Çünkü her birini kendi gözünüzle görürsünüz.

PID, Formül Değil Bir Histir

PID, formül değil, bir hissidir. P sertlik verir, I sabır verir, D fren verir. Üçü birlikte çalıştığında, tank “düz” durur; biri eksik olduğunda, sistemin davranışı farklılaşır. Farkı formülle öğrenmeye çalışmayın; simülatörde oynayın, offseti kendi gözlerinizle görün.

Bu yazıdaki tank, basit bir yer. Gerçek saha’da her şey daha hızlı daha gürültülü. Ama temel fark, yani “P offset bırakır, I offseti sıfırlar, D sönümleyip gürültüyü büyütür” — saha’da da aynıdır. O yüzden önce masada öğrenin; sahaya, farkı bilen biri olarak gidin.

Ayrıntılı sahalar için: