PID Kontrol Katsayıları

Başlatan forty69, 27 Aralık 2016, 20:16:19

forty69

Herkese İyi Akşamlar,

Kapalı çevrim transfer fonksiyonunda PID Kontrol katsayılarını bulmak için uğraşıyordum. Sistem ikinci dereceden bir kontrol sistemidir ve sistemin ("Plant") transfer fonksiyonun paydası ("s(s+a)")'lı bir ifade var. Bu sistemi "zero-overshot" olacak şekilde 1'e oturtmaya çalışıyorum. Elimde bilgi olarak kullanabileceğim, sadece "Rise Time" bulunuyor.  Sadece düzgün bir forma getirebilmek için Kp,Kd ve Ki değerlerini sembolik olarak girdim. Fakat sistemin karakteristik denklemi çok komplex (uğraşılması ciddi anlamda zor) bir hal aldığı için çıkarmakta zorlanıyorum. Matlab ile "PID Tuner" özelliğini çıkartarak çözebiliyorum. Ama ben analizini yaparak çıkartmak istiyorum.

Kullanabileceğim herhangi bir yöntem veya sınır koşulu var mıdır acaba ?
Yardımlarınız ve yorumlarınız için şimdiden teşekkür ederim.
Saygılarımla..

seyityildirim

#1
Belirttiğin denklemi hocalar genelde sınavda soruyor :) İlla PID yapacam dersen şöyle bir yöntem önerebilirim.

Senin elinde veri olarak rise time ve maksimum aşım verisi var. bu ikisinin denklemini kullanarak istenen kökleri bulursun. buradan da istenen karakteristik denklemi elde edersin. PID nin denklemine eşitleyerek kontrol katsayılarını bulmuş olursun

kontrolmuh

Alıntı yapılan: forty69 - 27 Aralık 2016, 20:16:19
Herkese İyi Akşamlar,

Kapalı çevrim transfer fonksiyonunda PID Kontrol katsayılarını bulmak için uğraşıyordum. Sistem ikinci dereceden bir kontrol sistemidir ve sistemin ("Plant") transfer fonksiyonun paydası ("s(s+a)")'lı bir ifade var. Bu sistemi "zero-overshot" olacak şekilde 1'e oturtmaya çalışıyorum. Elimde bilgi olarak kullanabileceğim, sadece "Rise Time" bulunuyor.  Sadece düzgün bir forma getirebilmek için Kp,Kd ve Ki değerlerini sembolik olarak girdim. Fakat sistemin karakteristik denklemi çok komplex (uğraşılması ciddi anlamda zor) bir hal aldığı için çıkarmakta zorlanıyorum. Matlab ile "PID Tuner" özelliğini çıkartarak çözebiliyorum. Ama ben analizini yaparak çıkartmak istiyorum.

Kullanabileceğim herhangi bir yöntem veya sınır koşulu var mıdır acaba ?
Yardımlarınız ve yorumlarınız için şimdiden teşekkür ederim.
Saygılarımla..

Soruyu tam olarak atabilir misin ya da G(s )'i verebilir misin?

Zoroaster

#3
PID parametrelerini analitik olarak elde etmek çok sıkıntılı bir iş.

Çözüm getirilebileceğini de sanmıyorum. Şöyleki;

PID kontroller zaten kendi başına 2. dereceden bir sitemdir. 2 kutup getirir. Kontrol edilen düzenek de basit bir motor uygulamasında bile en az ikinci derecendir.

Bu durumda mertebe hoop 4'e ulaşır.

Derece 2'yi geçtimi analitik işlem yeteneklerimiz birden sınırlanır. hele hele 4 oldu mu iyice zorlaşır 5 oldumu da imkansızlaşır.

Her ne kadar otomatik ayarlama algoritmaları (Automatic PID tuning) olsa da hiç ilgilenmedim.

Deneysel metodların yazılıma dökülmüş hali olabilir.
Seytan deliginden kacti.

Zoroaster

Sistem derecesi yüksekse ve eğer baskın kutuplar ile diğer kutuplar arasındaki aralık açılabiliyorsa (kimi zaman reel kısımları 3 kat büyütmek yeterlidir) bu durumda sistem yüksek meretebeden olsa dahi, sanki 2 dereceymiş gibi ele alınır ve bahse konu analitik işlemleri yapma imkanı doğar.
Seytan deliginden kacti.

Firzen

Rise time sana 4/Zeta*Wn verir.

Zeta = 1 çünkü overshoot istemiyorsun.
Wn ise yukarıdaki yazdığım denklemden çıkartırsın.

