Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Kontrol Teorisi - Matematiği => Konuyu başlatan: forty69 - 27 Aralık 2016, 20:16:19

Başlık: PID Kontrol Katsayıları
Gönderen: 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..
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: seyityildirim - 27 Aralık 2016, 22:44:51
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
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: kontrolmuh - 28 Aralık 2016, 10:14:44
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?
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 28 Aralık 2016, 14:06:36
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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 28 Aralık 2016, 14:09:47
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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 28 Aralık 2016, 17:55:38
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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: 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ş.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 28 Aralık 2016, 18:30:23
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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 28 Aralık 2016, 18:58:37
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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 28 Aralık 2016, 20:32:17
[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?
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: edX - 31 Aralık 2016, 11:12:44
...
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: 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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 01 Ocak 2017, 13:27:51
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 :)
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: berat23 - 01 Ocak 2017, 14:16:50
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.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 01 Ocak 2017, 14:57:54
Burada analitik bir problem var ama. Farzet ki olmadı root locus üzerinden geometrik çözümle de desired point bulunabilir.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 01 Ocak 2017, 16:23:44
@Firzen bir kağıda yapacağın karalama çözümü  foto olarak yayınlarmısın?

Ya sen sorunu çok basite indirgiyorsun ve biz göremiyoruz. Ya da sorunun büyüklüğünü sen göremiyorsun?


Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: berat23 - 01 Ocak 2017, 16:40:09
analitik dersen 2+2 = 4 gibi beklerim. kontrolü denen yapı tek değil ki? bunun ideali yok, tradeoff'lar ile optimal çözüme gidiyorsun. belki benim için overshoot önemli değil, responsive olması lazım?
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 02 Ocak 2017, 12:49:15
Alıntı yapılan: Zoroaster - 01 Ocak 2017, 16:23:44
@Firzen bir kağıda yapacağın karalama çözümü  foto olarak yayınlarmısın?

Ya sen sorunu çok basite indirgiyorsun ve biz göremiyoruz. Ya da sorunun büyüklüğünü sen göremiyorsun?




Tamam hocam yapıp eklerim
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 02 Ocak 2017, 14:14:10
Bilgisayarımı hemen internet ola bir yere bağladıktan sonra çözümü size göndereyim dedim.
Soruyu soran arkadaş ikinci derece denklemde kökleri ve rise time vermediği için kendim seçtim.

(https://s23.postimg.cc/ndlofkg3b/sol.png) (https://postimg.cc/image/ndlofkg3b/)

@Zoroaster sorunun çözümünün basitliğini görebilirsiniz artık

En sonda yazan FsFix PID Kontrolördür
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 02 Ocak 2017, 14:45:20
Yükselme zamanı ile zeta ve w arasında yazılan bağıntı sistemin saf 2. derece olması durumu için geçerli.

Sistemi 2 dereceden sistemmiş gibi ele almak adına baskın olmayan kutupları baskın kutuplardan uzaklaştırmakla zaten yaklaşık çözüm yapmış oluyoruz.

Hiç bir şey yapmamaktan daha iyi tabiki.



Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 02 Ocak 2017, 15:12:00
Alıntı yapılan: Zoroaster - 02 Ocak 2017, 14:45:20
Yükselme zamanı ile zeta ve w arasında yazılan bağıntı sistemin saf 2. derece olması durumu için geçerli.

Sistemi 2 dereceden sistemmiş gibi ele almak adına baskın olmayan kutupları baskın kutuplardan uzaklaştırmakla zaten yaklaşık çözüm yapmış oluyoruz.

Hiç bir şey yapmamaktan daha iyi tabiki.


Demek istediğinizi anlamadım. Sadece soruda overshoot istemediği için zeta=1 aldım Natural Frequency ile Rise Time arasında kullanılan formulü ele alıp Wn ve Zeta ile Pds buldum. ,

Sistemde rezidü matrisinin olmasının nedeni PID Fs kontrolörden de bir kök daha eklenceği için. Pds sistemi sağlamalı. Bu yüzden sisteme etki etmeyecek ama kararlı hale getirecek rezidü matrisi ekledim.

Pds ve Pcs'yi katsayı olarak eşitkleyerek karakteristik polynomial değerini çıkardım. Bu sayede Fs değeri için P-I-D değerini buldum.

@Zoroaster Hiçbirşey yapmamaktan daha iyi tabiki derken çözümüm mü yanlış?
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 02 Ocak 2017, 15:41:00
Yok çözümünün yanlışlığından bahsetmedim.

Sistem derecesi artınca analitik çözümler, yerini artık yaklaşımlara ve nümerik çözümlere bıraktığı için hiç bir şey yapamaktan iyidir dedim.

Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 02 Ocak 2017, 15:51:09
Alıntı yapılan: Zoroaster - 02 Ocak 2017, 15:41:00
Yok çözümünün yanlışlığından bahsetmedim.

Sistem derecesi artınca analitik çözümler, yerini artık yaklaşımlara ve nümerik çözümlere bıraktığı için hiç bir şey yapamaktan iyidir dedim.


Anladım demek istediğinizi şimdi. Hocamız 3 hafta önce bize 7.dereceden bir sistem sormuştu ve sayılar değerler öyle kararsızlık yapıyordu ki matlabtan ve labviewden şüphe duymaya başlamıştım.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Zoroaster - 02 Ocak 2017, 16:07:48
7. derece mi?

Bir ara soruyu buraya da yazarmısın?

Bu tip sorularda Matlap mecburi gibi.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 02 Ocak 2017, 16:44:52
Alıntı yapılan: Zoroaster - 02 Ocak 2017, 16:07:48
7. derece mi?

Bir ara soruyu buraya da yazarmısın?

Bu tip sorularda Matlap mecburi gibi.

Tamamdır hocam hele bir düzene sokayım etrafı :)

