PID Kontrol Mantığı

Başlatan ete, 23 Ekim 2004, 10:57:02

CoşkuN

Evet bir sistemi modellemek için değişik durum denklemleri olduğunu biliyordum.Ancak kitapta şöyle denilmiş:
"Bir durum uzayı modeli sistemin ara durumlarını modeller ve çoklu girdi ve çıktıya sahip başlangıç değerleri olmayan sistemlerle ilgilenir. "
Durum-uzayı gösterimi başlangıç değerleri olan sistemleri de modelleyemiyor muydu? Ben mi yanlıl hatırlıyorum.

z

Şimdi adım adım gidelim. (Ha bu arada coşkun 20, kürsüyü senden devraldım sanma)

RLC devremiz 2.dereceden diferansiyel bir denklemle ifade ettik.

W.Bolton kitabında demişki;

Genelde n'inci dereceden bir diferansiyel denklem, n tane birinci derece denkleme ayrılabilir.

O halde bizde sistemi iki adet birinci dereceden diferansiyel denklemle ifade edeceğiz.

RLC devremizde çıkış büyüklüğümüz devreden geçen akım, giriş büyüklüğümüz de voltajımız.olsun.

Bu şartlara göre durum denklemimizi yazmaya çalışalım.  Tabiki öncelikle  durum değişkenlerimizin ne olduğuna karar vermeliyiz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Alıntı YapDurum-uzayı gösterimi başlangıç değerleri olan sistemleri de modelleyemiyor muydu?

Haklısın yazarken eksik yazmışım.

