Kontrol Muhendisligi ogrencisi ya da asistanligi/hocaligi yapan var mi?

Başlatan Zoroaster, 07 Temmuz 2018, 08:49:53

Zoroaster

Kontrol Muhendisligi ogrencisi ya da asistanligi/hocaligi yapan var mi?
Seytan deliginden kacti.

yılmaz_34

İnsan yazdığını silerde ,yaşadığını silemez içinden.....

Firzen

Ben hocam.

Kontrol ve Otomasyon Müh. Yük. Lis. Öğrencisiyim.

@yılmaz_34 İTÜ de var.
University of Idaho                                  Postdoctoral Fellow

Zoroaster

Coktandir sormak istedigim sorum su sekilde;

Bir motora uygulanan voltajin yonu degistirilirse motor yavaslama sureci ardindan ters yone doner.

Halbuki sicaklik regulatorlerinde isiticiya uygulanan voltajin sadece degerini degistirebiliriz.

Durum boyle olunca, sicaklik set degerini gecipte kontrol cihazi negatif voltajlar uretmeye baslasa bile  isiticinin voltajini kesme yoluna gideriz.

Boyle durumlarda sistemin S domenindeki analizi nasil yapilir?
Seytan deliginden kacti.

Firzen

Hocam motorlar için anahtarlama durumu var. Öncelik olarak sistem anahtarlama öncesi set değeri 0'a çekilip bu noktada kararlı hale getirilir. Yada hızlı bir biçimde analizleme yapılır.

Sıcaklık ise Process kontroldür. Yani Pade açılımı ve Smith Predictor gereklidir. Pade Zaman gecikmesi için kullanılır. Smith ise sistemin feedback'inden gelen sinyal ile time delay kompanzasyonu için kullanılır.  s'domeni incelerken ki genelde process için daha çok frekans domeninde bakılır ama illa da s derseniz önce time delay hesaba katılır ve SIFIR olarak s domenine eklenir. Sıcaklık ve ısıl sistemler 2.derecendendir. Bu yüzden sisteme birde time delay gelince nominatorün derecesi 1 derece artar. Bu yüzden residual polinom eklenir. Burada da sisteme 5 -10 kat uzağa bir kutup atılır bu sayede sistemi negatif etkilemeyen ve kararlı hale getiren bir yapı oluşturur. Tek sıkıntısı ise negative overshoottur bunun sebebi PID'den kaynaklı özellikle D paramteresi. Genelde Derivative Kick ile buda engellenir. Bunun için sistemi Cascade PID (PI-PD) yapılması yeterlidir.



University of Idaho                                  Postdoctoral Fellow

Zoroaster

Sormak istedigim suydu;

ikinci derece bir sistemin basamak cevabi

y(s)=(1/s) b^2/(s^2+as+b)) den hesaplanir.

Buradaki model, pozitif voltaja da negatif voltaja da gerekli tepkiyi verir.

Halbuki sicakligin kontrol altinda tutulacagi sistemlerde olculen sicaklik, set degerini gecipte duzenek negatif voltaj uretmeye basladiginda modelin negatif voltaj altinda sogutma yapacagi varsayilir.

Halbuki boyle bir sey mumkun olmadigindan kontrol cihazi negatif voltaj urettiginde bunu yuke uygulamaz ve  voltaji sifir yapariz.

Boyle yapinca da matematiksel modelden uzaklasmis oluruz.

Eee cozumu negatif voltaj verildiginde sogutma yapabilen bir sistem olarak ele aldik ama uygulamada farkli.

O halde bu sistem yanlis modellenmistir. Eger cikisa voltaj<0 ise Voltaj=0 gibi bir analitik olmayan blok getirirsek bu kez de analitik islem yapma yetenegimizi kaybederiz.

Bu isler bilgisayarsiz nasil yapilir sorusunun cevabini ariyorum.
Seytan deliginden kacti.

Firzen

Alıntı yapılan: Zoroaster - 14 Ekim 2018, 03:32:18Sormak istedigim suydu;

ikinci derece bir sistemin basamak cevabi

y(s)=(1/s) b^2/(s^2+as+b)) den hesaplanir.

Buradaki model, pozitif voltaja da negatif voltaja da gerekli tepkiyi verir.

Halbuki sicakligin kontrol altinda tutulacagi sistemlerde olculen sicaklik, set degerini gecipte duzenek negatif voltaj uretmeye basladiginda modelin negatif voltaj altinda sogutma yapacagi varsayilir.

Halbuki boyle bir sey mumkun olmadigindan kontrol cihazi negatif voltaj urettiginde bunu yuke uygulamaz ve  voltaji sifir yapariz.

Boyle yapinca da matematiksel modelden uzaklasmis oluruz.

Eee cozumu negatif voltaj verildiginde sogutma yapabilen bir sistem olarak ele aldik ama uygulamada farkli.

