ENSO IKONEN PYOSYS SÄÄTÖJÄRJESTELMIEN SUUNNITTELU Enso Ikonen professori säätö- ja systeemitekniikka http://cc.oulu.fi/~iko Oulun yliopisto Teknillinen tiedekunta Älykkäät koneet ja järjestelmät helmikuu 209
ENSO IKONEN PYOSYS 2 Oppimistavoitteet Opiskelija... sisäistää taajuustason vasteen lti-järjestelmän kuvaamisessa..lle on selvää mitä vahvistuksella ja vaiheella tarkoitetaan näkee reaalisten ja kompleksisten napojen ja nollien merkityksen vaiheen ja vahvistuksen muokkaajana, taajuuden funktiona osaa sujuvasti lukea polaari- ja Bode-kuvaajia, sekä itsenäisesti piirtää niitä Matlabin avulla
ENSO IKONEN PYOSYS 3 Säätöjärjestelmien suunnittelu SäSu 205 7.2 Taajuusvaste 7.3 Polaarikuvaaja 7.4 Bode-kuvaaja 7.4.3 Siirtofunktion Bode 7.5 Bode-kuvaajan käyttö Filtterisuunnittelusta Taajuustason kuvaajat (harjoituksissa) 7.2 Taajuusvaste LTI-järjestelmän taajuusvaste (johto) 7.3 Polaarikuvaaja siirtofunktio T(iω)= R(ω)+iX(ω). kertaluvun systeemi
7.2 Taajuusvaste Esimerkki: taajuusvaste aikatasossa (MATLABilla) Tutkittava systeemi: Tutkitaan aikatason vastetta eri taajuuksilla: 8 rad/s =.2 Hz >> t=[0:0.0:4] ; w=8; r=sin(w*t); >> G=tf(,[0.2 ]); y=lsim(g,r,t); >> plot(t,y) Harjoitus: Entäpä jos w=50rad/s? 50 rad/s = 7.96 Hz >> t=[0:0.0:4] ; w=50; r=sin(w*t); >> G=tf(,[0.2 ]); y=lsim(g,r,t); >> plot(t,y) Vahvistus ja vaihe muuttuvat taajuuden funktiona G s 0.2s
ENSO IKONEN PYOSYS 5 7.2. **LTI-järjestelmän taajuusvaste Käsitellään systeemiä: Jos p i ovat erillisiä napoja, niin Y Y ( s) T missä : r k s p n s TsRs... 2 2 ja Laplace-käänteismuunnos on: y T t s srs t A ms qs sint pt k e... k n n e s p i i m s p t n k s p n L s s s 2 2 s Jos systeemi on stabiili, niin Ts. tasapainotilassa ulostulosignaali riippuu vain T(iω):n vaiheesta ja vahvistuksesta, kullakin taajuudella ω. Taajuusvasteen tutkimiseksi riittää tutkia siirtofunktiota T(s) kun s = iω. pit lim k e 0 t lim t i y t *... AT lim L t ja s 2 2 s i sint missä T i R(s) T(s) Y(s) cosine +sine = sine with phase * http://resonanceswavesandfields.blogspot.fi/2009/02/sinescosines-and-phases.html
7.3 Polaarikuvaaja G(iω) = R(ω)+iX(ω) X tan R 2 R 2 X 2 G i Kuva 35 Kompleksiluvun graafisia esittämistapoja.
ENSO IKONEN PYOSYS 7 7.3.. kertaluvun systeemin taajuusvaste (!) Polaarikuvaaja: G ja ϕ Gs 2 2 s G i R X 2 2 Lasketaan Im(G) ja Re(G) Sijoitetetaan s=iω, saadaan Gi i i i 2 2 i i i i eli tan tan R, X Kun ω=0, saadaan 2 2 G(0) = ja ϕ(0) = -atan(0)=0 o Kun ω=, saadaan Kun ω=0, saadaan R(0)=, X(0)=0. G( ) =0 ja ϕ( ) = -atan( )=-90 o. Kun ω=, saadaan R( )=0, X( )=0. Kun ω = /τ, saadaan G(/τ)=sqrt(/2) ja ϕ(/τ) = -atan() = -45 o 2 2 2 2 2 2 tan X R 2 2 2 2 2 tan 2 2 2 2
7.3.. kertaluvun systeemin taajuusvaste Im(G) ja Re(G) Kun ω=0, saadaan R(0)=, X(0)=0. Kun ω=, saadaan R( )=0, X( )=0. Polaarikuvaaja: G ja phi Kun ω=0, saadaan G(0) = ja ϕ(0) = -atan(0)=0 o Kun ω=, saadaan G( ) =0 ja ϕ( ) = -atan( )=-90 o. Kun ω=/τ, saadaan G(/τ)=sqrt(/2) ja ϕ(/τ) = -atan() = -45 o Kuva 36. kertaluvun systeemin polaarikuvaaja.
Harjoitus reaalisen nollan taajuusvaste ω 0 ω ω = /τ G(iω) = R + ix, G =(X 2 +R 2 ) 0.5, /G=tan - (X/R) Harjoitus osa 2: Osoita, että kun ω=/τ niin vahvistus on 3dB ja vaihe +45 o.
Harjoitus reaalisen nollan taajuusvaste ω 0 ω ω = /τ G(iω) = R + ix, G =(X 2 +R 2 ) 0.5, /G=tan - (X/R) Harjoitus osa 2: Osoita, että kun ω=/τ niin vahvistus on 3dB ja vaihe +45 o.
Harjoitus osa 2: Osoita, että kun ω=/τ niin vahvistus on 3dB ja vaihe +45 o. Siirtofunktio oli annettu: G(s) = τs+. Lasketaan G(iω) = R+iX, kun ω=/τ Sijoitetaan s=iω missä ω=/τ, jolloin G(i/τ) = i+ eli muodossa R+iX kertoimet ovat R= ja X=. Vahvistus: G(i/τ) = ( 2 + 2 ) = 2 ja 20 log 0 2 = 3.003 [db] 3 [db] Vaihe: /_ G(i/τ) = tan - X/R = tan - / = 45 o.
ENSO IKONEN PYOSYS 2 Säätöjärjestelmien suunnittelu SäSu 203 7.2 Taajuusvaste 7.3 Polaarikuvaaja 7.4 Bode-kuvaaja 7.4.3 Siirtofunktion Bode 7.5 Bode-kuvaajan käyttö Filtterisuunnittelusta Taajuustason kuvaajat (harjoituksissa) 7.4 Bode-kuvaaja logaritminen taajuus, db Boden piirtäminen Matlabilla Bode-kuvaajan tulkinta piirtämissääntöjä K, napa, nolla, s, /s, kompleksiset navat, viive Boden asymptootit siirtofunktion Bode 7.4.3 esimerkki Filtterisuunnittelusta
7.4 Bode-kuvaaja Bode-kuvaajassa esitetään systeemin logaritminen vahvistus ja sen vaihe taajuuden logaritmin funktiona vahvistuskuvaaja vaihekuvaaja vahvistus G desibeleinä 20 log 0 G(iω) 0 -Inf db 0. -20 db 0.5 6 db 0.7 3 db 0 db.4 +3dB 2 +6 db 0 20 db 00 40 db 000 60 db
7.4.2 Bode-kuvaaja MATLABilla & taajuusvaste aikatasossa (MATLABilla) Tutkittava systeemi: G s Piirrä Bode >> G = tf(,[0.2 ]); >> bode(g) Tutkitaan aikatason vastetta kun w=8 rad/s. G(8) = -6dB, φ(8) = -58 o. Piirrä aikatason vaste. >> t=[0:0.0:4] ; w=8; r=sin(w*t); >> y=lsim(g,r,t); plot(t,y) 0.2s 20log 0 k=-6 => k=0.502 58 o /360 o = +5% jaksonpituutta edellä
7.4.2 Bode-kuvaaja MATLABilla & taajuusvaste aikatasossa (MATLABilla) Tutkittava systeemi: G s 0.2s Piirrä Bode >> G = tf(,[0.2 ]); >> bode(g) Tutkitaan aikatason vastetta kun G(8) = -6dB, phi(8) = -58 o. Piirrä. >> t=[0:0.0:4] ; w=8; r=sin(w*t); >> y=lsim(g,r,t); plot(t,y) G(50) = -20dB, phi(50) = -85 o. Piirrä. >> t=[0:0.0:4] ; w=50; r=sin(w*t); >> y=lsim(g,r,t); plot(t,y)
Harjoitus: tutki Bode-kuvaajaa Systeemiä kuvaa Y(s) s+ ------ = --------------- R(s) s 2 + 2s +3 Piirrä bode-kuvaaja >> bode(g) Millä taajuudella järjestelmän vahvistus on suurimmillaan? Millä taajuudella järjestelmän vahvistus on 0. Mikä on tasapainotilan vahvistus? Tarkista vaste simuloimalla systeemiä aikatasossa näillä taajuuksilla.
Harjoitus: Ratkaisu >> G = sys([ ],[ 2 3]) >> bode(g); grid % vahvistuskuvaajassa: % oik-hiiri Properties Units -> Magnitude Suurimmillaan w=.54 rad/s vahvistus 0. kun w=0 rad/s tp-tilan vahvistus 0.33 [loppuarvoteoreemasta G(0) = /3] % simulointi: >> w = ; >> t=[0:0.0:00]'; >> r = sin(w*t); >> y = lsim(g,r,t); >> plot(t,y);
Harjoitus: Ratkaisu >> G = sys([ ],[ 2 3]) >> bode(g); grid % vahvistuskuvaajassa: % oik-hiiri Properties Units -> Magnitude Suurimmillaan w=.54 rad/s vahvistus 0. kun w=0 rad/s tp-tilan vahvistus 0.33 [loppuarvoteoreemasta G(0) = /3] % simulointi: >> w = ; >> t=[0:0.0:00]'; >> r = sin(w*t); >> y = lsim(g,r,t); >> plot(t,y);
ENSO IKONEN PYOSYS 9 Yleistetty siirtofunktio Q nollaa, N napaa origossa, M napaa reaaliakselilla, R kompleksista napaparia R k k k k M m m N Q i i i i i i i K G i 2 n n b 2
ENSO IKONEN PYOSYS 20 7.3.. kertaluvun systeemin taajuusvaste (!) Polaarikuvaaja: G ja ϕ Gs 2 2 s G i R X 2 2 Lasketaan Im(G) ja Re(G) Sijoitetetaan s=iω, saadaan Gi i i i 2 2 i i i i eli tan tan R, X Kun ω=0, saadaan 2 2 G(0) = ja ϕ(0) = -atan(0)=0 o Kun ω=, saadaan Kun ω=0, saadaan R(0)=, X(0)=0. G( ) =0 ja ϕ( ) = -atan( )=-90 o. Kun ω=, saadaan R( )=0, X( )=0. Kun ω = /τ, saadaan G(/τ)=sqrt(/2) ja ϕ(/τ) = -atan() = -45 o 2 2 2 2 2 2 tan X R 2 2 2 2 2 tan 2 2 2 2
ENSO IKONEN PYOSYS 2 7.4. *Bode-kuvaajan piirtämisssääntöjä. kertaluvun systeemin vahvistuksen asymptootit. kertaluvun systeemille: 20log G i 2 2 0log jolloin korkeille taajuuksille: 2 2 0log 20log 20log 20log 20log 2 2 ts. log(w):n kuvaaja on suora. 2 Suoran kulmakerroin saadaan tarkastelemalla kahden taajuuden w ja w 2 välistä vahvistuseroa: 20log G i 20log G i 20log 2 20log 20log 2 Jos w 2 /w = 0 (dekadi ), niin 20log 20log 2 20log 0 0 20 db Ts. ensimmäisen kertaluvun systeemille asymptootin kulmakerroin on -20dB per dekadi. 2
7.4. *Bode-kuvaajan piirtämisssääntöjä. kertaluvun systeemin vahvistuksen asymptootit Kuva 37. kertaluvun systeemin Bode-kuvaajan asymptootit.
7.4. *Asymptootit siirtofunktion tekijöille vahvistus ja reaalinen nolla
7.4. *Asymptootit siirtofunktion tekijöille reaalinen napa, napa origossa, kompleksinen napapari
ENSO IKONEN PYOSYS 25 7.4.3 Siirtofunktion Bode-kuvaaja Esimerkki (/6) Tutkittava siirtofunktio Tekijät: G s s 50.s 2 0.6 0.5s s s 50 2 50 5 i0. G( i) 2 i i i0.5 i0.6 50 50 2 50 i 0 2 i i 2 i i0.6 50 50 () Vakiovahvistus K=5 (2) Napa origossa (3) Napa p = 2 (4) Nolla z = 0 (5) Kompleksinen napapari, luonn. taajuus = 50 Lähde: Dorf & Bishop (2 th ed.) Example 8.5, pp. 596 599.
7.4.3 esimerkki jatkuu (2/6) Bode-vahvistuskuvaajan asymptootit Kuva 43. Tekijät: () Vakiovahvistus K=5 ( 20log 0 5 ~ 4 ) (2) Napa origossa (3) Napa p = 2 (4) Nolla z = 0 (5) Kompleksinen napapari, luonn. taajuus = 50
Kuva 44. 7.4.3 Esimerkki jatkuu (3/6) Bode-vahvistuskuvaaja
7.4.3 Esimerkki jatkuu (4/6) Bode-vaihekuvaajan asymptootit () (4) (3) (2) (5) Kuva 45. Tekijät: () Vakiovahvistus K=5 (2) Napa origossa (3) Napa p = 2 (4) Nolla z = 0 (5) Kompleksinen napapari, luonn. taajuus = 50
7.4.3 Esimerkki jatkuu (5/6) Bode-vaihekuvaaja -90 o -80 o Phase -270 o Kuva 46.
7.4.3 Esimerkki jatkuu (6/6) Bode Matlabilla G s s 50.s 2 0.6 0.5s s 50 50 2 s 50 Bode Diagram >> num = 5*[0. ] -00 >> den = conv([0.5 0],[/50^2 0.6/50 ]) -50 >> G = tf(num,den) -90 >> bode(g) -35 >> grid -80 Magnitude (db) Phase (deg) 0-50 -225-270 0-0 0 0 0 2 0 3 Frequency (rad/s)
ENSO IKONEN PYOSYS 3 7.5. Suorituskyky taajuustasossa Taajuuskaista taajuus ω B jolla taajuusvaste on pienentynyt 3dB:ä matalan taajuuden arvosta n. 70%:iin Resonanssitaajuus taajuus ω r jolla taajuusvasteen vahvistus saavuttaa maksimiarvonsa M pω taajuuskaista kertoo systeemin kyvystä toistaa sisäänmenosignaali. Fig. 8.25 Magnitude characteristic of the second order system.
ENSO IKONEN PYOSYS 32 ***Filtterisuunnittelu*** Signaalin muokkaus https://noppa.lut.fi/noppa/opintojakso/bl50a000/.../luento_suodin.pdf
***Filtterisuunnittelu*** Suodintyypit ENSO IKONEN PYOSYS 33
ENSO IKONEN PYOSYS 34 ***Filtterisuunnittelu*** ja prosessien säätö Kohinan lähteet mittauskohina korkeataajuista suhteessa prosessiin sähköhäiriöt, näytteenotto, kvantisointivirheet,... prosessikohina matalataajuista mikä on häiriötä, mikä kohinaa..? kuplat, roiskeet, kanavoituminen,... Filtteri estää ohjauksen värinää lisää viivettä (vaiheenjättöä) suunnittelu on tasapainottelua http://www.controlguru.com/wp/p82.html
ENSO IKONEN PYOSYS 35 Butterworth filtteri Butterworth properties monotonic amplitude response (no ripple) quick roll-off around cutoff frequency (improves with order) overshoot and ringing in step response (worsens with order)
ENSO IKONEN PYOSYS 36 Bode Diagram ***Filtterisuunnittelu*** 00 0-00 Butterworth-suodin Suunnitellaan Butterworth-filttereitä alipäästösuotimia kulmataajuus 4 rad/s eri kertaluvulla n = {,2,4,8,2} Matlabilla: wn = 4 n = % 2,4,8,2 [b,a]=butter(n,wn, low, s ) F = tf(b,a); bode(f) step(f); Butterworth-suotimen vahvistuskuvaaja on hyvä, mutta vaihekuvaaja heikko. Magnitude (db) Phase (deg) Magnitude (db) Phase (deg) -200-300 00-400 0-00 -360-200 -720-300 F F2 F4 F8 F2-400 -080 0 0-0 0 0 0 2-360 -720-080 -00dB =0.0000 F F2 F4 F8 F2 Bode Diagram Frequency (rad/s) 0-0 0 0 0 2 Frequency (rad/s)
ENSO IKONEN PYOSYS 37 Bode Diagram ***Filtterisuunnittelu*** 00 0-00 Butterworth-suodin Suunnitellaan Butterworth-filttereitä alipäästösuotimia kulmataajuus 4 rad/s eri kertaluvulla n = {,2,4,8,2} Matlabilla: wn = 4 n = % 2,4,8,2 [b,a]=butter(n,wn, low, s ) F = tf(b,a); bode(f) step(f); Butterworth-suotimen vahvistuskuvaaja on hyvä, mutta vaihekuvaaja heikko. Amplitude Magnitude (db) Phase (deg) Magnitude (db).4.2 Phase (deg) 0.8 0.6 0.4 0.2-200 -300 00-400 0-00 -360-200 -720-300 F F2 F4 F8 F2-400 -080 0 0-0 0 0 0 2-360 -720-080 -00dB =0.0000 F F2 F4 F8 F2 Step Response Bode Diagram Frequency (rad/s) 0-0 0 0 0 2 F Frequency (rad/s) F2 F2 0 0 2 3 4 5 6 7 8 9 0 Time (seconds) F4 F8
ENSO IKONEN PYOSYS 38 Harjoitus: Filtterisuunnittelu a) Suunnittele seuraavat Butterworthsuotimet alipäästösuodin (low-pass) ylipäästösuodin (high-pass) kaistanestosuodin (stop) kaistanpäästösuodin (band-pass) kun leikkaustaajuus on 0.5Hz (kaistanesto ja -päästö +-20 leikkaustaajuuden molemmin puolin). b) Piirrä taajuusvaste ja simuloi signaalin suodatusta aikatasossa niin että näet suotimien toimivan ok. c) Kokeile suotimelle eri astelukuja, esim n={3,5,2}. Voit käyttää suunnitteluun Matlabin butter-komentoa: >> [num,den]=butter(n,wn,'low','s') jne. kts. >> help butter
ENSO IKONEN PYOSYS 39 Butterworth simulointikoodia % Butterworth-suotimen parametrit n = 5; % order f = 0.5 % cutoff [Hz] wn = 2*pi*f % cutoff [rad/s] wn_stop = [0.8*f.2*f]*2*pi; %bandpass % alipäästö [b_low,a_low]=butter(n,wn,'low','s'); H_low = tf(b_low,a_low) % ylipäästö [b_high,a_high]=butter(n,wn,'high','s'); H_high = tf(b_high,a_high) % kaistanesto [b_stop,a_stop]=butter(n,wn_stop,'stop','s'); H_stop = tf(b_stop,a_stop) % kaistanpäästö [b_pass_low,a_pass_low]=butter(n,wn_stop(2),'low','s'); H_pass_low = tf(b_pass_low,a_pass_low); [b_pass_high,a_pass_high]=butter(n,wn_stop(),'high','s'); H_pass_high = tf(b_pass_high,a_pass_high) H_pass = H_pass_low*H_pass_high; % bode-kuvaajat figure(); clf; bode(h_low,h_high,h_stop,h_pass); legend('low','high','stop','pass');
ENSO IKONEN PYOSYS 40 Butterworth simulointikoodia % Butterworth-suotimen parametrit n = 5; % order f = 0.5 % cutoff [Hz] wn = 2*pi*f % cutoff [rad/s] wn_stop = [0.8*f.2*f]*2*pi; %bandpass % alipäästö [b_low,a_low]=butter(n,wn,'low','s'); H_low = tf(b_low,a_low) % ylipäästö [b_high,a_high]=butter(n,wn,'high','s'); H_high = tf(b_high,a_high) % kaistanesto [b_stop,a_stop]=butter(n,wn_stop,'stop','s'); H_stop = tf(b_stop,a_stop) % kaistanpäästö [b_pass_low,a_pass_low]=butter(n,wn_stop(2),'low','s'); H_pass_low = tf(b_pass_low,a_pass_low); [b_pass_high,a_pass_high]=butter(n,wn_stop(),'high','s'); H_pass_high = tf(b_pass_high,a_pass_high) H_pass = H_pass_low*H_pass_high; % bode-kuvaajat figure(); clf; bode(h_low,h_high,h_stop,h_pass); legend('low','high','stop','pass');
ENSO IKONEN PYOSYS 4 Butterworth simulointikoodia 2 % aikatason simulointi figure(2) t=[0:0.00:60]'; % minuutin simulointi [s] F=[0.2 0.5 2 ] % taajuus sisäänmenossa [Hz ] for i=:length(t) if t(i)<0, ff=f(); % kun 0<t<0 elseif t(i)<20, ff=f(2); %kun 0<=t<20 elseif t(i)<30, ff=f(3); %kun 20<=t<30 end r(i) = sin(2*pi*ff*t(i)); if t(i)>=30 %kun 30<=t<60 r(i) = sin(2*pi*f()*t(i)) +sin(2*pi*f(3)*t(i)); end end yf = lsim(h_low,r,t); %yf = lsim(h_pass,r,t); %yf = lsim(h_stop,r,t); plot(t,r,'b-',t,yf,'r-') ylabel('suodattamaton (r) ja suodatettu (y_f) signaali'); xlabel('aika') title(sprintf('butterworth H_{low} n=%d, f=%.3g [Hz]',n,f)) legend('r','y_f')
ENSO IKONEN PYOSYS 42 Butterworth simulointikoodia 2 % aikatason simulointi figure(2) t=[0:0.00:60]'; % minuutin simulointi [s] F=[0.2 0.5 2 ] % taajuus sisäänmenossa [Hz ] for i=:length(t) if t(i)<0, ff=f(); % kun 0<t<0 elseif t(i)<20, ff=f(2); %kun 0<=t<20 elseif t(i)<30, ff=f(3); %kun 20<=t<30 end r(i) = sin(2*pi*ff*t(i)); if t(i)>=30 %kun 30<=t<60 r(i) = sin(2*pi*f()*t(i)) +sin(2*pi*f(3)*t(i)); end end yf = lsim(h_low,r,t); %yf = lsim(h_pass,r,t); %yf = lsim(h_stop,r,t); plot(t,r,'b-',t,yf,'r-') ylabel('suodattamaton (r) ja suodatettu (y_f) signaali'); xlabel('aika') title(sprintf('butterworth H_{low} n=%d, f=%.3g [Hz]',n,f)) legend('r','y_f')
ENSO IKONEN PYOSYS 43
ENSO IKONEN PYOSYS 44 Oppimistavoitteet Opiskelija... sisäistää taajuustason vasteen lti-järjestelmän kuvaamisessa..lle on selvää mitä vahvistuksella ja vaiheella tarkoitetaan näkee reaalisten ja kompleksisten napojen ja nollien merkityksen vaiheen ja vahvistuksen muokkaajana, taajuuden funktiona osaa sujuvasti lukea polaari- ja Bode-kuvaajia, sekä itsenäisesti piirtää niitä Matlabin avulla