Onderzoek van stabiliteit via het frequentiedomein Polair diagram Mappen van een contour Theorema van Cauchy Nyquist criterium Winstmarge en fasemarge M- en N-cirkels Nichols diagram Tijdsvertraging (dode tijd)
1. Polair diagram G(jw) = A e jj is een complex getal A(w) j(w) We kennen de Bode plots A sin (wt+j) sin wt G(s) G(jw) = A e jj is een complex getal amplitude en fase zijn functie van w: A(w) j(w)
Bode plot A(w) [dB] w j(w) [ ° ] w
Alternatieve voorstelling X(w) K/2 K R(w) w=∞ w=0 -K/2 w=1/t SPV in w
Relatie met Bode plot X(w) K/2 K R(w) w=∞ j(w) w=0 A(w) -K/2 w=1/t
Tweede voorbeeld X(w) R(w) -t -0,8t -t/2 -t /2 w=1/t w=1/2t -1,6t
Matlab voorbeeld >> G=tf(10,[4 1]) >> bode(G) >> nyquist(G) (merk op: de nyquist-plot geeft twee trajecten: voor w van nul naar oneindig, en voor w van min oneindig naar nul: kan aan- of afgezet worden met rechtermuisknop “Show”)
Matlab opgave Bekijk de bode plot en het polair diagramma voor de volgende systemen: >> G=tf(1,[4 1 0]) >> G=tf(5,[4 2 1])
Aanklikken → voor elk punt wordt de bijhorende frequentie getoond
Nadelen polair diagram de berekening en de constructie is nogal omslachtig als K verandert moet de hele plot op een andere schaal worden getekend de ligging van polen en nulpunten is niet duidelijk het bijvoegen van een pool of nulpunt verandert het traject volledig
Voordelen Bode plot de berekening en de constructie is vrij eenvoudig als K verandert, schuift de grafiek van de modulus naar boven of naar beneden; de grafiek van de faze blijft ongewijzigd door de asymptoten te tekenen is de ligging van polen en nulpunten zeer duidelijk het bijvoegen van polen of nulpunten is vrij eenvoudig
Waarom polaire plot? belangrijk voor de theoretische afleiding van het stabiliteitscriterium
2. Mappen van een contour jv s u jw F(s) = u + j v s = s + jw F(s) = 2s + 1 jv jw D A D A s u B C u = 2s + 1 v = 2w C B sA = 1 + j F(sA) = 3 + 2 j sD = -1 + j F(sD) = -1 + 2 j
Tweede voorbeeld jv s u jw F(s) = u + j v s = s + jw F(s) = s/(s + 2) A A s u B B C C sA = 1 + j F(sA) = 0,4 + 0,2 j sD = -1 + j F(sD) = 0 + j
Spelen met Matlab jw Contour in s-vlak 1 phi s >> phi=0:0.01:2*pi;s=exp(i*phi);polar(phi,abs(s)); >> F=2*s+1;polar(angle(F),abs(F)); >> F=s./(s+2);polar(angle(F),abs(F));
Afspraken positieve richting = volgens de wijzers van het uurwerk jw positieve richting = volgens de wijzers van het uurwerk het ingesloten gebied is per definitie gelegen rechts van de contour, indien deze in de positive richting wordt doorlopen s
3. Theorema van Cauchy jw jv F(s1) jz1 s1 M jp1 jp2 s jF u jz2
Theorema van Cauchy N = Z – P N = aantal omwentelingen rond de oorsprong (in uurwerkwijzerzin) van de contour in het F(s)-vlak Z = aantal nulpunten gelegen binnen de contour in s-vlak P = aantal polen gelegen binnen de contour in s-vlak N = Z – P Bewijs: Als z1 binnen de contour ligt, dan is Djz1 = 360° na één omwenteling, terwijl alle andere D’s uiteindelijk nul zijn, zodat DjF = 360° N = 1 Als p1 binnen de contour ligt, dan is Djp1 = 360° na één omwenteling, terwijl alle andere D’s uiteindelijk nul zijn, zodat DjF = -360° N = -1
Voorbeeld 1 jw jv s u Z = 3 P = 1 N = 2
Voorbeeld 2 jw jv s u Z = 0 P = 1 N = -1
Voorbeeld als |a| < 1 Z = 1 als |a| > 1 Z = 0 Contour in s-vlak is de eenheidscirkel jw x jb -a s o x -jb als |a| < 1 Z = 1 als |a| > 1 Z = 0 als |b| < 1 P = 2 als |b| > 1 P = 0
Voorbeeld in Matlab Contour in s-vlak is de eenheidscirkel jw s -phi 1 >> phi=0:0.01:5.5;s=exp(-i*phi);polar(-phi,abs(s)); We sluiten de eenheidscirkel niet helemaal (tot 5,5 radialen) zodat we ook de zin kunnen zien
Controle met Matlab >> F=(s+2)./(s.^2+2);polar(angle(F),abs(F)); |b| < 1 (P = 2) |b| > 1 (P = 0) |a| < 1 (Z = 1) N = -1 N = 1 |a| > 1 (Z = 0) N = -2 N = 0 N = 0 >> F=(s+2)./(s.^2+2);polar(angle(F),abs(F)); N = 1 >> F=(s+.5)./(s.^2+2);polar(angle(F),abs(F)); N = -1 >> F=(s+.5)./(s.^2+.5);polar(angle(F),abs(F)); N = -2 >> F=(s+2)./(s.^2+.5);polar(angle(F),abs(F));
4. Nyquist criterium L(s) We willen weten of de closed-loop transferfunctie T(s) stabiel is, uitgaande van de kennis van de lustransferfunctie L(s)
Stabiliteitscriterium L(s) Stabiel als T(s) geen polen heeft in het rechterhalfvlak Dus: F(s) mag geen nulpunten hebben in het rechterhalfvlak
Methode in het s-vlak kiezen we een contour die het ganse rechterhalfvlak omvat we construeren de overeenkomstige contour in het F(s)-vlak, en bepalen het aantal omwentelingen N rond de oorsprong het aantal nulpunten Z van F(s) die gelegen zijn in het rechterhalfvlak is dan volgens het theorema van Cauchy gelijk aan Z = N + P, met P het aantal polen van F(s) in het rechterhalfvlak als dan N + P > 0 in het systeem onstabiel
Contour in s-vlak jw R s Als R → ∞ dan omvat de contour het ganse rechterhalfvlak
Contour in F(s)-vlak jv jv u u -1 we constueren de contour, niet in het F(s)-vlak, maar in het L(s)-vlak F(s)-vlak L(s)-vlak jv jv u u -1 L(s) = F(s) - 1 Het gevolg van deze verschuiving: het aantal omwentelingen in het F(s)-vlak rond de oorsprong komt overeen met het aantal omwentelingen rond het punt (-1,0) in het L(s)-vlak.
Contour in L(s)-vlak L(jw) jw jv w=∞ R w=0 s w=-∞ u w=∞ w=0 w=-∞ Het doorlopen van de imaginaire as (s = jw) komt overeen met het polaire diagramma van L(s)
Veronderstelling: L(s) stabiel Als L(s) stabiel is, liggen er geen polen in het rechterhalfvlak,dus: P = 0 De voorwaarde voor stabiliteit van T(s) wordt dan: N = 0 In woorden: de contour in het L(s)-vlak mag het punt (-1,0) NIET omcirkelen
Voorbeeld 1: >> L=tf(2,[1 1]) >> nyquist(L) jv s u 1/t jw jv R s (-1,0) K/tR u 1/t >> L=tf(2,[1 1]) >> nyquist(L) Merk op: in Matlab wordt het punt (-1,0) met een + aangeduid
Voorbeeld 2: >> L=tf(1.2,[1 1 0]) >> nyquist(L) jv u s 1/t jw jv (-1,0) s u 1/t >> L=tf(1.2,[1 1 0]) >> nyquist(L) De contour in het s-vlak mag niet door een pool gaan, daarom: omzeilen!
Voorbeeld 3: jv u1 u (-1,0)
Snijpunt met de reële as jv u1 u (-1,0)
Voorwaarde voor stabiliteit jv Punt (-1,0) NIET omcirkelen, dus u1 u (-1,0) of
In Matlab >> L=tf(5,[1 2 5 0]);nyquist(L);axis([-2 0 -4 4]) We kiezen: K = 5, a = 1, b = 2 en c = 5 : >> L=tf(5,[1 2 5 0]);nyquist(L);axis([-2 0 -4 4]) Klik op de linkermuisknop en bekijk het reëel deel, het imaginair deel en de frequentie Stel vervolgens K = 10, K = 15 en interpreteer
5. Winstmarge en fasemarge Winstmarge (gain margin) en fasemarge (phase margin) zijn 2 zeer praktische begrippen Zij worden bepaald uit de frequentie-responsie van de lusversterking L(s) Uiteindelijk is het de fasemarge die bepaalt of het systeem T(s) stabiel is
Winstmarge jv K1 stabiel: d < 1 K2 grens van stabiliteit K3 onstabiel -1 -d u Voor K = K1 is de winstmarge gelijk aan 1/d: dit is de factor waarmee K kan worden vermenigvuldigd tot de grens van stabiliteit
Winstmarge Winstmarge = 20 log(1/d) jv u De winstmarge wordt meestal uitgedrukt in dB: K3 Winstmarge = 20 log(1/d) K2 K1 -1 -d u Voor K = K2 is de winstmarge gelijk aan nul Voor K = K3 is de winstmarge negatief
Fasemarge jv Voor w = wc is A = 1 De fasenaijling bedraagt bij die frequentie j(wc) De fasemarge is dan gelijk aan jpm = 180°+ j(wc) -1 u jpm j(wc) A w= wc -j Voorbeeld: als j(wc) = -120°, dan is de fasemarge jpm = 60°
Fasemarge jv De fazemarge is de bijkomende fasenaijling die mag worden toegevoegd tot het systeem onstabiel wordt. -1 u w= wc jpm -j
Bode plots van L(jw) A w180 wc w 20 log 1/d j w jpm [dB] 0 dB [ ° ] -90° jpm -180°
Voorwaarde voor stabiliteit Fasemarge > 0
Voorbeeld Matlab Neem K = 10, t1 = 0.1s, t2 = 0.01s Dit systeem heeft 3 polen: één in de oorsprong, één bij 10 rad/s en één bij 100 rad/s.
Input Matlab >> K=10;L=tf(K,[0.001 0.11 1 0]) >> nyquist(L) >> margin(L) >> T=feedback(L,1);step(T) Voor welke waarde van K wordt het systeem onstabiel? Simuleer.
Tweede-orde systeem Welke is de relatie tussen de fasemarge van L(s) en z ?
Hoe de fasemarge berekenen?
Fasemarge ↔ z Benaderende formule: z = 0,01 jpm z jpm 0,8 0,6 0,4 0,2 10° 20° 30° 40° 50° 60° 70° Benaderende formule: z = 0,01 jpm
Bode plots van |L(jw)| |L(jw)| |L(jw)| 2zwn 2zwn wn wn wn/2z wn w w -90° jpm jpm jpm -180°
Alternatieve uitleg Nyquist criterium L(s) Als de fasenaijling = 180° dan wordt de negatieve terugkoppeling eigenlijk een positieve terugkoppeling ! Als dan de lusversterking > 1 dan in het systeem onstabiel !
Alternatieve uitleg Nyquist criterium IN + UIT = IN A 1-A + 1 5 + 4 0,8 + stabiel 1 -1 -2 + 2 + onstabiel
Voorbeeld We nemen aan dat t1 > t2 > ta > tb > t3 > t4 , zodat we eerst drie polen hebben, dan de twee nulpunten, en dan nog eens twee polen. De Bode plot ziet er uit als volgt:
Er zijn 3 frequenties waar j = -180° [dB] 20 log 1/d1 20 log 1/d2 wc 1/t3 1/t4 w 0 dB 1/t1 1/t2 1/ta 1/tb 20 log 1/d3 j [ ° ] w1 w2 w3 w -90° jpm -180° -270° Er zijn 3 frequenties waar j = -180°
Is dit systeem stabiel? Ja, zolang de fasemarge positief is! Dit hangt af van de versterking K.
Stabiel A [dB] wc w 0 dB j [ ° ] w1 w2 w3 w -90° jpm -180° -270°
Onstabiel A [dB] wc w 0 dB j [ ° ] w1 w2 w3 w -90° -180° jpm -270°
Stabiel A [dB] wc w 0 dB j [ ° ] w1 w2 w3 w -90° jpm -180° -270°
Onstabiel A [dB] wc w 0 dB j [ ° ] w1 w2 w3 w -90° -180° jpm -270°
Simulatie Matlab >>T1=100;T2=10;Ta=2;Tb=1;T3=0.2;T4=0.1; >>L1=tf(1,[T1 1 0]);L2=tf([Ta 1],[T2 1]); >>L3=tf([Tb 1],[T3 1]);L4=tf(1,[T4 1]); >>K=1000;L=K*L1*L2*L3*L4;margin(L); >>T=feedback(L,1);step(T)
Polaire plot: stabiel jv u -1
Polaire plot: onstabiel jv u -1
Polaire plot: stabiel jv u -d3 -d2 -1 -d1
Polaire plot: onstabiel jv u -1
Root locus jw onstabiel stabiel onstabiel stabiel s
6. M- en N-cirkels Voer uit in Matlab: >> L=tf(6,[0.01 0.11 1 2]);nyquist(L);axis([-5 5 -5 5]) In de figuur: Rechtermuisknop → Grid Wat zie je? Cirkels …
M-cirkels L(s) M(w) is het amplitudeverloop van het gesloten lus systeem Uit L(jw) = u + j v volgt dan
We zoeken nu de meetkundige plaats van alle punten in het L(s)-vlak die dezelfde amplitude M opleveren (1 + 2u + u2 + v2) M2 = u2 + v2 of (1 – M2) u2 + (1 – M2) v2 – 2 M2u = M2 Als M = 1 wordt dit de vergelijking van een rechte: u = -1/2 jv M=1 u -1/2
Interpretatie M=1 jv M(w) w2 -1 u 1 w1 w L(w) w1 w2
Als M ≠ 1 of Dit is de vergelijking van een cirkel met middelpunt en straal
M = 2 jv M=2 R u -2 -1 -2/3 u=-4/3
M = 1,5 M=1,5 jv R -1 u -3 -0.6 u=-1,8
Meetkundige interpretatie jv Voor elk punt van de cirkel geldt |L(jw)| |1+L(jw)| u -3 u=-1,8 -1 -0.6
M=1,5 jv u M=1,5 jv u |1+L(jw)| |L(jw)| -3 u=-1,8 -1 -0.6 L(jw) = -0,6
M < 1 M=1 M=3/2 jv M=2/3 M=2 M=1/2 -1,33 0,33 u -1,8 -1 0,8
Toepassing M=1 M=1,5 jv M(w) M=2 2 w4 u 1,5 w2 w3 1 w1 w w1 w2 w3 w4 L(w)
Matlab >> L=tf(6,[0.01 0.11 1 2]);nyquist(L);axis([-2 2 -2 2]) >> T=feedback(L,1);bode(T) (pas de schaal van de x-as aan met rechtermuisknop → Properties → Limits) Leg het verband tussen snijpunt van L(jw) met M-cirkel enerzijds amplitude van T(jw) anderzijds
N-cirkels cirkels van constante fase van T(jw) jv u -90° -45° -30° -1 -0,5 u -90° -45° -30°
Meetkundige interpretatie jv 1+L(jw) L(jw) u -90° T(jw) = L(jw) - 1+L(jw)
Hall kaart
Besluit Hall kaart is mooi, maar vereist het tekenen van de polaire plot Niet mogelijk om voor te stellen in de Bode plot Daarom een tussenoplossing: de Nichols plot
Frequentieresponsie in Aj-vlak 40dB A w=0 20dB jpm 0dB 20 log 1/d -20dB w=∞ -40dB j -360° -270° -180° -90° 0°
7. Het Nichols diagram M-cirkels worden M-contouren in het Aj-vlak 12dB M-cirkels worden M-contouren in het Aj-vlak M=6dB 6dB M=9dB M=12dB M=0dB 0dB M=-3dB -6dB -12dB -210° -180° -150° -120° -90°
Gebruik van het Nichols diagram 12dB M=6dB 6dB M=9dB M=12dB M=0dB 0dB M=-3dB -6dB w2 w1 -12dB -210° -180° -150° -120° -90°
Amplitudeverloop van T(s) M(w) 12dB 9dB 6dB 3dB w 0dB -3dB -6dB w1 w2
In matlab >> nichols(L) In de figuur: Rechtermuisknop → Grid en → Characteristics → All stability limits
Als K stijgt → verschuiven naar omhoog 12dB M=6dB 6dB M=9dB M=12dB M=0dB 0dB M=-3dB -6dB -12dB -210° -180° -150° -120° -90°
8. Systemen met tijdsvertraging vb. Staalwalserij d : de afstand tussen het regelpunt en het meetpunt d v : de snelheid van de staalplaat w v v gemeten dikte w - gewenste dikte motor + Tijdsvertraging
Blokschema vIN q K1 G(s) K3 Gd(s) gewenste dikte q dikte + K1 G(s) K3 gemeten dikte Gd(s) G(s) is de transferfunctie van de motor Gd(s) is de transferfunctie van de tijdsvertraging ( d = delay)
Gd(s) = ? Dus: Gd(s) = e-sT ℒ ℒ ℒ X(s) Y(s) = X(s) e-sT x(t) vertraging T x(t) y(t) = x(t-T) ℒ ℒ ℒ X(s) Y(s) = X(s) e-sT Gd(s) Dus: Gd(s) = e-sT
Gd(s) = e-sT Geen veelterm is s (geen polen en nulpunten) Wel eenvoudig de Bode plot te tekenen: stel gewoon s = jw: Gd(jw) = e-jwT Amplitude │Gd(jw)│ = │e-jwT│ = 1 Fase j(w) = - wT (in radialen)
Frequentieresponsie A w j = - w T x 180°/p w -T x 180°/p 0dB [ ° ] Lineaire schaal ! j = - w T x 180°/p [ ° ] w -T x 180°/p -180°
Bode plot j w -5,7° -57° -180° Logaritmische schaal ! Merk op: als w > 1/T neemt de fasenaijling zéér snel toe in de Bode plot
Invloed op de stabiliteit Nyquist criterium blijft geldig: jpm > 0 We illustreren dit met vorig voorbeeld Stel Stel K = K1 K2 K3
Lusversterking L(s) We nemen K = 2 rad/s v = 1 m/s d = 1m zodat T = 1 s
Amplitudeverloop L(s) 2 polen: p1 = 0 en p2 = -1 Asymptoot voor w < 1: helling -20dB/dec, snijpunt met 0dB-lijn voor w = 2 Asymptoot voor w > 1: helling -40dB/dec, snijpunt met 0dB-lijn voor w = 1,414
Amplitudeverloop A 2/w 6dB 3dB w 0dB 1,414 1 2 2/w2
Faseverloop zonder vertraging j 1 w -90° -135° -180°
Faseverloop met vertraging j 1 w -90° T = 1 s -135° -180°
Fasemarge jpm = 180°+ j(wc) fasemarge Hoe wc berekenen ?
Cross-over frequentie wc Vierkantsvergelijking x2 + x – 4 = 0 met x = wc2 Oplossing wc = 1,25 rad/s
Fasemarge Door de vertraging wordt het systeem onstabiel ! zonder vertraging met vertraging Door de vertraging wordt het systeem onstabiel !
Bode plot A w wc j w jpm zonder vertraging: 39° 6dB 3dB w 0dB wc 1 2 j w -90° jpm zonder vertraging: 39° -135° -180° jpm met vertraging: -33°
Hoe met Matlab simuleren? Voor de tijdsvertraging gebruikt Matlab de Padé-benadering: (Henri Padé, 1863-1953) format: pade(T,N) N = orde vb. T = 1s en N = 3 >> pade(1,3) Hoe gebeurt die benadering?
-540°
Padé-benadering met bindex = aindex als de index even is en bindex = -aindex als de index oneven is vb. T = 2s en N = 4 : >> pade(2,4)
Inzicht in Padé-benadering >> [t,n]=pade(2,4);Gd=tf(t,n) >> zero(Gd) >> pole(Gd) Wat blijkt: nulpunten en polen zijn symmetrisch gelegen t.o.v. imaginaire as Dit is een aldoorlaat-systeem
Aldoorlaat systeem jw jw Lp1 Lz1 p1 jwd z1 p1 z1 Lp1 Lz1 Lp2 Lz2 s s nulpunten in RHV symmetrisch t.o.v. polen in LHV jw jw Lp1 Lz1 p1 jwd z1 p1 z1 Lp1 Lz1 Lp2 Lz2 s s -zwn zwn -zwn zwn Lp2 Lz2 p2 -jwd p2 z2 -jwd z2
Minimum fase ↔ niet-minimum fase jw jw minimum fase niet-minimum fase Lz Lz Lp Lp jz jz jp jp s s z = -4 p = -1 p = -1 z = 4 A(w) = Lz / Lp → zelfde amplitudeverloop j(w) = jz - jp → verschillend faseverloop
Faseverloop als z = -p j(w) = jz - jp Lp Lz jp jz s p = -4 z = 4 j(w) = jz - jp Gelijkbenige driehoek: jz = 180° - jp Hieruit volgt: j(w) = 180° - 2jp
Gevolg De fasenaijling van (Padé-benadering voor T = 2 s) is precies het dubbele van de fasenaijling van Deze laatste is de transferfunctie van een genormeerd Bessel filter met tijdsvertraging T = 1 s.
Simulatie van ons voorbeeld We nemen N = 3 voor de Padé-benadering >> [t,n]=pade(1,3);Gd=tf(t,n) >> G=tf(2,[1 1 0]);L=G*Gd en vergelijk jpm zonder en met de tijdsvertraging >> margin(G) >> margin(L)
Mengkraan van een douche temperatuur TM temperatuur TW temperatuur TK warm water koud water mengkraan
Model van de mengkraan TM TK a TM = TK + a (TW – TK)/p TW warm koud (hoek a in radialen)
Model bediening we nemen aan dat de wijziging van de hoek ( dit is de afgeleide da/dt ) evenredig is met het temperatuursverschil DT tussen de gewenste temperatuur en de gemeten temperatuur In formulevorm (dimensie K: radialen/s per graad Celsius)
Blokschema a DT TM gewenste temperatuur + + K/s (TW – TK)/p + TK gemeten temperatuur e-sT De lusversterking is: Stel: TW = 59°C, TK = 5°C, tijdsvertraging T = 3 s
Maximale waarde voor K ? Bepalen van de crossover-frequentie wc : Bepalen van de fasemarge jpm : j(wc) = -90° - wc T 180°/p zodat jpm = 90° - wc T 180°/p Rand van stabiliteit: fasemarge jpm = 0 90° = wc T 180°/p zodat wc = p / 2T = p / 6 Maximale K: wc = p / 6 = K 54/ p zodat Kmax = p2/ 324 = 0,03 rad/s per graad Celsius
Interpretatie Kmax = 0,03 rad/s per graad Celsius wil zeggen dat per temperatuurverschil van 1°C de positie van de mengkraan niet sneller mag bewegen dan 0,03 rad/s (ofwel ongeveer 1,7 hoekgraden per seconde)
Simulatie >> [t,n]=pade(3,3);Gd=tf(t,n) >> K=0.01;G=tf(K*54/pi,[1 0]);L=G*Gd; >> margin(L) >> T=feedback(L,1);step(T) Verhoog K en interpreteer de fasemarge en de stapresponsie Bekijk ook nyquist(L), nichols(L), rlocus(L)
Besluit Het frequentiedomein geeft ons een eenvoudig criterium (fasemarge positief) voor het bepalen van de stabiliteit De invloed van een tijdsvertraging kan in het frequentiedomein zeer eenvoudig worden geanalyseerd