O halde bu sistem yanlis modellenmistir. Eger cikisa voltaj<0 ise Voltaj=0 gibi bir analitik olmayan blok getirirsek bu kez de analitik islem yapma yetenegimizi kaybederiz.

Bu isler bilgisayarsiz nasil yapilir sorusunun cevabini ariyorum.

Aslına bakarsanız voltajı sıfır yaparak değil soğutma üniteleri ile Coupled State yapılabiliyor.

Diğer konu ise anahtarlama yapılarak hocam. v=0 v<0 ile de analitik yaklaşım yapılabilir ki yaptık = (Fuzzy PID Control)
Onun haricinde sistemde threshold verilerekte max min noktaları hesaplanır ve o noktalarda kesime uğrar.
Sonuç olarak siz gerilimi değil direction değiştiriyorsunuz.
Şöyle diyelim;
e = y - r
u = e*K
K = const

Isıl sistemlerde (SISO olarak varsayarsak);

e -> + çıkarsa;
u -> + işaret üretir.

e -> - çıkarsa;
u -> - işaret çıkar

fakat threshold koymuşsanız max=5 min=0

u = 0 olur.

Pythonda discrete olarak hazırladığım bir PID kod var isterseniz paylaşayım.

import time

class PID:

    def __init__(self, P=0.0, I=0.0, D=0.0):

        self.Kp = P
        self.Ki = I
        self.Kd = D

        self.sample_time = 0.00
        self.current_time = time.time()
        self.last_time = self.current_time

        self.clear()

    def clear(self):
        self.SetPoint = 0.0

        self.PTerm = 0.0
        self.ITerm = 0.0
        self.DTerm = 0.0
        self.last_error = 0.0

        self.int_error = 0.0
        self.windup_guard = 20.0

        self.output = 0.0

    def update(self, feedback_value):
        error = self.SetPoint - feedback_value

        self.current_time = time.time()
        delta_time = self.current_time - self.last_time
        delta_error = error - self.last_error

        if (delta_time >= self.sample_time):
            self.PTerm = self.Kp * error
            self.ITerm += error * delta_time

            if (self.ITerm < -self.windup_guard):
                self.ITerm = -self.windup_guard
            elif (self.ITerm > self.windup_guard):
                self.ITerm = self.windup_guard

            self.DTerm = 0.0
            if delta_time > 0:
                self.DTerm = delta_error / delta_time
            self.last_time = self.current_time
            self.last_error = error

            self.output = self.PTerm + (self.Ki * self.ITerm) + (self.Kd * self.DTerm)

    def setKp(self, proportional_gain):
        self.Kp = proportional_gain

    def setKi(self, integral_gain):
        self.Ki = integral_gain

    def setKd(self, derivative_gain):
        self.Kd = derivative_gain

    def setWindup(self, windup):
        self.windup_guard = windup

    def setSampleTime(self, sample_time):
        self.sample_time = sample_time

Buradaki kodda;

            if (self.ITerm < -self.windup_guard):
                self.ITerm = -self.windup_guard
            elif (self.ITerm > self.windup_guard):
                self.ITerm = self.windup_guard
kısım threshold gibi olmuştur. Aslında Antiwind-up ama thresholdda da şöyle;
            if (u < 0):
                u = 0
            elif (u > 5):
                u = 0
            else (yazmaya bile gerek yok ama göstermek için ekledim)
                u = u
University of Idaho                                  Postdoctoral Fellow

Zoroaster

O kodlar PID kodu. Ben komple sistemden bahsediyorum.

Sogutma duzenegi olmayan elektrikli isitma sisteminin cozumunu S domeninde yapamazmiyiz?

Sorunu sanirim ifade edebildim.

Aslinda bu sistemin S domeninde cozumununu yapamiyor olmamiz lazim.

P=V^2/R

E(s)=(1/s) P(s)

Sicaklik (K/s^2)P(s)

P(s)=V(s)^2/R

guc voltajla dogru orantili degil. Lineer bir sistem de degil. Haliyle transfer fonksiyonu yazamamiz gerekir. (?)

Sonucta isiticiya uygulanan gerilimin karesi isiya cevriliyor.

Hata isareti negatif olup isiticiya uygulanan voltaji negatife dogru zorlamaya baladiginda gerilimi sifir yaparak
bir seyler yapiyoruz ama pratikte elde edecegimiz cevap siradan bir 2. derece sistem cevabindan farkli olacak gibi gorunuyor.

Isitilan cisimin sicakligi bir sekilde set edilen degeri asarsa artik onun kendi kendine sogumasini beklemekten baska secenegimiz yok. Ama bu esnada PID kontroller yanlis isler yapiyor olacak.

Zira garibim PID, negatif voltaj verdiginde sicakligin hizlica dusecegini saniyor ancak oyle olmayacak ve integral negatif yonde hizla artmaya baslayacak.