Buradan sistemin Fs Controllerini tasarlaman lazım. Kp+Kd.s+Ki/s sistem controlorü zaten 2.derecede kullanılır. Herhangi bir pole veya zero eklemene gerek yok.
Sisteme bir pole veya zero ekleyeceksende rezidü kök seç bu sayede sistemi etkilememiş olur.

PID olarak Seri mi yoksa cascade mı yapacaksın. hoş bir PID için cascade öneririm. önce PD tasarla ardından PI. Bunun için uygun KP değerini Routhtabulation ile yapabilirsin. Routhtabulationda K değerinin sınır aralığını bul. En yüksek değere yakın seç ve PI tasarımını kullan. Bu sana P - I - D değerlerini tam verecektir.

Diğer opsiyon ise Pds ve Pcs characteristic Polynomial Değerleri ile Fs Controller tasarlamak.
Kararsız...

Zoroaster

Plantın transfer fonksiyonu neden dahil etmiyorsun?

[latex=inline]G(s)=\frac{1}{s(s+a)}[/latex] olarak verilmiş.
Seytan deliginden kacti.

Firzen

Alıntı yapılan: Zoroaster - 28 Aralık 2016, 18:04:30
Plantın transfer fonksiyonu neden dahil etmiyorsun?

[latex=inline]G(s)=\frac{1}{s(s+a)}[/latex] olarak verilmiş.
Bu ikinci derece bir Gs Transfer fonksiyonu hocam. Bununla PID kontrolörü kapalı çevrim yapıp Pcs Karakteristik polinom oluşturacak adından da Pds ile katsayı eşitlemesi yapacak elde ettiği değerler neticesinde de P - I - D değerlerini bulacak sonuç ise Fs Controller elde edilmiş olacak.
Kararsız...

Zoroaster

#8
PID'den 2 kutup gelecek. Plant da 2 derece ve sonuçta sistem 4. dereceden bir sistem olacak.

Toplam transfer fonksiyonu 2 olsaydı sorun yoktu da 4 derece sistemde ara işlemleri bir kaç adım ilerletiverin. Analitik işlemi nasıl yapacaksınız merak ediyorum.
Seytan deliginden kacti.

Zoroaster

#9
[latex=inline]G(s)= Kp + \frac{1}{s}Ki+sKd[/latex]

[latex=inline]H(s)= s(s+a)[/latex]

[latex=inline]T(s)= \frac{G(s)H(s)}{1+G(s)H(s)}[/latex]

[latex=inline]T(s)= \frac{(Kp + Ki\frac{1}{s}+sKd)s(s+a)}{1+(Kp + Ki\frac{1}{s}+sKd)s(s+a)}[/latex]

[latex=inline]T(s)= \frac{(sKp + Ki+s^2Kd)s(s+a)}{s+(sKp + Ki+s^2Kd)s(s+a)}[/latex]

4. derece oldu bile.

Sıfırların da yükselme zamanına etkisi var üstelik.

Bundan sonrasında payda birazcık düzenlenebilir.  Peki devamında ne yapacaksınız?
Seytan deliginden kacti.

edX

#10
...

Erhan YILMAZ

Ziegler nichols yöntemi diye bir şey vardı. Direk parametreleri vermez ama parametreleri bulmak için iyi bir başalngıç noktası verir.

Firzen

Alıntı yapılan: Erhan YILMAZ - 31 Aralık 2016, 23:51:12
Ziegler nichols yöntemi diye bir şey vardı. Direk parametreleri vermez ama parametreleri bulmak için iyi bir başalngıç noktası verir.
Hocam ZN'a göre overshoot %30 civarlarında olur steady state ve settling time mevzusunu saymıyorum bile. Cascade PID kullanması konusunda ben ısrarcıyım :)
Kararsız...

berat23

arkadaşlar böyle analitik olarak bulunamayan bir katsayı varsa o iş aslında bir optimizasyon problemidir. burda yapılması gereken sistemi, cost fonksiyonunu, ve varsa constraint'leri belirleyip optimize etmek. mesela zero overshoot ya da zero steady state error gibi bir cost olabilir, veya min rise time. constraint ise katsayılar ya da overshoot için bir limit olabilir. sonrası optimizasyon deryasından uygun metod seçmek.

bu iş için en basiti bence neural network kurmak.  hem anlaşılması hem de uygulaması basit. ilk değer olarakta istersen sallama bir değer ver optimizasyon uğraşsın, ya da ziegler nichols gibi deneysel yöntemlerden ilk değer alıp optimize ettirin.

Firzen

Burada analitik bir problem var ama. Farzet ki olmadı root locus üzerinden geometrik çözümle de desired point bulunabilir.
Kararsız...