(https://s28.postimg.cc/6z16ljitl/derece.png) (https://postimg.cc/image/6z16ljitl/)

burada soru var. çözümünü atarım.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Teğmen - 03 Ocak 2017, 17:20:49
Merhaba,
Bazı arkadaşlar konuya güzel açıklamalar getirmişler,
Naçizane bende yanıt vereyim.

PID sistemler işlemci olmaksızın veya işlemciyle haberleşerek sistemleri denge konumuna ulaştırmak ve donanımsal olarak dengeleri sağlama amaçlı kullanılabilen
sistemlerdir.Buradaki Kd,Kp gibi integral,türevsel ve oransal sabitleri bulmak analitik olarak yapmak (manuel yapmak) en basit devrede bile zor bir iştir.Bu yüzden matlab gibi
bu işi kolayca halledebilen yazılımlar geliştirilmiştir.Bunlardan yararlanmalısınız.

Otomatik kontrol ve PID başlı başına bir dünyadır ve o işin ar-ge departmanında iş yapmıyorsanız veya böyle detaya inmeniz gerekmiyorsa normal bir projede bu sizi
sadece yorar ve sonuca da ulaşamayabilirsiniz(karmaşadan dolayı).

Kolay Gelsin
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: forty69 - 05 Ocak 2017, 13:47:52
Öncelikle biraz geç cevap verdiğim için herkesten özür dilerim. Sınavlarım vardı. Hepinizin yorumları için teker teker teşekkür ederim.

Alıntı yapılan: Zoroaster - 28 Aralık 2016, 14:06:36
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.
Anladım. Büyük ihtimalle  varsayımlardan gideceğim sanırım. (Time constantları kendim verebilirim vs.)

Alıntı yapılan: Firzen - 28 Aralık 2016, 17:55:38
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.
Bu yöntemi kullanabilirim aslında. Eğer sonuç olarak işime yaramayacaksa bile, en azından görüp öğrenmiş olurum :) Teşekkürler..

Alıntı yapılan: berat23 - 01 Ocak 2017, 14:16:50
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.
Bu da gayet hoş bir çözüm yöntemi, ki hali hazırda bu tarz konular ile az da olsa ilgileniyordum ve iyi bir uğraşma sebebi olur benim için :) Teşekkürler..

Alıntı yapılan: Firzen - 02 Ocak 2017, 14:14:10
Bilgisayarımı hemen internet ola bir yere bağladıktan sonra çözümü size göndereyim dedim.
Soruyu soran arkadaş ikinci derece denklemde kökleri ve rise time vermediği için kendim seçtim.

(https://s23.postimg.cc/ndlofkg3b/sol.png) (https://postimg.cc/image/ndlofkg3b/)

@Zoroaster sorunun çözümünün basitliğini görebilirsiniz artık

En sonda yazan FsFix PID Kontrolördür
Hocam, rise time = 0.2 saniye, kapalı çevrim transfer fonksiyonu ise :
[latex] (2.6*Kd*s^2 +2.6*Kp*s +2.6*Ki)/(s^3 +(2.6*Kd +9.081)*s^2 +2.6*Kp*s +2.6*Ki)[/latex]
Ben normal olarak karakteristik denklemin köklerini bulmaktan yola çıktım ve oradan da Kp Kd ve Ki değerlerini bulmaya çalıştım, fakat sizin dediğiniz yoldan gitmeye çalışacağım.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: Firzen - 05 Ocak 2017, 14:53:03
0.2 rise time olarak olarak yapabilirsin. Ts kapalı çevrim yerine keşke Gs system denklemini verseydin :)
Neyse benim yazdığım yolu izleyerek yapabilirisn. Kullandığım program ise Mathematica.
Başlık: Ynt: PID Kontrol Katsayıları
Gönderen: forty69 - 05 Ocak 2017, 15:04:18
Alıntı yapılan: Firzen - 05 Ocak 2017, 14:53:03
0.2 rise time olarak olarak yapabilirsin. Ts kapalı çevrim yerine keşke Gs system denklemini verseydin :)
Neyse benim yazdığım yolu izleyerek yapabilirisn. Kullandığım program ise Mathematica.
Anladım, ben deneyeyim, sonra geri dönüş yaparım size :) Teşekkürler..