Bu sistemi tek bir transfer fonksiyonu ile degil 2 ayri transfer fonksiyonu ile modellemek lazim.

birincisi pozitif hatalar icin, digeri negatif hatalar icin. Fakat gerilimin karesinin isin icinde oldugu bir denklemin laplace donusumu alinabilir ve klasik kontrol teorileri uygulanabilir mi bakmak lazim.
Seytan deliginden kacti.

Firzen

Alıntı yapılan: Zoroaster - 14 Ekim 2018, 13:59:42O kodlar PID kodu. Ben komple sistemden bahsediyorum.

Sogutma duzenegi olmayan elektrikli isitma sisteminin cozumunu S domeninde yapamazmiyiz?

Sorunu sanirim ifade edebildim.

Aslinda bu sistemin S domeninde cozumununu yapamiyor olmamiz lazim.

P=V^2/R

E(s)=(1/s) P(s)

Sicaklik (K/s^2)P(s)

P(s)=V(s)^2/R

guc voltajla dogru orantili degil. Lineer bir sistem de degil. Haliyle transfer fonksiyonu yazamamiz gerekir. (?)

Sonucta isiticiya uygulanan gerilimin karesi isiya cevriliyor.

Hata isareti negatif olup isiticiya uygulanan voltaji negatife dogru zorlamaya baladiginda gerilimi sifir yaparak
bir seyler yapiyoruz ama pratikte elde edecegimiz cevap siradan bir 2. derece sistem cevabindan farkli olacak gibi gorunuyor.

Isitilan cisimin sicakligi bir sekilde set edilen degeri asarsa artik onun kendi kendine sogumasini beklemekten baska secenegimiz yok. Ama bu esnada PID kontroller yanlis isler yapiyor olacak.

Zira garibim PID, negatif voltaj verdiginde sicakligin hizlica dusecegini saniyor ancak oyle olmayacak ve integral negatif yonde hizla artmaya baslayacak.

Bu sistemi tek bir transfer fonksiyonu ile degil 2 ayri transfer fonksiyonu ile modellemek lazim.

birincisi pozitif hatalar icin, digeri negatif hatalar icin. Fakat gerilimin karesinin isin icinde oldugu bir denklemin laplace donusumu alinabilir ve klasik kontrol teorileri uygulanabilir mi bakmak lazim.

Hocam öncelikle PID vermemin sebebi sistemi komple ele almaya gerek yok önemli kontrol işaretinin ne ürettiğidir. Bizim Labta process kontrol cihazları vardı, eğer herhangi bir soğutma sistemi yoksa sistemin kendi kendine soğutmasını beklemek gerekli olacaktır. Bunun içinde zaten işaret hiçbir zaman negatif olmaz. Sebebi şu 32C de ısıyı tutmak istiyorsunuz. Kontrol işareti uyguladınız 32C de +-1 arasında steady state error yapıyor +1 olduğunda gerilimi keser -1 olduğunda ise arttırır klasik kontrol işareti mantığı.

Komple sistem S domeninde ifade edilir mi aslına bakarsanız edilir ama düzeceğin yapısı önemlidir (Isıl ve process sistemler için : Norman Nise, Control Systems Engineering). Bence sizin nonlinear dediğiniz kısım daha çok Parameter Uncertainty olacak. Sebebi ise bilinmeyenler veya değerler tam yerine oturmadığı için (gerilim dalgalanması, Dirençlerin hassaslık değerleri, noise ve tabiki disturbanceler) kararlı davranması gereken noktada salınım yapacaktır. O zamanda değerleri hassas ayarlamak gereklidir. (Bkz : Hermite Beihler, Hurwitz, Mikailov, interlacing)

Hocam birde asıl mevzu ise şu zaten o yüzden vermiştim. Hata işaretinin negatif çıkması. Hata işareti negatif çıkarsa integral sarmasına girer zaten bunu engellemek için biz sistemde antiwindup kullanıyoruz. (İntegral wind-up : Ogata, System Dynamics)

Sistemi iki ayrı transfer fonksiyonu olarak modellemek derken zaten TITO sistem olarak bahsediyorsunuz. Bu tat sistemlerde Luenberger Gözleyici daha çok önemli olur. O zamanda S domeni değil daha çok state space modern kontrol teorileri tercih edilir. Çünkü sistemin anlık verilen cevapları sistemin özniteliklerine direk etki eder. (Bishop : Modern Control Theory)
University of Idaho                                  Postdoctoral Fellow

Zoroaster

