MAK669 LINEER ROBUST KONTROL s.selim@gyte.edu.tr 5.12.2014 1
Çevrim Şekillendirme (Loop Shaping) Kontrol sisteminin tek giriş tek çıkış olduğu durumda geribesleme kontrol sisteminin bir özelliği olan L( s) : K( s) P( s) olarak tanımlanan açık çevrim transfer fonksiyonunun(loop) kazancı L(j ) nin düşük frekans bölgesinde büyük, yüksek frekans bölgesinde küçük olması istenir. Böyle bir yaklaşımla kontrol sisteminin var olan belirsizliklerine karşı robust kararlılık sağlanabilir. Tek girişli tek çıkışlı bir sistemde L(s) singüler değer (L) = (L)= L olmak üzere bir skalardır K ( s) P ( s)
Çevrim Şekillendirme (Loop Shaping) P çok girişli çok çıkışlı sistem olması durumunda çevrim şekillendirme yapılırken kazanç yerine singüler değer { L( j)} kullanılmaktadır. i Çok girişli çok çıkışlı sistem P 'nin sabit rejim(steady-state) cevabını iyileştirmek için düşük frekans bölgesinde { L( j)} büyük kontrol sisteminde varolan belirsizlikler sensör ölçme gürültülerine karşı yüksek frekans bölgesinde { L( j)} küçük olması i i sağlanmalıdır. ve
Çevrim Şekillendirme (Loop Shaping) Şekilde gösterildigi gibi çevrim(loop) un düşük frekans bölgesi ve yüksek frekans bölgesindeki özellikleri skalar ağırlık fonksiyon kazançları ( j) 1/ ( j) ( j)} düşük frekans s ve T ile gösterilsin. i{ L bölgesinde s ( j) nin üzerinde yüksek frekans bölgesinde 1/ T ( j) altında istenmektedir. Düşük frekans bölgesi Yüksek frekans bölgesi
Çevrim Şekillendirme (Loop Shaping) Denklemsel olarak ifade edilirse: { L( j)} ( j), { L( j)} i s i T 1 ( j) Singüler değerin alt ve üst değerleri olduğu varsayılırsa: { L( j)} { L( j)} { L( j) } i Sonuç olarak çevrim şekillendirme ve arasındaki ilişki: ağırlık fonksiyonları { L( j)} ( j), { L( j)} s T 1 ( j)
Karışım hassaslık problemi Karışım hassaslık problemi S( s) ve T ( s) ile ilgili dizayn problemi olup S(s) ve T(s)'nin hangi anlama geldiğini şekildeki geribesleme sistemi üzerinde açıklayalım. Kolay olması için P(s) tek giriş tek çıkış olduğunda r, d den e, u ya dört transfer fonksiyonu aşağıdaki şekildedir. 1 e r S() s r 1 P( s) K( s) Ps () e d P( s) S( s) d 1 P( s) K( s) Ks () u r T ( s) / P( s) r 1 P( s) K( s) P( s) K( s) u d T () s d 1 P( s) K( s) r e Ks () u d Ps () y
Karışım hassaslık problemi 1 e r Sr 1 PK P e d PSd 1PK K u r T / Pr 1 PK PK u d Td 1 PK Buradan e hatasını küçük yapmak için S ve PS küçük olmalıdır. Kontrol girişi u yu küçük yapmak için T ve T / P küçük yapılırsa iyi olacağı anlaşılır. P verildiginden dizayn olarak değiştirmek mümkün olmadığından kontrolör K ye bağlı olarak S ve T geribesleme sisteminin performansını belirler. Genelde bilinen e hata ve u kontrol girişi arasındaki tercih( trade-off) yani dizayn işlemi ile hangisinin büyük hangisinin küçük olacağı S( j) T ( j) I şartının yerine getirilmesinde oluşur.
Karışım hassaslık problemi S( j) T ( j) 1 komplek sayı olmasından dolayı şekilde gösterildiği gibi S T 1, S T 1 buradan S S, T T dir. 1 1 2 2 1 2 1 2 S( j) T ( j) 1 şartını yerine getirirken S( j), T ( j) her ikisinin aynı anda büyük olması mümkünse küçük olması da mümkündür.
Karışım hassaslık problemi 1 1 { S( j)} { T( j)} ( j) ( j) S T S S 1, T 1 T Her iki şartı aynı anda yerine getirme problemine karışım hassaslık problemi(mixed sensitivity problem) olarak adlandırılmaktadır. I T z 2 I S z 1 z1 S S u P K y z2 T T
Karışım hassaslık problemi S ve T ilişkisi S( j) T ( j) I yerine getiren bir dizayn problemi haline gelir. Bu şekilde çözüm zor olduğundan gerekli şart: S S T T 1 Şekildeki sistem düşünüldüğünde gürültü den kontrol edilen değişkenler z ve z olan H normunu 1 den küçük yapan H kontrol problemine 1 2 dönüşür.
H Örnek Dizayn Problemi: k x 0 1 0 x1 x1 k c 1 u x 2 x 2 m m m x1 y 1 0 x 2 Ps () 1 2 ms cs k u c Şekildeki basit yay kütle sistemini düşünelim. Sisteme ait yay katsayısı ve sönüm elemanı k ve c olarak verilmektedir. Sisteme aktif eleman tarafından kontrol uygulanmaktadır. m
H Tek serbestlik dereceli titreşim problemi için karışım hassaslık yaklaşımını uygulayıp titreşim kontrolü yapılacaktır. Toplam belirsizlik için karışım hassaslık problemini düşünelim. yapı için genel sistem dan z oluşturulursa: Şekildeki Ele alınan regülatör bir sistem olduğundan kontrol dizaynını (b) yapısına göre yapıyoruz(bu yapıda tamamlayıcı hassaslık transfer fonksiyonu Ta). I T z 2 I S z 1 T z 2 S z 1 u P y u P y K (a) K (b)
Toplam belirsizliği kabulü a WT z 2 WS z 1 u P r y u P r y K K z 1 W y r s u Ky y Pu y P Ky ( ) ( ) 1 I PrK y y I PrK 1 z1 Ws ( I Pr K) z1 WS s r z 2 W u T 1 u Ky u K( I Pr K) 1 y ( I Pr K) 1 z2 WTK ( I PrK ) z2 WT T a WSS WSS G z sistemi için karışım hassaslık H : 1 WT T a WT T a S (1 P K), T K(1 P K) 1 1 r a r
Çarpım belirsizliği kabulü z 2 z 1 u m Pr y u WT P r WS y K K z 1 W y s u Ky y P ( u) y P ( Ky) r r 1 1 S (1 PK), T K(1 PK) Pr z 2 W u T 1 u Ky u K( I PrK ) Pr 1 y ( I PrK ) Pr 1 ( I PrK ) y Pr y ( I PrK ) Pr 1 1 z2 WTK ( I Pr K) P r z1 Ws ( I PrK ) Pr z2 z WT 1 T Ws Pr S WS Pr S WS Pr S G z sistemi için karışım hassaslık H : 1 WTT WTT 14
H Gz transfer fonksiyonunun H normunu 1 den küçük yapacak kontrolör dizaynı aşağıdaki işlemleri yerine getirmeyi gerektirir. 1- Kontrol edilecek sistemin modellenmesi 2- Frekans şekillendirme filtrelerinin(ağırlık fonksiyonlarının) tanımlanması 3- Genel sistemin tanımlanması 4- H kontrolörün hesaplanması 5- Kapalı çevrim sisteminin değerlendirilmesi
Phase (degrees) Log Magnitude H 1- Kontrol edilecek sistemin modellen mesi %Tek serbestlik dereceli sistem modeli m=0.01; k=1; c=0.001; ap = [ 0 1 ; -k/m -c/m ]; bp = [ 0 ; 1/m ]; cp = [ 1 0 ]; dp = [ 0 ]; Pr = pck(ap,bp,cp,dp); =logspace(0,2,300); Pr_g = frsp(pr,); vplot('bode',pr_g); 10 2 10 0 10-2 -50-100 -150 10 0 10 1 10 2 0 Frequency (radians/sec) -200 10 0 10 1 10 2 Frequency (radians/sec) Titresim sisteminin frekans cevabında 10 rad/s (1.6 Hz) de kritik hız piki yeralmaktadır.
H 2- Ağırlık fonksiyonlarının tanımlanması Ağırlık fonksiyonlarının seçiminde modelleme belirsizlikleri tanımlanamıyorsa deneme yanılma yöntemi gereklidir. İstenilen kontrolörün özellikleri değerlendirilerek ağırlıklar ayarlanabilir dizayn tekrarı gerekebilir. S ile T a arasındaki S( j) P( j) T ( j) 1 a şeklindeki ilişkiyi dikkate almak gerekmektedir.
Gain H clf nums=[1/100 1]; dens=[1/0.01 1]; sgain = 1000; Ws = nd2sys(nums,dens,sgain); numt=[1 10]; dent=[1 1000]; tgain = 10; Wt = nd2sys(numt,dent,tgain); 10 2 10 1 Ws Wt =logspace(-1,4,100); Ws_g = frsp(ws,); Wt_g = frsp(wt,); vplot('liv,lm',ws_g,'-',wt_g,'--'); xlabel('frequency [rad/s]'), ylabel('gain') legend('ws','wt') 10 0 10-1 10-1 10 0 10 1 10 2 10 3 10 4 Frequency [rad/s] ( j) W ( j), a s WT k s T nm dm
WS S WT T a 1 Karışım hassaslık probleminde gürültü giderme performansını başabilmek için W 1 S(1 PrK ) 1 olması gerekir. Bunun anlamı hassaslık transfer fonksiyonu S'in tüm frekans bölgesinde singüler değerinin gerekliliğdir. W S 1 ( j) küçük olması WT z 2 WS z 1 1 [(1 Pr K) ( j)] W S 1 ( j) u P r y Benzer şekilde kontrolörün robust performansı sağlaması için 1 [ K(1 Pr K) ( j)] W T 1 ( j) K 19
Magnitude Magnitude 10 1 Inverse of Performance Weighting Function figure(2) omega = logspace(-1,4,100); WS_g = frsp(ws,omega); Wsi_g = minv(ws_g); vplot('liv,lm',wsi_g) title('inverse of Performance Weighting Function') xlabel('frequency (rad/sec)') ylabel('magnitude') figure(3) WT_g = frsp(wt,omega); Wti_g = minv(wt_g); vplot('liv,lm',wti_g) title('inverse of Robust Stability Weighting Function') xlabel('frequency (rad/sec)') ylabel('magnitude') 10 0 10-1 10-2 10-1 10 0 10 1 10 2 10 3 10 4 Frequency (rad/sec) Inverse of Robust Stability Weighting Function Düşük frekans bölgesinde yüksek kontrolör kazancı yüksek frekans bölgesinde düşük kontrol kazancı robust performans ve robust kararlılığı sağlayacaktır. Seçilen frekans şekillendirme filtreleri kontrolörün bu yapıda olmasını sağlar. 10 0 20 10-1 10 0 10 1 10 2 10 3 10 4 Frequency (rad/sec)
H 3- Genel sistemin tanımla nması systemnames = ' Pr Ws Wt '; inputvar = '[ dist; control ]'; outputvar = '[ Ws; Wt; Pr + dist ]'; input_to_pr = '[ control ]'; input_to_ws = '[ Pr + dist ]'; input_to_wt = '[ control ]'; cleanupsysic = 'yes'; G=sysic; u WT control z 2 P r dist z 1 WS y
H 4- kontrolorun hesaplan ması H >> gmax=10;gmin=0; >> k=hinfsyn(g,1,1,gmin,gmax,0.1,2) Resetting value of Gamma min based on D_11, D_12, D_21 terms Test bounds: 0.1000 < gamma <= 10.0000 gamma hamx_eig xinf_eig hamy_eig yinf_eig nrho_xy p/f 10.000 6.4e+000 3.1e-007 1.0e-002-7.1e-013 0.0000 p 5.050 6.4e+000 3.2e-007 1.0e-002 0.0e+000 0.0000 p 2.575 6.3e+000 3.2e-007 1.0e-002-7.1e-013 0.0000 p 1.337 6.3e+000 3.2e-007 1.0e-002 0.0e+000 0.0000 p 0.719 5.8e+000-1.6e-001# 1.0e-002 0.0e+000 0.0000 f 1.028 6.2e+000 3.3e-007 1.0e-002 0.0e+000 0.0000 p 0.873 6.1e+000-7.4e-001# 1.0e-002 0.0e+000 0.0000 f 0.951 6.1e+000 3.3e-007 1.0e-002 0.0e+000 0.0000 p Gamma value achieved: 0.9508
H >> help hinfsyn HINFSYN H-infinity controller synthesis. [K,CL,GAM,INFO] = HINFSYN(P,NMEAS,NCON) or [K,CL,GAM,INFO] = HINFSYN(P,NMEAS,NCON,KEY1,VALUE1,KEY2,VALUE2,...) computes H-infinity controller K for partitioned plant P via the gamma-iteration, computing the minimal cost GAM in [GMIN,GMAX] for hich the closed-loop system CL= LFT(P,K) satisfies HINFNORM(CL) < GAM. NMEAS is the number of measurement outputs from the plant and NCON is the number of control inputs to the plant; these may be omitted if P=MKTITO(P,NMEAS,NCON) or P=AUGW(SYS,W1,W2,W3). KEY VALUE MEANING ---------------------------------------------------------------- 'GMAX' real initial upper bound on GAM (Inf default) 'GMIN' real initial loer bound on GAM (0 default) 'TOLGAM' real relative error tolerance for GAM (.01 default) 'METHOD' H-infinity solution method: 'ric' - (default) standard 2-Riccati solution, DGKF1989 'lmi' - LMI solution, Packard 1992, Gahinet 1994 'maxe' - maximum entropy, HINFSYNE, Glover-Doyle 1988 'S0' real (default=inf) frequency S0 at hich entropy is evaluated, only applies to METHOD 'maxe' 'DISPLAY' 'on/off' display synthesis information to screen, (default = 'off') ---------------------------------------------------------------- outputs: K - H-infinity controller CL - lft(p,k) (closed-loop system) GAM - H-infinity cost INFO - Structure array containing possible additional information depending on 'METHOD': INFO.AS - all solutions controller, LTI to-port LFT INFO.KFI - full information gain matrix (constant feedback U2 = KFI*[X; U1] ) INFO.KFC - full control gain matrix (constant output-injection; KFC is the dual of KFI) INFO.GAMFI - H-infinity cost for full information KFI INFO.GAMFC - H-infinity cost for full control KFC See also: aug, h2syn, loopsyn, mktito, ncfsyn, lti/norm
H =logspace(-1,4,200); Pr_g = frsp(pr,); % Freq. response of H_infinity controller [ak,bk,ck,dk]=unpck(k); k_g = frsp(k,); vplot('liv,lm',k_g); title('frequency response of controller') figure(2) vplot('liv,lm',k_g,pr_g,'r--'); title('frequency response of controller') axis([0.1 10^4 0.01 10^3]) Kontrolor durum uzayi denklemi: x A x B y k k k k u C x D y k k k Dizayn edilen H-infinity kontrolör dinamik bir kontrolördür yani frekansa bağlı olarak kazancı ve fazı değişim göstermektedir.
H 5- Kapalı çevrim sisteminin değerlendiril mesi Kapalı çevrim sisteminin değerlendirilmesi için r girişine karşılık y cevabı ile kontrol sistemine giren gürültü d ye karşılık y cevabını inceleyelim. d r e K u P r y
H G sisteminin aşagı kısmında yer alan n adet çıkış G ye 1 2 G nin üst kısmındaki m adet çıkışı G e toplanır ve kesikli çizgi ile 2 1 gösterilen giriş ve çıkışlara sahip sistem matrisi G olarak elde edilir. Bu tür bir yapı "star product" olarak isimlendirilmektedir ve LFT yapısını içeren genel bir kapalı çevrim elde edilir. Bu yapıda hem üst LFT hemde alt LFT hesaplanır. Kontrol sistemi ve kontrolorun sistem matrisleri P, K olarak kapalı r y çevrim yapısı (a) da den transfer fonksiyonlarını düşünelim. d u Kapalı çevrim (a) yapısı (b) yapısı olarak elde edilebilir. Burada kesikli çizgi ile gösterilen kısım G dir. Buradan star product komutu kullanılırsa Gsim starp( G, K) şeklinde en genel halde kapalı çevrim sistemi elde edilir. (a) (b)
H d Genel kapalı çevrim için kullanılan yapı Örnek Dizayn Problemi icin: r e K u P r y ksim = mmult(k,-1); systemnames = ' Pr'; inputvar = '[ dist; ref; control]'; outputvar = '[ Pr; control; ref - Pr]'; input_to_pr = '[ control + dist ]'; cleanupsysic = 'yes'; simg=sysic; simplant = starp(simg,ksim); d r u Pr G y u e K starp komutu için kullanılan yapı
H r 'e adım girişi uygulandığında sistemin cevabı Şekil (a) gösterilmistir. Bu şekilde görüldüğü gibi aşma çok azdır ve sabit rejimdeki hata çok küçük olduğu anlaşılır. Bununla birlikte d e impuls gürültüsü girildiğinde y cevabına bakıldığında(b) kontrol sisteminin 10 rad/s yeralan kiritik hızı cevabı büyütmekte ve sönümlenememektedir. (a) (b)
H >> eig(ap) Sistem kökleri ans = -5.0000e-002 +9.9999e+000i -5.0000e-002-9.9999e+000i >> [ak,bk,ck,dk]=unpck(k); >> [num,den]=ss2tf(ak,bk,ck,dk); >> roots(num) ans = Kontrolör sıfırları -1.0000e+003-5.0000e-002 +9.9999e+000i -5.0000e-002-9.9999e+000i >> [aa,bb,cc,dd] = unpck(simplant); >> eig(aa) ans = -1.2952e+003-2.1233e+001-1.0636e+001 +1.8237e+001i -1.0636e+001-1.8237e+001i -5.0000e-002 +9.9999e+000i -5.0000e-002-9.9999e+000i Kapalı çevrim kökleri
H ksim = mmult(k,-1); systemnames = ' Pr'; inputvar = '[ dist; ref; control]'; outputvar = '[ Pr; control; ref - Pr]'; input_to_pr = '[ control + dist ]'; cleanupsysic = 'yes'; simg=sysic; simplant = starp(simg,ksim); [aa,bb,cc,dd] = unpck(simplant); % step response t=0:0.01:1; y=step(aa,bb,cc,dd,2,t); figure(1) plot(t,y(:,1)), title('step response') xlabel('time [s]'), ylabel('position') figure(2) plot(t,y(:,2)), title('step response') xlabel('time [s]'), ylabel('input') % impulse response yimp=impulse(aa,bb,cc,dd,1,t); figure(3) plot(t,yimp(:,1)), title('impulse disturbance response') xlabel('time [s]'), ylabel('position') figure(4) plot(t,yimp(:,2)), title('impulse disturbance response') xlabel('time [s]'), ylabel('input') eig(ap) [ak,bk,ck,dk]=unpck(k); [num,den]=ss2tf(ak,bk,ck,dk); roots(num) eig(aa)
H Kontrol sisteminin kökünün kontrolörün sıfırı olarak belirmesi aynı zamanda kapalı çevrim kökü olarak çıkmasındaki sebep şu şekilde açıklanabilir: Kolay olması açısından P tek giriş tek çıkış olarak ele alalım. P ve K P np () s nk () s, K d ( s) d ( s) p k olması durumunda kapalı çevrimin karekteristik denklemi d ( s) d ( s) n ( s) n ( s) 0 p k p k Burada ortak P nin kökü ve K nin sıfır noktası ( s) şeklinde ifade edilirse d ( s) ( s) d ( s) n ( s) ( s) n ( s) p p k k ( s){ d ( s) d ( s) n ( s) n ( s)} 0 p k p k
H z2 z 2 1 z1 z Çarpım belirsizliği yapısı n u W T P r W S y u WT P r W N WS y Kontrol sisteminin giriş tarafına eklenmiş gürültü için istenilen kontrol performansı sağlayan kontrolör dizaynını düşünelim. Şekilde gösterilen yapıda bir önceki yapıya göre en büyük fark gürültü girişinin kontrol sisteminin giriş tarafına taşınmış olmasıdır. Bu yapı kontrol sistemi ile kontrolör arasında kök ile sıfır noktasının birbirini götürmesini engeller. n ölçüm gürültüsü olarak kabul edilmiş standart H kontrolün D21 matrisinin tam rank olması şartını sağlaması için ilave edilmiştir.
H clf nums=[1/100 1]; dens=[1/0.01 1]; sgain = 1000; Ws = nd2sys(nums,dens,sgain); [as,bs,cs,ds]=unpck(ws); numt=[1 50]; dent=[1 5000]; tgain = 50; Wt = nd2sys(numt,dent,tgain); [at,bt,ct,dt]=unpck(wt); Wn = 0.1; = logspace(-1,4,100); Ws_g = frsp(ws,); Wt_g = frsp(wt,); vplot('liv,lm',ws_g,'-',wt_g,'--'); xlabel('frequency [rad/s]'), ylabel('gain') legend('ws','wt')
H z2 n z 1 systemnames = ' Pr Ws Wt Wn '; inputvar = '[ dist; noise; control ]'; outputvar = '[ Ws; Wt; Pr + Wn ]'; input_to_pr = '[ control + dist ]'; input_to_ws = '[ Pr + Wn ]'; input_to_wt = '[ control ]'; input_to_wn = '[ noise ]'; cleanupsysic = 'yes'; G=sysic; u WT P r W n WS y
H >> Resetting value of Gamma min based on D_11, D_12, D_21 terms Test bounds: 0.0100 < gamma <= 10.0000 gamma hamx_eig xinf_eig hamy_eig yinf_eig nrho_xy p/f 10.000 4.9e+000 3.7e-009 1.0e-002 0.0e+000 0.0048 p 5.005 4.9e+000 3.7e-009 1.0e-002 0.0e+000 0.0193 p 2.507 4.8e+000 3.8e-009 1.0e-002 0.0e+000 0.0794 p 1.259 4.7e+000 3.9e-009 1.0e-002 0.0e+000 0.3630 p 0.634 3.6e+000 4.5e-009 1.0e-002 0.0e+000 4.9076# f 1.134 4.6e+000 3.9e-009 1.0e-002 0.0e+000 0.4703 p 1.005 4.5e+000 4.0e-009 1.0e-002 0.0e+000 0.6474 p 0.931 4.4e+000 4.0e-009 1.0e-002 0.0e+000 0.8072 p 0.872 4.4e+000 4.0e-009 1.0e-002 0.0e+000 0.9907 p 0.824 4.3e+000 4.1e-009 1.0e-002 0.0e+000 1.1974# f 0.856 4.3e+000 4.1e-009 1.0e-002-5.6e-015 1.0509# f Gamma value achieved: 0.8717
H >> eig(ap) ans = -5.0000e-002 +9.9999e+000i -5.0000e-002-9.9999e+000i >> [ak,bk,ck,dk]=unpck(k); >> [num,den]=ss2tf(ak,bk,ck,dk); >> roots(num) ans = -5.0000e+003-3.0889e+000 +7.6763e+000i -3.0889e+000-7.6763e+000i >> eig(aa) ans = -3.3107e+003-5.0028e+001-2.1272e+001 +2.3505e+001i -2.1272e+001-2.3505e+001i -5.8600e+000 +9.1896e+000i -5.8600e+000-9.1896e+000i
H Sistemin adım cevabı ilk kontrol dizaynı sonuçları ile karşılastırılırsa kötüleştiği fakat d gürültü cevabının büyük oranda düzelttiği görülebilir. Genelde H kontrolde zaman domeni cevabını iyileştirmek zordur. Kontrol sistemlerinde sistem performansını yansıtan refrans cevabı ve gürültü kontrolünü dolayısı ile robust kararliligi gösteren impuls cevabı iyileştirmek için 2 serbestlik dereceli kontrol dizaynı yapılabilir.
Sınav: 12 Aralık saat 14:00 de Z 14 nolu sınıfta yıl içi sınav yapılacaktır. Bütün konular dahildir notlar kapalı olacaktır. 38