Documente Academic
Documente Profesional
Documente Cultură
Carte Lab 2008 PDF
Carte Lab 2008 PDF
Cuprins
Refereni tiinifici: Prof.dr.ing. Tiberiu COLOI Universitatea Tehnic din Cluj-Napoca Prof.dr.ing. Petru DOBRA Universitatea Tehnic din Cluj-Napoca Prof.dr.ing. Viorel TRIFA Universitatea Tehnic din Cluj-Napoca
Cuprins
iii
CUPRINS
Prefa 1. Introducere n MATLAB
1.1. Obiectivele lucrrii 1.2. Introducere 1.2.1. Mediul MATLAB 1.2.2. Variabile, expresii si comenzii 1.2.3. Funcii i operaii elementare 1.2.4. Trasarea graficelor 1.3. Matlab n controlul i analiza sistemelor 1.4. Verificare
7 11
11 11 12 14 24 28 29 33
35
35 35 35 40 41 42
43
43 43 43 45 46 48 51 54
Cuprins
4. Introducere n Simulink
4.1. Obiectivele lucrrii 4.2. Introducere 4.2.1. Lansare Simulink 4.2.2. Crearea unui model 4.2.3. Elemente de baz (blocuri i linii) 4.2.4. Exemplu de simulare 4.3. Modelarea sistemelor
55
55 55 56 57 58 63 67
83
83 83 84 86 86 90 98
101
101 101 102 102 104 107 108 110 111 112 112
115
115 115 116 118 121 124 124 125
Cuprins
129
129 129 130 131 138 144
149
149 149 149 158
167 169
Cuprins
PREFA
De-a lungul timpului MATLAB i Simulink au devenit standarde educaionale pentru mediile universitare, att n cadrul unor cursuri de iniiere ct mai cu seam pentru cursurile avansate din diferitele domenii ale ingineriei, matematicii sau tiinelor aplicate.
Prezenta lucrare reprezint un ghid practic de utilizare a mediului MATLAB n rezolvarea problemelor legate de modelarea, simularea si proiectarea sistemelor de control specifice domeniului Ingineriei Sistemelor. Cartea este destinat n primul rnd studenilor din anul II, de la Facultatea de Inginerie Electric dar, la fel de util poate fi i studenilor altor faculti de inginerie, precum i inginerilor care utilizeaz i dezvolt aplicaii industriale de control. Coninutul acestei cri se bazeaz pe cunotiinele teoretice dobndite n cadrul cursului de Teoria Sistemelor i reprezint o continuare fireasc a acestui curs punnd accentul pe latura aplicativ. Prin modul de prezentare, autorii au ncercat s se pun sub o form gradual aspectele legate de modelarea, simularea i proiectarea sistemelor de control. Coninutul acestei lucrri este structurat pe 9 capitole care pot fi sintetizate dup cum urmeaz: Capitolul 1 face o prezentare general a mediului MATLAB i pune accentul ntr-o prim parte pe caracteristicile care definesc particularitile limbajului de programare. Acest limbaj are trsturi comune cu limbajele tradiionale de programare - C i respectiv, Fortran. Sunt evideniate
viii
Prefa
avantajele pe care acest mediu de simulare numeric le ofer n rezolvarea problemelor care pot fi puse sub o forma matematic compact, precum i facilitile de reprezentare grafic divers de care dispunee. Capitolul 2 trateaz aspecte legate de modelarea sistemelor liniare i invariante (LTI) n Matlab. Sunt prezentate cteva moduri de reprezentare ale sistemelor liniare precum i modalitile de conversie dintr-o form n alta a acestor forme de reprezentare. De asemenea sunt menionare funciile din Matlab prin intermediul crora se pot extrage date dintr-un astfel de model. Capitolul 3 prezint modurile de interconectare ale blocurilor funcionale ce compun un sistem. Reducerea complexitii prin determinarea unei funcii de transfer echivalente reprezint un aspect important care este abordat n cadrul aceastui capitol. Pornind de la ideea reprezentrii sistemelor prin diagramele bloc se introduce modelarea n Simulink. Capitolul 4 este dedicat n ntregime prezentri mediului grafic de modelare i simulare Simulink. Sunt prezentate elementele de baz din Simulink care permit modelarea grafic a unui sistem. De asemenea, este artat modul de salvare a modelului creat ntr-un fiier de tip mdl, precum i ncrcarea n zona de lucru a unui model deja existent. n faza urmtoare, sunt prezentate facilitile oferite de Simulink n simularea sistemelor n vederea analizei acestora. Capitolul 5 abordeaz problema analizei rspunsului tranzitoriu pentru sistemele liniare modelate prin funcii de transfer. Este analizat rspunsului sistemului de ordinul I, de ordinul II i ordinul II modificat cu un pol sau zerou cnd la intrare se aplic un semnal treapt. Pentru fiecare din aceste cazuri sunt introdui parametrii care caracterizeaz faza de rspuns tranzitoriu. Capitolul 6 se ocup cu analiza rspunsului n regim stabilizat. Sunt introduse erorile care pot s apar n aceast faz de rspuns a unui sistem, atunci cnd la intrarea sistemului se aplic un semnal standard de test. Este prezentat conceptul de sensibilitate al unui sistem. Sunt de asemenea introduse erorile stationare pentru sistemele modelate prin ecuatii de stare.
Prefa
ix
Capitolul 7 este dedicat prezentrii metodei Locul rdcinilor i a analizei pe baza acestei metode. Tot acum se introduc noiunile de compensator, sistem compensat i de stabilitate a unui sistem. n MATLAB trasarea locului se face prin comanda rlocus, iar alegerea coeficienilor presupune utilizarea funciei rlocfind. Metoda ofer informaii utile asupra comportamentului sistemului n bucl nchis. Prin inserarea unui compensator adecvat, se poate obine un rspuns dorit pentru sistem, n concordan cu condiiile impuse n faza iniial de proiectare. Capitolul 8 abordeaz problema proiectrii sistemelor de control pe baza metodei locul rdcinilor. Este prezentat n detaliu metoda grafic de proiectare ce utilizeaz funcia sisotool din Matlab. In cadrul acestei lucrri se prezint proiectarea sistemelor de control cu regulator proporional, proporional derivativ i cu compensator cu avans de faz. Pentru fiecare din exemplele considerate se face analiza rspunsului la semnalul treapta precizndu-se parametrii ce caracterizeaza rspunsul. Capitolul 9 se ocup cu problema proiectrii sistemelor de control n domeniul frecvenei pe baza diagramelor Bode. n lucrare sunt prezentate metodele de proiectare ale sistemelor compensate pe baza compensatoarelor cu avans i ntirziere de faz. Pentru fiecare din exemple se prezint n mod comparativ diagramele Bode i rspunsul sistemului nainte i dup compensare. n sperana c aceast lucrare poate fi util celor interesai de domeniul ingineriei sistemelor n dobndirea cunotiinelor legare de modelarea, simularea i proiectarea sistemelor de control, autorii mulumesc anticipat celor care vor aprecia sau vor avea un punct de vedere constructiv la adresa coninutului acestei lucrri. Opiniile se pot trimite pe adresa: calin.rusu@edr.utcluj.ro Nu n ultimul rnd dorim s mulumim Editurii UT Press pentru sprijinul acordat la apariia acestei lucrri. Martie 2008, Cluj - Napoca Dr. ing. Clin Gh. Rusu
Prefa
Introducere n MATLAB
Lucrarea nr. 1
1.1. Obiectivele lucrrii
- prezentarea mediului MATLAB, comenzi de baz - operaii elementare cu matrici i vectori - exemple de operaii i funcii uzuale n controlul sistemelor - operaii matematice, extragerea rdcinilor unui polinom - transformarea Laplace directa i invers
1.2. Introducere
MATLAB este un mediu de modelare i simulare interativ utilizat pentru calcule i analize tiinifice. nglobeaz diverse posibiliti de lucru, precum: analiza numeric, calculul matricial, procesarea semnalelor sau reprezentarea grafic, ntr-un mediu uor de utilizat. Formularea enunurilor i soluiile problemelor se exprim exact cum sunt scrise matematic, nefiind necesar o programare tradiional. Numele acestui mediu provine de la matrix laboratory. n calcule complexe programul se bazeaz pe operaiile cu matrici.
12
Introducere n MATLAB
Figura 1.1 Mediul MATLAB Fereastra de comenzi - Command Window Aici putei s introducei comenzi, de exemplu s specificai valoarea unei variabile sau s rulai un fiier cu comenzi i/sau instructiuni MATLAB - script m-file. Prin urmare printr-un m-file se va ntelege un fier care execut o serie de comenzi MATLAB sau poate s conin funcii care accept argumente.
Introducere n MATLAB
13
Prompterul mediului este >>, indicator dup care se pot introduce valori, expresii i scripturi m-file. Fereastra comenzilor anterioare - Command History Liniile introduse n Command Window se nregistreaz n fereastra Command History. n Command History, putei s identificai funcia anterior folosit, se pot copia i executa liniile selectate. Textul urmtor %-- 11:18 AM 4/04/04 --% indic ora exact cnd a fost executat comanda respectiv. Fereastra cilor de cutare - Launch Pad Fereastra furnizeaz calea de acces la biblioteci - tools, demo-uri i documentaii. Biblioteca Simulink i Control System Toolbox sunt cel mai des utilizate n acest curs. Fereastra de lucru - Workspace Fereastra de lucru conine setul de variabile (vectori sau matrici) memorate de MATLAB ntr-o sesiune de lucru. Putei s adunai o variabil utiliznd funcii, rulnd un m-file i ncrcnd workspace-ul salvat. Ca s vedei informaiile despre fiecare variabil facei click pe Workspace sau folosii funcia who i whos. Figura 1.2 arat fereastra Workspace.
14
Introducere n MATLAB
Introducere n MATLAB
15
format short e format long, format long e Aceste comenzi vor afia numrul cu 5 cifre in format flotant, respective 15 cifre n format ntreg i 15 cifre n format flotant. Primul exemplu este o expresie fr nume de variabil cu rspuns memorat automat n ans. Expresia a doua este o expresie matematic ce utilizeaz funcia cos. Funciile matematice vor fi explicate n cadrul seciunii Funcii Elementare. >> 13 ans = 13 >> cos(3.1416/3) ans = 0.49999787927255 >> n exemplul doi se vor afia expresii a cror valoare este memorate n variabilele a i b. >> a= 234.56778 a = 2.3457e+002 >> b=3.1416*(cos(3.1416/6))+2 b = 4.7207e+000 n rspunsul afiat, semnul % indic faptul c expresia tastat este convertit n comentariu, respectiv dac dup expresia matematic se pune ; atunci se omite rspunsul. n exemplul urmtor se arat acest lucru. n prima
16
Introducere n MATLAB
expresie nu se afieaz valoarea lui a1 dei este nc n workspace, iar pe linia a doua a1 este considerat un comentariu. >> a1=3.5445/64; >> % a1=3.5445/64 >> Utiliznd comanda fprintf putei s manipulai direct formatul ieirii. Aceast comand afieaz rezultatul n formatul dorit pe ecran sau n fiierul specificat. %8.4f, indic faptul c la ieire avei un numr float format din 8 caractere din care 4 sunt zecimale. Dac lungimea numrului este mai mic decat 8, (7 de exemplu) al 8-lea element este spaiul (blank). Expresia din interiorul semului va fi afiat. \n indic trecere pe o linie nou a ieirii urmtoare. Expresia tastat dup virgul , va fi evaluat. >> fprintf('Area of a circle is %8.4f Square meters\n', 3.1416*3^2) Area of a circle is 28.2744 Square meters >> MATLAB are o serie de variabile predefinite dup cum se arat n tabelul urmtor, Tabel1.1. ans computer eps i,j inf nan pi realmax realmin Tabel 1.1. Variabile i constante speciale Ultimul rspuns Tipul calculatorului Numr real cu virgul mobil Unitate imaginar Infinit Nu e numr 3,141459265358. Cel mai mare numr real n virgul mobil Cel mai mic numr real n virgul mobil
Introducere n MATLAB
17
MATLAB are o serie de comenzi speciale dup cum apar n Tabelul 1.2. clc clear variable diary Tabel 1.2. Comenzi speciale terge toate intrrile i ieirile din Command Window terge coninutul i variabila respectiv din workspace.Dac toate variabilele sunt terese atuci ntregul workspace este gol. Determin o copie despre toate comenzile de intrare i majoritatea comenzilor de ieire adugat n fiierul respectiv. Dac nu exist nici un fiier menionat se utilizeaz fiierul diary. Ieire din MATLAB Help pentru comanda respectiv Analog clc. Citete coninutul fiierului MAT salvat. Salveaz workspace-ul ntr-un fiier binar denumit fiier MAT cu extensia .mat Afieaz variabilele din workspace. Afieaz numrul elementelor unei variabile. Dac nu se indic variabila, atunci se afieaz valoarea fiecrui element.
Caracter de tip String Un ir de caractere cuprins ntre dou semne apostrof se numete caracter de tip string sau vaiabil text. Aceste iruri se pot combina [ir unu,ir doi]. Vezi exemplul urmtor: >> c='Transilvania' c = Transilvania >> cs=[c,',Cluj'] cs =
18
Introducere n MATLAB
Transilvania, Cluj Definirea matricilor Cea mai simlp metod de a introduce o matrice este scrierea explicit, adic niruirea elementelor cuprinse n paranteze ptratice [ ]. Coloanele matricei se despart prin virgul sau spaiu, iar rndurile prin ; sau carriage return. O matrice de o singur linie se introduce n MATLAB n dou feluri: utiliznd spaiu sau virgul. >> A=[4 32 31 5] A = 4 32 31 5 >> A=[4,32,31,5] A = 4 32 31 5
O matrice de o singur coloan se introduce n MATLAB n dou feluri: utiliznd ; sau carriage returns (n acest exemplu am folosit ;). >> B=[3;4;5] B = 3 4 5 Combinnd instruciunile de creare a matricei coloan cu matricea linie, se obine o matrice m x n.. 1 2 Matrice C = se introduce n MATLAB utiliznd spaiu sau virgul cu 3 4 punct i virgul sau carriage return, dup cum urmeaz:
Introducere n MATLAB
19
O linie sau o coloan ntreag se adreseaz prin utilizarea punctului i virgul ;. De exemplu, pentru a obine prima linie din matricea C, se procedeaz dup cum urmeaz. Numrul 1 arat c este vorba de prima linie sau coloan n funcie de poziia lui. Dac numrul se afl pe prima poziie atunci, la ieire avem ntreaga linie, iar dac se afl pe poziia a doua atunci, la ieire avem ntreaga coloan. n exemplul nostru, numrul 1 se afl pe prima poziie; deci la ieire avem prima linie. ncercai s interschimbai coloana i numrul introdus pentru a vedea modificarea la ieire. >> frow = C(1,:) frow = 1 >> Un element din matrice se poate accesa printr-o expresie (i,j), unde i este linia i j este coloana elementului corespunztor. De exemplu, pentru a obine elementul de pe prima linie i coloana a doua din matricea C, care este 2, se procedeaz dup cum urmeaz. >> f12=C(1,2) f12 = 2 >> 2
20
Introducere n MATLAB
Operaii de baz cu matrici i vectori Matricile de aceeai dimensiune se pot aduna i scdea. Dac ele sunt de dimensiuni corespunztoare, atunci se poate executa operaia de nmulire sau de mprire. Pentru nmulirea i mprirea element cu element, MATLAB utilizeaz operatorul dot, sau punctul zecimal. n Tabelul 1.3 sunt enumerate operaiile ce se pot executa element cu element. Se dau dou matrici C D. Pentru operaia de i nmulire se tasteaz >>C*D, iar pentru nmulire element cu element se ntroduce >>C.*D, >>C\D este echivalent cu C-1D, i >>C/D este echivalent cu CD . Inversa matricei se noteaz cu C i se obine utiliznd comanda >>inv(C). n continuare se prezint cteva exemple. >> C = [1 2;3 4] C = 1 3 2 4
-1 -1
>> D = [5 6;7 8]
Introducere n MATLAB
21
D = 5 7 >> C*D ans = 19 43 >> C\D ans = -3.0000 -4.0000 4.0000 5.0000 >> inv(C)*D ans = -3.0000 -4.0000 4.0000 5.0000 >> C.*D ans = 5 21 + .* ./ .\ .^ .' 12 32 Tabel 1.3. Operaii matematice Adunare Scdere nmulire element-cu-element nprire element-cu-element mprire la stnga element-cu-element division Ridicare la putere element-cu-element Transpusa unei matrici 22 50 6 8
22
Introducere n MATLAB
Un vector n este un vector linie sau o matrice coloan a n numere. n MATLAB, elementele incluse n paranteze ptrate i separate de punct i virgul genereaz un vector coloan. Transpusa unui vector linie este un vector coloan i i n v e r s . A c e s t a s e o b i ne n MATLAB utiliznd simbolul (apostrof). Ur m t or ul exemplu a r a t transpusa matricei D. >> E = D' E = 5 6 >> Un vector se poate genera specificnd primul i ultimul element, respectiv incrementul alocat pentru fiecare element. De exemplu, dac se propune crearea unui vector linie avnd primul element 1 i ultimul element 9 cu un increment de 1, atunci sintaxa utilizat arat dup cum urmeaz. Incrementul implicit este 1 deci, dac nu se menioneaz ca i parametru explicit, valoarea sa va fi 1,. n urmtoarea comand Matlab >>F = (1:9), se obine acelai rezultat ca i n cazul: >> F = (1:1:9) F = 1 2 3 4 5 6 7 8 9 7 8
>> F = (1:9) F = 1 2 3 4 5 6 7 8 9
Introducere n MATLAB
23
n Matlab exost definite matrici speciale care sunt prezentate n tabelul urmtor, Tabel 1.4. Table 1.4 Matrici elementare eye Matricea unitate meshgrid X i Y matrici pentru desenare 3-D ones Matricea cu toate elementele 1 zeros Matricea cu toate elementele 0 rand Genereaz numere aleatoare cu distribuie uniform randn Genereaz numere aleatoare cu distribuie normal Avnd o matrice dat se poate ca din aceasta s se extrag informaii utile n calcule. ncercai urmtoarele comenzi i determinai modul lor de aciune. Vezi tabelul 1.5 pentru detali. Table 1.5 Operaii elementare n matrici disp Afieaz matricea isempty Adevarat pentru o matrice vid isequal isnumeric issparse length ndims numel size Adevarat pentru o matrice identic Adevrat pentru o matrice numeric Adevrat pentru o matrice rar Lungimea unui vector Numrul dimensiunii Numrul elementelor Dimensiunea matricei
n Tabelul 1.6 i respective 1.7 sunt cuprinse cteva funcii utile n crearea i manipularea matricelor. Studiai i vedei cum funcioneaz. Table 1.6 Funcii pentru manipulare matrice diag Creaz sau extrage diagonalele fliplr Rotete matricea n jurul axei verticale (inverseaza ordinea coloanelor) flipud Rotete matricea n jurul axei orizontale (inverseaza ordinea liniilor) reshape Schimb dimensiunea matricei rot90 Rotete matricea cu 90 degrade Index n matrice, rearanjare matrice : (colon)
24
Introducere n MATLAB
Table 1.7 Operaii n matrici Determinantul matricei Suma elementelor de pe diagonal Inversa matricei Valoarea proprie a unei matrici vectorului Polinomul caracteristic Exponent Logaritm Rdcin ptrat
Introducere n MATLAB
25
log10 real rem round sign sinh sqrt tan tanh Operaii Logice
Logaritm zecimal Partea real Restul mpririi Rotunjire ctre cel mai apropiat ntreg Funcia semn Sinus hiperbolic Rdcin ptrat Tangent Tangent hiperbolic
Operatorii relaionali compar doi scalari i produc 1 dac operaia este adevrat i respectiv 0 dac este fals. De exemplu, dac se tasteaz >> t = 17>55, MATLAB rspunde cu t = 0. n cazul matricilor, operatorii relaionali compar elementele corespunztori. De exemplu, >> L = D <= X va determina compararea fiecrui element din D c u elementele corespunztoare din X. Dac elementul din D e t mai mic sau egal dect se elementul corespunztor din X, atunci elementul corespunztor din L va fii 1. Altfel, elementul corespunztor din L va fi zero. Operatorul logic & pentru AND, | pentru OR, i ~ pentru NOT returneaz 1 pentru adevrat i 0 pentru fals. Urmrii exeplul de mai jos. >> >> >> >> H = [1 I = [0 J = [2 lgcal1 3 2 2 = 5 3 6 H 7 4 3 < 9]; 5]; 4]; I
lgcal1 = 0 0 0 0 0
26
Introducere n MATLAB
lgcal2 = 1 1 1 1 1
Crearea fiierelor MATLAB (m-file) Fiierele care conin instruciuni MATLAB se numesc m-files. Un fiier de acest tip se realizeaz dac se deschide un editor de text i aici se vor introduce funcii i comenzi recunoscute de MATLAB. Exist dou tipuri de fiiere m: Funcii care nu accept paramentrii de intrare sau care returneaz parametrii de ieire. Acestea opereaz asupra variabilelor din workspace. Funcii care accept parametrii de intrare i returneaz valori de ieire. Aceste variabile sunt locale funciilor.
Dac suntei un programator nceptor n MATLAB, atunci creai fiierul m-file direct n directorul curent. Pe msur ce realizai mai multe fiiere proprii o s avei nevoia s le organizai n alte directoare i n biblioteci personalizate ce vor fii adugate n calea de cutare a MATLABlui. Dac MATLAB-ul ntlnete dou fiiere cu acela denumire, atunci execut primul fiier pe care l ntlnete n cale de cutare. Fiecare nume de fiier se termin cu .m Comenzile din fiier se execut prin ntroducerea n fereastra de comenzi (Command Window) numele fiierului fr extensa .m. Un m-file se creaz executnd click pe >FILE>NEW>M-FILE dup care apare o fereastr unde se poate ntroduce comenzile dorite. Vezi figura 1. 3.
Introducere n MATLAB
27
Figura 1.3. Fereastra editorului din Matlab (m-file) Definirea funciilor Pentru a crea o funcie se introduce prima dat cuvntul cheie function dup care urmeaz denumirea funciei i parametrii de ieire respectiv de intrare, dup cum urmeaz: function [output arguments] = function_name(input arguments) Instruciuni de control a programului MATLAB are posibilitatea de control a fluxului de operaii, exact ca n orice alt limbaj de programare. Structurile repetitive i decizionare puse la dispoziia utilizatorului sunt prezentate n Tabelul 1.9. Comenzile for, while, i if sunt similare cu cele utilizate n alte limbaje. Fiecare ciclu for, while, i if se termin cu o comand end. Comanda break se utilizeaz pentru a iei definitiv din ciclu. Comanda if se
28
Introducere n MATLAB
poate utiliza npreun cu funciile nargin, nargout, i error pentru verificarea mai bun asupra funciei. n interiorul unei funcii, nargin i nargout este egal cu numrul parametrilor de intrare i ieire, care s-a utilizat n funcia call. Funcia error(message) returneaz control asupra tastaturii i afieaz mesajul. Pentru mai multe informaii referitoare la aceste comenzi tastai >> help <command>. Tabel 1.9. Comenzi pentru controlul programului break Termin execuia ciclului else Utilizat cu if elseif Utilizat cu if and nchide ciclul for, while, i if error Afieaz mesajul i abandoneaz funcia for Ciclu repetitiv de un numr dat de ori if Instruciune condiionat return Return n funcie invocat while Instruciune repetitiv de un numr nedefinit de ori
Introducere n MATLAB
29
>> y=2*sin(x); >> plot(x,y); title('Sinusoidal waveform'); Semnalul de ieire arat ca n figura 1.4.
30
Introducere n MATLAB
>> (25+65j)+(30+80j) %Adunare ans = 5.5000e+001 +1.4500e+002i >> (25+65j)/(30+80j) %mprire ans = 0.8151 - 0.0068i >> Dintr-un numr complex se poate extrage faza, modulul, partea real i p a r t e a imaginar. D e e x e mp l u , dac se dorete s se obin faza i modului numrului complex (25 j65), prima dat se convertete unghiul n grade prin nmulire cu / 180 (rspunsul n unghi este ntotdeauna n radiani). >> abs(25-65i) ans = 69.6419 >> angle(25-65i)*(180/pi) ans = -68.9625 >> real(25-65i) ans 25 >> imag(25-65i)
Introducere n MATLAB
31
ans -65 >> Polinoame Un polinom se reprezint ca un vector linie care conine coeficienii polinomului ca elemente ale vectorului. De exemplu, polinomul s 3 + 32s 2 + 32 se reprezint ca
>>x = [1 32 0 32] x = 1 >> Primul element din vector este coeficientul termenului de grad cel mai mare, iar ultimul coeficientul termenului de grad cel mai mic. 0 este inclus deorece nu exit termen de grad unu n polinoml. Polinomul se poate descompune sub form factorizat a crui rdcini se obine cu funcia poly(), dup cum urmeaz. P = s ( s + 2 ) ( s 4 ) ( s + 5 ) , care poate fii >> x = poly([0 2 4 5]) x = 1 3 -18 -40 0 Pentru polinomul caracteristic dat, rdcinile se obin cu comanda roots(). 32 0 32
32
Introducere n MATLAB
>> roots([1 3 -18 -40 0]) ans = 0 4.0000 -5.0000 -2.0000 Dou polinoame se nmulesc i se mpart folosind comanda conv()
i respectiv deconv().
>> n = deconv(x,y) n = 0.5000 >> n tabelul 1.10 sunt enumerate alte funcii utilizate n control, analiz i proiectare. Table 1.10. Alte funcii de baz pentru controlul aplicaiilor. ilaplace Genereaz transformata Laplace invers pentru un polinom din domeniul complex s laplace Genereaz transformata Laplace polinom din domeniul timp polyval residue Evaluare polinomial. Descompunere n fracii simple -0.2500
Introducere n MATLAB
33
1.4 Verificare
1. Generai polinoamele urmtoare n Matlab. N ( s) = 2s 2 + 6s + 9 D( s) = s 3 + 2s 2 9s + 1 2. Fie N (s) o expresie raional. Descompunei n fracii simple folosind D( s) comenzile din Matlab.
3. Fie polinomul P ( s) = 2s 4 3s + 9 . Determinai rdcinile acestuia utiliznd comenzi Matlab. 4. Fiind dat intervalul de timp 0 t 10s , desenai rspunsul funciei f (t ) = e t 4 cos(t ) cu o rezoluie de 0.1s. 5. Determinai produsul celor dou polinoame specificate la punctul 1. 2s + 3 6. Evaluai polinomul F ( s ) = 2 utiliznd funcia polyval. s 3s + 5 s = 2
34
Introducere n MATLAB
36
G(s) =
N ( s) D( s )
(2.1)
N ( s ) = bm s m + bm 1 s m 1 + ... + b1 s + b0
iar D(s) este polinomul de la numitorul funciei de transfer de form:
(2.2)
D( s) = a n s n + a n 1 s n 1 + ... + a1 s + a0 .
(2.3)
n MATLAB, funcia sys=tf(num,den) este utilizat pentru a genera o reprezentare prin funcie de transfer pentru un sistem. Variabilele num i den sunt folosite pentru desemnarrea numrtorului, respectiv numitorului funciei de transfer. S considerm funcia de transfer G(s), unde:
G ( s) =
s+3 . s 2s + 1
3
(2.4)
37
Un alt mod de reprezentare utilizat n analiza i modelarea unui sistem LTI este dat de ecuaiile de stare, cu urmtoarea form general:
d x = Ax + Bu dt y = Cx + Du
(2.5)
unde A, B, C, i D sunt matrici, reprezentnd intrarea, ieirea i tranziiile dintre intrare i ieirea sistemului. S considerm sistemul:
(2.6)
Pentru a genera o reprezentare prin ecuaii de stare se utilizeaz funcia sys=ss(A,B,C,D), dup cum urmeaz:
>> A = [0 1; 0 1.71] A = 0 0 1.0000 -1.7100
>> B = [0;2.083] B =
38
0 2.0830 >> C = [1.05 5] C = 1.0500 >> D = 0 >> sys=ss(A,B,C,D) a = x1 x2 b = x1 x2 c = y1 d = y1 x1 1.05 u1 0 x2 -5 x1 0 0 u1 0 2.083 x2 1 -1.71 D = 0 -5.0000
39
Uneori este necesar crearea unui model pentru un sistem liniar dat prin specificarea zerourilor, polurilor i a factorului de amplificare. Funcia sys=zpk(z,p,k), este utilizat pentru a genera un model de acest tip. S considerm un sistem liniar cu urmtoarele caracteristici: Poli = 0, -2, -3, -4 Zerouri = -1, -2 Factorul de amplificare = 2 Reprezentarea matematic este de forma:
G (s) = k
40
Un sistem liniar exprimat sub forma funciei de transfer se poate transforma ntr-o reprezentare prin ecuaii de stare utiliznd funcia tf2ss n urmtoarea linie de comand:
[A,B,C,D] = tf2ss(num,den),
unde num i den este numrtorul i respectiv numitorul de tip polinomial a funciei de transfer.
Conversia Ecuaii de stare - Funcie de transfer
Un sistem liniar scris sub forma ecuaiei de stare se poate converti n reprezentare funcie de transfer dac se apeleaz funcia ss2tf din linia de comand:
[num,den]=ss2tf(A,B,C,D). Conversia Funie de transfer - Zerou-Pol-Factor de amplificare
Un sistem liniar modelat prin funcie de transfer se poate transforma n reprezentare prin zerou-pol-factor de amplificare utiliznd funcia tf2zp apelat n linia de comand
41
Transformarea unui model din reprezentarea zerou-pol-factor de amplificare n reprezentare funcie de transfer se realizeaz prin apelul funciei zp2tf n comanda:
[num,den]=zp2tf(z,p,k). Conversia Zerou-Pol-Factor de amplificare - Ecuaii de stare
Reprezentarea zerou-pol-factor de amplificare se poate transforma n reprezentarea prin ecuaii de stare utiliznd funcia zp2ss
[A,B,C,D]=zp2ss(z,p,k). Conversia Ecuaii de stare - Zerou-Pol-Factor de amplificare
Conversia modelului din reprezentarea prin ecuaii de stare n reprezentare prin zerou-pol-factor de amplificare se poate face prin apelul funciei ss2zp
[z,p,k]=ss2zp(A,B,C,D).
Polinoamele numrtorului i numitorul unui sistem exprimat prin variabila sys reprezint informaii n cazul funciei de transfer. Aceste polinoame se pot obine prin utilizarea funciei tfdata din Matlab.
[num,den]=tfdata(sys).
42
Matricea de sistem A, matricea intrrilor B, matricea ieirilor C i matricea de tranziie D a unui sistem dat sys reprezint informaii care se pot extrage din reprezentarea prin ecuaii de stare. Acestea se obin prin apelul funciei ssdata din Matlab.
[A,B,C,D]=ssdata(sys). Extragerea datelor din reprezentarea Zerou-Pol-Factor
Zeroul, pol i factorul de amplificare a unui sistem considerat exprimat prin variabila sys reprezint informaii care pot fi extrase din acest model. Aceste informatii se obin prin apelul funciei zpk din Matlab.
[z,p,k]=zpkdata(sys).
2.3. Verificare
1. Obinei reprezentarea sub forma funciei de transfer, a ecuaiilor de stare i a modelului zerou-pol-factor de amplificare pentru sistemele a caror comportamente sunt descrise prin ecuaiile difereniale urmtoare: 5 d2 d d y (t ) + 2 y (t ) + 3 y (t ) = x(t ) + x(t ) ; 2 dt dt dt 2 y '' ' + y '' = x .
G ( s) =
( s + 1)( s + 2) 25 10 ; G ( s) = + . 3 2 s + 3 s +1 s 2s + 3s 2
3. Obinei soluiile n domeniul timp pentru sistemele SISO prezentate mai sus.
44
Figura 3.1 reprezint conectarea n cascad a sistemelor, iar ecuaia (3.1) reprezint funcia de transfer echivalent ntregului sistem.
G ( s ) = G1 ( s ) G1 ( s ) L G N ( s ) G ( s) = Gk ( s)
k =1 N
(3.1)
Fiecare element al sistem liniar se poate modela prin funcie de transfer, prin ecuaii de stare, sau prin zerou-pol-factor de amplificare. n MATLAB, fiecare element se va reprezinta prin sys1, sys2, , sysn, funcia de transfer echivalent sys se va obine prin nmulire sau prin folosirea funciei series din MATLAB.
>> sys = sys1 * sys2 * * sysn
sau
>> sys = series(sys1,sys2)
Funcia series poate fi aplicat odat doar pentru dou elemente. Ca exemplu, s considerm dou funcii de transfer date de relaiile (3.2) i respectiv (3.3).
G1 ( s ) = G2 ( s ) =
2s + 1 s + 10s 2 2s + 1
3
(3.2) (3.3)
s+2 ( s + 3)( s 3)
45
>> sys1 = tf([2 1],[1 10 2 1]); >> sys2 = zpk([2],[-3 3],[1]); >> sys = series(sys1,sys2) Zero/pole/gain: (s-2) ----------(s+3)(s-3) >>
46
G ( s ) = G1 ( s) + G1 ( s) + L + G N ( s ) G ( s ) = Gk ( s)
k =1 N
(3.4)
n MATLAB, fiecare element se reprezint prin sys1, sys2, , sysn, funcia de transfer echivalent sys se obine prin adunare sau prin folosirea funciei parallel din MATLAB.
>> sys = sys1 + sys2 + + sysn
sau
>> sys = parallel(sys1,sys2)
Funcia parallel poate fi aplicat deodat doar la dou elemente. Ca exemplu, s considerm nc odat funciile de transfer date de relaiile (3.2) i (3.3). Pentru a determina funcia de transfer, se procedeaz astfel:
>> sys1 = tf([2 1],[1 10 2 1]); >> sys2 = zpk([2],[-3 3],[1]); >> sys = parallel(sys1,sys2) Zero/pole/gain: (s+11.71)(s-2.323)(s^2+0.6175s+0.4044) ---------------------------------------(s+10.21)(s+3)(s-3)(s^2-0.2056s+0.09799) >>
47
blocuri ce compun sistemul, iar relaia (3.5) reprezint funcia de transfer echivalent a ntregului sistem.
(3.5)
Pentru a reduce acest sistem la o singur funcie de transfer, se utilizeaz funcia feedback din MATLAB.
>> sys = feedback(sys1,sys2,+1)
n cazul unei reacii negative. S considerm blocul a crui funcie de transfer este dat de relaia (3.2) ca fiind elementul de pe calea direct i respectiv blocul a crui funcie de transfer este dat de relaia (3.3) ca fiind elementul de pe calea invers (reacie). Aplicnd o reacie negativ sistemului format din cele dou blocuri vom avem:
>> sys1 = tf([2 1],[1 10 2 1]); >> sys2 = zpk([2],[-3 3],[1]); >> sys = feedback(sys1,sys2,-1) Zero/pole/gain:
48
2(s-3)(s+3)(s+0.5) --------------------------------------------(s+10.23)(s+2.94)(s-2.99)(s^2-0.1795s+0.1223)
reconecteaz blocurile corespunztor matricei q care specific numrul de interconectri. Primul element de pe fiecare linie din matricea q reprezint numrul blocului. Restul elementelor indic numrul intrrilor care sunt nsumate la blocul respectiv. Dac intrarea n sumator este negativ, numrul blocului va fi introdus cu semn negativ. iu i iy sunt vectori de tip linie, indicnd blocurile de intrare i de ieire. n final, pentru a obine funcia de transfer echivalent a ntregului sistem, se utilizeaz funcia ss2tf din MATLAB care face reconversia din forma ecuaiilor de stare n reprezentarea funcie de transfer. Pentru a exemplifica procedura descris mai sus vom considera sistemul a crui diagram bloc este prezentat n figura 3.4.
49
Astfel se pot pune n eviden urmtori pai necesari pentru a determina funcia de transfer echivalent.
Pasul 1 Numerotai fiecare bloc din schem prezentat n figura 3.4 ncepnd cu 1. Vezi figura i modul n care s-a fcut numerotarea. Pasul 2 ntroducei pentru fiecare bloc numrtorul i numitorul sub form polinomial. Numrtorul i numitorul blocului i se definete ca ni respectiv di. Pentru diagrama bloc din figura precedent numrtorul i numitorul arat dup cum urmeaz: >> >> >> >> >> >> >> >> n1=1; d1=1; n2=0.5; d2=1; n3=4; d3=[1 4]; n4=1; d4=[1 2]; n5=1; d5=[1 3]; n6=2; d6=1; n7=5; d7=1; n8=1; d8=1;
Not: Gradul numrtorului trebuie s fie mai mic dect a numitorului, altfel n fiierul script blkbuild va exista o eroare.
Pasul 3 Specificai numrul total de blocuri. Folosii pentru aceasta variabila nblocks. ntroducei fiierul script blkbuild pentru a construii modelul descris prin ecuaii de stare. >> nblocks = 8; >> blkbuild; Pasul 4 Scriei o matrice care s indic configuraia diagramei bloc. Pentru Figura 3.4, matricea arat astfel:
50
q 2 3 4 5 6 7 8
= 1 2 3 4 3 4 5
[1 0 0 0 0 6 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
q = 1 0 2 1 3 2 4 3 5 4 6 3 7 4 8 5 >>
0 0 0 -6 -7 -8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Pasul 5 Specificai intrrile i ieirile sistemului. Pentru figura 3.4, intrarea este conectat la primul bloc, iar ieirea este conectat de blocul numrul 5. >> iu = [1]; >> iy = [5]; Pasul 6 ntroducei declaraia urmtoare: >> [A,B,C,D]=connect(a,b,c,d,q,iu,iy); Pasul 7 Creaz ecuaiile de stare. >> sys = ss(A,B,C,D); Pasul 8 Folosii funcia tf din MATLAB pentru a realiza conversia din reprezentarea prin ecuaii de stare n reprezentare prin funcie de transfer.
51
52
Figura 3.5. Fereastra Simulink Library Browser S ncercm acum s construim un sistem care s arate ca cel din figura 3.6. Pentru aceasta, din fereastra SIMULINK se face click pe FILE>NEW>MODEL. Prin acesta aciune se creaz noua fereastr vid denumit untitled Care va conine sistemul nostru. Acum se face dublu-click pe simbului grafic Continuous i se trage cu mouse-ul blocul Transfer Fcn n fereastra untitled. Se selecteaz simbolul Math i se pune blocul Gain n fereastra untitled. Repetm acest
53
procedeu pentru a plasa blocul Integrator din Continuous. Din biblioteca Sources, se scoate blocul Step, iar din biblioteca Sink, se ia blocul Scope i se plaseaz n fereastra untitled. Vom continua s plasam i restul blocurilor care apar n figura 3.6. Pentru a modifica proprietile blocurilor se va face dublu click pe fiecare element.
54
3.4 Verificare
1. Determinai funcia de transfer echivalent pentru urmtoarele sisteme conectate n serie folosind Matlab G1 ( s ) = 2 ; s+3 G2 ( s) = 2s + 5 ; s 5s + 7
2
G3 ( s ) =
s2 s 2)( s + 5 j )( s 5 j )
2. Pentru sistemele de la punctul 1 s determinai funcia de transfer echivalent n cazul conectrii lor n paralel. 3. Considernd figura 3.7 de mai jos i utiliznd funciile de transfer de la punctul 1 i 2, determinai funcia de transfer echivalent a ntregului sistem. s4 2s + 1 s 1 ; G5 ( s ) = 2 ; G6 ( s) = 1 G4 ( s) = 2 2s + 3s 2 + s 3 s +3 s 2s + 2 4. Determinai rspunsul la semnalul treapt pentru funcia de transfer echivalent cu ajutorul funciei step(sys). 5. Reprezentai pe osciloscop rspunsul la semnal treapt pentru diagrama bloc din figura 3.7 care se va implementa n SIMULINK. Salvai fiierul.
Introducere n Simulink
Lucrarea nr. 4
4.1 Obiectivele lucrrii
- prezentare general - crearea fiierelor de tip model (mdl) - elemente de baz (blocuri i linii) - exemplu de simulare - modelarea sistemelor
4.2 Introducere
Simulink este o component grafic interactiv a mediului MATLAB, fiind utilizat n modelarea, simularea i analiza sistemelor. n Simulink, un sistem se reprezint prin diagrame bloc. Exist mai multe biblioteci de blocuri utile care corespund funciilor de transfer, sumatorelor, dispozitivelor virtuale de intrare i ieire sau de alta natur. Simulink este integrat n MATLAB de aceea, transferul datelor ntre aceste componente se realizeaz foarte uor. n aceast prezentare vom utiliza mediul grafic Simulink n modelarea sistemelor, implementarea i simularea sistemelor de control.
56
Introducere n Simulink
sau prin click pe butonul New Simulink Model de pe bara de simbuluri grafice a MATLAB-lui dup cum se observ n figura 4.1.
Figura 4.1. Bara cu simboluri grafice din Matlab Command Window Dup lansare, Simulink afieaz dou ferestre. Prima reprezint fereastra principal Simulink Library Browser, figura 4.2.
Introducere n Simulink
57
Figura 4.2. Biblioteca de simboluri grafice din Simulink Library Browser Cea de a doua fereastr care este destinat aplicaiei apare cu denumire untitled. n acesata se va desena noul modelul.
58
Introducere n Simulink
pe care-l vom crea i dup care vom salva acest model ntr-un fiier al directorului de lucru Work din Matlab, sub denumirea simple.mdl. Pentru a rencrca acest model n fereastra activ a aplicaiei vom introduce comanda
>>simple
n Matlab Command Window. Sau n fereastra Simulink Library Browser vom deschide acest fiier tastnd comanda Open din meniul File (mai scurt Ctrl+O). Pe ecran va apare fereastra din figura 4.3 ce reprezint modelul creat.
Figura 4.3. Dac se dorete crearea unui nou model, atunci se va selecta New din meniul File (sau combinaia Ctrl+N).
Introducere n Simulink
59
Blocuri
Exist mai multe clase de blocuri. Dintre acestea menionam: Sources: Utilizate n generarea diferitelor semnale Sinks: Utilizate n afiarea semnalelor Discrete: Conine elemente liniare n domeniu discret (funcie de transfer, model prin ecuaii de stare, etc.) Linear: Conine elemente liniare n domeniu continu (sumator, amplificator, funcie de transfer, ecuaii de stare, etc.) Nonlinear: Conine elemente neliniare (saturaie, ntrziere, etc.) Connections: Multiplexor, Demultiplexor, etc. Un bloc poate s conin una sau mai multe intrri i de asemenea una sau mai multe ieiri. Urmtorul bloc definete o funcie de transfer cu o intrare i o ieire.
Linii
Liniile transmit semnale n direcia indicat de sgeat. Liniile trebuie s transmit ntotdeauna semnale de la ieirea unui bloc la intrarea altui bloc. O excepie este cazul n care un semnal se bifurc n dou semnale. n acest caz punctul de ramificare se numete nod i semnalul de intrare este acelai pentru cele dou blocuri de ieire, vezi figura 4.4 care se obine din exemplul considerat iniial.
60
Introducere n Simulink
Liniile nu pot s alimenteze cu semnal o alt linie. Acestea se pot combina cu ajutorul anumitor blocuri ce realizeaz operaii aritmetice (de exemplu bloc sumator sau multiplicare). Un semnal poate s fie de tip scalar, dar poate fi i de tip vectorial. n cazul unui sistem cu o singur intrare i cu o singur ieire (SISO) se utilizeaz n mod general semnalul de tip scalar. La un sistem cu intrri i ieiri multiple (MIMO) se va folosi un semnal de tip vectorial, compus din dou sau mai multe semnale scalare. Liniile utilizate pentru a transmite semnalele scalare sau vectoriale sunt identice. Tipul semnalului transmis de linie este determinat la blocul aflat la fiecare sfrit de linie.
Analiza exemplului anterior figura 4.3.
Acest model simplu este alctuit din trei blocuri: Step, Transfer Fcn, i Scope. Step este un bloc de tip surs prin care se genereaz un semnal de tip treapt. Acest semnal este transferat n direcia indicat de sgeat liniei la blocul liniar Transfer Function. Funcia de transfer modific semnalul de intrare i scoate la ieire noul semnal. Blocul Scope afieaz semnalul asemntor unui osciloscop. n Simulink exist i alte tipuri de blocuri, dar unele dintre acestea vor fi discutate mai trziu. Momentan vom examina doar aceste trei blocuri.
Modificare bloc
Un bloc se poate modifica fcnd dublu-click pe el. De exemplu, prin dublu-click pe blocul "Transfer Fcn" din modelul examinat, se va afia urmtoarea fereastr de dialog, figura 4.5.
Introducere n Simulink
61
Figura 4.5. Fereastra de dialog Aceast fereastr conine cmpuri pentru numrtorul i numitorul funciei de transfer. Tastnd coeficienii numrtorului i numitorului sub forma a doi vectori, practic se introduce funcia de transfer. De exemplu, pentru a modifica numitorul la expresia s^2+2s+4, se va tasta n cmpul destinat numitorului vectorul de elemente: [1 2 1] dup care se apas pe butonul close. Fereastra cu model modificat este prezentat n figura ce urmeaz, figura 4.6.
Figura 4.6. Modelul modificat pentru funcia de transfer Rezultatul se observ n noua valoare a numitorului funciei de transfer.
62
Introducere n Simulink
Dac se face dublu-click pe blocul "step", se afieaz urmtoarea fereastr de dialog, figura 4.7.
Figura 4.7. Fereastra de dialog Parametrul implicit din fereastra de dialog genereaz o funcie treapt unitar la momentul de timp t=1 sec. Fiecare dintre aceste cmpuri se pot modifica cu valorile dorite. Cel mai complicat bloc din cele trei enumerate este blocul "Scope". Dac facem dublu click pe simbolul grafic se va afia urmtoarea fereastr pentru osciloscop, figura 4.8.
Introducere n Simulink
63
Atunci cnd se execut simularea semnalul care intr n osciloscop este afiat pe ecran.
Figura 4.9. Diagrama bloc a modelului nainte de simularea sistemului propus, se va deschide fereastra osciloscopului prin dublu click pe blocul osciloscopului. Dup care pentru a porni simularea se va selecta Start din meniul Simulation (vezi figura 4.10 de mai jos) sau cu combinaia de taste Ctrl-T din fereastra modelului.
Figura 4.10. Pornirea simulrii Simularea se execut foarte rapid, iar fereastra osciloscopului cu rezultatul obinut va arat ca cea din figura 4.11.
64
Introducere n Simulink
Figura 4.11. Rezultatul simulrii Not: semnalul de ieire (desenat cu galben) este foarte mic relativ la axa osciloscopului. Pentru a se putea studia mai bine semnalul, se folosete butonul de autoscalare (binoclu), dup care semnalul va arata ca n figura 4.12.
Introducere n Simulink
65
Not: rspunsul la treapta de semnal ncepe la t = 1 . Acesta se poate modifica prin dublu-click pe blocul "step". Dac se schimb parametrii sistemului atunci se reface simularea din nou. S facem acum dublu-click pe blocul "Transfer Fcn" i s modific numitorul funciei de transfer [1 20 400] Rulm din nou simularea (apsai Ctrl-T) i s observm cum arat acum semnalul pe osciloscop. Se va activa butonul de autoscalare i ieirea trebuie s se obin identic cu cea din figura 4.13.
Figura 4.13. Rezultat simulare cu autoscalare Not: butonul de autoscalare modific doar axa vertical. Deoarece noua funcie de transfer are un rspuns foarte rapid, faza de regim tranzitoriu apare ca foarte ngust n comparaie cu timpul total de simulare. Timpul de simulare a sistemului este de zece secunde, dar n acest caz sistemul ajunge n stare stabil ntr-o perioad mai mic de o secund. Pentru a vizualiza mai bine faza de regim tranzitoriu se vor modifica parametrii de simulare. n fereastra modelului se vom select Parameters din meniul Simulation. Ca efect se va afia urmtoarea fereastr de dialog, figura 4.14.
66
Introducere n Simulink
Figura 4.14. Fereastra opiuni pentru parametri de simulare Exist o serie de opiuni pentru parametri de simulare; noi vom discuta doar despre timpul de start i timpul de stop, cu care practic fixm perioada de simulare. Modificm timpul de Start de la 0.0 la 0.8 (deoarece treapta ajunge valoarea 1 la momentul de timp t = 1 ). Vom modifica i timpul de Stop de la 10.0 la 2.0, pentru a afia un timp mai scurt. Acum se poate nchide fereastra de dialog i se revine la simulare. Dup ce s-a apsat butonul de autoscalare, osciloscopul arat noul rspuns ca cel din figura 4.15.
Introducere n Simulink
67
68
Introducere n Simulink
Prima dat se achiziioneaz din biblioteci toate blocurile necesare. Dup care se modific blocurile astfel nct s corespund cu cele date n model. Urmeaz conectarea blocurilor cu ajutorul liniilor, iar n final se simuleaz ntregul sistem.
Achiziionarea blocurilor
Urmrii urmtorii pai necesari n realizarea modelului considerat. Se va crea un model nou prin (New din meniul File sau Ctrl-N) deschiderea unei noi ferestre de aplicaie, figura 4.17.
Figura 4.17. Fereastra iniial a aplicaiei Dublu-click pe simbolul garafic Sources din fereastra principal Simulink Library Browser, figura 4.18.
Introducere n Simulink
69
Figura 4.18. Simulink library browser Se deschide biblioteca Sources ce conine blocurile generatoare de semnal. Click pentru a afla mai multe informaii despre blocuri.
70
Introducere n Simulink
Figura 4.19. Biblioteca de simboluri Sources Acum se aduce blocul Step din fereastra Sources n partea stng a ferestrei de modelare, figura 4.20.
Introducere n Simulink
71
Dublu-click pe simbolul grafic Linear din fereastra principal Simulink va deschide biblioteca blocurilor liniare.
Biblioteca blocurilor liniare
Se vor aduce blocurile Sum, Gain i de dou ori Transfer Fcn n fereastra de model i se vor aranja asemntor figurii de mai jos. Alinierea exact nu este important deoarece acesta se poate modifica ulterior. Doar ncercai s gsii poziia relativ corect. Observai c blocul Transfer Fcn adus a doua oar are un 1 dup nume. Acesta deoarece nu pot s existe dou blocuri cu aceai nume. Motiv pentru care, Simulink n mod automat ataeaz un numr dup nume pentru a realiza diferena ntre cele dou blocuri.
Figura 4.21. Fereastra aplicaiei Acum facem dublu-click pe simbolul grafic Sinks din fereastra principal Simulink pentru a deschide biblioteca Sinks.
Bibiloteca Sinks
Se ia blocul Scope i se pune n partea dreapt a ferestrei ce va conine modelul ce trebuie realizat, figura 4.22.
72
Introducere n Simulink
Se vor realiza urmtorii pai pentru a face modificarea n model. Dublu-click pe blocul Sum. Deoarece se dorete ca intrarea a doua s fie sczut, se introduce +- n cmpul destinat semnelor. Se nchide fereastra de dialog. Dublu-click pe blocul Gain. Se modific factorul de amplificare la 2.5 i se nchide fereastra de dialog. Dublu-click pe blocul din stnga Transfer Fcn. Se modific numrtorul la [1 2] i numitorul la [1 0]. Se nchide fereastra de dialog. Dublu-click pe cealalalt bloc Transfer Fcn bloc. Numrtorul rmne [1], dar se schimb numitorul la [1 2 4]. Se nchide fereastra de dialog. Modelul va trebui s arate ca n fereastra 4.23.
Introducere n Simulink
73
Se va modifica numele primului bloc Transfer Fcn prin click pe unul dintre cuvinte "Transfer Fcn". Se va afia un chenar cu cursorul de editare, figura 4.24.. Folosim tastatura (mouse-ul este de asemenea util) pentru a terge denumirea existent i introducem noul nume, "PI Controller". Click oriunde n afar pentru a termina editarea.
Figura 4.24. Fereastra aplicaiei Analog, se modific numele blocului Transfer Fcn la "Plant". Acum toate blocurile sunt introduse corespunztor, iar modelul trebuie s arate ca n figura 4.25.
Acum c toate blocurile sunt aliniate corect urmeaz conectarea lor. Se vor executa urmtorii pai.
74
Introducere n Simulink
Se aps pe mouse i se trage o linie de la ieirea blocului Step la intrarea pozitiv a blocului Sum. Lsai butonul mouse-lui numai dac ai ajuns la intrarea potrivit. Vezi urmtoarea figura 4.26.
Figura 4.26. Fereastra aplicaiei Linia rezulat este cu o sgeat nnegrit. Dac sgeata este fr haur, nseamn c linia nu s-a conectat la bloc, vezi urmtoarea figur 4.27.
Figura 4.27. Fereastra aplicaiei Se face click pe sgeat (considerat acum ca ieire) i se duce linia pna la intrarea blocului sumator. Sau altfel, dac dorii s redesenai linia pentru c s-a conectat greit, atunci aceasta se terge i se deseneaz din nou. Pentru a terge o linie (sau orice alt obiect), se face click pe ea (astfel se selecteaz) i se apas tasta Delete de pe tastatur.
Introducere n Simulink
75
Conectai acum blocul Sum cu intrarea blocului Gain. Urmeaz o linie ntre Gain i PI Controller, ntre PI Controller i Plant, respectiv ntre Plant i Scope. Trebuie s obinei urmtoarea schem, figura 4.28.
Figura 4.28. Fereastra aplicaiei Linia rmas netrasat este reacia sistemului care conecteaz ieirea din Plant la intrarea negativ a blocului Sum. Pentru conectarea liniei se ine apsat tasta Ctrl ct timp se trage de mouse din punctul de unde vrem s exit conexiunea. n acest caz, se pornete din partea dreapt a blocului Plant. Desenai pn cnd obinei colul din stnga jos a reaciei respective, vezi figura 4.29.
76
Introducere n Simulink
Acum, sgeata se trateaz ca o ieire a unui terminal. Desenm linia de aici pn la intrarea negativ a blocului Sum.
Figura 4.30. Fereastra aplicaiei Acum putem s alini blocurile pentru a obine o schem bloc cu un aspect plcut. Pentru a modifica poziia unui bloc se selecteaz i se trage cu mouse-ul. Liniile vor rmne conectate i se vor redesena automat. Analog, dac se trage de col sau de mjlocul unei linii acestea se vor deplasa. Pornii din partea stng i mutai fiecare linie pn cnd vor fi orizontale. Adaptai spaiul dintre blocuri pentru a lsa loc etichetelor. Modelul trebuie s arate ca n figura 4.31.
Figura 4.31. Fereastra aplicaiei n final, se pun etichetele pentru a identifica semnalele. Pentru a plasa o etichet oriunde pe model, se va efectua dublu click n punctul n care
Introducere n Simulink
77
dorii s existe aceast etichet. Se va ncepe cu dublu click deasupra liniei ce leag blocul Step de blocul Sum. Se afieaz un chenar gol n interiorul cruia este cursorul de editare, vezi figura 4.32 de mai jos.
Figura 4.32. Fereastra aplicaiei Se va tasta (r), etichetnd astfel semnalul de referin dup care se face click n exterior pentru a termina editarea. Etichetai n acela mod cu (e) eroarea, cu (u) semnalul de control i cu (y) ieirea. Modelul final arat ca n figura 4.33.
Figura 4.33. Fereastra aplicaiei Pentru a salva modelul, se va selecta Save As din meniul File i se va introduce numele modelului.
78
Introducere n Simulink
Simulare
Modelul fiind acum complet se poate simula. Selectai Start din meniul Simulation pentru a rula modelul. Se face dublu-click pe blocul Scope pentru a vizualiza semnalul. Apoi se apas butonul de autoscalare (binoclu) i se obine figur 4.34 de mai jos.
n unele cazuri parametrii se pot calcula n MATLAB. Astfel c nu este necesar s se introduc rezultatul direct n Simulink. S presupunem c factorul de amplificare se noteaz cu variabila K. Se va introduce n fereastra Command Window urmtoarea comand Matlab:
>>K=2.5
dup care apsai Enter. Aceast variabl se poate acum utiliza n Simulink. Dublu-click pe blocul Gain i ntroducei variabila K n cmpul destinat factorului de amplificare.
Introducere n Simulink
79
nchidei fereastra de dialog. Acum blocul Gain din Simulink arat variabila K i nu un numr.
Figura 4.35. Fereastra aplicaiei Rulai din nou sistemul i urmrii semnalul de ieire pe osciloscop. Rezultatul trebuie s fie identic cu cel obinut mai sus.
80
Introducere n Simulink
Figura 4.36. Rezultat simulare Dac se modific orice variabil utilizat n modelul Simulink, atunci simularea utilizeaz noua valoare doar n rularea urmtoare. Pentru a ncerca aceasta, modificai n MATLAB, valoarea lui K, prin ntroducerea n Command Window a urmtoarei comand: K=5 Simulai din nou sistemul, deschidei osciloscopul i apsai butonul de autoscalare. O s vedei noua ieire, dar acum cu un factor de amplificare mai mare, figura 4.37.
Introducere n Simulink
81
82
Introducere n Simulink
Aceast lucrare de laborator se bazeaz pe prima consideraie menionat, analiza rspunsului tranzitoriu pentru un sistem dat. Pentru a proiecta un sistem de control, trebuie s se treaca prin mai multe etape. n primul rnd, modul de comportament al sistemelor (electrice
84
i/sau mecanice) care se vor analiza trebuie s fie descrie printr-un set de ecuaii diferentiale care caracterizeaz funcionarea acestora (legile fizice ale domeniului legile lui Kirchoff i respectiv legile lui Newton). Astfel c, metode precum cea de rezolvare a ecuaiilor difereniale (Newton) sau cea a trasformatei Laplace se vor folosi pentru a determina rspunsul n timp a diferitelor tipuri de sisteme. Pasul urmtor n proiectarea unui sistem de control consta n analiza rspunsului n domeniul timp a sistemului n sine, lucru care reprezint esena acestei lucrari de laborator.
85
Dup cum se poate vedea din exemplul de mai sus, s-au gsit dou zerouri, ambele de coordonate (-1,0), precum i trei poli dintre care doi poli complex conjugai localizai n plan la (-1.1378, j1.5273) si (-1.1378, j1.5273), respectiv al treilea pol pe axa real la (0.2757,0). Pentru reprezentarea grafic a polilor i a zerourilor unui sistem dat, vom utiliza urmatoarele comenzi MATLAB:
>> sys = tf(num,den) Transfer function: s^2 + 2 s + 1 --------------------s^3 + 2 s^2 + 3 s 1 >> pzmap(sys)
Diagrama pol-zero este generat dup cum se poate vedea n figura 5.1.
86
Pole-Zero Map 2
1.5
zerou poli
-0.5
-1
-1.5
-2 -1.2
-1
-0.8
-0.6
-0.2
0.2
0.4
87
G(s) =
a s+a
(5.2)
Dac acestui sistem i aplicm la intrare o treapt unitar, atunci rspunsul sistemului va fi:
Y ( s) = R( s) G ( s) Y (s) = a s( s + a)
(5.3)
(5.4)
Parametrii care caracterizeaz performantele rspunsului (de exemplu constanta de timp a sistemului, timpul de cretere i timpul de stabilizare) pot fi evaluai din aceast expresie. Constanta de timp a rspunsului la semnalul treapt este timpul necesar pentru ca valoarea ieirii s scad la 37% din valoarea iniial. Alternativ, costanta de timp este timpul n care rspunsul treapt ar creste la 63% din valoarea sa final. Astfel c, aceast constant de timp este egal cu 1/a. Pentru a determina constanta de timp a unui anumit sistem de ordinul nti n MATLAB, trebuie facut reprezentarea grafic a rspunsului la treapt. Funcia step(sys) este o comanda din MATLAB care ploteaz rspunsul treapt a sistemului sys. De asemenea, functia impulse(sys) este o comand care ploteaz rspunsul sistemului la semnalul impuls aplicat sistemului sys. S considerm funcia de transfer G ( s ) = 5 . s+5
Pentru reprezentarea grafic a rspunsului la treapta unitate a lui G (s) avem: >> num = 5; >> den = [1 5]; >> sys = tf(num,den)
88
Dup cum se poate vedea n figura 5..2, rspunsul treapt a sistemului de ordinul I este dat de diferena dintre exp(at ) i semnalul unitate, adic este 1 exp(at ) .
Figura 5.2. Rspunsul treapta pentru sistemul de ordinul I Dac pe graficul obinut se pune cursorul sgeat i se face click, atunci se va obine pentru acel punct valoarea amplitudinii i timpul aferent acestei valori, figura 5.3.
89
Figura 5.3. Evaluarea constantei de timp a sistemului cu ajutorul cursorului Un alt parametru care este evaluat n sistemul de ordinul I este timpul de cretere - t r . Timpul de cretere este definit ca fiind timpul necesar formei de und s creasca de la 0.1 pna la 0.9 din valoarea sa final. Timpul de cretere este dat de relaia:
tr =
2,2 a
(5.5)
Al treilea parametru care este de asemenea evaluat n analiza unui sistem de ordinul I este timpul de stabilizare - t s . Timpul de stabilizare este este definit ca fiind timpul necesar formei de und pentru a atinge 98% din valoarea semnalului aplicat la intrare. Timpul de stabilizare este dat de relaia:
ts =
4 . a
(5.6)
90
n 2 s + 2 n s + n
2
(5.7)
unde n este frecvena natural proprie n ipoteza c toate amortizrile sunt nlaturate. Valorile acestui parametru ne dau indicaii referitoare la viteza de rspuns a sistemului. Cel de-al doile parametru, pe de alta parte, este o mrime adimensional i reprezint raportul sau factorul de amortizare. Raportul de amortizare ne ofer o informaie despre natura rspunsului tranzitoriu a sistemului (dac acest rspuns va fi unul oscilant sau amortizat). De asemenea ne poate oferi o informaie asupra numrul de supracreteri i oscilaii pe care le poate avea rspunsul unui sistem de ordinul II. Prin urmare vom distinge urmatoarele cazuri posibile n funcie de valoarea parametrului . Cazul 1. = 0 , sistem oscilator Amplasarea celor doi poli este pe axa imaginar - j , a planului s, unde de aceast dat s = j n deoarece = 0 . Cazul 2. > 1 , sistem supraamortizat Amplasarea celor doi poli n planul complex s este dat de valoarea acesora
s = n n 2 1 . Cazul 3. = 1 , sistem critic amorsat Amplasarea polilor n acest caz este dat de relaia s = n (identici) Cazul 4. 0 < < 1 , sistem subamortizat Polii sistemului sunt exprimai de relaia:
91
s = n j n 1 2 . Din punct de vedere practic rspunsul tranzitoriu al unui sistem de ordinul II prezint deseori oscilaii nainte ca s ajung la un regim stabilizat. Rspunsul subamortizat la o intrare treapt a sistemului de ordinul II, supus unor condiii iniiale, este dat de relaia: c(t ) = 1 unde 1
e nt sin( n t + )
(5.8)
= 1 2 i = tan 1
(5.9)
Criteriile de performan care sunt folosite pentru a caracteriza rspunsul tranzitoriu la o intrare treapt n acest caz, includ analiza timpul de crestere, a timpul de vrf, a supracreteri maxime, i a timpul de stabilizare. Timpul de cretere este timpul necesar rspunsului sistemului s creasca de la 10% la 90% din valoarea final, la fel ca la un sistem de ordinul I. Timpul de vrf este timpul necesar rspunsului la trepta s atinga primul i cel mai mare vrf de cretere:
tp =
n 1 2
(5.10)
Procentul de supracretere maxim este definit ca raportul dintre valoarea maxim minus valoarea final, avnd expresia:
% PO = e
1 2
x100%
(5.11)
Timpul de stabilizare - t ss , este timpul necesar ca rspunsul la trepta al sistemului de ordinul II s prezinte oscilaii mici (sub 5%) n jurul valorii finale. n mod uzual, dac se consider c variaiile oscilaiilor se ncadreaz n pragul de 2% din valoarea final, atunci timpul de atingere a regimului stabil se poate determina cu relaia:
92
t ss =
(5.12)
n aceast seciune vom analiza influiena pe care o are adugarea unui pol i/sau zerou asupra rspunsului unui sistem standard de ordinul II, atunci cnd la intrare aplicm un semnal treapt unitar. Funcia de transfer n bucl deschis i funcia de transfer n bucla nchis pentru un sistem standard de ordinul II sunt date de relaiile (5.13). Rspunsul sistemului n bucl nchis la semnalul treapt unitar, pentru un factor de atenuare = 0.5 i o frecven natural n = 4rad / sec este prezentat n figura 5.4. Polii sistemului n bucl nchis sunt s = - 2 j3.46 . G ( s) =
2 2 n Y ( s) n ; = 2 2 R( s ) s + 2 n s + n s ( s + 2 n )
(5.13)
93
Sistemul standard de ordinul II nu conine zerouri n funcia de transfer. Dac un astfel de sistem este modificat prin introducerea unui zerou, atunci supracreterea i timpul de stabilizare se vor modifica n mod semnificativ, dup cum vom arta mai jos. S presupunem c sistemul standard de ordinul II n bucl deschis este modificat prin inserarea unui zerou. Factorul de amplificare al funciei de transfer se va modifica cu termenul 1/z, astfel c constanta vitezei de eroare nu i schimb valoarea iniial atunci cnd zeroului introdus i modific valoarea. Valorile pentru factorul de atenuare - i frecvena natural - n , ramn neschimbate. G ( s) =
2 2 Y ( s) n ( s + z ) n ( s + z ) ; = 2 2 2 s ( s + 2 n ) R( s ) s + (2 n + n / z ) s + n
(5.14)
Vom considera 6 valori distincte pentru zeroul introdus n forma standard a sistemului de ordinul II. Fiecare din locaiile alese se va considera n partea stnga a planului complex s. Valorile alese pentru zeroul introdus sunt: s = -0.2, -0.5, -1, -2, -5, -10. Polii sistemului n bucl deschis sunt fixai la valorile s = 0 si s = -4. Rspunsurile corespunzatoare sistemului, pentru fiecare valoare distinct a zeroului, la semnalul treapt unitar sunt prezentate n figura 5.5. Acestea pot fi comparate cu rspunsul sistemului standard de ordinul II, figura 5.4.
94
Figura 5.5. Rspunsul sistemului de ordinul II modificat cu un zerou Valorile polilor sistemului n bucl nchis sunt prezentate n tabelul urmtor.
z = 0.2
-83.8091 -0.1909
z = 0.5
-35.5499 -0.4501
z=1
-19.1652 -0.8348
z=2
-10.4721 -1.5279
z=5
3.6000+j1.7436 -3.6000-1.7436
z = 10
-2.8000+j2.8566 -2.8000-j2.8566
Comparai valoarea real a polilor din vecinatatea axei imaginare j cu timpul corespunztor de intrare n regim stabilizat al rspunsului la semnalul treapt. De asemenea menionm c pentru primele 4 valori ale zeroului z (0.2, 0.5, 1, 2) cei doi poli corespunztori sistemului n bucl nchis sunt reali, astfel c nu exist supracretere la rspunsul treapt a sistemului. Aceste situaii sunt similare cu cazul de rspuns supraatenuat pentru sistemul standard de ordinul II. Pentru ultimele dou valori ale zeroului z (5, 10), polii sistemului sunt compleci conjugai i prin urmare exist o supracrestere a rspunsului la semnalul treapt. Pentru z = 5 valoarea efectiv a factorului de atenuare este = 0.9 , cruia i corespunde o supracrestere de 0.15%. Pentru z = 10 valoarea efectiv a factorului de
95
atenuare este = 0.7 , cruia i corespunde o supracrestere de 4.6%. Dei valorile supracreterilor sunt crescatoare n fiecare din cazurile anterioare, totui legtura dintre parametrii ce caracterizeaz rspunsul n timp la semnalul treapt i parametrii sistemului - (factorul de atenuare), respectiv n (frecvena natural), rmne i n aceasta situaie (sistem de ordinul II cu zerou suplimentar) nc valabil. Timpul de cretere se mreste dac valoarea zeroului suplimentar se deplaseaz spre stnga n planul complex s. Atunci zeroul suplimentar este n vecintatea axei imaginare j i de asemenea, sistemul n bucl nchis prezint un pol tot n vecintatea axei imaginare j . Prin urmare, timpul de atingere a regimului stabilizat este mai mare dect n cazul unui sistem standard de ordinul II.
Rspunsul sistemului de ordinul II modificat cu un pol
Sistemul standard de ordinul II prezint doi poli pentru funcia de transfer. Dac sistemul se modific prin includerea unui al treilea pol, atunci timpul de atingere a regimului stabiliza i supracreterea vor fi dependente de locatia noului pol, depinznd de poziia n planul complex s (semiplanul stng sau drept). S presupunem c sistemul de ordinul II n bucl deschis este modificat prin adaugarea unui pol, dup cum se prezint mai jos n prima relaie. Atunci noua funcie de transfer a sistemului (modificat) n bucl nchis este dat de relaia a doua. G (s) =
2 n p ; s( s + 2 n )( s + p)
2 Y (s) n ( s + z ) = 3 2 R( s ) s + (2 n + p) s 2 + 2 n ps + n p
(5.15)
Vom considera 5 valori pe care la poate lua polul introdus suplimentar. Fiecare dintre aceste valori se gsete n semiplanul stng al planului complex. Aceste valori sunt: s = -1, -2, -5, -10, -20. Pentru sistemul standard n bucl deschis vom considera c polii au valorile fixate la s = 0 si s = 4 . Rspunsurile sistemului n bucl nchis pentru diferitele valori ale
96
polului suplimentar p sunt prezentate n figura 5.6. Acestea pot fi comparate cu rspunsul aferent unui sistem de ordinul II standard. Locaiile polilor pentru sistemul n bucl nchis sunt aratate n tabelul de mai jos. S remarcm c acum avem 3 poli pentru sistemul n bucl nchis. Comparm valoarea prtii reala a polului aflat cel mai aproape de axa imaginar j cu timpul de stabilizare corespunzator rspunsului la semnalul treapt. De asemenea, comparm raportul dintre partea imaginar i partea real aferent polului (sistemului n bucl nchis) care este cel mai apropiat de axa imaginar j . Acest raport este direct dependent de factorul de atenuare
imag (clp ) efectiv eff = cos tan 1 real (clp ) . S remarcm c timpul de atingere a regimului stabilizat ct i supracresterea, vor descrete dac polul suplimentar se deplaseaz ctre stnga n planul complex s. Totui, chiar i cu o valoare mare s = 20 parametrii de rspuns supracreterea i timpul de intrare n regim stabilizat, vor avea valori mai mari decit n cazul rspunsului unui sistem standard de ordinul II.
Analiza regimului tranzitoriu p=1 -4.8549 -0.0725+j1.8139 -0.0725- j1.8139 p=2 -5.5926 -0.2037+ j2.3833 -0.2037j2.3833 p=5 -7.7513 -0.6244+j3.1514 -0.6244-j3.1514 p = 10 -11.7551 -1.1224+j3.5144 -1.1224-j3.5144
n practic, analiza comportamenrul unui sistem de ordin superior sau a unui sistem cu zerouri pe baza unor aproximari fcute asupra unui sistem de ordinul II este foarte util. Dei calculele fcute n cazul unui sistem standard de ordinul II nu vor conduce n mod exact la rezultate corespunzatoare acestor sisteme, totui aceste rezultate pot furniza o acceptabil aproximare n cele mai multe cazuri.
5.3 Verificare
Determinai parametrii de rspuns n domeniul timp pentru sistemele urmtoare: 1. H (s) =
10 4s 2 + 8s + 10 ; 2. H ( s ) = ; 2 s+3 (s + 2)(s 2s + 5)
3. H ( s ) =
2s + 5 ; s 6s + 1
2
6. H ( s ) =
s 2 + 2s + 1 . s 2 + 2s + 2
7. Determinai parametrii de rspuns n timp pentru ecuaiile difereniale date folosind descompunerea n fracii partiale.
98
25
d2 d d y (t ) 10 y (t ) + 5 y (t ) = 15 u (t ) + 2u (t ) 2 dt dt dt
8. Determinai parametrii de rspuns n timp pentru ecuaiile diferentiale date folosind orice metod. 5 d2 d d y (t ) + 5 y (t ) + y (t ) = 2 u (t ) + 3u (t ) 1 2 dt dt dt
Pentru circuitul RLC se vor considera urmtoarele seturi de valori: - R = 1K, L = 1mH, C = 1uF - R = 200, L = 1mH, C = 1uF - R = 40, L = 1mH, C = 1uF (Supra-atenuat) (Critic atenuat) (Sub-atenuat)
10. Determinai parametrii de rspuns la semnalul treapt pentru filtrul trece jos din figura urmtoare:
99
11. Ce se va ntampla cu circuitul din figura urmtoare dup ce intrerupatorul va fi nchis. Explicai.
100
102
specificaii, adic analiza regimului (stabil) permanent pentru sistemele continuue n timp.
1(t ) t t2
1 s 1 s2 1 s3
103
R(s) + -
E(s) G (s )
C(s)
Figura 6.1. Sistem cu reacie unitar negativ Examinnd diagramadin figur, se observ c eroarea - E (s ) , este dat de diferena dintre intrare de referin R(s ) i ieire C (s ) , i este de forma: E ( s) = R( s) C ( s) (6.1)
Ieirea - C (s ) , este egal cu produsul dintre intrare - R(s ) , i funcia de transfer, G (s ) , fiind de forma: C ( s) = E ( s) G ( s) (6.2)
Putem substitui relaia (6.2) n (6.1) rezultnd soluia pentru eroarea E (s ) dup cum urmeaz: E ( s) = R( s) 1 + G(s) (6.3)
Aplicnd teorema valorii finale, putem determina eroarea de regim stationar - e() , n forma: e() = lim s R( s) s 0 1 + G ( s ) (6.4)
dac se cunoate intrarea R(s ) i funcia de transfer G (s) a sistemului Dac aplicm diferite intrri de test pentru R(s ) , putem trage concluzii privitoare la relaiile care exist ntre sistemul n bucl deschis - G (s ) i natura erorilor din regimul staionar - e() .
104
Pentru o intrare de test de tip treapt, erorile din regimul staionar se pot determina cu relaia: e() = lim 1 . s 0 1 + G ( s ) (6.5)
Pentru o intrare de tip ramp, erorile din regimul staionar se pot determina cu relaia: e() = lim
s 0
1 . s G(s)
(6.6)
Iar, pentru o intrare de test parabolic, erorile la regim permanent se pot determina cu relaia:
1 . s G ( s)
2
e() = lim
s 0
(6.7)
(6.8)
Acest lucru provine din relaia (6.5). Ecuaia (6.8) se mai numete eroare static de poziie. Pentru o intrare de tip ramp sau parabol, constantele statice de erore din regimul stabil se pot exprima pe baza relaiilor (6.6) i respectiv (6.7) i sunt date de: K v = lim s G ( s )
s 0
(6.9)
105
K a = lim s 2 G ( s )
s 0
(6.10)
Aceste constante de eroare static din regimului stabil pentru intrarea ramp i respectiv parabol se mai numesc eroare static de vitez i respectiv eroare static de acceleraie. Se consider sistemul cu reacie negativ din figura 6.2. R(s) + E(s) C(s)
Figura 6.2. Sistem cu reacie negativ Utiliznd MATLAB se poate, pentru exemplul din figura anterioar, s se scrie:
>> numg = 500*poly([-2 5]); >> deng = poly([-8 10 12]); >> sysg = tf(numg,deng) Functia de transfer: 500 s^2 + 3500 s + 5000 -------------------------s^3 + 30 s^2 + 296 s + 960 >> sysg = minreal(sysg) Functia de transfer: 500 s^2 + 3500 s + 5000 -------------------------s^3 + 30 s^2 + 296 s + 960 >>
106
Pentru a determina constanta de eroare static, trebuie sa folosim funcia dcgain(sys). Ca exemplu, considerm un sistem cu reacie unitar care are intrarea de tip treapt, ca n figura 6.2, iar funcia de transfer direct este G (s) . Pentru a determina eroarea static de poziie vom scrie:
>> Kp = dcgain(sysg) Kp = 5.2083 >>
Apoi, folosind relaia (6.5) i calculnd erorile din regimul stabil pentru o intrare de tip treapt, vom scrie:
>> err = 1/(1+Kp) err >> 0.1611
Se observ c erorile statice ale regimului stabil pentru un sistem pot fi calculate folosind funcia dcgain(sys) din Matlab. Acest lucru e valabil att timp ct sistemul G (s ) este stabil, adic nu exist poli n semiplanul dreapt al planului complex s. Dac dorim s determinm erorile stationare ale regimului stabil pentru un sistem cu intrare de tip ramp, putem utiliza relaia (6.9) nmulind G (s ) cu s. In MATLAB avem:
>> numsg = >> densg = >> syssg = Functia de conv([1 0],numg); poly([-8 10 12]); tf(numsg,densg) transfer:
500 s^3 + 3500 s^2 + 5000 s ---------------------------s^3 + 30 s^2 + 296 s + 960 >> syssg = minreal(syssg)
107
Functia de transfer: 500 s^3 + 3500 s^2 + 5000 s ---------------------------s^3 + 30 s^2 + 296 s + 960 >>
Din relaia (6.6), pentru a determina eroarea static a regimului stabil, vom utiliza urmtoarea comand MATLAB:
>> err=1/Kv Warning: Divide by zero. err = Inf >>
Aceasta arat c eroarea static a regimului stabilizat, pentru un sistem cu o intrarea de tip ramp tinde la infinit.
108
G ( s) =
( s + z1 )( s + z 2 ) K s ( s + p1 )( s + p 2 ) K
n
(6.11)
n care n reprezint numrul de integrri pure. Dac n = 0 , adic nu exist integratori n funcia de transfer, atunci sistemul este de Tipul 0. Dac n = 1 , (exist un singur integrator pur), atunci sistemul este de Tipul 1. Asemantor, dac n = 2 , sistemul este de Tipul 2, i aa mai departe. Relaiile dintre: tipul semnalului aplicat la intrare, tipul sistemului (adic caracteristica funciei de transfer de pe calea direct), constanta de eroarea static i eroarea static a regimului stabil, sunt aratate in Tabelul 6.2. Tabel 6.2
Semnal de intrare Formul a de calcul a erorii Sistem de tip 0 Constant Eroare a de eroare static Sistem de tip 1 Constant Eroar a de e eroare static Sistem de tip 2 Constant Eroar a de e eroare static
Treapt,
u (t )
Ramp,
e ss 1 1+ K p 1 Kv 1 Ka
Kp = k
1 1+ K p
Kp =
Kp =
tu (t )
Parabol ,
Kv = 0 Ka = 0
Kv = k Ka = 0
1 Kv
Kv = Ka = k
t 2 u (t )
1 Ka
109
R(s)
+
E(s) C (s )
+ +
D(s) G (s )
Y(s)
B(s) Figura 6.3. Sistem de control cu perturbaie Expresia erorii din regimul stabil este dat de relaia:
E ( s) = G2 ( s ) 1 R( s) D( s) 1 + G1 ( s )G2 ( s ) 1 + G1 ( s )G2 ( s )
(6.12)
1 este o funcie de 1 + G1 ( s )G2 ( s ) transfer asociat cu eroarea E (s) n raport cu intrarea R(s) , iar termenul G2 ( s) este o funcie de transfer asociat cu eroarea E (s ) n 1 + G1 ( s )G2 ( s ) raport cu intrarea de perturbaie D(s ) . Aplicnd teorema valorii finale vom putea determina valoarea erorii staionare a regimului stabil. n aceasta relaie (6.12), termenul Astfel c avem: E R () = lim s R( s) s 0 1 + G ( s )G ( s ) 1 2
s R( s) G2 ( s) s 0 1 + G ( s )G ( s ) 1 2
(6.13)
E D () = lim
(6.14)
Relaia (6.13) este expresia erori staionare a regimului stabil datorat intrrii R(s ) , iar relaia (6.14) este expresia eroarea staionare a regimului stabil datorat perturbaiei - D(s ) . Pentru o perturbaie de tip treapt, eroare stationar a regimului stabil este dat de relaia:
110
E D ( ) =
1 1 + lim G1 ( s ) lim G2 ( s ) s 0
s 0
(6.15)
C(s)
H (s)
111
R(s) + B(s) -
E(s) G ( s) 1 + G ( s) H ( s) G ( s)
C(s)
Folosind metoda reducerii diagramelor bloc, funcia de transfer rezultat este n cazul sistemului din figura 6.5 dat de expresia: T (s) = G(s) 1 + G ( s) H ( s) G ( s) (6.16)
P F F P
(6.17)
112
(6.18)
unde, A este matricea de tranziie a sistemului, B este matricea de intrare, C este matricea de ieire i I este matricea unitar de aceeai dimensiune cu matricea A.
6.3 Verificare
1. Pentru sistemul din figura 6.1 determinai erorile de regim stationar pentru sistemului G (s ) de mai jos, atunci cnd la intrare se aplic o treapt, o ramp i respectiv o parabol. G(s) = 15( s + 2)( s + 3) ( s + 3)( s + 4)( s + 5)( s + 6)
2. Pentru sistemul din figura 6.1 determinai erorile de regim stationar ale sistemului G (s ) de mai jos, pentru o intrare de tip treapt, ramp i parabol. G ( s) = 25( s + 1)( s + 2) s ( s + 3)( s + 4)
3. Pentru sistemul din figura 6.1 determinai erorile de regim stationar ale sistemului G (s ) de mai jos pentru o intrare de tip treapt, ramp i respectiv parabol.
113
G ( s) =
4. Pentru sistemul din figura 6.3 determinai eroarea de regim stationar pentru perturbaii de tip treapt, ramp i parabol in cazul C ( s) = 25 s . i G ( s ) = s+2 ( s + 1)( s + 2)
4. Pentru sistemul din figura 6.4 valoarea erorii din regimul stationar 1 10 . Se cere s se determine valoarea lui K dac C ( s ) = este , 100 s+3 100 k . G(s) = i H ( s ) = s ( s + 1)( s + 2) s+5
114
116
unde p(s) si q(s) sunt polinoame n s. Rdcinile ecuaiei caracteristice q( s ) = 0 determin modurile de rspuns ale sistemului. Pentru sistemul n bucl nchis prezentat n figura 7.1, ecuaia caracteristic este dat de relaia:
1 + K G (s) = 0
(7.2)
unde K este un parametru ajustabil. Rdcinile ecuaiei caracteristice trebuie s satisfac relaia (7.2), acestea situndu-se n planul complex s. R(s) + B(s) Figura 7.1. Sistem de control n bucl nchis cu un parametru K variabil Un exemplu de reprezentare a locului rdcinilor este artat n figura 7.3. Acest rezultat s-a obinut pentru sistemul din figura 7.2, a crui funcie de transfer echivalent s-a notat prin T(s). E(s) Y(s)
G (s )
117
R(s) + B(s) -
E(s)
K ( s + 1) s ( s + 2) 1 s+3
Y(s)
T (s) =
(7.3)
118
Aceast forma este necesar pentru a putea apela functia rlocus din Matlab. Pentru obinerea locului rdcinilor pentru funcia de transfer din relaia (7.4) se vor scrie urmatoarele linii de comand:
>> p = [1 1]; >> q = [1 5 6 0]; >> rlocus(p,q) >> Aceste linii pot fi salvate ntr-un fisier m-script i vor produce graficul prezentat n figura 7.3. O alternativ a funciei rlocus din Matlab pentru obinerea locului rdcinilor este utilizarea liniei de comand [r,K]=rlocus(p,q),
care va returna sub forma unei matrice r, valorile rdcinilor din planul complex s pentru factorul de amplificare K. Se poate vedea c n figura 7.3 pentru valori cresctoare ale parametrului K exist dou ramuri ale locului rdcinilor care se departeaz de axa real. Aceasta nseamn c pentru valori mari ale parametrului K n ecuaia caracteristic vom avea dou rdcini complex conjugate. Pentru a gsi valoarea parametrului K care s corespund pentru o pereche de rdcini complexe se va folosi funcia rlocfind din Matlab, apelat sub forma
>> rlocfind(sys).
119
Aceasta funcie se poate apela numai dup ce am obinut figura cu reprezentarea grafic a locului rdcinilor cu funcia rlocus. Execuia funciei rlocfind va conduce la apatiia unui cursor n form de cruce n figura grafic. Acest cursor poate fi deplasat de-a lungul locului rdcinilor, iar prin click pe un anume punct al figurii funcia rlocfind va furniza valoarea corespunzatoare pentru parametrul K, aa cum se prezint n figura 7.4.
120
>> rlocfind(p,q) Select a point in the graphics window selected_point = -2.0636 + 3.4306i ans = 13.6002 >>
Dup marcarea facut pe grafic vor apare polii selectai aa cum indic figura 7.5.
121
K =
Obinerea rspunsului la semnalul treapt pentru sistemul considerat presupune folosirea funciei de transfer T (s ) din relatia (7.4), astfel c ieirea este: 13,6002( s + 1)( s + 3) 1 . ( s + 2)( s + 3) + 13,6002( s + 1) s
Y (s) =
(7.5)
Prin descompunerea n fracii simple a lui Y (s ) i apelarea funciei residue din Matlab vom obine ca rezultat expresia lui y (t ) .
>> >> >> >> K = 13.6002; num = K*poly([-1 -3]); den = [1 5 6+K K 0]; % with R(s) included [r,p,k]=residue(num,den)
r = -1.2983 - 1.1461i -1.2983 + 1.1461i -0.4033 3.0000 p = -2.0773 + 3.4311i -2.0773 - 3.4311i
122
-0.8454 0 k = [] >>
1.2983 j1.1461 1.2983 + j1.1461 + s + 2.0773 j 3.4311 s + 2.0773 + j 3.4311 0.4033 3 + + s + 0.8454 s
(7.6)
Aa cum se poate vedea din relaia anterioar (7.6), efectul datorat polului s = - 0.8454 este foarte mic n comparaie cu ceilali doi poli. Astfel c, dac l neglijm putem face urmtoarea aproximare: Y (s) =
(7.7)
Pe baza relaiei (7.7) se poate determina factorul de amortizare - , frecvena natural - n i timpul de stabilizare - t ss .
>> poly([-2.0773-3.4311i 2.0773+3.4311i]) ans = 1.0000 4.1546 16.0876 >>
Pentru sistemul de ordinul doi scris sub forma standard consacrat T (s) =
n2 , s 2 + 2 s n + n
(7.8)
123
2 n = 4,1546
Pentru un factor de amortizare cuprins intre 0 < < 1 , se consider c avem un sistem cu rspuns subatenuat, cu un timp de stabilizare 4 t ss = = 1,93 secunde. Rezultatul obinut este prezentat n figura 7.6. n
124
125
P F K s s SK = F P s K
(7.9)
n care s este locaia curent a polului, iar K este valoarea curent a ctigului. Folosind relaia (7.9) i convertind derivatele partiale la incremente finite, variaile actuale ale polilor n bucl nchis se pot aproxima prin:
s SK =
s K s K
(7.10)
unde
K este modificarea fracionar datorat ctigului - K. Sensibilitatea este K un numr complex care se poate exprima sub forma
s S K = + j r ,
(7.11)
7.3. Verificare
1. Folosind funcia rlocus s se obin locul rdcinilor pentru urmatoarele funcii de transfer corespunztoare unor sisteme de control cu structur identic cu cea prezentat n figura 7.1, dac parametrul K variaza ntre: 0 < K < . (a) (c) 5 s 2 + 3s + 1 ; ; (b) G ( s ) = 3 s + 5s 2 + 2 s + 1 s 3 + 2s 2 s + 1 s3 + s2 + s +1 G ( s) = 6 . s + 12s 2 23s + 5 G(s) =
126
2. Un sistem cu reacie negativ unitar are funcia de transfer n bucl deschis dat de expresia KG ( s ) = K
(s 2s + 2) . s (s + 3s + 2 )
2 2
Folosind MATLAB reprezentai locul rdcinilor i artai cu ajutorul funciei rlocfind c valoarea maxim a parametrului K pentru ca sistemul s fie stabil este K = 0.79. 3. Se consider sistemul cu reacie prezentat n figura 7.1 unde funcia de transfer G (s ) este G ( s) = s +1 . s2
= 2?
4. Se consider sistemul de control cu reacie din figura de mai jos.
R(s) E(s) Y(s)
C(s)
+
B(s)
G(s)
Figura 7.8. Sistem de control n bucl nchis cu regulator C ( s ) Avem trei posibile regulatoare pentru sistem considerat anterior: (a) (b) (c)
G(s) = K K G ( s) = s K G ( s) = 2 s
127
Condiia de proiectare care trebuie satisfcut este dat de timpul de atingere a regimului stabil, adic t ss < 10 s. Se cere: 1. Locul rdcinilor pentru fiecare regulator i determinarea valoarii parametrului K astfel ca, condiia impus s fie ndeplinit. 2. Reprezentarea grafic n cadrul aceleiai figuri a rspunsului la semnalul treapt uniate pentru fiecare regulator, pentru sistemul n bucl nchis. 3. Compararea rezultatelor obinute pentru fiecare din cele trei cazuri i interpretarea din punctul de vedere a rspunsului tranzitoriu i a regimului stabilizat.
128
8.2 Introducere
Biblioteca Control Systems din MATLAB conine dou funcii sisotool i rltool utile n proiectarea sistemelor de control. Acestea se bazeaz pe metoda grafic Locul rdcinilor i reprezint de fapt dou proceduri de analiz i proiectare interactiv a sistemelor liniare de control cu o intrare i o ieire (SISO). Atunci cnd este apelat, funcia sisotool deschide o fereastr grafic n care se vor reprezenta ulterior graficele pentru Locul rdcinilor i respectiv, Diagramele BODE.
130
Funcia rltool dac se apeleaz va deschide o fereastr grafic n care se va putea reprezenta numai graficul Locul rdcinilor. Aceste dou proceduri cu interfaa grafic permit proiectarea n mod interactiv a compensatoarelor pe baza reprezentrii grafice a Locului rdcinilor, Diagramelor BODE i Nichols, n cazul unui sistem n bucl deschis. Astfel c, pentru a deschide o sesiune de lucru, se va introduce urmtoarea comand n fereastra de comenzi a MATLAB-ului:
>> sisotool
Apelul funciei sisotool se poate face cu sau fr argumente, dup cum urmeaz. De exemplu:
sisotool(Gp), sau sisotool(Gp, Gc).
unde prin Gp se reprezint modelul (funcia de transfer) pentru sistemul controlat, iar Gc se reprezint modelul (funcia de transfer) pentru compensator. De asemenea, este permis importarea modelului n cadrul procedurii de proiectare prin metoda Locul rdcinilor, astfel c aceasta se poate ncrca: din spaiul de lucru al MATLAB (MATLAB workspace); dintr-un fiier de tip MAT ( mat-file); dintr-o diagram SIMULINK (mdl-file). n mod similar, funcia rltool va deschide o sesiune de proiectare pentru un sistem de tipul SISO liniar n care se va putea vizualiza numai graficul Locul rdcinilor. n continuare se va exemplifica modul de proiectare pe baza caracteristicilor metodei Locul rdcinilor.
1 . s( s + 2)( s + 5)
131
132
Figura 8.1. Fereastr grafic iniial Procedura de proiectare presupune n mod implicit c, compensatorul este pe calea direct a sistemului de control. Butonul grafic FS se poate utiliza pentru a schimba aceast configuraie, punnd compensatorul fie pe calea invers (feedback) fie pe calea direct. Prin apsare succesiv va bascula ntre aceste dou configuraii. Acum vom selecta opiunea Import Model din meniul File. Aceast aciune va deschide fereastra de dialog Import System Data, prezentat n figura 8.2. Configuraiile sistemului de control apar n Model Listbox. Astfel c, blocurile sunt desemnate dupa cum urmeaza: F - bloc preamplificator, G - modelul sistemului controlat, H - modelul senzorului, K - modelul compensatorului, a crui valoare iniial este 1. Se va selecta Gp prin click pe simbolul graphic pentru a introduce acesta vasloare n cmpul G.
133
Figura 8.2. Fereastra de introducere a datelor Butonul Other basculeaz de asemenea ntre dou configuraii posibile. Facem click OK. Dup aceste aciuni se vor afia n zona de reprezentare grafic Locul rdcinilor (RL) si Diagramele BODE (DB) corespunztoare sistemului n bucl deschis, figura 8.3. Ptrelele roi de pe RL reprezint polii sistemului n bucl nchis pentru o valoare a factorului de ctig 1 (implicit valoarea este C(s) = 1). De asemenea, pe diagramele BODE apar reprezentate marginea de ctig (GM) si marginea de faz (FM) ce corespund unui factor de ctig implicit 1 (C(s) = 1).
134
Figura 8.3. Fereastra cu graficele RL i Diagramele BODE n procedura de proiectare, prin apsarea butonului din dreapta al mouse-ului se apeleaz meniurile specifice regiunilor de reprezentare grafic. Acestea prezint mai multe opiuni aa cum se pot vedea n figura 8.4.
135
Dac se dorete modificarea factorului de ctig al compensatorului se va modifica valoarea din cmpul aferent lui C (s ) . De asemenea, factorul de ctig se mai poate modifica n mod grafic prin deplasarea polilor (ptrelele roii de pe graficul RL), de-a lungul graficului ntr-o alt locaie dorit. Pentru modificarea prin aceast operaie, se sugereaz ca mai nti s se selecteze din meniu opiunea Zoom XY prin click-dreapta pe mouse. Apoi se selecteaz regiunea dorit din graficul locul rdcinilor, dup care se face operaiune de deplasare (hold and place) a ptrelelor. Ca o alternativ, aceast operaie se poate face i prin utilizarea opiunii Zoom icons de pe meniul toolbar, vezi figura 8.5. Prin click pe Mouse Zoom icon (Zoom n XY), i apoi click pe locaia dorit din locul rdcinilor care se dorete mrit. Se nchide opiunea Mouse Zoom, dup care se deplaseaz polii sistemului n bucl nchis n locaia dorit.
Figura 8.5. Simbolurile grafice ale Toolbar pentru Zoom (a) Pentru a gsi valoarea marginii de stabilitate se vor deplasa polii sistemului de-a lungul locului pn la intersecia cu axa. Se activeaz opiunea Mouse Zoom dup care se ncadreaz (delimiteaz) regiunea polilor i la eliberarea mouse-ului se realizeaz zoom-ul zonei selectate. Se deplaseaz polii n poziia exact de intersecie a locului cu axa din care rezult marginea de stabilitate. Se dezactiveaz Zoom-ul i rezult rezultatul din figura 8.6.
136
Figura 8.6. Determinarea marginii de stabilitate (b) Pentru a determina ctigul n cazul unui factorul de atenuare = 0,6 , se vor deplasa polii compleci pn ce factorul de atenuare afiat n mod continuu n partea de jos a zonei de reprezentare grafic ajunge ca valoare n vecintatea lui 0.6. Acum se activeaz opiunea de Zoom i se vor deplasa polii pn ce valoarea factorului va fi exact de 0.6. Rezultatul obinut va fi cel din figura de mai jos, figura 8.7.
137
Figura 8.7. Alegerea polilor pentru un factor = 0,6 Factorul de ctig determinat este K 0 = 8,89 . De asemenea, unul din polii compleci precum i frecvena natural n sunt afiai n partea de jos a reprezentrii grafice i n cazul de fa au urmtoarele valori, s1 = 0,766 + j1,02 i respectiv n = 1,28 rad/s. n plus, marginea de ctig (GM) i marginea de faz (PM) sunt de asemenea indicate pe diagramele Bode i au valorile GM=17,9 dB, si PM=58,6. Acum, din meniul principal al procedurii de proiectare se va selecta Loop responses/Close-Loop Step pentru a obine rspunsul la semnalul treapt. Se va face click dreapta pe graficul obinut i se va selecta opiunea Characteristics, iar mai apoi Rise Time i Peak Overshoot. Dac pe graficul de rspuns trasat cu linie albastr se face click stnga, se vor afia parametrii ce caracterizeaz rspunsul n domeniul timp pentru sistemul analizat, figura 8.8.
138
139
Ca rspuns, vom obine urmtoarea fereastr iniial, ce nu conine nici o reprezentare n zona grafic pentru Locul rdcinilor i Diagramele BODE, figura 8.9.
Figura 8.9. Fereastra iniial din procedura SISO Design Tool Vom ncepe prin a selecta Import Model din meniul File. Aceast aciune va deschide csua de dialog Import System Data. Acum vom selecta Gp prin click pe pentru ca n cmpul G s se transfere valoarea corespunztoare funciei Gp. Acest lucru este prezentat n figura 8.10.
140
Figura 8.10. Activarea funciei Gp din fereastra Import System Data Se face acum click pe OK. n acest moment se vor afia graficele corespunztoare pentru Locul rdcinilor i respectiv Diagramele BODE n regiunile de reprezentare grafic corespunztoare. Vezi figura 8.11.
141
Procedura de proiectare a sistemelor de control SISO liniare ofer cteva constrngeri care uureaz modul de ndeplinire a specificaiilor de proiectare iniiale. Acestea se pot utiliza numai dac proiectantul dorete acest lucru. Plasarea perechii de poli compleci pe diagram n locaia ce corespunde unui factor de atenuare = 0,707 , se va face prin selectarea opiunii Design Constraints dup care se activeaz New din meniul clickdreapta corespunztor Locului Rdcinilor. Aceast aciune va deschide editorul Design Constraints. n cmpul corespunztor factorului de atenuare se va introduce valoarea 0,707. Acest lucru va conduce la afiarea unei perechi de raze umbrite corespunztoare pantei cutate. Adugarea timpului de stabilizare se face prin redeschiderea opiunii New Constraint i vom alege timpul de stabilizare din meniul pull-down prin setarea n cmpul aferent a valorii 2. Pentru a avea un pol a sistemului n bucl nchis de valoarea s1 = 2 + j 2 , va trebui s adugm un zerou pentru ca diagrama locului s se deplaseze spre stnga semiplanului complex s. Adugarea unui zerou, se face prin activarea din meniul toolbar a simbolului i plasarea acestuia pe axa real n partea stnga a polilor, asfel nct s aibe o valoare ct mai mica. Acum vom deplasa polii sistemului n bucl nchis n partea superioar a locului rdcinilor, ctre punctul de intersecie rezultat din condiiile impuse pentru factorul de atenuare i respectiv . Se va activa funcia Zoom i se va plasa ptratul n zona ce conine zeroul controlerului i polul buclei nchise. Corectm poziia zeroului pe axa real i n acelai timp se ine apsat butonul din stnga al mouse-ului i se deplaseaz polul buclei nchise pn cnd polul ajunge n poziia dorit, aa cum se observ n figura 8.12.
142
Figura 8.12. Proiectarea controlerului pe baza specificaiilor impuse Pentru a salva valorile obinute pentru compensatorul rezultat, se va selecta opiunea Export din meniul File. Aceast aciune va deschide sesiunea SISO Tool Export. Acum se va selecta opiunea Compensator C din coloana Component. Pentru a schimba numele, vom face double-click n celula corespunztoare pentru Compensatorul C i vom schimba numele punnd PD. Facem click pe butonul corespunztor opiunii Export to Workspace. Dup aceste operaiuni vom introduce comanda:
>> PD
143
10.0157 (s+2.397) Astfel c, controlerul de tip PD are o expresie aproximativ (rezultat n urma unei trunchieri) dat de C ( s) = 10s + 24 . Acum din meniul principal vom selecta opiunea Loop responses/Close-Loop Step pentru a obine rspunsul la treapta de semnal. Facem click-dreapta pe graficul de rspuns i selectm Characteristics dup care Rise Time i respectiv Peak Overshoot. Dac poziionm mouse-ul pe linia albastr a rspunsului i se face click-stnga, atunci se vor afia parametrii ce caracterizeaz rspunsul n domeniul timp, aa cum este artat n figura 8.13. de mai jos.
Figura 8.13. Rspunsul sistemului n bucl nchis cu controler de tip PD De asemenea, s notm c pe diagramele BODE, ale sistemului n bucl deschis sunt afiate att marginea de ctig GM, ct i marginea de faz PM pentru sistemul compensat.
144
Ca rspuns, vom obine o fereastr iniial fr grafice, corespunztoare procedurii SISO Design Tool. Se va selecta opiunea Import Model din meniul File. Acum se va deschide csua de dialog
145
Import System Data, unde vom selecta Gp prin click pe simbulul pentru a activa cmpul G i astfel se vor ncarca datele corespunztoare modelului Gp de mai sus. Se face click pe OK, dup care se vor afia graficele corespunztoare Locului Rdcinilor i respectiv Diagramele BODE n zonele aferente ale ferestrei. Acum urmeaz s plasm perechea de poli compleci pe diagrama Locului n poziia corespunztoare unui factor de atenuare = 0,707 . Pentru aceasta vom selecta opiunea Design Constraints dup care vom alege New din meniul corespunztor obinut prin click-dreapta pe graficul Locul rdcinilor. Aceast aciune va deschide editorul Design Constraints. n cmpul corespunztor factorului de atenuare vom introduce valoarea impus de 0,707. Acum pe grafic vor aprea o pereche de raze umbrite a cror pante corespunde valorii introduse. Pentru a aduga i timp de atingere a regimului stabilizat vom redeschide fereastra New Constraint i vom alege din meniul pull-down valoarea 2 n cmpul corespunztor. Acum vom plasa cursorul n poziia corespunztoare controlerului C(s) unde vom face click pentru a deschide csua de dialog. n locaia Edit Compensator C vom introduce 1.75 corespunztoare polului real. De asemenea, adugarea unui pol real se poate face i prin activarea meniului toolbar. Se alege simbolul corespunztor pentru pol - i se plaseaz pe axa real n dreapta polului cu valoarea cea mai mare. Se va deplasa polul corespunztor sistemului n bucla nchis ctre intersecia corespunztoare condtiilor impuse pentru i respective . Acum se poate activa din mouse funcia Zoom i se plaseaz ptratul n regiunea care conine zeroul controlerului i polul z1 al sistemului n bucl nchis. Se va corecta poziia polului pe axa real i n acelai timp se ine apsat butonul din stnga al mouse-ului deplasndu-se polul buclei nchise pn cnd polul ajunge n locaia dorit aa cum este artat n figura 8.14.
146
Figura 8.14. Plasarea polilor pe baza condiiilor impuse Salvarea compensatorului obinut se face prin selectarea opiunii Export din meniul File. Aceast aciune va deschide SISO Tool Export. Acum vom selecta Compensator C din coloana Component. Pentru a schimba numele se face double-click n celula corespunztoare Compensatorului C i se schimb numele punnd n cazul de faa PhLead. Dup aceasta se face click pe butonul Export to Workspace. Acum n fereastra de comenzi a MATLAB-ului se introduce
>> PhLead
147
64,2588 ( s + 1.75) s + 8.023 Expresia obinut n urma procedurii grafice de proiectare se poate aproxima 64 ( s + 1.75) . cu ( s + 8) Pentru a obine rspunsul sistemului n bucl nchis la semnalul treapt, din meniul principal selectm Loop responses/Close-Loop Step. Vizualizarea parametrilor de rspuns n domeniul timp pentru sistem se poate face dac pe graficul obinut vom face click-dreapta i vom selecta opiunea Characteristics dup care alegem Rise Time i Peak Overshoot. Prin click-stnga pe linia albastr vom putea vizualiza parametrii de rspuns ai sistemului n domeniul timp, aa cum se prezint n figura 8.15.
148
150
K V = lim sG (s ) = lim s
s 0 s 0
K 1 =K s(s + 1)
(9.1)
ess =
1 1 = < 0.1 K 10 KV K
Specificarea supracreterii din rspunsul tranzitiriu (%)
Reamintim c relaia dintre supracreterea exprimat n (%) a rspunsului i factorul de atenuare - , este data de Overshoot(%) = 100e
1 2
(9.2)
151
Astfel, relaia dintre marginea de faz - phase margin (PM), si factorul de atenuare - ( ) pentru cazul special al unei funcii de transfer n bucl nchis G (s ) =
PM = tan
1
1 + 4 2 2 2 2
(9.3)
ceea ce arat c marginea de faz pentru un sistem compensat ar trebui s fie mai mare de 45o pentru a obine o supracretere maxim mai mic de 25% i aa cum se prezint n Figura 9.2.
80 70 60 P has e M argin (P M ) 50 40 30 20 10 0
0.1
0.2
0.3
0.7
0.8
0.9
152
i.)
ii.)
Se alege o constant de ctig K astfel nct eroarea staionar n starea stabil care a fost specificat s fie satisfcut. Din cele artate anterior, se cunoate c K trebuie s fie mai mare sau egal cu 10, astfel c vom considera K = 10 . Se va determina pe reprezentarea grafic marginea de ctig (gain margin GM) i marginea de faz (phase margin - PM) corespunztoare sistemului necompensat n cazul factorului de ctig constant K considerat la punctual anterior (i.) cu scopul de a determina valoarea fazei de avans m care s asigure o margine de faz care s corespund supracreterii specificate.
Bode Diagrams Gm = Inf, Pm=17.964 deg. (at 3.0842 rad/sec) 60 40 Phase (deg); Magnitude (dB) 20 0 -20 -100 -120 -140 -160 -180 10
-1 0
10
Frequency (rad/sec)
153
Din figura 9.3, marginea de faz PM, a sistemului necompensat este PM uncomp 20 o . Astfel, alegnd o margine de faz PM pentru sistemul compensat egal cu PM comp = 45o , rezult c avem nevoie de o valoare adiional de faz m = PM comp PM uncomp = 25o . Acum c m a fost determinat, se poate determina parametrul al compensatorului cu avans de faz, care se va alege = 0.3 i care va corespunde unei faze maxime de avans de 33o . iii.) Faza maxim de avans m trebuie s fie adugat la valoarea nou a frecvenei de trecere m . Compensatorul cu avans de faz introduce un factor de ctig a crui valoare este n jur de 10 log(0.3) = 5.2dB corespunztor unei frecvene noi m . Astfel, trebuie determinat frecvena la care sistemul necompensat are o amplificare de 10 log(0.3) = 5.2dB . Prin urmare, m ar trebui s fie egal cu aceast frecven astfel ca, aceasta s devin noua frecven de trecere 0-dB pentru sistemul compensat. Prin analiza Figurii 9.3, factorul de ctig al sistemului necompensat este egal cu 5.2dB la o frecven = 4.5 rad sec . Fie m = 4.5 rad sec . iv.) Se vor calcula parametrii compensatorului cu avans de faz pe baza valorilor obinute n paii (i.) pn la (iii.). Funcia de transfer a compensatorului cu avans de faz este dat de C (s ) = sau jT + 1 jT + 1 1 unde T = . C ( j ) = cu < 1 (9.5) s +1 T s + 1 T 1
(9.4)
Astfel, pentru = 0.3 , T = 0.41 sec . Aceasta conduce la urmtorul compensator cu avans de faz:
154
C (s ) =
0.41s + 1 0.123s + 1
(9.6)
Simulrile n Matlab au la baz urmtoarele comenzii care se pot salva ntrun fiier m-script.
clear all; wm = 4.5; alpha = 0.3; % gain-crossover frequency % phase-lead compensator % parameter T = 1/wm/sqrt(alpha); % phase-lead compensator % time constant K = 10; % DC compensator gain % Phase-lead compensator C(s) cnum = K*[T 1]; cden = [T*alpha 1]; % Open-loop sys G(s) gnum = [1]; gden = [1 1 0]; % Unity-Gain Feedback Loop H(s) hnum = [1]; hden = [1]; % Open-loop sys C(s)*G(s) numo = conv(cnum,gnum); deno = conv(cden,gden); % Closed-loop sys [gnumc,gdenc] = feedback(K*gnum,gden,hnum,hden,-1); [numc,denc] = feedback(numo,deno,hnum,hden,-1); bode(cnum,cden);
155
30
25
20 30 20 10
10
-1
10
10
10
Frequency (rad/sec)
Figura 9.4 Diagrama Bode pentru compensatorul cu avans de faz C (s ) Acum pentru a vedea diferena dintre sistemul necompensat i sistemul compensat vom considera urmtorul fiier de comenzii Matlab:
sys1 = tf(K*gnum,gden); sys2 = tf(numo,deno); [mag1,ph1,w]=bode(K*gnum,gden,logspace(-1,2,500)); [mag2,ph2,w]=bode(numo,deno,logspace(-1,2,500)); subplot(211); semilogx(w,20*log10(mag1),'r',w,20*log10(mag2),'b') ; title('Bode Diagrams'); ylabel('Magnitude (dB)'); legend('uncompensated','compensated', -1); subplot(212); semilogx(w,ph1,'r', w,ph2,'b');
156
-50
10
10
10
uncompensated compensated
10
Figura 9.5. Diagrama Bode pentru sistemul necompensat i compensat Pentru a obine rspunsul sistemului la semnalul de tip treapt se va considera urmtorul fiier de comenzii Matlab:
figure; sys1c = tf(gnumc,gdenc); sys2c = tf(numc,denc); step(sys1c,sys2c);grid; legend('uncompensated','compensated',-1);
157
Figura 9.6 Rspunsul la treapt a sistemului necompensat i compensat n cazul n care se dorete s se vizualizeze i rspunsul la semnalul de tip ramp unitar, atunci se va considera urmtoarea secven de comenzii Matlab care vor conduce la rezultatul din figura 9.7.
t=0:0.01:5; y = t; [y1,x1]=step(gnumc,conv(gdenc,[1 0]),t); [y2,x2]=step(numc,conv(denc,[1 0]),t); [y3,x3]=step(numc,denc,t); [y4,x4]=step(gnumc,gdenc,t); plot(t,y1,'r',t,y2,'b',t,y,'g');grid; xlabel('Time (sec)'); title('Unit Ramp Input response'); legend('uncompensated', 'compensated', 'desired',-1);
Amplitude
158
Figura 9.7 Rspunsul sistemului necompensat i respectiv compensat la semnalul ramp unitar
Pe baza calculelor din exemplul precedent, relaiile (9.2) avem c PM comp 45o .
159
i.)
ii.)
Se va alege un factor de ctig constant K astfel nct eroarea staionar specificat s fie ndeplinit. Din cele prezentate anterior se tie c K trebuie s fie mai mare sau egal cu 10, astfel c vom considera K = 10 . Se va determina pe reprezentarea grafic, marginea de faz (PM) i marginea de ctig (GM) pentru sistemul necompensat n cazul unui factor de ctig constant K determinat la pasul (i.). Apoi se va estima frecvena la care are loc o margine de faz PM de 50o . Vom nota aceast frecvena ca fiind noua frecvena de trecere m . Din figura 9.8, se vede c m = 0.84 rad sec .
Bode Diagrams Gm = Inf, Pm=17.964 deg. (at 3.0842 rad/sec) 60 40 P has e (deg); M agnitude (dB ) 20 0 -20 -100 -120 -140 -160 -180 10
-1 0
10
Frequency (rad/sec)
160
iii.) Se va determina ctigul corespunztor pentru sistemul necompensat corespunztor frecvenei m = 0.84 rad sec . Din Figura 9.8, ctigul sistemului necompensat pentru m = 0.84 rad sec este 20 dB. Pentru a duce curba de ctig jos la 0 dB la m , va trebui ca compensatorul phase-lag s furnizeze 20 log( ) = 20 dB or
20 = 10 20
= 10 .
iv.) Se vor calcula parametrii compensatorului phase-lag pe baza valorilor obinute n paii anteriori de la (i.) pna la (iii.). Funcia de transfer a unui compensator phase-lag este data de s +1 T s + 1 T 1
C (s ) = sau
(9.7)
C ( j ) =
j T + 1 jT + 1
cu > 1
(9.8)
1 s fie m T cu o decad sub noua frecven de trecere m . Astfel compensatorul phase-lag proiectat este dat de unde T = 10
= 11.9 sec . Aceasta asigur ca frecvena =
C (s ) =
11.9s + 1 . 119s + 1
(9.10)
161
clear all; wm = 0.84; % gain-crossover frequency alpha = 10; % phase-lag compensator parameter T = 10/wm; % phase-lead compensator time constant K = 10; % DC compensator gain
% Phase-lead compensator C(s) cnum = K*[T 1]; cden = [T*alpha 1]; % Open-loop sys G(s) gnum = [1]; gden = [1 1 0]; % Unity-Gain Feedback Loop H(s) hnum = [1]; hden = [1]; % Open-loop sys C(s)*G(s) numo = conv(cnum,gnum); deno = conv(cden,gden); % Closed-loop sys [gnumc,gdenc] = feedback(K*gnum,gden,hnum,hden,-1); [numc,denc] = feedback(numo,deno,hnum,hden,-1); bode(cnum,cden);
162
Bode Diagrams
10
-2
10
-1
10
Frequency (rad/sec)
Figura 9.9 Diagrama Bode pentru sistemul compensat phase-lag Acum pentru a vedea diferena dintre sistemul necompensat i sistemul compensat vom considera urmtorul fiier de comenzii Matlab care conduce la rezultatul din figura 9.10
sys1 = tf(K*gnum,gden); sys2 = tf(numo,deno); [mag1,ph1,w]=bode(K*gnum,gden,logspace(-1,2,500)); [mag2,ph2,w]=bode(numo,deno,logspace(-1,2,500)); subplot(211); semilogx(w,20*log10(mag1),'r',w,20*log10(mag2),'b'); title('Bode Diagrams'); ylabel('Magnitude (dB)'); legend('uncompensated','compensated', -1); subplot(212); semilogx(w,ph1,'r', w,ph2,'b'); ylabel('Phase (deg)'); xlabel('Frequency (rad/sec)'); legend('uncompensated','compensated', -1);
163
uncompensated compensated
-50
10
10
10
uncompensated compensated
10 10 Frequency (rad/sec)
10
Figura 9.10 Diagramele Bode pentru sistemul necompensat i respectiv compensat Pentru a obine rspunsul sistemului la semnalul de tip treapt se va considera urmtorul fiier de comenzii Matlab:
sys1c = tf(gnumc,gdenc); sys2c = tf(numc,denc); step(sys1c,sys2c);grid; legend('uncompensated', 'compensated',-1);
n figura 9.11 este prezentat rspunsul sistemului compensat i respectiv necompensat la semnalul treapt unitar.
164
Figura 9.11. Rspunsul la treapt a sistemului necompensat i respectiv compensat n cazul n care se dorete s se vizualizeze i rspunsul la semnalul de tip ramp unitar, atunci se va considera urmtoarea secven de comenzii Matlab care vor conduce la rezultatul din figura 9.12.
t=0:0.01:5; y = t; [y1,x1]=step(gnumc,conv(gdenc,[1 0]),t); [y2,x2]=step(numc,conv(denc,[1 0]),t); [y3,x3]=step(numc,denc,t); [y4,x4]=step(gnumc,gdenc,t); plot(t,y1,'r',t,y2,'b',t,y,'g');grid; xlabel('Time (sec)'); title('Unit Ramp Input response'); legend('uncompensated', 'compensated', 'desired',-1);
Amplitude
165
Unit Ramp Input response 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 3 Time (sec) 4 5 uncompensated compensated desired
Figura 9.12 Rspunsul sistemului necompensat i respectiv compensat la semnalul ramp unitar
166
Proiect de curs
Teoria Sistemelor
1. Se va alege un sistem fizic SISO liniar al crui ordin s fie 3 sau mai mare; 2. Determinai modelul acestui sistem exprimat prin funcie de transfer i prin ecuaii de stare; 3. Analizai stabilitatea absolut a acestui sistem prin identificarea polilor i a zerourilor, etc.; 4. Analizai rspunsul tranzitoriu i stabil al sistemului i discutai despre stabilitatea relativ a sistemului: polii dominani, rspunsul la treapta unitar, analiza erorii stationare, etc. utiliznd reprezentarea grafic a rspunsului, metoda locul rdcinilor i rspunsul la frecventa etc.; 5. Pentru sistemul fizic considerat, alegei un set de parametrii care s defineasc performanele rspunsului unui sistem de control pe baza factorului de atenuare i a constantei de timp pentru polii dominani, precum i a erorii staionare impuse; 6. Proiectai un sistem de control cu regulator de tip P pe baza specificaiilor definite la punctul 5 i repetai paii de la 2 la 4; 7. Proiectai un sistem de control cu regulator de tip PD pe baza specificaiilor definite la punctul 5 i repetai paii de la 2 la 4;
168
Proiect de curs
8. Proiectai un sistem de control cu reacie dup stare pe baza specificaiilor definite la punctul 5 i repetai pasii de la 2 la 4; 9. Proiectai un sistem de control cu observer de stare pe baza specificaiilor definite la punctul 5 i repetai paii de la 2 la 4; 10. Proiectati un sistem de control optimal i repetai paii de la 2 la 4; 11. Comparai rezultatele obtinute mai sus n cadrul pailor de la 6 la 9 i formulai o concluzie proprie asupra acestor rezultate; 12. Scrieti un raport n care s fie prezentate concluziile asupra sistemului considerat iniial precum i asupra sistemului de control rezultat n cadrul punctelor 5, 6, 7, 8 i 9. n raport vor fi incluse fiierele MATLAB rezultate nsoite de reprezentrile grafice obinute.
SIMULINK
pentru i
realizarea s conin
26-28 Baritiu Electrical Engineering Building Technical University of Cluj Cluj-Napoca Romania Telephone: (0264) 401242 Lab: (0264) 401830 Fax: (0264) 592055 http://www.et.utcluj.ro Calin.Rusu@edr.utcluj.ro
169
Bibliografie
1. MATLAB 7.1 Student Version Release 14 with Service Pack 3, MathWotks, 2005 2. Simulink 6.3 Student Version Release 14 with Service Pack 3, MathWorks, 2005 3. Control Tutorials for Matlab, Prentice Hall, Ann Arbor, MI, 2001, ISBN 0-201-47700-9 3. Brian, Adrian - MATLAB 5 for Engineers, Prentice Hall, New-York, 1999 4. Coloi, T., Ignat I. Elemente de teoria sistemelor i reglaj automat, Lito, 1981 I.P.CN 5. Dorf, R.C., Bishop, Robert H.- Modern Control Systems, 9th Ed., Prentice Hall, Upper Saddel River, NY, 2001 6. Ogata, Katsuhiko - Modern Control Engineering, 4th Ed., Prentice Hall, Upper Saddel River, NY, 2002 7. Kuo, Benjamin C. Automatic Control system, John Wiley & Sons Inc., 7th Ed., NY, 1995 8. Rusu, Calin, - Dinamica i controlul roboilor, Cluj-Napoca, Lito UTNN, 1997. 9. Rusu, Calin, - Digital control system design, Ed. Casa crii de tiin, Cluj-Napoca, 2000. 10. Rusu, Calin, Szke Enik, Murean Manuela - Matlab n controlul sistemelor. Ghid practice pentru studeni i ingineri. Editura Mediamira, Cluj-Napoca, 132 pagini, ISBN 973-713-019-7, 2005. 11. Rusu, Calin, Szke Enik Aplicaii Matlab n controlul sistemelor. Ghid practice pentru studeni. Editura Mediamira 2006, Cluj-Napoca, 160 pagini, ISBN 973-713-101-0, 2006.