Simdi T=0 aninda girise basamak sinyali uyguladik. PID vs her neyse bir kontroller bu girdiye cevap verirken iyi tune edilmemis PID den dolayi sistem asim yapti ve set degeri asildi. Bu esnada hata negatife dondu. 
ve asim %10 %20 tepe yapti. Asim anindan itibaren hatamiz negatif. Bu esnada KP x err negatif. Integrator de negatif err ile integral almaya devam ediyor. Bir sure sonra artik kontroller ciktisi pek ala negatif degerler alabilir.

Hatta Ki=0 yaparsak asim oldugu anda artik cikisimiz negatif demektir. Taaki set pointin altina ininceye kadar.
Seytan deliginden kacti.

Firzen

Hocam valla bunun için size matlabta örnek göstermem gerekli. Çünkü Aslında kendi sorunuza cevap veriyorsunuz.
Isıl sistemler için;
Çıkan hata işareti negatif diyelim. Doğal olarak işaret negatif olacak (u = -K*e) diyoruz.

Linear sistemlerde (s-domainden bahsediyorum) aslında biz işareti üretiyoruz negatif veya pozitif çıkan U işareti ile gerçek zaman t domaini karşılaştırmak doğru değil.

biri continious da verdiği cevap, diğeri t domaininde verdiği cevap. katsayılar aynı olduğu için kullanıyoruz.

Bu yüzdendir ki size PID atarken antiwindup threshold vs dedim. Araştırmanız gereken kısım discete-time control. Burada sistemin gerçek hayattaki modeline yakın olan (z-domain) model anlatılıyor.
University of Idaho                                  Postdoctoral Fellow

Zoroaster

Hocam, S ve Z domeni zaten ilgilendigim konular. 
Integral windup,  tureve sinir getirme, saturasyon gibi konulari biliyorum.

Tek derdim isitma sistemlerindeki bu negatif hata durumuna aciklik getirebilmek.


err isaretinin pozitif/negatif olmasi T de de S de de Z dede ayni anlama gelir.

En basitinden Laplace [f(t)]= - Laplace[-f(t)]

Bu kisa tartismadan,

Piyasadaki PID cihazlarin, enerji verilen resistansin isittigi sistemdeki sicaklik artisi ile enerjisi kesilen resistansa bagli sistemin dogal yollarla sicaklik kaybi yaklasik benzerdir kabuluyle yapildigi sonucuna vardim. Ancak simulasyon yaparak hakli olup olmadigini gormem lazim.


1. Sicakliktaki artisin gerilimin karesi ile orantili oldugu sistemler S ile modellenebilirmi? (!)
2. Bir elektrikli actuatore seri diyod baglandiginda bu sistem, diyod baglantisiz sistemle ayni mi davranir? (Tabiki hayir) Tartismaya actigim konu bu diyod ornegi ile cok ortusuyor.
Seytan deliginden kacti.

Firzen

Tam olarak dediğiniz gibi yaklaşık olarak elde edilen modeller. Diğer konuda ise zaten yapılan bu kayıpların hepsi belirli yaklaşım ile yapılıyor.

https://www.nature.com/articles/s41598-017-14242-x
https://www.degruyter.com/view/j/jnet.2004.29.issue-1/jnetdy.2004.005/jnetdy.2004.005.xml

Çıkan ısının yayılımı ve dağılımı konusunda bir iki kaynak buldum. Sanırım sadece heatsink gibi kullanılan pasif elemana göre laplace formunda nominator kısmına -s değeri olarak ekleniyor.
University of Idaho                                  Postdoctoral Fellow

Zoroaster

Peki gerilimin karesi ile orantili cikis veren sistemler laplace ile ele alinabilirmi?

Eger alinabiliyorsa lineer sistem tanimini bu gune kadar yanlis anlamisim demektir.

Bir sistem lineer ve zamanda degismezlik ozelligi gosteriyorsa bu sistemi S domeninde inceleyebiliriz diye ogrenmistik.
Seytan deliginden kacti.

Firzen

y = f(x) olan sistemlere biz Linear diyoruz zaten,

dy = f(x) olan sistemlere nonlinear diyoruz. Eğer sizin sisteminizde güç bir etkense (ayni UAV'lerdeki gibi) o zaman sistemin denklemine eklemek zorundasınız.

Sizin gerilimin karesini aldığınız zaman sistemin çıkışında gücü görmek istiyorsanız o zaman sistem nonlinear deriz.

Sorunuzun cevabı aslına bakarsanız 2 türlü evet 1 türlü hayır.
1- Nonlinear sistemi linearleştirebilirsiniz.
2- Nonlienar sistemin giriş ve çıkışlarına bağlı bir sistem tanıma yapabilirsiniz. Buradan size linear denklem çıkar
3- Hiçbir şekilde linear işlemlere girmeden (LTI Olmaksızın), Doğrusal Olmayan Zamanla değişen sistemlerin inceleme metodları var onlarla bakabilirsiniz. (Global Kararlılık, Hurwitz, Jury...)
University of Idaho                                  Postdoctoral Fellow