Başlangıç değerleri olmayan cümlesini Baçlangıç değerleri sıfır olmayan cümlesi ile değiştirdim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Estağfirullah ,kürsü hepimizin :)
RLC devremizde değişkenler olarak akımı (i) ve türevini (i') alabiliriz.x1=i
x2=x1' şeklinde.Sonrası x1' ve x2' ifadelerinin elde edilmesi.

z

1. Türevi D
2. Türevi DD ile gösterirsek

L*DDi + RDi + i/C=De yazabiliriz.

x1=i
x2=Di durum değişkenleri için

L*Dx2 + Rx2 + x1/C=De  olur.

Dx2 = - x1/LC - (R/L)* x2 + (1/L) De

Di = x2  olduğuna göre

Dx1 =X2 olur

De = u dersek

Matrisel yazım burada resimsiz zor olacağından matris çarpımını yazıyorum.

d/dt   x1 =  0*x1 + 1*x2 + 0*u

d/dt   x2 =  -1/LC * x1  -(R/L) *x2 + (1/L)*u  olur

Ancak internetteki çözümde giriş kaynak matrisi

1/L ve -R/LL bulunmuş ben nerede hata yaptım bilmiyorum zira

aynı matrisin elemanlarını 0 ve 1/L olarak buldum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Ben de aynı sonuçları buldum.Acaba internetteki sayfada başka bir değişken mi kullanmış.Sayfanın başında ikinci derece denklemlerin genel bir şeklini ve değişkenlerin genel ifadelerini vermiş çünkü.Bizim yaptığımızda bir sorun yok.

z

Aslinda hata yok ama durum degiskenlerini boyle secmesek daha iyi olurmus. (Secimde serbestiz ve pek cok  durum denklemi yazilabiliyoruz demistik)

Aksam kitaplari biraz karistirdigimda konunun cokda zor olmadigi ortaya cikti. En azindan buraya kadarki bolumler kolaymis, halbuki bu bir gunluk tartismaya dahil olmasaydim hala kitaplarda state-space anlasilmaz kalmaya devam edecekti. (Sonucta tetiklendim ve en azindan kitaplarin ilgili bolumlerini  ilgiyle takip etmeye basladim)

Simdi tekrardan en basa donmekte fayda var.

Lineer ve zamanla degismeyen bir sistem

d/dt(xt) = Ax(t) + Bu(t)

ve

y(t)=Cx(t)+Du(t)+ D1 du/dt + ......  iki adet denkemle belirlenir.

Bunlardan birincisi durum denklemi, ikincisi de cikis denklemidir.

Burada x(t) durum degiskenleridir. (Tureve neden olan elemanlardan secilmelidir. (Benim yorumum))

A,B,C,D,D1..... sabit ve reel sayilardan olusan matrislerdir.

u, giris vektorlerimiz (bagimsiz kaynaklar)
y, cikis vectorumiz (sonucunu merak ettigimiz buyuklukler)
x, durum vectorumuz

matrislerimiz;

u, mxl boyutunda
y, pxl boyutunda
x, nxl boyutunda

A,B,C,D,D1..... nxn boyutunda.

x(t) ler yani x1(t), x2(t).... herbiri durum degiskenidir.

Gelelim durum degiskenlerinin secimine.

Integralden kacinmak icin kapasitelerin gerilimleri, enduktanslarin akimlari durum degiskeni secilebilir.

Bu aciklamalardan sonra seri RLC devremizi tekrar ele alabiliriz.

Ldi/dt + Vc + Ri = e(t) devremizin denklemidir.

Durum degiskeni olarak i(t) ve Vc(t) secilirse ve bunlara sirayla x1, x2 dersek;

d/dt x1= -(R/L)*x1 - (1/L)*x2 + (1/L)e(t) bulunur.

CdVc/dt=x1 oldugundan

d/dt x2 = (1/c) x1 bulunur

O halde bunlari matris biciminde yazarsak (ama malesef forumda matematiksel sembol ozelligi yok, GROUND anla artik)

d/dt x1= -(R/L)*x1 - (1/L)*x2 + (1/L)*e(t)
d/dt x2 = (1/c)*x1  +  0   *x2 + 0     *e(t)

elde ederiz.

Peki cikis buyuklugumuz neydi? devreden gecen akim. Istersek bir tane daha secebiliriz.  VR yada VL olabilir.Simdilik I(t) yeterli

i(t) = x1 zaten bu bizim durum degiskenimizdi dolayisi ile cikis denklemimiz i(t) = x1 olacaktir.

Artik elimizdeki herhangi bir sistemin durum denklemlerini ve cikis denklemlerini elde edebiliyoruz.

@Coskun20  tamam simdi devam edelim. State-Space kontrol icin baska neler yapacagiz.

(Sn Esref Sen'in Analog ve Digital Devreler ve Sistemler adli kitabindan yararlanilmistir)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Olayın genel mantığı bu.Bundan sonrası bu denklemlerin çözümü.Elimdeki yabancı kitaplarda "örnek olması için biri normal çözümü gösteriyoruz.Ancak bu tür işlemler karışık olduğundan,hata yapmaya çok elverişlidirler.Dolayısıyla MATLAB gibi programları kullanmanızı öneriyoruz" diyorlar.
Aşağıdaki adreste wikipedia'daki güzel açıklamalar var.Değişik sistemler için olan durum denklemlerini de vermiş.
http://en.wikipedia.org/wiki/State_space_%28controls%29
Bundan sonra nasıl gidelim siz karar verin isterseniz.Okulda gördüğümüz konular arasında durum denklemleri-transfer fonksiyonu dönüşümleri de vardı mesala.

CoşkuN

"d/dt(xt) = Ax(t) + Bu(t)

ve

y(t)=Cx(t)+Du(t)+ D1 du/dt + ...... iki adet denkemle belirlenir. " demiştiniz.

Bu durum uzayı denkleminin transfer fonksiyonu karşılığı da:
G(s)=(C(sI-A)^-1)B+D oluyor.

Demiştik ki aynı sistem için birçok durum-uzayı denklemi yazılabilir.Kitaplarda bir sistemin değişik durum uzayı denkleminden değişik denklemlerin türetilmesi anlatılıyor.Buna "similarity transformation" diyorlar.Benzerlik dönüşümleri diye çevirebiliriz herhalde,tam karşılar mı bilmiyorum.Bu dönüşümleri yaptığımızda sistemin transfer karakteristiği değişmiyor ama denklemlerdeki değişkenler değişiyor.Bunu neden istiyoruz peki? Değişkenlerin doğal durum değişkenleri olması için tabi(örneğin,pozisyon,hız gibi...) Çünkü bir sistem tasarlarken ölçebileceğimiz değişkenler doğal olan değişkenlerdir.Kontrol sistemimizi de ancak bu değişkenlere göre tasarlayabiliriz.

z

Patron sensin,

Ama su Matlabi simdilik karistirmayalim isin icine.

1. Matlabi'da ogrenmemiz gerekecek. (Ogrenelim ama onu farkli bir baslikta ele alalim)

2.Nihayetinde kontrol isini bir islemciye yaptiracagiz ve onun matlabdaki gibi yetenekli komutlari olmayacak.

Tamam durum denkleminden transfer fonksiyonuna gecelim. Sen dersde aldigin sirayi takip et.

Not: Sabirsizlikla e^AT matrisine gelmeni  bekliyorum. Tobe anlamamistim onu.

Birde  takip ettigin  kitabin adi nedir?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Ben mesajımı yazarken siz cevap vermişsiniz bile :) neyse devam edelim.
1-MATLAB'i başka bir tartışmaya bırakalım tabi.Ama öğrenmenizi tavsiye ederim.MATLAB'i zaten kontrol sistemimizin içinde kullanmayacağız.Ama sistemimizi daha tasarlarken davranışını simule edebiliriz.
2-Elimde olan kitaplar:
"Feedback Control Systems - Charles Phillips ,Royce D.Harbor
"Feedback Control of Dynamic Systems - Franklin,Powell,Emani,Naenini
"Benjamin Kuo'nun kitabının Türkçe çevirisi"
Şimdi gelelim durum denklemlerinin çözüm yöntemlerine.Yani şu e^aT'lere :)
Genelde kitaplarda 2 yöntem var.En çok kullanılanı galiba Laplace Dönüşümlü olanı:
Durum denklemimiz
Dx(t)=Ax(t)+Bu(t) idi
Matrislerin açılmış hali ile (a11 matris indisleri =1.satır 1.sütün)
Dx1=a11x1+a12x2+.....+a1nxn+b11u1+....+b1rur
Bu denklemlere Laplace dönüşümü uygulayayıp yeniden matris formunda yazarsak
sX(s)-x(0)=AX(s)+BU(s)

x(0)=[x1(0) x2(0)....xn(0)] olmak üzere.

sX(s)-AX(s)=x(0)+BU(s)
Denklemi çözebilmek için X(s)in solda kalması lazım. I birim matris olmak üzere sX(s)i sIX(s) şeklinde yazıyoruz:

sIX(s)- AX(s)=(sI-A)X(s)=x(0)+BU(s)
==>  X(s)=(sI-A)^-1 x(0)+(sI-A)^-1BU(s)
oluyor.
Burada kitapta şu şekilde tanımlanan bir durum geçiş matrisi phi'den bahsediliyor:
phi(t)=L^-1[(sI-A)^-1]

Bu denklemleri düz harflerle yazmak gerçekten zor oluyor.Baksanıza henür e^T lere gelemedik bile.

z

Hocam süpersin,

Evet simdi daha iyi anladim.  Elimdeki kaynakta da soyle gidilmis.
Aslinda ayni sey.

d/dt x(t)=Ax(t) + Bu(t) durum denklemimizi bulmustuk.

S donusumu yaparsak,

SX(s) = AX(s)+BU(s)

SX(s) - AX(s) = BU(s)

Ayni boyuttaki matrisler toplanabilir yada cikartilabilir.

I birim matris olmak uzere

[SI-A]X(s) = BU(s) yazabiliriz.

Ote yandan cikis denklemimizi alirsak

y(t)=Cx(t) + Du(t)

S donusumu yaparsak

Y(s) = CX(s) + DU(s) buluruz.

Y(s) = C[SI-A]^-1 BU(s) + DU(s) olur.

Y(s)/U(s) transfer fonksiyonumuz olduguna gore;

T(s) = C[SI-A]^-1 B + D olur.


Ok zevkle dinliyorum sizi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Hocam bu denklemleri burda yazmak bir işkence.Hele o e^t matrisleri naparız bilmiyorum.Olayı özetleyerek yazalım isterseniz.
En son phi(t) diye bir matristen bahsetmiştik.Bu phi(t) bizim çözümümüzde önemli rol oynuyor.
En nihayetinde bizim çözmemiz gereken matris:
X(s)=(sI-A)^-1x(0)+(sI-A)^-1BU(s)
phi(t) nin laplace ı yani phi(s)= (sI-A)^-1 oluyor bir kere bunu hesaplıyoruz.Bunun sonucunda bol s li bir matrisimiz oluyor.
Ardından
(sI-A)^-1BU(s)'i hesaplıyoruz.
Yine elimizde bol s li bir matris oluyor.
Bu (sI-A)^-1BU(s) teriminin ters laplace ını alıyoruz ve elimizde nihayet e^-t 'li (sizin sevdiğinizden) bir matris oluyor.İşte bu matrise "durum geçiş matrisi diyoruz.
Toplam çözümümüz:
x(t)=L^-1((sI-A)^-1x(0)+(sI-A)^-1BU(s)) oluyor.Afiyet olsun :)

z

Afiyet olsun demissin ama  bogazima takilacak bir durum.
Oncelikle matris tersini almaya bakmam gerekecek.

Ustelik e^-T matrisini yukaridaki yazinda goremedim.

Okul bitti  biteli ilk kez bir matrisin tersini bir yerde kullanacagim.  :D
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CoşkuN

Hocam valla ben de matris tersi nasıl alınıyordu hatırlamıyorum.ikinci sınıfta lineer cebir dersinde gördüktü tabi o zamanlar önemini anlamadık.Şimdi de MATLAB'de al de hemen alayım bir komuttta :)
O e^-t li matris bahsettiğim bol s li matrislerin ters laplacelarında geçiyordu.Forum fontlarıyla yazmaya üşendim :)
Biraz lineer cebir'i hatırlamak gerekiyor bu işlemler için.