Języki Modelowania i Symulacji Projektowanie sterowników Marcin Ciołek Katedra Systemów Automatyki WETI, Politechnika Gdańska 4 stycznia 212
O czym będziemy mówili? 1 2 3
rlocus Wyznaczanie trajektorii linii pierwiastkowych ukladu zamkniętego na podstawie układu otwartego. Jak wpływa zmiana wartości wzmocnienia k (, ) na położenie biegunów w przestrzeni zepolonej s dla układu zamkniętego z ujemnym sprzężeniem zwrotnym?
rlocus.4.3.2 Root Locus Imaginary Axis.1 -.1 -.2 -.3 -.4-7 -6-5 -4-3 -2-1 1 Real Axis G = zpk([-1],[ -2],1) Zero/pole/gain: (s+1) ------- s (s+2) rlocus(g)
rlocus 15 1 Root Locus 5 Imaginary Axis -5-1 -15-4.5-4 -3.5-3 -2.5-2 -1.5-1 -.5.5 Real Axis G = zpk([-2],[ -4],1) Zero/pole/gain: (s+2) --------- s^2 (s+4) rlocus(g)
rlocus 1.5 1 Root Locus.5 Imaginary Axis -.5-1 -1.5-6 -5-4 -3-2 -1 1 Real Axis G = zpk([-2],[-1-1],1) Zero/pole/gain: (s+2) ------- (s+1)^2 rlocus(g)
rlocus 4 3 2.86.94.76 Root Locus.64.5.34.16 Imaginary Axis 1-1.985.985 6 5 4 3 2 1-2.94-3.86.76.64-4 -7-6 -5-4 -3-2 -1 1 Real Axis.5.34.16 G = zpk([],[-2-2 -2],1); rlocus(g); k = rlocfind(g) k = 64.332
lead, lag typu: lead, lag wprowadzaja zmiany w charakterystykach częstotliwościowych układu otwartego. Stosujemy je, aby zwiększyć wydajność systemu (stabilność, szybsza odpowiedź układu, zmniejszenie błędu w stanie usatlonym) P Lead = s + a s + b, P Lag = a b a b ( ) s + b, a b s + a punkt przecięcia się asymptot bieguny zera σ = liczba biegunów liczba zer
lead.8 Nieskompensowany 8.74 Kompensacja Lead.6.46.34.22.1.6 6.86 Imaginary Axis.4.2 -.2 Imaginary Axis 4 2-2.96.96 8 7 6 5 4 System: F Gain: 18.5 Pole: -3.18 + 1.51i Damping:.94 Overshoot (%):.132 Frequency (rad/sec): 3.52 3 2 1 -.4-4.86 -.6-6 -.8-1 -.5 Real Axis.74.6.46.34.22-8 -8-6 -4-2 Real Axis.1 G1 = zpk([],[-1-1 ],1)%Obiekt G2 = zpk([-2],[-8],1) %Lead F = series(g1,g2)
lead G1 = zpk([],[-1-1 ],1) G2 = zpk([-2],[-8],1) %obiekt % Lead Zero/pole/gain: Zero/pole/gain: 1 (s+2) ------- ----- (s+1)^2 (s+8) F = series(g1,g2) Zero/pole/gain: (s+2) ------------- (s+8) (s+1)^2 subplot(121) rlocus(g1) subplot(122) rlocus(f) sgrid
lead Gm = Inf db (at Inf rad/sec), Pm = -18 deg (at rad/sec) Gm = Inf, Pm = -18 deg (at Inf rad/sec) -1-2 -2-4 -3-6 -4-8 -5-1 -6-7 -12 Magnitude (db) Bode Diagram - Obiekt G 1 (s) Bode Diagram Lead G 2 (s) Bode Diagram F(s) = G 1 (s)g 2 (s) Magnitude (db) Magnitude (db) Gm = Inf db (at Inf rad/sec), Pm = Inf -2-4 -6-8 -1-8 -45-14 4 35 3-12 -45 Phase (deg) -9 Phase (deg) 25 2 15 Phase (deg) -9-135 1-135 5-18 1-2 1 1 2 Frequency (rad/sec) 1 1 2 Frequency (rad/sec) -18 1 Frequency (rad/sec)
lag 2 15 Nieskompensowany 2 15.72.84 Kompensacja Lag.58.44.3.14 17.5 15 12.5 1 1 1.92 7.5 Imaginary Axis 5-5 System: G1 Gain: 185 Pole: -.441 + 3.73i Damping:.118 Overshoot (%): 96.4 Frequency (rad/sec): 3.73 Imaginary Axis 5-5.98.98 5 2.5 System: F Gain: 41 Pole: -.833 + 2.26i Damping:.368 Overshoot (%): 89.1 2.5 Frequency (rad/sec): 2.26 5-1 -1.92 7.5 1.84 12.5-15 -15 15-2 -2-1 1 2 Real Axis.72.58.44.3.14 17.5-2 -2-1 1 Real Axis G1 = zpk([],[-1-5 -1+4i -1-4i],1) G2 = zpk([],[-1],1) F = series(g1,g2)
lag G1 = zpk([],[-1-5 -1+4i -1-4i],1) G2 = zpk([],[-1],1) %obiekt % Lag Zero/pole/gain: Zero/pole/gain: 1 1 ------- ----- (s+1) (s+5) (s^2 + 2s + 17) (s+1) F = series(g1,g2) Zero/pole/gain: 1 ----------------------------- (s+1)^2 (s+5) (s^2 + 2s + 17) subplot(121) rlocus(g1) subplot(122) rlocus(f) sgrid
lag Magnitude (db) Phase (deg) Gm = 45.8 db (at 3.74 rad/sec), Pm = Inf -2-4 -6-8 -1-12 -14-16 -18-2 -22-45 -9-135 -18-225 -27-315 -36 Bode Diagram - Obiekt G 1 (s) 1 Frequency (rad/sec) Magnitude (db) Phase (deg) Gm = Inf, Pm = -18 deg (at rad/sec) -5-1 -15-2 -25-3 -35-4 -3-6 Bode Diagram - Lag G 2 (s) -9 1-2 1 1 2 Frequency (rad/sec) Magnitude (db) Phase (deg) Gm = 52.9 db (at 2.32 rad/sec), Pm = Inf -5-1 -15-2 -25-3 -45-9 -135-18 -225-27 -315-36 -45-45 Bode Diagram F(s) = G 1 (s)g 2 (s) 1 Frequency (rad/sec)
Przykład 1 Model głowicy odczytu/zapisu dla dysku twardego został opisany transmitancja: H =.5.1s 2 +.4s + 1 Zaprojektuj cyfrowy sterownik do precyzyjnego pozycjonowania głowicy odczytu/zapisu.
Przykład 1 Magnitude (db) -5-1 -15 Bode Diagram H Hd (dyskretyzacja) -2 Phase (deg) -9-18 -27 1 1 1 1 2 1 3 Frequency (rad/sec) J =.1; C =.4; K = 1; Ki =.5; num = Ki; den = [J C K]; H = tf(num,den) Ts =.5; Hd = c2d(h,ts,'zoh') bodeplot(h,'-',hd,'r--')
Przykład 1 Czy układ zamknięty jest stabilny? Bode Diagram Gm = 3.1 db (at 34.1 rad/sec), Pm = Inf Magnitude (db) -5-1 -15-45 Phase (deg) -9-135 -18-225 -27 1 1 1 1 2 1 3 Frequency (rad/sec)
Przykład 1 Jaki jest współczynnik tłumienia?.1 Step Response.9 Hd (po dyskretyzacji).8.7 Amplitude.6.5.4.3.2.1 5 1 15 2 25 3 Time (sec)
Przykład 1 Czy można sterować wzmocnieniem ujemnego sprzężenia zwrotnego w celu poprawy stabilności układu? 2.5 Root Locus 2 1.5 1 Imaginary Axis.5 -.5-1 -1.5-2 -2.5-7 -6-5 -4-3 -2-1 1 2 Real Axis
Przykład 1 Co się stało z zapasem wzmocnienia i fazy? Bode Diagram - Kompensacja Lead 1 Bode Diagram - Kompensator Lead -2 5-4 Magnitude (db) -6-8 -1 Magnitude (db) -5-1 -12-14 -15-16 45-2 6 Phase (deg) -45-9 -135-18 Phase (deg) 3-225 -27 1 1 1 1 2 1 3 Frequency (rad/sec) -3 1 1 1 1 2 1 3 Frequency (rad/sec)
Przykład 1 Co się stało z zapasem wzmocnienia i fazy? Bode Diagram - Kompensacja Lead Gm = 83.9 db (at 297 rad/sec), Pm = Inf Magnitude (db) -5-1 -15-2 9 Phase (deg) -9-18 -27 1 1 1 1 2 1 3 Frequency (rad/sec)
Przykład 1 Czy można sterować wzmocnieniem ujemnego sprzężenia zwrotnego w celu poprawy stabilności układu? 1.6π/T Root Locus.5π/T.4π/T.8.7π/T.1.3π/T.2.6.8π/T.3.4.2π/T Imaginary Axis.4.2 -.2.9π/T π/t π/t.5.6.7.8.9 System: oloop Gain: 4.11e+3 Pole:.577 +.232i Damping:.779 Overshoot (%): 2.2 Frequency (rad/sec): 122.1π/T.9π/T.1π/T -.4 -.6.8π/T.2π/T -.8.7π/T.3π/T.6π/T.4π/T -1.5π/T -1 -.8 -.6 -.4 -.2.2.4.6.8 1 Real Axis
Przykład 1 Ile czasu potrzeba na spozycjonowanie głowicy? x 1-4 Step Response 2 System: cloop Final Value:.184 Amplitude System: cloop Rise Time (sec):.795 1.2.4.6.8.1.12 Time (sec)
Przykład 1 Układ sterowania głowica zapisu/odczytu oloop = Hd * D olk = K * oloop; margin(olk)
Przykład 1 Kiedy układ zamknięty przestanie być stabilny? 5 Bode Diagram Gm = 11.6 db (at 297 rad/sec), Pm = 43.2 deg (at 16 rad/sec) Magnitude (db) -5 Phase (deg) -1 45-45 -9-135 -18-225 -27 1 1 1 1 2 1 3 Frequency (rad/sec)
Design Narzędzie MATLAB-a umożliwiajace łatwe zaprojektowanie kompensatora dla wybranego układu sisotool sisotool(plant) sisotool(plant,comp) sisotool(plant/g,comp/c,sensor/h,prefilt/f) G,C,H,F moga być tworzone za pomoca funkcji: ss,tf,zpk
Design
Design
Design Wyznacz obszar na płaszczyźnie s, w którym powinny znaleźć się bieguny układu II rzędu, aby spełnione były wymagania: maksymalne przeregulowanie M p% 15%, dwuprocentowy czas regulacji t 2% 4 sek, czas narastania t n 3 sek.
Ustawianie ograniczeń dla wybranych parametrów. Design
Design W efekcie przestrzeń zespolona zostaje ograniczona i można rozmieścić pierwiastki w białym obszarze.
Design Klikamy na Analysis Response to Step Command i przechodzimy do okna LTI Viewer. Czy układ II rzędu o zadanym rozmieszczeniu biegunów zespolonych spełnia wymagania projektowe: maksymalne przeregulowanie M p% 15%, dwuprocentowy czas regulacji t 2% 4 sek, czas narastania t n 3 sek.?.7 Step Response.6.5 System: Closed Loop r to u I/O: r to u Peak amplitude:.516 Overshoot (%): 6.27 At time (sec):.392 System: Closed Loop r to u I/O: r to u Settling Time (sec):.56 Amplitude.4.3 System: Closed Loop r to u I/O: r to u Rise Time (sec):.188.2.1.1.2.3.4.5.6.7.8 Time (sec)
k (s+1)(s+3) Design Układ o transmitancji G(s) = objęto jednostkowym sprzężeniem zwrotnym. Dla jakich wartości k biegunami otrzymanego układu będa liczby rzeczywiste? G = zpk([],[-1-3],1); sisotool(g)
k (s+1)(s+3) Design Układ o transmitancji G(s) = objęto jednostkowym sprzężeniem zwrotnym. Dla jakich wartości k biegunami otrzymanego układu będa liczby rzeczywiste? G = zpk([],[-1-3],1); sisotool(g)
Design k Układ o transmitancji G(s) = objęto jednostkowym s(1s+1)(.1s+3) sprzężeniem zwrotnym. Dla jakich wartości k układ będzie na granicy stabilności? Odczytaj zapas fazy i wzmocnienia? G = zpk([],[ -.1-1],1); sisotool(g)
Design k Układ o transmitancji G(s) = objęto jednostkowym s(1s+1)(.1s+1) sprzężeniem zwrotnym. Dla jakich wartości k układ będzie na granicy stabilności? Odczytaj zapas fazy i wzmocnienia?
Design Wykreśl charakterystykę Nyquista dla układu o transmitancji G(s) =. Odczytaj zapas fazy i wzmocnienia? k s(1s+1)(.1s+1) Klikamy na Analysis Open-Loop Nyquist i przechodzimy do okna LTI Viewer. Następnie klikamy prawym przyciskiem myszy i ustawiamy: grid, zoom on ( 1, ), Characteristics All Stability Margins
Design - Przykład 2 Zaprojektuj sterownik proporcjonalny C(s) = K dla obiketu o transmitancji 1 G p(s) = używaj ac narzędzia : s(s+2)(s+5) znajdź przedział wartości wzmocnienia, dla którego układ zamkniety pozostaje stabilny wskaż wartość wzmocnienia, dla którego dominujace, zespolone bieguny sa tłumienie z wartościa ζ =.6 dla tej wartości wzmocnienia K odczytaj zapas fazy i wzmocnienia wyznacz odpowiedź skokowa układu zamkniętego dla uzyskanego K oraz odczytaj jej charakterystyczne parametry
Design - Przykład 2 Gp = zpk([],[ -2-5],1); sisotool(gp)
Design - Przykład 2 Układ zamknięty pozostaje stabilny dla wartości wzmocnienie z przedziału K (, 7 >
Design - Przykład 2 Ustawiamy wartość wzmocnienie, dla którego dominujace, zespolone bieguny sa tłumienie z wartościa ζ =.6, K = 8.9
Design - Przykład 2 Ustawiamy wartość wzmocnienie, dla którego dominujace, zespolone bieguny sa tłumienie z wartościa ζ =.6, K = 8.9. Zapas wzmocnienia g = 17.9dB, zapas fazy p = 58.6deg.
Design - Przykład 2 Odpowiedź skokowa i jej charakterystyczne parametry. Step Response 1.4 1.2 1 System: Closed Loop r to y I/O: r to y Peak amplitude: 1.9 Overshoot (%): 9.17 At time (sec): 3.29 System: Closed Loop r to y I/O: r to y Settling Time (sec): 4.85 Amplitude.8.6 System: Closed Loop r to y I/O: r to y Rise Time (sec): 1.51.4.2 1 2 3 4 5 6 7 Time (sec)
Design - Przykład 3 Zaprojektuj sterownik PD C(s) = K p + K D s dla obiketu o transmitancji 1 G p(s) = używaj ac narzędzia : s(s+2)(s+5) wartość współczynnika tłumienia dla dominujacych, zespolonych biegunów wynosi ζ =.77 czas ustalania dla dominujacych, zespolonych biegunów wynosi t s = 2 sek t s 4τ τ =.5 sec ζω n = 1 τ = 1 = 2 θ = arccos(.77) = 45 deg.5 s 1,2 = ζω n ± jω n 1 ζ2 = 2 ± j2
Design - Przykład 3
Design - Przykład 3 wartość współczynnika tłumienia dla dominujacych, zespolonych biegunów wynosi ζ =.77 czas ustalania dla dominujacych, zespolonych biegunów wynosi t s = 2 sek
Design - Przykład 3 Umieszczamy zero na osi rzeczywistej na lewo od pary biegunów dominujacych.
Design - Przykład 3 Zmieniamy wartość wzmocnienia tak, aby bieguny znalazły się w punkcie przecięcia lini ograniczajacych. Następnie klikamy File Export, klikamy na nazwę C i zmieniamy ja na PD. Klikamy Export to Workspace. Wpisujac nazwę zmiennej w WorkSpace otrzymamy zaprojektowany regulator PD C(s) = 1 (s + 2.4)
Design - Przykład 3 Odpowiedź skokowa układu zamkniętego i jej charakterystyczne parametry 1.4 Step Response 1.2 1 System: Closed Loop r to y I/O: r to y Peak amplitude: 1.7 Overshoot (%): 7.3 At time (sec): 1.4 System: Closed Loop r to y I/O: r to y Settling Time (sec): 2.13 Amplitude.8.6 System: Closed Loop r to y I/O: r to y Rise Time (sec):.665.4.2.5 1 1.5 2 2.5 3 3.5 4 Time (sec)
Design - Przykład 4 Zaprojektuj kompensator typu Lead C(s) = 1 Kc (s+zo) (s+p o) dla obiketu o transmitancji G p(s) = używaj ac narzędzia : s(s+2)(s+5) wartość współczynnika tłumienia dla dominujacych, zespolonych biegunów wynosi ζ =.77 czas ustalania dla dominujacych, zespolonych biegunów wynosi t s = 2 sek t s 4τ τ =.5 sec ζω n = 1 τ = 1 = 2 θ = arccos(.77) = 45 deg.5 s 1,2 = ζω n ± jω n 1 ζ2 = 2 ± j2
Design - Przykład 4 Ustawiamy zero pomiędzy dwoma biegunami leżacymi najbliżej osi urojonej z o = 1.75. Następnie ustawiamy biegun najdalej z pozostałych na osi rzeczywistej p o = 8. Zmieniamy wartość wzmocnienia tak, aby bieguny znalazły się w punkcie przecięcia lini ograniczajacych. C(s) = 63.8816 (s + 1.75) s + 8
Design - Przykład 4 Odpowiedź skokowa układu zamkniętego i jej charakterystyczne parametry 1.4 1.2 Step Response Amplitude 1.8.6 System: Closed Loop r to y I/O: r to y Settling Time (sec): 1.52 System: Closed Loop r to y I/O: r to y Rise Time (sec):.935 System: Closed Loop r to y I/O: r to y Peak amplitude: 1.1 Overshoot (%):.56 At time (sec): 1.97.4.2.5 1 1.5 2 2.5 3 3.5 Time (sec)
Design - Przykład 4 Odpowiedzi skokowe układu zamkniętego i ich charakterystyczne parametry. P PD Lead Czas narastania [sek] 1.51.665.935 Wartość przeregulowania [%] 9.17 7.3.56 Czas ustalania [sek] 4.85 2.13 1.52
Design - Przykład 5 Zaprojektuj sterownik dla obiketu o transmitancji G(s) = 45 używajac s(s+361.2) narzędzia tak, aby po objęciu go jednostkowym sprzężeniem zwrotnym spełnione były wymagania: bład prędkościowy w stanie ustalonym (pobudzenie rampa z jednostkowym wzmocnieniem) e.443 maksymalne przeregulowanie M p% 5% czas narastania t n.2 sec czas ustalania t 5%.5 sec Porównaj zastosowanie steronika proporcjonalnego i kompensatora typu Lead
Design - Przykład 5 num=45; den=[1 361.2 ]; G=tf(num,den); sisotool(g)
Design - Przykład 5 View Close-Loop poles...
Design - Przykład 5 Odpowiedź skokowa układu zamkniętego dla jednostkowego wzmocnienia, czy warunek dotyczacy czasu narastania jest spełniony? 1 Step Response.9.8 System: Closed Loop r to y I/O: r to y Rise Time (sec):.17.7.6 Amplitude.5.4.3.2.1.1.2.3.4.5.6.7 Time (sec)
Design - Przykład 5 Czy możemy znaleźć tak a wartość sterownika proporcjonalnego, aby wymagania projektowe zostały spełnione?
Design - Przykład 5 Można zastosować sterownik PD C(s) = K (1 + st D ) (należy dodać odpowiednia wartość zera )
Design - Przykład 5 Można zastosować sterownik PD C(s) = K (1 + st D ) (należy dodać odpowiednia wartość zera ). Dzięki temu pojawił się punkt rozejścia i bieguna moga znaleźć się w dozwolonym obszarze. C(s) = 295(1 +.1s)
Design - Przykład 5 Czy wymagania projektowe zostały spełnione? bład prędkościowy w stanie ustalonym (pobudzenie rampa z jednostkowym wzmocnieniem) e.443 maksymalne przeregulowanie M p% 5% czas narastania t n.2 sec czas ustalania t 5%.5 sec 1.4 Step Response 1.2 1 System: Closed Loop r to y I/O: r to y Peak amplitude: 1.12 Overshoot (%): 11.9 At time (sec):.223 System: Closed Loop r to y I/O: r to y Settling Time (sec):.368 Amplitude.8.6 System: Closed Loop r to y I/O: r to y Rise Time (sec):.959.4.2 1 2 3 4 5 6 Time (sec) x 1-3
Czy wymagania projektowe zostały spełnione? Design - Przykład 5 bład prędkościowy w stanie ustalonym (pobudzenie rampa z jednostkowym wzmocnieniem) e.443 maksymalne przeregulowanie M p% 5% czas narastania t n.2 sec czas ustalania t 5%.5 sec 45 k v = lim sg z(s) = lim sc(s)g(s) = lim s 295(1 +.1s) s s s s(s + 361.2) k v = 3.6752e + 3 e v( ) = 1 k v e v( ) =.2729