MAK669 LINEER ROBUST KONTROL s.selim@gyte.edu.tr 19.12.2014 1
Kontrol Tasarımı Şekildeki yapısal sistem bina benzeri bir 4 katlı yapının modelini göstermektedir. Bu modelde katlar kütleleri, kolonlar yay ve sönüm katsayısı içerdiği kabul edilmektedir. Zeminden sismik bir giriş olduğunda yapının titreşimlerinin en üst katta bulunan bir aktüatör ile kontrol edildiği düşünülmektedir. Bu yapısal sistem için kontrol tasarımı gerçekleştiriniz. Bu yapısal sistemde 4 adet titreşim modu olup birinci ve ikinci titreşim modları kontrol edilirse titreşimlerin büyük kısmı kontrol edilebilmektedir. Kontrol tasarımında ilk 2 mod esas alınacaktır.
Kontrol Tasarımı Yapısal sistemin hareket denklemi M x C x K x F u H z f f f f f x1 0 m1 x 2 0 m 2 x, Ff, H f x 3 0 m 3 x 1 m 4 4 m1 c1 c2 c2 0 0 k1 k2 k2 0 0 m 2 c2 c2 c3 c3 0 k2 k2 k3 k3 0 M f, C f, K f m 3 0 c3 c3 c4 c 4 0 k3 k3 k4 k 4 m 0 0 c c 0 0 k k 4 4 4 4 4
Kontrol Tasarımı Tam dereceli sistem x A x B u y f f f f C x r f f İndirgenmiş model elde etmek için öncelikle tam dereceli sistemi modal koordinatlara transforme edilmelidir. Bu amaçla A B f f 0 I M K M C M 0 1 f 1 1 f f f f F f, 1 2 = 3 4 tanımlayalım. Modal transformasyon C C f y C y 0, 0 0 0 1 T x, M I f P () s f A C f f B f 0 CK Fu (z=0)
Kontrol Tasarımı C K diag T T C K f c c c c f 11 22 33 44 2 2 2 2 diag 1 2 3 4 Modal koordinatlara taşınan sistemde ilk iki mod indirgenmiş sistem modelini oluşturur. C K F u r r r r r r r r r r 1 2 C diag c c K 11 22 2 2 diag 1 2 F f f 1 2 T T,, ( ) 1 2 3 4 x 12 r T F Ff f1 f2 f3 f4 T İndirgenmiş sistem durum uzayı denklemi: x A x B u y r r r r C x r r r
Kontrol Tasarımı kontrol edilen son mod frekansı 43 rad/s kontrol edilmeyen ilk mod frekansı 66 rad/s
Bina modeli % plant parameter m1 = 1.5; m2 = 1.5;m3 = 1.5; m4 = 1.5;k1 = 2600; k2 = 2600;k3 = 2600; k4 = 2600; c1 = 0.1; c2 = 0.1;c3 = 0.1; c4 = 0.1; M_f=diag([m1 m2 m3 m4]); K_f=[ k1+k2 -k2 0 0 ;-k2 k2+k3 -k3 0 ;0 -k3 k3+k4 -k4 ;0 0 -k4 k4 ]; C_f=[ c1+c2 -c2 0 0 ; -c2 c2+c3 -c3 0 ;0 -c3 c3+c4 -c4 ;0 0 -c4 c4 ]; F_f=[0 0 0 1]'; n = length(m_f); M_fi = inv(m_f); % Definition of the full order model Af = [ zeros(n,n) eye(n,n) ;-M_fi*K_f -M_fi*C_f ]; Bf = [ zeros(n,1) ; M_fi*F_f ]; Cf1 = [ 0 0 0 1 ]; Cf = [ Cf1 zeros(1,n) ];Df = [ 0 ]; % Transform to modal axis [V,D] = eig(m_fi*k_f); [eva,idx] = sort(diag(d)); eve = V(:,idx); eme = eve'*m_f*eve; nrm = inv(sqrt(diag(diag(eme)))); phi = eve*nrm; M = phi'*m_f*phi;k = phi'*k_f*phi; C = phi'*c_f*phi;f = phi'*f_f; Cf1p = Cf1*phi; % Definition of the reduced order model (modal axis model) nr = 2; Mm = M(1:nr,1:nr);Km = K(1:nr,1:nr); Cm = C(1:nr,1:nr);Fm = F(1:nr,1); Cfm = Cf1p(1,1:nr); Arm = [ zeros(nr,nr) eye(nr,nr) ;-Km -Cm ]; Brm = [ zeros(nr,1) ; Fm ]; Crm = [ Cfm, zeros(1,nr) ]; Drm = [ 0 ]; % Definition of the reduced order model(physical axis model) phi12=phi(:,1:nr); Tphi12=[phi12 zeros(n,nr) ;zeros(n,nr) phi12 ]; Cy=[ 1 0 0 0 ; 0 0 0 1 ]; it=[ Cy zeros(nr,n) ; zeros(nr,n) Cy ]*Tphi12; T=inv(iT); Ar=iT*Arm*T; Br=iT*Brm; Cr =Crm *T; Dr =Drm; % Frekans cevabi w = logspace(-1,2,300); omega = w*2*pi; [magp,phase] = bode(af,bf,cf,df,1,omega); [magr,phaser] = bode(ar,br,cr,dr,1,omega); figure(1) semilogx(omega,20*log10(magp(:,1)),'r-',omega,20*log10(magr(:,1)),'b-');grid; set(gca,'fontname','times','fontsize',12) title(' Tam ve Indirgenmis dereceli sistem frekans cevaplari ') xlabel('frekans [ rad/s ]'); ylabel('genlik [ db ]') axis([ 1 100-140 -20 ])
Kontrol Tasarımı P f İlk olarak titreşim kontrolü problemini ihmal edilen yapısal olmayan belirsizliklerin neden olduğu gürültü kontrolü problemi olarak ele alalım. Sisteme etkiyen gürültünün giriş tarafından etkidiği (çarpım belirsizliği) kabulu ile kontrolör dizayn yapısı oluşturulabilir. Gürültü w dan kontrol edilen değişken z 1 u m K Pr y W M Pr 1 PK r Robust kararlılık için çarpım belirsizlik z 2 w z 1 ( j) W ( j) m şartını sağlayan W w dan z e norm şartı oluşturulabilir. 2 PK r Wt 1 PK r t t kullanarak u W t K P r W M y
Kontrol Tasarımı Çarpım belirsizliği oluşturulması m ( j) P ( j) P ( j) f r P( j) r Pf = pck(af,bf,cf,df); Pr = pck(ar,br,cr,dr); w = logspace(0,2,500); Pf_g=frsp(Pf,w); Pr_g=frsp(Pr,w); Pd_g=mmult(msub(Pf_g,Pr_g),minv(Pr_g));
Kontrol Tasarımı Gain [db] olmayan mod hatası 10 2 Frequency response of Wm and Pd 10 1 Wt Pd 10 0 10-1 W t 2 2 s 2nm nm nm kt 2 2 s 2dm dm dm 2 10-2 10-3 10-4 10 0 10 1 10 2 Frequency [rad/s] Titresim kontrol sistemlerinde kontrol edilecek son mod frekansı ile kontrolün yapılmayacağı ilk mod frekansı dm ağırlık fonksiyonunun belirlenmesinde kullanılmaktadır. nm
Kontrol Tasarımı %Carpim belirsizligi Pf = pck(af,bf,cf,df); Pr = pck(ar,br,cr,dr); w = logspace(0,2,500); Pf_g=frsp(Pf,w); Pr_g=frsp(Pr,w); Pd_g=mmult(msub(Pf_g,Pr_g),minv(Pr_g)); % Frekans sekillendirme filtresi wnm = 43; nzta = 0.50; wdm = 66; dzta = 0.15; kt = 2.0; numwt = [1 2*wnm*nzta wnm^2]; denwt = [1 2*wdm*dzta wdm^2]; Wt = nd2sys(numwt,denwt); Wt = mmult(wt,wt,kt); % Wt=Wm*Wm*kt; Wt_g = frsp(wt,w); vplot('liv,lm',wt_g,'--',pd_g) title('frequency response of Wt and Pd') xlabel('frequency [rad/s]'), ylabel('gain [db]') legend('wt','pd')
Kontrol Tasarımı olmayan mod hatası 20 0-20 m Çarpım belirsizliği ve sistem frekans cevabı birlikte çizilirse ihmal edilen modlar daha belirgin olarak görülebilir. -40-60 -80-100 Pf m % Frekans cevabi w1 = logspace(0,2,200); gf = bode(af,bf,cf,df,1,w1); gr = bode(ar,br,cr,dr,1,w1); gf_log = vpck(20*log10(gf),w1); -120 10 0 10 1 10 2 İhmal edilen modlar vplot('liv,d',gf_log,'b-',pd_g,'r--') legend('p_f','\delta_m') title('frequency response of P_f and \Delta_m') xlabel('frequency [rad/s]'); ylabel('gain [db]')
Gain [db] Kontrol Tasarımı W t 2 2 s 2nm nm nm kt 2 2 s 2dm dm dm 2 20 0-20 -40 Titreşim kontrol sistemlerinde kontrol edilecek son mod frekansı ile kontrolün yapılmayacağı ilk mod frekansı dm ağırlık fonksiyonunun belirlenmesinde kullanılmaktadır. nm -60-80 P f Wt -100 10 0 10 1 10 2 10 3 Frequency [rad/s] nm dm Pf = pck(af,bf,cf,df); w1 = logspace(0,3,400); gf = bode(af,bf,cf,df,1,w1); gf_log = vpck(20*log10(gf),w1); % Frekans sekillendirme filtresi wnm = 43; nzta = 0.50; wdm = 66; dzta = 0.15; kt = 2.0; numwt = [1 2*wnm*nzta wnm^2]; denwt = [1 2*wdm*dzta wdm^2]; Wt = nd2sys(numwt,denwt); Wt = mmult(wt,wt,kt); Wt_g = frsp(wt,w1); vplot('liv,d',gf_log,'b-',wt_g,'r-') axis([1 1000-100 20]) legend('p_f','wt') xlabel('frequency [rad/s]'); ylabel('gain [db]')
Kontrol Tasarımı Gain [db] Esas olarak W M filtresi belirsizlik etkisinde kontrol sistem hassasiyetini azaltmak için kullanılmaktadır. 220 200 180 160 140 W M W M W SP Pr 1 PK r 200SP M r r SP r 200 120 100 80 60 40 20 0 10 0 10 1 10 2 10 3 Frequency [rad/s] WM sabit 200 am=[];bm=[];cm=[];dm=200; WMM=pck(aM,bM,cM,dM); Filtre sabit olarak alınırsa frekans dinamiği olmamaktadır. Kontrolör derecesi filtre derecesi sıfır olduğundan artmamaktadır. WM_g = frsp(wmm,w); vplot('liv,d',wm_g,'b-') axis([10^0 10^3 0 220]) xlabel('frequency [rad/s]'), ylabel('gain [db]')
Kontrol Tasarımı systemnames = ' Pr WM Wt '; inputvar = '[ dist; control ]'; outputvar = '[ WM; Wt; Pr ]'; input_to_pr = '[ dist + control ]'; input_to_wt = '[ control ]'; input_to_wm = '[ Pr ]'; cleanupsysic = 'yes'; G=sysic; u Wt z 2 w P r WM z 1 y
Kontrol Tasarımı >> gmin = 0; gmax = 10; k = hinfsyn(g,1,1,gmin,gmax,0.1,2); Warning: Divide by zero. > In hinf_st at 49 In hinfsyn at 171 d21 does not have full row rank Rank şartı yerine gelmediğinden çözüm yok
Kontrol Tasarımı systemnames = ' Pr WM Wt '; inputvar = '[ dist; noise; control ]'; outputvar = '[ WM; Wt; Pr + 0.001*noise ]'; input_to_pr = '[ dist + control ]'; input_to_wt = '[ control ]'; input_to_wm = '[ Pr ]'; cleanupsysic = 'yes'; G=sysic; u Wm z 2 w P r z 1 WM 10 3 n y Rank şartının yerine gelmesi için ölçülen değişken üzerinde sensör gürültüsü kabul ediyoruz.
Kontrol Tasarımı kontrolör derecesi: >> size(ak) ans = 8 8 düşük frekans bölgesinde integral etkisi içermiyor fakat kazanç yeterince yüksek. kontrol etkinliğinin titreşim modlarını bastırdığı bölge kontrol kazancı yüksek frekans bölgesinde düşüyor. kontrol edilmeyen modların uyarılmamaması sağlanıyor. Robust performans şartı yerine getiriliyor. >> size(ar)+size(awt) ans = 8 8 gmin = 0; gmax = 10; k = hinfsyn(g,1,1,gmin,gmax,0.1,2); [ak,bk,ck,dk]=unpck(k); % Frequency response of controller w = logspace(0,3,200); k_g = frsp(k,w); vplot('bode',k_g);
Genlik [ db ] Kontrol Tasarımı 0 Tam Dereceli Sistem Acik ve Kapali Cevrim Frekans cevabi -20-40 -60-80 -100 w = logspace(-1,3,300); omega = w*2*pi; %Kapali cevrim sisteminin cevabi Pff=ltisys(Af,Bf,Cf,Df); PKcl=sloop(Pff,k,1); -120-140 10 0 10 1 10 2 Frekans [ rad/s ] [Ac,Bc,Cc,Dc]=ltiss(PKcl); [magpk,phasepk] = bode(ac,bc,cc,dc,1,omega); [magpf,phasepf] = bode(af,bf,cf,df,1,omega); figure(4) semilogx(omega,20*log10(magpk(:,1)),'r',omega,20*log10(magpf),'b');grid; title(' Tam Dereceli Sistem Acik ve Kapali Cevrim Frekans cevabi ') xlabel('frekans [ rad/s ]') ylabel('genlik [ db ]') axis([ -1 100-140 0 ])
Kontrol Tasarımı H kontrolor durum uzayı yapısı: x A x B y K K K K u C x D y K K K K Kontrolör derecesi = sistem derecesi+ağırlık fonksiyonları derecesi >> size(ak) ans = 4 4 >> size(ap)+size(aws)+size(awt) ans = 4 4
Kontrol Tasarımı Kontrol sisteminde kontrol edilen değişkenlerin sayısına bağlı olarak frekans şekillendirme filtrelerinin boyutu ortaya çıkar. Değişken sayısına bağlı olarak filtre toplam transfer matrisi köşegen şekilde oluşturulur. w T w T z 2 z 1 w T W T w T w T w T w T u w T P w S w S y W S w S w S Genel bir kural ağırlık fonksiyonları derecesi arttıkça kontrol sisteminin performansı artar.fakat kontrol girişi ve ölçülen değişken sayısı arttıkça kontrolör derecesi sistem derecesinin çok üstünde bir değerde oluşur.
H Kontrol Tasarım Örnekleri Hadde kontrol sistemi
H Kontrol Tasarım Örnekleri Gaz türbini kontrol sistemi
H Kontrol Tasarım Örnekleri Tren süspansiyon kontrol sistemi
H Kontrol Tasarım Örnekleri Uydu kontrol sistemi
H Kontrolörün Hesaplanması Matlab içinde yer alan hinfsyn komutu K.Glover, J.C Doyle tarafından tanımlanan yöntemi kullanmaktadır. Genel sistem yapısı: A B B G(s)= C D D C 2 D21 0 1 2 A B 1 11 12 C D Boyutlar: z t p1 p2 ( ), y( t), 1 2 w( t), u( t), x( t) m m n Matlab Command window: type hinfsyn type hinf_c Glover, K., and J.C. Doyle, "State-space formulae for all stabilizing controllers that satisfy an H-infinity norm bound and relations to risk sensitivity, Systems and Control Letters, vol. 11, pp. 167-172, 1988.
H Kontrolörün Hesaplanması Genel sistem aşağıdaki şekilde verilsin: x Ax B w B u 1 2 z C x D w D u 1 11 12 y C x D w D u 2 21 22 H Kontrolörün varlığı için Temel Kabuller: A1 - ( A, B ) kontrol edilebilir ( C, A) ölçülebilir A2 - D 12 2 ve D 21 2 A3 - G 12 : bütün değerleri için tam rank C1 D 12 A4 - tam rank şartını yerine getirir A ji B A ji B 1 G 21 : bütün değerleri için ta C2 D 21 2 m rank
H Kontrolörün Hesaplanması Yöntem ilk olarak aşağıdaki kabulü yapmaktadır: A2 kabulünü A2 olarak aşağıdaki şekilde somutlaştıralım: 0 D12, D21 0 I I Ayrıca bu kabullere uygun olarak D aşagıdaki şekilde kısımlara ayrilir: 11 D 11 ( p m ) D ( m p ) 1 2 D 1 2 11 11 1112 m 2 D1121 D 1122 p 2 Bir sonraki adımda aşağıdaki matrisler tanımlanmıştır: * m1 R : D D, D D D R: D 1 1 1 11 12 D * 1 1 2 I 0 0 0 2 I 0 p 1 0, 0 D 1 D D 11 21
H Kontrolörün Hesaplanması C1 D11 D12 B : B1 B2, C :, D C D 0 2 21 matrisleri için Hamilton matrisleri L, J aşağıdaki şekilde tanımlanmaktadır: L A 0 B 1 * * R D * * * 1C1 B C1 C1 A C1 D 1 J * * A 0 C 1 * * * R D 1B1 C B1 B1 A B1 D 1 Bu aşamada asağıdaki Riccati denklemlerinin çözülebilir olduğunu kabul edip bu çözümlerin X, Y : X =Ric(L ), Y =Ric(J ) olduğunu kabul ediyoruz. Buradan
H Kontrolörün Hesaplanması Sırasıyla aşağıdaki state feedback ve output feedback matrisleri hesaplanır: ( m1 p2) F11 1 * * F p 2 F 12 R D1 C1 B X m 2 F 2 H [ H H H ] B D Y C R * * 1 11 12 2 1 1 ( p m ) m p 1 2 2 2 F state feedback H output feedback matrisleri aşağıdaki şekilde yapılandırılır. H T T F D F11 F12 F2 H D D 0 11 1111 1112 H12 D1121 D1122 I H2 0 I 0
H Kontrolörün Hesaplanması Teorem : A1, A2, A3, A4 kabullerinde standart H kontrol probleminin çözümü aynı zamanda G şartını saglayan iç kararlı kontrolör K(s) in var olabilmesi için gerek ve yeter şart 1. Verilen bir değeri için aşağıdaki şart sağlanmalı. max [ D, D ], [ D, D * * 1111 1112 1111 1121 ] 2. Riccati denklemlerinin çözümlerinin X şartını sağlaması 2 0,Y 0 var olması ve (X Y )<
H Kontrolörün Hesaplanması Teoremdeki şartları yerine getiren bütün H kontrolörler serbest parametreye bağlı olarak aşağıdaki şekilde bulunur: N( s) 1 şartını sağlayan K() s M M ( I NM 11 12 22 ) 1 NM 21 Burada M M(s)= M M 11 12 M 21 22 Aˆ Bˆ Bˆ Cˆ Dˆ Dˆ Cˆ ˆ 2 D21 0 1 2 1 11 12 Dˆ D D I D D D D * 2 * 1 11 1121 1111 1111 1111 1112 1112 Dˆ, Dˆ matrisleri aşağıdaki şartları sağlayan matrislerdir m m p p 12 21 2 2 2 2 1 1 Dˆ Dˆ I D I D D D Dˆ * 2 * * 12 12 1121 1111 1111 1121 * 21 ˆD I D I D D D * 2 * 21 1112 1111 1111 1112
H Kontrolörün Hesaplanması Bˆ ( B H ) Dˆ 2 2 12 12 Cˆ Dˆ ( C F ) Z 2 12 2 12 Bˆ H Bˆ Dˆ Dˆ 1 1 2 2 12 11 Cˆ F Z Dˆ Dˆ Cˆ 1 1 2 11 21 2 Aˆ A HC Bˆ Dˆ Cˆ 1 2 12 1 Burada Z I 2 YX 1 Ns ( ) 0 olduğu durumda K( s) Cˆ ( si A B D 1 ˆ 1 ) ˆ ˆ 1 11 elde edilir. Bu çözüm "merkezi çözü m" ( central solution) olarak isimlendirilmektedir.
H Kontrolörün Hesaplanması Matlab hinfsyn de temel olarak kontrolün hesaplanması: hinfsysn. m içinden hinf_st.m dosyası çagrılmakta A3, A4 kabulleri =0 için yerine getiriliyormu kontrol edildikten sonra Riccati denklemleri çözümlerinin olup olmadığına bakılmaktadır. Bu şart sağlandıktan sonra A2 şartı yerine getirilmesine bakılır orijinal genel sistem için çevrim şekillendirme yerine getirilir. iterasyonu hinfsyn.m her bir iterasyonda hinf_gam.m dosyasını çağırarak yerine getirmektedir. Temel olarak verilen icin X ve Y hinf _gam.m de hesaplanır bu sonuçlara bağlı olarak hinfsyn. m herbir iterasyonun çözüm olma durumu değerlendirilmektedir. minimize eden kontrolör hinf_c.m dosyasından alınır. M-dosyasının içeriğine bakıldığında burada anlatılan adımların aynen yerine getirildiği görülür.
Dönem Ödevi L=1.8 m; m=0.2421 kg; E=0.75e11; I=6.75e-11; h=3e-3; xs=0.5 m; xa=0.3 m; z x a f Manyetik Aktüatör Elastik çubuk zeti=[0.05;0.008;0.006;0.005;0.005; 0.004 ; 0.004 ; 0.004 ]; im=8; % modellenecek mod sayısı Ki=0.078;% aktüatör kazancı [N/V] Ky=20e-6;%sensor x kazancı [1/V] x s Ki Ky Kontrol Bilgisayarı Elastik çubuğun 8. moda kadar sürekli sistem olarak modellendiğini düşünelim. Kontrol dizaynı ilk üç mod için yapılacaktır. 35
Dönem Ödevi Kontrol tasarım çalışmasını gerçekleştiriniz. -Frekans şekillendirme filtrelerini elde ediniz. Frekans cevaplarını çizdiriniz. -Genelleştirilmiş sistem yapısını oluşturunuz. -Hinf kontrol tasarımını karışım hassaslık yapısında yapınız. -Kapalı çevrim frekans cevabını elde ediniz. -Sistemin kapalı çevrim Simulink dosyasını oluşturarak zaman domenindeki davranışını sensör çıkışı, kontrol girişi gibi elde ediniz.(başlangıç şartları siz seçiniz) Ödev dosya içinde Final sınavı günü teslim edilecektir. 36
Final Sınavı Final sınavı 9 Ocak 2015 günü saat 14:00 de Z14 nolu sınıfta yapılacaktır. Sınava tüm konular dahildir.