carte matlab 2008

170
MATLAB ÎN MODELAREA, SIMULAREA ŞI CONTROLUL SISTEMELOR GHID PRACTIC PENTRU STUDENŢI Călin RUSU Enikö SZÖKE Melinda RADIAN KREISER

Upload: apashusun

Post on 02-Jan-2016

168 views

Category:

Documents


24 download

TRANSCRIPT

Page 1: Carte matlab 2008

MATLAB ÎN MODELAREA, SIMULAREA

ŞI CONTROLUL SISTEMELOR

GHID PRACTIC PENTRU STUDENŢI Călin RUSU Enikö SZÖKE Melinda RADIAN KREISER

Page 2: Carte matlab 2008

Cuprins

Referenţi ştiinţifici: Prof.dr.ing. Tiberiu COLOŞI 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

Page 3: Carte matlab 2008

Cuprins iii

CUPRINS

Prefaţă 7 1. Introducere în MATLAB 11

1.1. Obiectivele lucrării 11 1.2. Introducere 11 1.2.1. Mediul MATLAB 12

1.2.2. Variabile, expresii si comenzii 14 1.2.3. Funcţii şi operaţii elementare 24 1.2.4. Trasarea graficelor 28 1.3. Matlab în controlul şi analiza sistemelor 29 1.4. Verificare 33

2. Modelarea sistemelor liniare 35

2.1. Obiectivele lucrării 35 2.2. Consideraţii teoretice 35 2.2.1. Modelarea sistemelor 35

2.2.2. Transformări de reprezentare 40 2.2.3. Extragerea datelor din model 41 2.3. Verificare 42

3. Conectarea sistemelor liniare 43 3.1. Obiectivele lucrării 43 3.2. Consideraţii teoretice 43 3.2.1. Conectarea serie (în cascadă) 43

3.2.2. Conectarea paralelă 45 3.2.3. Conectarea în buclă închisă 46 3.2.4. Reducerea diagramelor bloc 48 3.3. Modelarea sistemelor în Simulink 51 3.4. Verificare 54

Page 4: Carte matlab 2008

Cuprins

4. Introducere în Simulink 55

4.1. Obiectivele lucrării 55 4.2. Introducere 55 4.2.1. Lansare Simulink 56

4.2.2. Crearea unui model 57 4.2.3. Elemente de bază (blocuri şi linii) 58 4.2.4. Exemplu de simulare 63 4.3. Modelarea sistemelor 67

5. Analiza răspunsului tranzitoriu 83 5.1. Obiectivele lucrării 83 5.2. Consideraţii teoretice 83 5.2.1. Zerourile şi polii unui sistem 84

5.2.2. Parametrii răspunsului tranzitoriu 86 5.2.3. Analiza sistemelor de ordinul I 86 5.2.4. Analiza sistemelor de ordinul II 90 5.3. Verificare 98

6. Analiza regimului stabil 101

6.1. Obiectivele lucrării 101 6.2. Consideraţii teoretice 101 6.2.1. Erori în regim staţionar la semnalele de test 102

6.2.2. Erori statice ale sistemelor cu reacţie negativă unitară 102 6.2.3. Constante de eroare statică 104

6.2.4. Tipuri de sisteme 107 6.2.5. Erori ale regimului stabil datorate perturbaţiilor 108 6.2.6. Erorile staţionare ale sisteme cu reacţie negativa neunitară 110 6.2.7 Sensibilitatea sistemelor 111

6.2.8 Eroari stationare pentru sistemele modelate prin ecuaţii de stare 112

6.3. Verificare 112

7. Analiza sistemelor cu metoda locul rădăcinilor 115 7.1. Obiective lucrării 115 7.2. Consideraţii teoretice 115 7.2.1. Locul rădăcinilor 116

7.2.2. Locul rădăcinilor în Matlab 118 7.2.3. Răspunsul sistemelor 121 7.2.4. MATLAB SISO Design Tool 124

7.2.5 Sensibilitatea faţă de locul rădăcinilor 124 7.3. Verificare 125

Page 5: Carte matlab 2008

Cuprins v

8. Proiectarea sistemelor de control

cu metoda locul rădăcinilor 129 8.1. Obiectivele lucrării 129 8.2. Introducere 129 8.3 Proiectarea sistemelor de control 130 8.3.1 Proiectarea unui regulator de tip P 131

8.3.2 Proiectarea unui regulator de tip PD 138 8.3.3. Proiectarea unui compensator cu avans de fază 144

9. Proiectarea sistemelor compensate prin 149 metoda diagramelor Bode

9.1. Obiectivele lucrării 149 9.2. Proiectarea sistemelor compensate 149 9.2.1 Compensarea de tip phase-lead 149

9.2.2 Compensarea de tip phase-lag 158

Proiect de curs 167 Bibliografie 169

Page 6: Carte matlab 2008

Cuprins

Page 7: Carte matlab 2008

PREFAŢĂ De-a lungul timpului MATLAB şi Simulink au devenit standarde educaţionale pentru mediile universitare, atît în cadrul unor cursuri de iniţiere cît mai cu seamă pentru cursurile avansate din diferitele domenii ale ingineriei, matematicii sau ştiinţelor 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 rînd studenţilor din anul II, de la Facultatea de Inginerie Electrică dar, la fel de utilă poate fi şi studenţilor altor facultăţi de inginerie, precum şi inginerilor care utilizează şi dezvoltă aplicaţii industriale de control. Conţinutul acestei cărţi se bazează pe cunoştiinţele teoretice dobîndite în cadrul cursului de Teoria Sistemelor şi reprezintă o continuare firească a acestui curs punînd 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. Conţinutul acestei lucrări 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 particularităţile limbajului de programare. Acest limbaj are trăsături comune cu limbajele tradiţionale de programare - C şi respectiv, Fortran. Sunt evidenţiate

Page 8: Carte matlab 2008

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 facilităţile de reprezentare grafică diversă de care dispunee.

Capitolul 2 tratează aspecte legate de modelarea sistemelor liniare şi invariante (LTI) în Matlab. Sunt prezentate cîteva moduri de reprezentare ale sistemelor liniare precum şi modalităţile de conversie dintr-o formă în alta a acestor forme de reprezentare. De asemenea sunt menţionare funcţiile din Matlab prin intermediul cărora se pot extrage date dintr-un astfel de model.

Capitolul 3 prezintă modurile de interconectare ale blocurilor

funcţionale ce compun un sistem. Reducerea complexităţii prin determinarea unei funcţii de transfer echivalente reprezintă un aspect important care este abordat în cadrul aceastui capitol. Pornind de la ideea reprezentării sistemelor prin diagramele bloc se introduce modelarea în Simulink.

Capitolul 4 este dedicat în întregime prezentări mediului grafic de

modelare şi simulare Simulink. Sunt prezentate elementele de bază din Simulink care permit modelarea grafică a unui sistem. De asemenea, este arătat modul de salvare a modelului creat într-un fişier de tip mdl, precum şi încărcarea în zona de lucru a unui model deja existent. În faza următoare, sunt prezentate facilităţile oferite de Simulink în simularea sistemelor în vederea analizei acestora.

Capitolul 5 abordează problema analizei răspunsului tranzitoriu

pentru sistemele liniare modelate prin funcţii de transfer. Este analizat răspunsului sistemului de ordinul I, de ordinul II şi ordinul II modificat cu un pol sau zerou cînd la intrare se aplică un semnal treaptă. Pentru fiecare din aceste cazuri sunt introduşi parametrii care caracterizează faza de răspuns tranzitoriu.

Capitolul 6 se ocupă cu analiza răspunsului în regim stabilizat. Sunt

introduse erorile care pot să apară în această fază de răspuns a unui sistem, atunci cînd 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.

Page 9: Carte matlab 2008

Prefaţă ix

Capitolul 7 este dedicat prezentării metodei Locul rădăcinilor şi a analizei pe baza acestei metode. Tot acum se introduc noţiunile de compensator, sistem compensat şi de stabilitate a unui sistem. În MATLAB trasarea locului se face prin comanda rlocus, iar alegerea coeficienţilor presupune utilizarea funcţiei rlocfind. Metoda oferă informaţii utile asupra comportamentului sistemului în buclă închisă. Prin inserarea unui compensator adecvat, se poate obţine un răspuns dorit pentru sistem, în concordanţă cu condiţiile impuse în faza iniţială de proiectare.

Capitolul 8 abordează problema proiectării sistemelor de control pe baza metodei locul rădăcinilor. Este prezentată în detaliu metoda grafică de proiectare ce utilizează funcţia sisotool din Matlab. In cadrul acestei lucrări se prezintă proiectarea sistemelor de control cu regulator proporţional, proporţional derivativ şi cu compensator cu avans de fază. Pentru fiecare din exemplele considerate se face analiza răspunsului la semnalul treapta precizîndu-se parametrii ce caracterizeaza răspunsul. Capitolul 9 se ocupă cu problema proiectării sistemelor de control în domeniul frecvenţei 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 răspunsul sistemului înainte şi după compensare.

În speranţa că această lucrare poate fi utilă celor interesaţi de domeniul ingineriei sistemelor în dobîndirea cunoştiinţelor legare de modelarea, simularea şi proiectarea sistemelor de control, autorii mulţumesc anticipat celor care vor aprecia sau vor avea un punct de vedere constructiv la adresa conţinutului acestei lucrări. Opiniile se pot trimite pe adresa: [email protected]

Nu în ultimul rînd dorim să mulţumim Editurii UT Press pentru

sprijinul acordat la apariţia acestei lucrări. Martie 2008, Cluj - Napoca

Dr. ing. Călin Gh. Rusu

Page 10: Carte matlab 2008

x Prefaţă

Page 11: Carte matlab 2008

Introducere în MATLAB

Lucrarea nr. 1

1.1. Obiectivele lucrării

- prezentarea mediului MATLAB, comenzi de bază - operaţii elementare cu matrici şi vectori - exemple de operaţii şi funcţii uzuale în controlul sistemelor - operaţii matematice, extragerea rădăcinilor unui polinom - transformarea Laplace directa şi inversă

1.2. Introducere

MATLAB este un mediu de modelare şi simulare interativ utilizat pentru calcule şi analize ştiinţifice. Înglobează diverse posibilităţi de lucru, precum: analiza numerică, calculul matricial, procesarea semnalelor sau reprezentarea grafică, într-un mediu uşor de utilizat. Formularea enunţurilor şi soluţiile problemelor se exprimă exact cum sunt scrise matematic, nefiind necesară o programare tradiţională. Numele acestui mediu provine de la matrix laboratory. În calcule complexe programul se bazează pe operaţiile cu matrici.

Page 12: Carte matlab 2008

Introducere în MATLAB

12

1.2.1 Mediul MATLAB

Când lansaţi MATLAB-ul pe desktop apar mai multe ferestre care vor

gestiona fişierele, variabilele şi aplicaţiile asociate acestui mediu de programare. Dacă porniţi prima dată programul, atunci pe desktop trebuie să obţineţi o fereastră identică cu cea din figura 1.1, altfel fereastra Launch Pad poate să conţine alte intrări.

Figura 1.1 Mediul MATLAB

Fereastra de comenzi - Command Window

Aici puteţi să introduceţi comenzi, de exemplu să specificaţi valoarea unei variabile sau să rulaţi un fişier cu comenzi şi/sau instructiuni MATLAB - script m-file. Prin urmare printr-un m-file se va întelege un fişer care execută o serie de comenzi MATLAB sau poate să conţină funcţii care acceptă argumente.

Page 13: Carte matlab 2008

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, puteţi să identificaţi funcţia anterior folosită, se pot copia şi executa liniile selectate.

Textul următor %-- 11:18 AM 4/04/04 --%

indică ora exactă când a fost executată comanda respectivă. Fereastra căilor de căutare - Launch Pad

Fereastra furnizează calea de acces la biblioteci - tools, demo-uri şi documentaţii. Biblioteca Simulink şi Control System Toolbox sunt cel mai des utilizate în acest curs.

Fereastra de lucru - Workspace

Fereastra de lucru conţine setul de variabile (vectori sau matrici) memorate de MATLAB într-o sesiune de lucru. Puteţi să adunaţi o variabilă utilizând funcţii, rulând un m-file şi încărcând workspace-ul salvat. Ca să vedeţi informaţiile despre fiecare variabilă faceţi click pe Workspace sau folosiţi funcţia who şi whos. Figura 1.2 arată fereastra Workspace.

Page 14: Carte matlab 2008

Introducere în MATLAB

14

Figura 1.2. MATLAB Workspace

1.2.2 Variabile, Expresii şi Comenzi în MATLAB

Dacă ce ne-am familiarizat cu mediul MATLAB vom trece la expresiile de bază recunoscute de MATLAB. În command window se introduc direct comenzile, ca de exemplu atribuirea unei valori pentru o variabilă sau rularea unui m-file ce contine aceleaşi comenzi.

Expresii şi variabile

Expresiile introduse fără nume de variabilă sunt evaluate de MATLAB şi memorate într-o variabilă afişată numită ans (answer). Rezultatul unei expresii se pot atribuii unei variabile pe care o identifică. Variabila este alcătuită dintr-o literă urmată de orice număr, literă, cifră sau printr-un nume. MATLAB utilizează numai primele 31 de caractere din numele unei variabile. MATLAB face diferenţă între literă mică şi mare (adică este case sensitive). MATLAB afişează rezultatul cu 5 cifre significante (de obicei: format short). Comenzile de format sunt urmatoarele:

Page 15: Carte matlab 2008

Introducere în MATLAB

15

format short e format long, format long e

Aceste comenzi vor afişa numărul cu 5 cifre in format flotant, respective 15 cifre în format întreg şi 15 cifre în format flotant.

Primul exemplu este o expresie fără nume de variabilă cu răspuns memorat automat în ans. Expresia a doua este o expresie matematică ce utilizează funcţia cos. Funcţiile matematice vor fi explicate în cadrul secţiunii Funcţii Elementare.

>> 13 ans =

13 >> cos(3.1416/3) ans =

0.49999787927255 >>

În exemplul doi se vor afişa expresii a căror valoare este memoratăe î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 răspunsul afişat, semnul % indică faptul că expresia tastată este

convertit în comentariu, respectiv dacă după expresia matematică se pune ; atunci se omite răspunsul. În exemplul următor se arată acest lucru. În prima

Page 16: Carte matlab 2008

Introducere în MATLAB

16

expresie nu se afişează valoarea lui a1 deşi este încă în workspace, iar pe linia a doua a1 este considerat un comentariu.

>> a1=3.5445/64; >> % a1=3.5445/64 >>

Utilizând comanda fprintf puteţi să manipulaţi direct formatul

ieşirii. Această comandă afişează rezultatul în formatul dorit pe ecran sau în fişierul specificat. %8.4f, indică faptul că la ieşire aveţi un număr float format din 8 caractere din care 4 sunt zecimale. Dacă lungimea numărului este mai mic decat 8, (7 de exemplu) al 8-lea element este spaţiul (blank). Expresia din interiorul semului ‘ ‘ va fi afişată. \n indică trecere pe o linie nouă a ieşirii următoare. Expresia tastată după virgulă , va fi evaluată.

MATLAB are o serie de variabile predefinite după cum se arată în

tabelul următor, Tabel1.1.

Tabel 1.1. Variabile şi constante speciale ans Ultimul răspuns computer Tipul calculatorului eps Număr real cu virgulă mobilă i,j Unitate imaginară inf Infinit nan Nu e număr pi 3,141459265358……. realmax Cel mai mare număr real în virgulă mobilă realmin Cel mai mic număr real în virgulă mobilă

>> fprintf('Area of a circle is %8.4f Square meters\n', 3.1416*3^2) Area of a circle is 28.2744 Square meters >>

Page 17: Carte matlab 2008

Introducere în MATLAB

17

MATLAB are o serie de comenzi speciale după cum apar în Tabelul 1.2.

Tabel 1.2. Comenzi speciale clc Şterge toate intrările şi ieşirile din Command

Window clear variable Şterge conţinutul şi variabila respectivă din

workspace.Dacă toate variabilele sunt şterese atuci întregul workspace este gol.

diary Determină o copie despre toate comenzile de intrare şi majoritatea comenzilor de ieşire adăugat în fişierul respectiv. Dacă nu există nici un fişier menţionat se utilizează fişierul ‘diary’.

exit Ieşire din MATLAB help command Help pentru comanda respectivă home Analog clc. load Citeşte conţinutul fişierului MAT salvat. save Salvează workspace-ul într-un fişier binar

denumit fişier MAT cu extensia .mat who Afişează variabilele din workspace. whose variable Afişează numărul elementelor unei variabile.

Dacă nu se indică variabila, atunci se afişează valoarea fiecărui element.

Caracter de tip String

Un şir de caractere cuprins între două semne apostrof se numeşte caracter de tip string sau vaiabilă text. Aceste şiruri se pot combina “[‘şir unu’,’şir doi’]”. Vezi exemplul următor:

>> c='Transilvania' c =

Transilvania >> cs=[c,',Cluj'] cs =

Page 18: Carte matlab 2008

Introducere în MATLAB

18

Transilvania, Cluj

Definirea matricilor

Cea mai simlpă metodă de a introduce o matrice este scrierea explicită, adică înşiruirea elementelor cuprinse în paranteze pătratice “[ ].” Coloanele matricei se despart prin virgulă sau spaţiu, iar rândurile prin ; sau carriage return.

O matrice de o singură linie se introduce în MATLAB în două feluri: utilizând spaţiu 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: utilizând ; sau carriage returns (în acest exemplu am folosit ;).

>> B=[3;4;5] B =

3 4 5

Combinând instrucţiunile de creare a matricei coloană cu

matricea linie, se obţine o matrice m x n..

Matrice ⎥⎦

⎤⎢⎣

⎡=

4321

C se introduce în MATLAB utilizând spaţiu sau virgulă cu

punct şi virgulă sau carriage return, după cum urmează:

Page 19: Carte matlab 2008

Introducere în MATLAB

19

>> C=[1 2;3 4] C =

1 2 3 4

O linie sau o coloană întreagă se adresează prin utilizarea punctului şi

virgulă ;. De exemplu, pentru a obţine prima linie din matricea C, se procedează după cum urmează. Numărul 1 arată că este vorba de prima linie sau coloană în funcţie de poziţia lui. Dacă numărul se află pe prima poziţie atunci, la ieşire avem întreaga linie, iar dacă se află pe poziţia a doua atunci, la ieşire avem întreaga coloană. În exemplul nostru, numărul 1 se află pe prima poziţie; deci la ieşire avem prima linie. Încercaţi să interschimbaţi coloana şi numărul introdus pentru a vedea modificarea la ieşire.

>> frow = C(1,:) frow =

1 2 >>

Un element din matrice se poate accesa printr-o expresie (i,j), unde

i este linia şi j este coloana elementului corespunzător. De exemplu, pentru a obţine 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 >>

Page 20: Carte matlab 2008

Introducere în MATLAB

20

Operaţii de bază cu matrici şi vectori

Matricile de aceeaşi dimensiune se pot aduna şi scădea. Dacă ele sunt

de dimensiuni corespunzătoare, atunci se poate executa operaţia de înmulţire sau de împărţire. Pentru înmulţirea şi împărţirea element cu element, MATLAB utilizează operatorul dot, sau punctul zecimal. În Tabelul 1.3 sunt enumerate opera ţ i i le ce se pot executa element cu element. Se dau două matrici C şi D. Pentru operaţia de înmulţire se tastează

>>C*D,

iar pentru înmulţire element cu element se întroduce

>>C.*D,

>>C\D

este echivalent cu C-1D, şi

>>C/D este echivalent cu CD

-1.

Inversa matricei se notează cu C

-1şi se obţine utilizând comanda

>>inv(C).

În continuare se prezintă câteva exemple.

>> C = [1 2;3 4] C =

1 2 3 4

>> D = [5 6;7 8]

Page 21: Carte matlab 2008

Introducere în MATLAB

21

D =

5 6 7 8

>> C*D ans =

19 22 43 50

>> 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 12 21 32

Tabel 1.3. Operaţii matematice

+ Adunare - Scădere .* Înmulţire element-cu-element./ Înpărţire element-cu-element.\ Împărţire la stânga element-cu-element division.^ Ridicare la putere element-cu-element.' Transpusa unei matrici

Page 22: Carte matlab 2008

Introducere în MATLAB

22

Un vector n este un vector linie sau o matrice coloană a n numere.

În MATLAB, elementele incluse în paranteze pătrate şi separate de punct şi virgulă generează un vector coloană. Transpusa unui vector linie este un vector coloană ş i invers . Acesta se ob ţ ine în MATLAB utilizând simbolul ‘ (apostrof). Urmă torul exemplu arată transpusa matricei D.

>> E = D' E =

5 7 6 8

>>

Un vector se poate genera specificând primul şi ultimul element, respectiv

incrementul alocat pentru fiecare element. De exemplu, dacă se propune crearea unui vector linie având 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 menţionează ca şi parametru explicit, valoarea sa va fi ‘1’,. În următoarea comandă Matlab

>>F = (1:9),

se obţine acelaşi rezultat ca şi în cazul:

>> F = (1:1:9) F = 1 2 3 4 5 6 7 8 9

>> F = (1:9) F = 1 2 3 4 5 6 7 8 9

Page 23: Carte matlab 2008

Introducere în MATLAB

23

În Matlab exostă definite matrici speciale care sunt prezentate în tabelul următor, Tabel 1.4.

Table 1.4 Matrici elementare eye Matricea unitatemeshgrid X şi Y matrici pentru desenare 3-Dones Matricea cu toate elementele 1zeros Matricea cu toate elementele 0rand Generează numere aleatoare cu distribuţie

uniformă randn Generează numere aleatoare cu distribuţie normală

Având o matrice dată se poate ca din aceasta să se extragă informaţii

utile în calcule. Încercaţi următoarele comenzi şi determinaţi modul lor de acţiune. Vezi tabelul 1.5 pentru detali.

Table 1.5 Operaţii elementare în matrici disp Afişează matricea isempty Adevarat pentru o matrice vidă

isequal Adevarat pentru o matrice identică isnumeric Adevărat pentru o matrice numerică issparse Adevărat pentru o matrice rarălength Lungimea unui vector ndims Numărul dimensiunii numel Numărul elementelorsize Dimensiunea matricei

În Tabelul 1.6 şi respective 1.7 sunt cuprinse câteva funcţii utile în

crearea şi manipularea matricelor. Studiaţi şi vedeţi cum funcţionează.

Table 1.6 Funcţii pentru manipulare matrice diag Crează sau extrage diagonalelefliplr Roteşte matricea în jurul axei verticale

(inverseaza ordinea coloanelor)flipud Roteşte matricea în jurul axei orizontale

(inverseaza ordinea liniilor)reshape Schimbă dimensiunea matriceirot90 Roteşte matricea cu 90 degrade: (colon) Index în matrice, rearanjare matrice

Page 24: Carte matlab 2008

Introducere în MATLAB

24

Table 1.7 Operaţii în matrici det Determinantul matricei trace Suma elementelor de pe diagonală inv Inversa matriceieig Valoarea proprie a unei matrici vectoruluipoly Polinomul caracteristicexp Exponentlogm Logaritmsqrtm Rădăcină pătrată

1.2.3 Funcţii şi operaţii elementare

Operaţiile de bază precum adunare, scădere, înmul ţ i re , împărţire

se reprezintă prin următoarele simboluri “ + , - , * , /”. Pentru a ridica un număr la putere, se inserează simbolul ^ între număr şi exponent. Să presupunem, că se doreşte determinarea valorii 26, se tastează

>> 2^

După cum am arătat mai devreme pentru matrici sau tablouri, operaţiile

de ridicare la putere, înmulţire şi împărţire sunt diferite.

Câteva dintre funcţiile de bază care operează pe elemente sunt date în Tabelul 1.8.

Tabel 1.8 Funcţii elementare matematice abs Valoare absolută sau modul acos Arc cosinusacosh Arc cosinus hiperbolic angle Argumentasin Arc sinusasinh Arc sinus hiperbolicatan Arc tangentatanh Arctangent hiperbolicconj Conjugatul unui număr complex cos Cosinusexp Exponenţial bază ecosh Cosinus hiperbolicfloor Rotunjire spre infinitfix Rotunjire spre zerouimag Partea imaginarălog Logaritm natural

Page 25: Carte matlab 2008

Introducere în MATLAB

25

log10 Logaritm zecimalreal Partea realărem Restul împărţiriiround Rotunjire către cel mai apropiat întregsign Funcţia semnsinh Sinus hiperbolic sqrt Rădăcină pătratătan Tangenttanh Tangent hiperbolic

Operaţii Logice

Operatorii relaţionali compară doi scalari şi produc 1 dacă operaţia

este adevărată şi respectiv 0 dacă este falsă. De exemplu, dacă se tastează

>> t = 17>55,

MATLAB răspunde cu t = 0. În cazul matricilor, operatorii relaţionali compară elementele corespunzători. De exemplu,

>> L = D <= X va determina compararea fiecărui element din D cu elementele corespunzătoare din X. Dacă elementul din D este mai mic sau egal decât elementul corespunzător din X, atunci elementul corespunzător din L va fii 1. Altfel, elementul corespunzător din L va fi zero. Operatorul logic & pentru AND, | pentru OR, ş i ~ pentru NOT returnează 1 pentru adevărat şi 0 pentru fals. Urmăriţi exeplul de mai jos.

>> H = [1 3 5 7 9]; >> I = [0 2 3 4 5]; >> J = [2 2 6 3 4]; >> lgcal1 = H < I lgcal1 =

0 0 0 0 0 >> lgcal2 = H>I

Page 26: Carte matlab 2008

Introducere în MATLAB

26

lgcal2 =

1 1 1 1 1 >> lgcal3 = (H>I)&(H>=J) lgcal3 =

0 1 0 1 1

Crearea fişierelor MATLAB (m-file)

Fişierele care conţin instrucţiuni MATLAB se numesc m-files. Un fişier de acest tip se realizează dacă se deschide un editor de text şi aici se vor introduce funcţii şi comenzi recunoscute de MATLAB.

Există două tipuri de fişiere m:

- Funcţii care nu acceptă paramentrii de intrare sau care returnează parametrii de ieşire. Acestea operează asupra variabilelor din workspace.

- Funcţii care acceptă parametrii de intrare şi returnează valori de

ieşire. Aceste variabile sunt locale funcţiilor.

Dacă sunteţi un programator începător în MATLAB, atunci creaţi fişierul m-file direct în directorul curent. Pe măsură ce realizaţi mai multe fişiere proprii o să aveţi nevoia să le organizaţi în alte directoare şi în biblioteci personalizate ce vor fii adăugate în calea de căutare a MATLAB-lui. Dacă MATLAB-ul întîlneşte două fişiere cu acelaş denumire, atunci execută primul fişier pe care îl întâlneşte în cale de căutare. Fiecare nume de fişier se termină cu “.m” Comenzile din fişier se execută prin întroducerea în fereastra de comenzi (Command Window) numele fişierului fără extensa “.m.”

Un m-file se crează executând click pe >FILE>NEW>M-FILE după care apare o fereastră unde se poate întroduce comenzile dorite. Vezi figura 1. 3.

Page 27: Carte matlab 2008

Introducere în MATLAB

27

Figura 1.3. Fereastra editorului din Matlab (m-file)

Definirea funcţiilor

Pentru a crea o funcţie se introduce prima dată cuvântul cheie function după care urmează denumirea funcţiei şi parametrii de ieşire respectiv de intrare, după cum urmează:

function [output arguments] = function_name(input arguments)

Instrucţiuni de control a programului

MATLAB are posibilitatea de control a fluxului de operaţii, exact ca în orice alt limbaj de programare. Structurile repetitive şi decizionare puse la dispoziţia 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 ieşi definitiv din ciclu. Comanda if se

Page 28: Carte matlab 2008

Introducere în MATLAB

28

poate utiliza înpreună cu funcţiile nargin, nargout, şi error pentru verificarea mai bună asupra funcţiei. În interiorul unei funcţii, nargin şi nargout este egal cu numărul parametrilor de intrare şi ieşire, care s-a utilizat în funcţia call. Funcţia error(‘message’) returnează control asupra tastaturii şi afişează mesajul. Pentru mai multe informaţii referitoare la aceste comenzi tastaţi

>> help <command>.

Tabel 1.9. Comenzi pentru controlul programului

break Termină execuţia cicluluielse Utilizat cu ifelseif Utilizat cu ifand Închide ciclul for, while, şi iferror Afişează mesajul şi abandonează funcţia for Ciclu repetitiv de un număr dat de ori if Instrucţiune condiţionatăreturn Return în funcţie invocatwhile Instrucţiune repetitivă de un număr nedefinit de

ori

1.2.4 Trasarea graficelor

MATLAB poate crea diverse tipuri de grafice, cum ar fi: 2D, 3D, liniare, logaritmice, semilogaritmice, reprezentări în coordonate polare, etc. Câteva dintre modalitaţile de reprezentare a graficelor 2D sunt: plot, loglog, semilogx, semilogy, polar, şi bar.

Comanda grid adaugă linii ajutătoare graficelor, iar comenzile

title(‘text’), xlabel(‘text’), ylabel(‘text’), şi text(‘text’) pot fi utilizate pentru plasarea de etichete sau texte pe grafice. MATLAB realizează scalarea automată. Funcţia axis([xmin, xmax, ymin, ymax])impune scalare manuală.

Pentru a exemplu să luăm reprezentarea unei sinusoide. Fie y = 2 sin x , unde x este abscisa (un unghi) şi y este ordonata. Notă: unghiurile sunt date în radiani.

>> x=(0:0.002:2*pi);

Page 29: Carte matlab 2008

Introducere în MATLAB

29

>> y=2*sin(x); >> plot(x,y); title('Sinusoidal waveform');

Semnalul de ieşire arată ca în figura 1.4.

Figura 1.4. y = 2sin(x).

1.3 MATLAB în controlul şi analiza sistemelor

Funcţiile prezentate sunt fundamentale şi sunt utilizate în mod frecvent în aplicaţii de control.

Numere complexe

Numerele complexe sunt introduse in MATLAB utilzându-se funcţiile speciale i sau j. Operaţiile matematice sunt similare cu cele realizate cu numere reale. Ca exemplu, să presupune operaţiile de bază între două numere complexe.

Fiind dat: (25 + j65) ş i (30 + j80) (adunare şi împărţire)

Page 30: Carte matlab 2008

Introducere în MATLAB

30

>> (25+65j)+(30+80j) %Adunare

ans =

5.5000e+001 +1.4500e+002i

>> (25+65j)/(30+80j) %Împărţire ans =

0.8151 - 0.0068i >>

Dintr-un număr complex se poate extrage faza, modulul, partea reală

ş i par tea imaginară. De exemplu, dacă se doreşte să se obţină faza şi modului numărului complex (25 − j65), prima dată se converteşte unghiul în grade prin înmulţire cu π / 180 (răspunsul î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)

Page 31: Carte matlab 2008

Introducere în MATLAB

31

ans

-65 >>

Polinoame

Un polinom se reprezintă ca un vector linie care conţine coeficienţii polinomului ca elemente ale vectorului. De exemplu, polinomul

s3 + 32s2 + 32 se reprezintă ca

>>x = [1 32 0 32] x = 1 32 0 32

>>

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 cărui rădăcini se obţine cu funcţia 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, rădăcinile se obţin cu comanda roots().

Page 32: Carte matlab 2008

Introducere în MATLAB

32

>> roots([1 3 -18 -40 0]) ans =

0 4.0000 -5.0000 -2.0000

Două polinoame se înmulţesc şi se împart folosind comanda conv()

şi respectiv deconv(). >> x = [1 2 1]; >> y = [2 5]; >> m = conv(x,y) m =

2 9 12 5 >> n = deconv(x,y) n =

0.5000 -0.2500 >>

În tabelul 1.10 sunt enumerate alte funcţii utilizate în control, analiză

şi proiectare.

Table 1.10. Alte funcţii de bază pentru controlul aplicaţiilor. ilaplace Generează transformata Laplace inversă pentru un

polinom din domeniul complex s laplace Generează transformata Laplace polinom din

domeniul timp

polyval Evaluare polinomială.

residue Descompunere în fracţii simple

Page 33: Carte matlab 2008

Introducere în MATLAB

33

1.4 Verificare

1. Generaţi polinoamele următoare în Matlab.

962)( 2 ++= sssN

192)( 23 +−+= ssssD

2. Fie )()(

sDsN o expresie raţională. Descompuneţi în fracţii simple folosind

comenzile din Matlab.

3. Fie polinomul 932)( 4 +−= sssP . Determinaţi rădăcinile acestuia utilizînd comenzi Matlab.

4. Fiind dat intervalul de timp 0 ≤ t ≤ 10s , desenaţi răspunsul funcţiei )cos(4)( tetf t ⋅= − cu o rezoluţie de 0.1s.

5. Determinaţi produsul celor două polinoame specificate la punctul 1.

6. Evaluaţi polinomul 2

2 5332)(

=+−+

=sss

ssF utilizând funcţia polyval.

Page 34: Carte matlab 2008

Introducere în MATLAB

34

Page 35: Carte matlab 2008

Modelarea sistemelor liniare

Lucrarea nr. 2

2.1 Obiectivele lucrării

- reprezentarea sistemelor în MATLAB - transformări ale reprezentărilor - proprietăţi ale sistemelor liniare - extragerea datelor dintr-un sistem

2.2 Consideraţii teoretice

2.2.1 Modelarea sistemelor

Modelarea prin funcţii de transfer

Din punct de vedere matematic un sistem liniar şi invariant (LTI) se poate reprezenta în Matlab sub mai multe moduri. Pentru a simplifica lucrurile vom considera cazul sistemelor cu o intrare şi o ieşire (SISO). Modelul cel mai utilizat în analiza unui sistem LTI este funcţia de transfer. Aceasta se defineşte ca raport a două polinoame de un anumit grad în s, unde s reprezintă variabila complexă din transformata Laplace.

Page 36: Carte matlab 2008

Modelarea sistemelor liniare

36

Astfel că putem scrie:

)()()(

sDsNsG =

(2.1)

unde N(s) este polinomul de la numărătorul funcţiei de transfer de forma:

011

1 ...)( bsbsbsbsN mm

mm ++++= −

− (2.2)

iar D(s) este polinomul de la numitorul funcţiei de transfer de formă:

011

1 ...)( asasasasD nn

nn ++++= −

− . (2.3)

În MATLAB, funcţia sys=tf(num,den) este utilizată pentru a

genera o reprezentare prin funcţie de transfer pentru un sistem. Variabilele num şi den sunt folosite pentru desemnarrea numărătorului, respectiv numitorului funcţiei de transfer. Să considerăm funcţia de transfer G(s), unde:

123)( 3 +−

+=

ssssG .

(2.4)

Pentru a reprezenta această funcţie de transfer vom scrie:

>> num = [1 3] num =

1 3 >> den = [1 0 –2 1] den =

1 0 -2 1 >> sys=tf(num,den)

Page 37: Carte matlab 2008

Modelarea sistemelor liniare

37

Transfer function: s + 3 ---------------- s^3 - 2 s + 1 >>

Modelarea prin ecuaţii de stare

Un alt mod de reprezentare utilizat în analiza şi modelarea unui sistem LTI este dat de ecuaţiile de stare, cu următoarea formă generală:

DuCxy

BuAxxdtd

+=

+=

(2.5)

unde A, B, C, şi D sunt matrici, reprezentând intrarea, ieşirea şi tranziţiile dintre intrare şi ieşirea sistemului. Să considerăm sistemul:

[ ]xy

uxxdtd

505.1083.20

71.1010

−=

⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

⎡−

=

(2.6)

Pentru a genera o reprezentare prin ecuaţii de stare se utilizează funcţia

sys=ss(A,B,C,D), după cum urmează:

>> A = [0 1; 0 –1.71] A = 0 1.0000 0 -1.7100 >> B = [0;2.083] B =

Page 38: Carte matlab 2008

Modelarea sistemelor liniare

38

0 2.0830 >> C = [1.05 –5] C = 1.0500 -5.0000 >> D = 0 D = 0 >> sys=ss(A,B,C,D) a = x1 x2 x1 0 1 x2 0 -1.71 b = u1 x1 0 x2 2.083 c = x1 x2 y1 1.05 -5 d = u1 y1 0 Continuous-time model. >>

Page 39: Carte matlab 2008

Modelarea sistemelor liniare

39

Modelarea Poli-Zerouri şi Factor de amplificare

Uneori este necesară crearea unui model pentru un sistem liniar dat

prin specificarea zerourilor, polurilor şi a factorului de amplificare. Funcţia sys=zpk(z,p,k), este utilizată pentru a genera un model de acest tip. Să considerăm un sistem liniar cu următoarele caracteristici:

Poli = 0, -2, -3, -4 Zerouri = -1, -2 Factorul de amplificare = 2

Reprezentarea matematică este de forma:

)4)(3)(2()2)(1(2

))...()(())...()((

)(21

21

+++++

=++++++

=ssss

sspspspszszszs

ksGn

m .

În MATLAB vom avea:

>> z = [-1 –2] z = -1 -2 >> p = [0 –2 –3 –4] p = 0 -2 -3 -4 >> k=2 k = 2 >> sys=zpk(z,p,k) Zero/pole/gain:

Page 40: Carte matlab 2008

Modelarea sistemelor liniare

40

2(s+1)(s+2) ------------------- s(s+2)(s+3)(s+4) >>

2.2.2 Transformări de reprezentare

MATLAB are funcţii care pot realiza conversii ale acestor moduri de reprezentare dintr-o formă în alta. Aceste transformări sunt utile în rezolvarea unor probleme de control şi sunt enumerate mai jos:

Conversia Funţie de transfer - Spaţiul stărilor

Un sistem liniar exprimat sub forma funcţiei de transfer se poate transforma într-o reprezentare prin ecuaţii de stare utilizând funcţia tf2ss în următoarea linie de comandă:

[A,B,C,D] = tf2ss(num,den),

unde num şi den este numărătorul şi respectiv numitorul de tip polinomial a funcţiei de transfer.

Conversia Ecuaţii de stare - Funcţie de transfer Un sistem liniar scris sub forma ecuaţiei de stare se poate converti în

reprezentare funcţie de transfer dacă se apelează funcţia ss2tf din linia de comandă:

[num,den]=ss2tf(A,B,C,D). Conversia Funţie de transfer - Zerou-Pol-Factor de amplificare Un sistem liniar modelat prin funcţie de transfer se poate transforma în

reprezentare prin zerou-pol-factor de amplificare utilizând funcţia tf2zp apelată în linia de comandă

Page 41: Carte matlab 2008

Modelarea sistemelor liniare

41

[z,p,k]=tf2zp(num,den). Conversia Zerou-Pol-Factor de amplificare - Funţie de transfer Transformarea unui model din reprezentarea zerou-pol-factor de

amplificare în reprezentare funcţie de transfer se realizează prin apelul funcţiei zp2tf în comanda:

[num,den]=zp2tf(z,p,k). Conversia Zerou-Pol-Factor de amplificare - Ecuaţii de stare Reprezentarea zerou-pol-factor de amplificare se poate transforma în

reprezentarea prin ecuaţii de stare utilizând funcţia zp2ss [A,B,C,D]=zp2ss(z,p,k). Conversia Ecuaţii de stare - Zerou-Pol-Factor de amplificare Conversia modelului din reprezentarea prin ecuaţii de stare în

reprezentare prin zerou-pol-factor de amplificare se poate face prin apelul funcţiei ss2zp

[z,p,k]=ss2zp(A,B,C,D).

2.2.3 Extragerea datelor din model Rezolvarea unui sistem liniar este uşurată de folosirea mediului

MATLAB. Extragerea datelor din reprezentarea Funţie de transfer Polinoamele numărătorului şi numitorul unui sistem exprimat prin

variabila sys reprezintă informaţii în cazul funcţiei de transfer. Aceste polinoame se pot obţine prin utilizarea funcţiei tfdata din Matlab.

[num,den]=tfdata(sys).

Page 42: Carte matlab 2008

Modelarea sistemelor liniare

42

Extragerea datelor din reprezentarea Ecuaţii de stare Matricea de sistem A, matricea intrărilor B, matricea ieşirilor C şi

matricea de tranziţie D a unui sistem dat sys reprezintă informaţii care se pot extrage din reprezentarea prin ecuaţii de stare. Acestea se obţin prin apelul funcţiei 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ă informaţii care pot fi extrase din acest model. Aceste informatii se obţin prin apelul funcţiei zpk din Matlab.

[z,p,k]=zpkdata(sys).

2.3. Verificare 1. Obţineţi reprezentarea sub forma funcţiei de transfer, a ecuaţiilor de

stare şi a modelului zerou-pol-factor de amplificare pentru sistemele a caror comportamente sunt descrise prin ecuaţiile diferenţiale următoare:

)()()(3)(2)(5 2

2

txtxdtdtyty

dtdty

dtd

+=++− ; xyy =+ '''''2 .

2. Având date următoarele sisteme, extrageţi toate informaţiile

posibile.

321)( 2 ++

+=

ssssG ;

232)2)(1()( 23 −+−−

++=

ssssssG ;

110

325)(

++

+=

sssG .

3. Obţineţi soluţiile în domeniul timp pentru sistemele SISO prezentate mai sus.

Page 43: Carte matlab 2008

Conectarea sistemelor liniare

Lucrarea nr. 3

3.1 Obiectivele lucrării

- interconectarea sistemelor în Matlab - reprezentarea modelelor prin diagrame bloc - utilizarea SIMULINK în modelarea sistemelor

3.2 Consideraţii teoretice

Pentru a descrie diferite părţi componente ale unui sistem liniar invariant (LTI) vom utiliza reprezentările prin diagrame bloc. Fiecare bloc din sistem se reprezintă printr-o funcţie de transfer, care indică o relaţie dintre intrări şi ieşiri.

3.2.1 Conectarea serie (în cascadă)

Blocurile unui sistem LTI se pot interconecta în multe feluri. Dacă o

mulţime de blocuri sunt conectate în serie, ele se pot combina într-un singur bloc a cărui funcţie de transfer este produsul funţiilor de transfer individuale. Conectarea acestor blocuri se numeşte conectare în cascadă.

Page 44: Carte matlab 2008

Conectarea sistemelor liniare

44

Figura 3.1 reprezintă conectarea în cascadă a sistemelor, iar ecuaţia (3.1) reprezintă funcţia de transfer echivalent întregului sistem.

Figura 3.1 Conectare serie (în cascadă)

∏=

=

⋅⋅⋅=N

kk

N

sGsG

sGsGsGsG

1

11

)()(

)()()()( L

(3.1)

Fiecare element al sistem liniar se poate modela prin funcţie de

transfer, prin ecuaţii de stare, sau prin zerou-pol-factor de amplificare. În MATLAB, fiecare element se va reprezinta prin sys1, sys2, …, sysn, funcţia de transfer echivalent sys se va obţine prin înmulţire sau prin folosirea funcţiei series din MATLAB.

>> sys = sys1 * sys2 * … * sysn sau >> sys = series(sys1,sys2) Funcţia series poate fi aplicată odată doar pentru două elemente.

Ca exemplu, să considerăm două funcţii de transfer date de relaţiile (3.2) şi respectiv (3.3).

121012)( 231 +−+

+=

sssssG (3.2)

)3)(3(2)(2 −+

+=

ssssG (3.3)

Pentru a determina funcţia de transfer, se procedează astfel:

Page 45: Carte matlab 2008

Conectarea sistemelor liniare

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) >>

3.2.2 Conectarea paralelă Dacă două blocuri sunt conectate în paralel, atunci acestea se pot

reduce la un singur bloc a cărui funcţie de transfer echivalent este suma funcţiilor de transfer individual. Figura 3.2 reprezintă conectarea în paralel a sistemelor. Ecuaţia (3.4) reprezintă funcţia de transfer echivalent întregului sistem.

Figura 3.2. Conectarea în paralel a sistemelor

Page 46: Carte matlab 2008

Conectarea sistemelor liniare

46

∑=

=

+++=N

kk

N

sGsG

sGsGsGsG

1

11

)()(

)()()()( L

(3.4)

În MATLAB, fiecare element se reprezintă prin sys1, sys2, …,

sysn, funcţia de transfer echivalent sys se obţine prin adunare sau prin folosirea funcţiei parallel din MATLAB.

>> sys = sys1 + sys2 + … + sysn

sau >> sys = parallel(sys1,sys2) Funcţia parallel poate fi aplicată deodată doar la două elemente.

Ca exemplu, să considerăm încă odată funcţiile de transfer date de relaţiile (3.2) şi (3.3). Pentru a determina funcţia 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) >>

3.2.3 Conectare în buclă închisă Dacă două blocuri sunt conectate astfel încât semnalul de ieşire a

sistemului format de cele două blocuri va fi aplicat la intrarea sistemului, atunci conectarea lor se numeşte conectare în buclă închisă (Close-loop sau feedback). Figura 3.3 reprezintă conectarea în buclă închisă a celor două

Page 47: Carte matlab 2008

Conectarea sistemelor liniare

47

blocuri ce compun sistemul, iar relaţia (3.5) reprezintă funcţia de transfer echivalentă a întregului sistem.

Figura 3.3. Două blocuri în conexiune de tip buclă închisă

)()(1)(

)(21

1

sGsGsG

sG⋅

=m

(3.5)

Pentru a reduce acest sistem la o singură funcţie de transfer, se

utilizează funcţia feedback din MATLAB. >> sys = feedback(sys1,sys2,+1)

în cazul unei reacţii pozitive sau >> sys = feedback(sys1,sys2,-1) în cazul unei reacţii negative.

Să considerăm blocul a cărui funcţie de transfer este dată de relaţia

(3.2) ca fiind elementul de pe calea directă şi respectiv blocul a cărui funcţie de transfer este dată de relaţia (3.3) ca fiind elementul de pe calea inversă (reacţie). Aplicând o reacţie 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:

Page 48: Carte matlab 2008

Conectarea sistemelor liniare

48

2(s-3)(s+3)(s+0.5) --------------------------------------------- (s+10.23)(s+2.94)(s-2.99)(s^2-0.1795s+0.1223)

3.2.4 Reducerea diagramelor bloc Reduce un sistem prin folosirea funcţiilor series, parallel şi

feedback poate fi destul de complicat, de aceea se utilizează comenzile blkbuild şi connect. Prima dată se numără funcţiile de transfer pe care le conţine sistemul. Prin nblock se defineşte numărul total de blocuri al sistemului, iar bldblocks converteşte fiecare bloc la o reprezentare prin ecuaţii de stare, considerîndu-le independente (ne conectate). Comanda Matlab

[A,B,C,D] = connect(a,b,c,d,q,iu,iy)

reconectează blocurile corespunzător matricei q care specifică numărul de interconectări. Primul element de pe fiecare linie din matricea q reprezintă numărul blocului. Restul elementelor indică numărul intrărilor care sunt însumate la blocul respectiv. Dacă intrarea în sumator este negativă, numărul blocului va fi introdus cu semn negativ. iu şi iy sunt vectori de tip linie, indicând blocurile de intrare şi de ieşire. În final, pentru a obţine funcţia de transfer echivalent a întregului sistem, se utilizează funcţia ss2tf din MATLAB care face reconversia din forma ecuaţiilor de stare în reprezentarea funcţie de transfer. Pentru a exemplifica procedura descrisă mai sus vom considera sistemul a cărui diagramă bloc este prezentată în figura 3.4.

Figura 3.4. Exemplu de diagramă bloc.

Page 49: Carte matlab 2008

Conectarea sistemelor liniare

49

Astfel se pot pune în evidenţă următori paşi necesari pentru a determina funcţia de transfer echivalent.

Pasul 1 Numerotaţi fiecare bloc din schemă prezentată în figura 3.4 începând

cu 1. Vezi figura şi modul în care s-a făcut numerotarea. Pasul 2 Întroduceţi pentru fiecare bloc numărătorul şi numitorul sub formă

polinomială. Numărătorul şi numitorul blocului i se defineşte ca ni respectiv

di. Pentru diagrama bloc din figura precedentă numărătorul ş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 numărătorului trebuie să fie mai mic decât a numitorului,

altfel în fişierul script blkbuild va exista o eroare. Pasul 3 Specificaţi numărul total de blocuri. Folosiţi pentru aceasta variabila

nblocks. Întroduceţi fişierul script blkbuild pentru a construii modelul descris prin ecuaţii de stare.

>> nblocks = 8; >> blkbuild; Pasul 4 Scrieţi o matrice care să indică configuraţia diagramei bloc. Pentru

Figura 3.4, matricea arată astfel:

Page 50: Carte matlab 2008

Conectarea sistemelor liniare

50

>> q = [1 0 0 0 0 >> 2 1 –6 –7 –8 >> 3 2 0 0 0 >> 4 3 0 0 0 >> 5 4 0 0 0 >> 6 3 0 0 0 >> 7 4 0 0 0 >> 8 5 0 0 0] q = 1 0 0 0 0 2 1 -6 -7 -8 3 2 0 0 0 4 3 0 0 0 5 4 0 0 0 6 3 0 0 0 7 4 0 0 0 8 5 0 0 0 >> Pasul 5 Specificaţi intrările şi ieşirile sistemului. Pentru figura 3.4, intrarea

este conectată la primul bloc, iar ieşirea este conectată de blocul numărul 5. >> iu = [1]; >> iy = [5]; Pasul 6 Întroduceţi declaraţia următoare: >> [A,B,C,D]=connect(a,b,c,d,q,iu,iy); Pasul 7 Crează ecuaţiile de stare. >> sys = ss(A,B,C,D); Pasul 8 Folosiţi funcţia tf din MATLAB pentru a realiza conversia din

reprezentarea prin ecuaţii de stare în reprezentare prin funcţie de transfer.

Page 51: Carte matlab 2008

Conectarea sistemelor liniare

51

>> sys = tf(sys)

Transfer function:

2 ------------------------ s^3 + 13 s^2 + 56 s + 80 >>

3.3 Modelarea sistemelor în SIMULINK SIMULINK este o componenta a mediului MATLAB care prezintă o

interfaţă grafică cu utilizatorul, ceea ce permite reprezentarea mai uşoară a sistemelor, conectarea acestora şi studierea rezultatelor. Pentru a rula SIMULINK-ul, este necesar ca prima dată să pornim MATLAB-ul. Odată ce programul MATLAB rulează, se tastează comanda simulink. Va apare o fereastră cu denumirea “Simulink Library Browser” identic cu cea din figura 3.5.

Page 52: Carte matlab 2008

Conectarea sistemelor liniare

52

Figura 3.5. Fereastra Simulink Library Browser

Să încercăm 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 acţiune se crează noua fereastră vidă denumită “untitled” Care va conţine 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”. Repetăm acest

Page 53: Carte matlab 2008

Conectarea sistemelor liniare

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 proprietăţile blocurilor se va face dublu click pe fiecare element.

Figura 3.6. Fereastra aplicaţiei “untitled”

Page 54: Carte matlab 2008

Conectarea sistemelor liniare

54

3.4 Verificare

1. Determinaţi funcţia de transfer echivalentă pentru următoarele

sisteme conectate în serie folosind Matlab

32)(1 +

=s

sG ; 75

52)( 22 +−+

=ss

ssG ; )5)(5)(2

2)(3 jsjssssG

−+−−

=

2. Pentru sistemele de la punctul 1 să determinaţi funcţia de transfer

echivalent în cazul conectării lor în paralel. 3. Considerând figura 3.7 de mai jos şi utilizând funcţiile de transfer

de la punctul 1 şi 2, determinaţi funcţia de transfer echivalent a întregului sistem.

312)( 24 +

+=

sssG ;

224)( 25 +−

−=

ssssG ; 321

1

6 32)( −−−

++=

sssssG

4. Determinaţi răspunsul la semnalul treaptă pentru funcţia de transfer

echivalentă cu ajutorul funcţiei step(sys). 5. Reprezentaţi pe osciloscop răspunsul la semnal treaptă pentru

diagrama bloc din figura 3.7 care se va implementa în SIMULINK. Salvaţi fişierul.

Figura 3.7. Exemplu de diagramă bloc.

Page 55: Carte matlab 2008

Introducere în Simulink

Lucrarea nr. 4

4.1 Obiectivele lucrării

- prezentare generală - crearea fişierelor 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 funcţiilor de transfer, sumatorelor, dispozitivelor virtuale de intrare şi ieşire sau de alta natură. Simulink este integrat în MATLAB de aceea, transferul datelor între aceste componente se realizează foarte uşor. În această prezentare vom utiliza mediul grafic Simulink în modelarea sistemelor, implementarea şi simularea sistemelor de control.

Page 56: Carte matlab 2008

56 Introducere în Simulink

4.2.1 Lansare Simulink

Simulink se lansează din MATLAB tastând în Command Window

comanda: >> 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 afişează două ferestre. Prima reprezintă fereastra principală Simulink Library Browser, figura 4.2.

Page 57: Carte matlab 2008

Introducere în Simulink 57

Figura 4.2. Biblioteca de simboluri grafice din Simulink Library Browser

Cea de a doua fereastră care este destinată aplicaţiei apare cu denumire “untitled”. În acesata se va desena noul modelul.

4.2.2 Crearea unui model

În Simulink, un model este alcătuit dintr-o mulţime de blocuri interconectate între ele. Încărcarea unui model care a fost deja creat şi salvat se poate realiza din meniul File al ferestrei Simulink Library Browser sau din fereastra de comanda a MATLAB-ului. Să considerăm următorul model,

Page 58: Carte matlab 2008

58 Introducere în Simulink

Transfer Fcn

1

s+1Step Scope

pe care-l vom crea şi după care vom salva acest model într-un fişier al directorului de lucru Work din Matlab, sub denumirea simple.mdl. Pentru a reîncărca acest model în fereastra activă a aplicaţiei vom introduce comanda >>simple în Matlab Command Window. Sau în fereastra Simulink Library Browser vom deschide acest fişier tastând 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 doreşte crearea unui nou model, atunci se va selecta New din meniul File (sau combinaţia Ctrl+N).

4.2.3 Elemente de bază (blocuri şi linii)

În Simulink există două clase mari de obiecte: blocuri şi linii. Blocurile se utilizează în generarea, prelucrarea, combinarea, ieşirea şi afişarea semnalelor. Liniile se utilizează în transferul semnalelor dintre blocuri.

Page 59: Carte matlab 2008

Introducere în Simulink 59

Blocuri

Există mai multe clase de blocuri. Dintre acestea menţionam: Sources: Utilizate în generarea diferitelor semnale Sinks: Utilizate în afişarea semnalelor Discrete: Conţine elemente liniare în domeniu discret (funcţie de

transfer, model prin ecuaţii de stare, etc.) Linear: Conţine elemente liniare în domeniu continu (sumator,

amplificator, funcţie de transfer, ecuaţii de stare, etc.) Nonlinear: Conţine elemente neliniare (saturaţie, întîrziere, etc.) Connections: Multiplexor, Demultiplexor, etc. Un bloc poate să conţină una sau mai multe intrări şi de asemenea una sau mai multe ieşiri. Următorul bloc defineşte o funcţie de transfer cu o intrare şi o ieşire.

Linii

Liniile transmit semnale în direcţia indicată de săgeată. Liniile

trebuie să transmită întotdeauna semnale de la ieşirea unui bloc la intrarea altui bloc. O excepţie este cazul în care un semnal se bifurcă în două semnale. În acest caz punctul de ramificare se numeşte nod şi semnalul de intrare este acelaşi pentru cele două blocuri de ieşire, vezi figura 4.4 care se obţine din exemplul considerat iniţial.

Figura 4.4. Exemplu în care apare un nod de bifurcaţie

Page 60: Carte matlab 2008

60 Introducere în Simulink

Liniile nu pot să alimenteze cu semnal o altă linie. Acestea se pot combina cu ajutorul anumitor blocuri ce realizează operaţii 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ă ieşire (SISO) se utilizează în mod general semnalul de tip scalar. La un sistem cu intrări şi ieşiri 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 sfârşit de linie.

Analiza exemplului anterior – figura 4.3.

Acest model simplu este alcătuit 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 direcţia indicată de săgeată liniei la blocul liniar Transfer Function. Funcţia de transfer modifică semnalul de intrare şi scoate la ieşire noul semnal. Blocul Scope afişează semnalul asemănător unui osciloscop.

În Simulink există şi alte tipuri de blocuri, dar unele dintre acestea vor fi discutate mai târziu. Momentan vom examina doar aceste trei blocuri.

Modificare bloc

Un bloc se poate modifica făcând dublu-click pe el. De exemplu, prin dublu-click pe blocul "Transfer Fcn" din modelul examinat, se va afişa următoarea fereastră de dialog, figura 4.5.

Page 61: Carte matlab 2008

Introducere în Simulink 61

Figura 4.5. Fereastra de dialog

Această fereastră conţine câmpuri pentru numărătorul şi numitorul

funcţiei de transfer. Tastând coeficienţii numărătorului şi numitorului sub forma a doi vectori, practic se introduce funcţia de transfer. De exemplu, pentru a modifica numitorul la expresia s^2+2s+4, se va tasta în câmpul 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 funcţia de transfer

Rezultatul se observă în noua valoare a numitorului funcţiei de transfer.

Page 62: Carte matlab 2008

62 Introducere în Simulink

Dacă se face dublu-click pe blocul "step", se afişează următoarea fereastră de dialog, figura 4.7.

Figura 4.7. Fereastra de dialog

Parametrul implicit din fereastra de dialog generează o funcţie treaptă

unitară la momentul de timp t=1 sec. Fiecare dintre aceste câmpuri 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 afişa următoarea fereastră pentru osciloscop, figura 4.8.

Figura 4.8. Fereastra osciloscopului

Page 63: Carte matlab 2008

Introducere în Simulink 63

Atunci cînd se execută simularea semnalul care intră în osciloscop este afişat pe ecran.

4.2.4 Exemplu de simulare

Pentru simualre, vom utiliza fişier cu modelul anterior simple2.mdl. Se va deschide fişierul în Simulink pe baza instrucţiunilor anterioare. Astfel că se va deschide următoarea fereastră ce conţine diagrama bloc a modelului.

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 combinaţia de taste Ctrl-T din fereastra modelului.

Figura 4.10. Pornirea simulării

Simularea se execută foarte rapid, iar fereastra osciloscopului cu

rezultatul obţinut va arat ca cea din figura 4.11.

Page 64: Carte matlab 2008

64 Introducere în Simulink

Figura 4.11. Rezultatul simulării

Notă: semnalul de ieşire (desenat cu galben) este foarte mic relativ la axa osciloscopului. Pentru a se putea studia mai bine semnalul, se foloseşte butonul de autoscalare (binoclu), după care semnalul va arata ca în figura 4.12.

Figura 4.12. Rezultat simulare cu autoscalare

Page 65: Carte matlab 2008

Introducere în Simulink 65

Notă: răspunsul la treapta de semnal începe la 1=t . 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 funcţiei de transfer [1 20 400]

Rulăm din nou simularea (apăsaţi Ctrl-T) şi să observăm cum arată acum semnalul pe osciloscop. Se va activa butonul de autoscalare şi ieşirea trebuie să se obţină identică cu cea din figura 4.13.

Figura 4.13. Rezultat simulare cu autoscalare

Notă: butonul de autoscalare modifică doar axa verticală. Deoarece noua funcţie de transfer are un răspuns foarte rapid, faza de regim tranzitoriu apare ca foarte îngustă în comparaţie 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 afişa următoarea fereastră de dialog, figura 4.14.

Page 66: Carte matlab 2008

66 Introducere în Simulink

Figura 4.14. Fereastra opţiuni pentru parametri de simulare

Există o serie de opţiuni pentru parametri de simulare; noi vom discuta

doar despre timpul de start şi timpul de stop, cu care practic fixăm perioada de simulare. Modificăm timpul de Start de la 0.0 la 0.8 (deoarece treapta ajunge valoarea 1 la momentul de timp 1=t ). Vom modifica şi timpul de Stop de la 10.0 la 2.0, pentru a afişa un timp mai scurt. Acum se poate închide fereastra de dialog şi se revine la simulare. După ce s-a apăsat butonul de autoscalare, osciloscopul arată noul răspuns ca cel din figura 4.15.

Page 67: Carte matlab 2008

Introducere în Simulink 67

Figura 4.15. Rezultat simulare cu autoscalare

4.3 Modelarea sistemelor

În această secţiune vom studia modul de implementare a modelelor cu ajutorul blocurilor din bibliotecile Simulink. Să propune următorul sistem, figura 4.16.

Figura 4.16. Modelul unui sistem de control cu feedback

Page 68: Carte matlab 2008

68 Introducere în Simulink

Prima dată se achiziţionează din biblioteci toate blocurile necesare. După care se modifică blocurile astfel încât să corespundă cu cele date în model. Urmează conectarea blocurilor cu ajutorul liniilor, iar în final se simulează întregul sistem.

Achiziţionarea blocurilor

Urmăriţi următorii paşi necesari în realizarea modelului considerat.

Se va crea un model nou prin (New din meniul File sau Ctrl-N) deschiderea unei noi ferestre de aplicaţie, figura 4.17.

Figura 4.17. Fereastra iniţială a aplicaţiei

Dublu-click pe simbolul garafic Sources din fereastra principală Simulink Library Browser, figura 4.18.

Page 69: Carte matlab 2008

Introducere în Simulink 69

Figura 4.18. Simulink library browser

Se deschide biblioteca Sources ce conţine blocurile generatoare de semnal. Click pentru a afla mai multe informaţii despre blocuri.

Page 70: Carte matlab 2008

70 Introducere în Simulink

Figura 4.19. Biblioteca de simboluri Sources

Acum se aduce blocul Step din fereastra Sources în partea stângă a ferestrei de modelare, figura 4.20.

Figura 4.20. Fereastra aplicaţiei

Page 71: Carte matlab 2008

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 asemănător figurii de mai jos. Alinierea exactă nu este importantă deoarece acesta se poate modifica ulterior. Doar încercaţi să găsiţi poziţia relativ corectă. Observaţi că blocul Transfer Fcn adus a doua oară are un 1 după nume. Acesta deoarece nu pot să existe două blocuri cu aceaşi nume. Motiv pentru care, Simulink în mod automat ataşează un număr după nume pentru a realiza diferenţa între cele două blocuri.

Figura 4.21. Fereastra aplicaţiei

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 conţine modelul ce trebuie realizat, figura 4.22.

Page 72: Carte matlab 2008

72 Introducere în Simulink

Figura 4.22. Fereastra aplicaţiei

Modificarea blocurilor

Se vor realiza următorii paşi pentru a face modificarea în model.

• Dublu-click pe blocul Sum. Deoarece se doreşte ca intrarea a doua să fie scăzută, se introduce +- în câmpul 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 stânga Transfer Fcn. Se modifică numărătorul la [1 2] şi numitorul la [1 0]. Se închide fereastra de dialog.

• Dublu-click pe cealalalt bloc Transfer Fcn bloc. Numărătorul rămâne [1], dar se schimbă numitorul la [1 2 4]. Se închide fereastra de dialog. Modelul va trebui să arate ca în fereastra 4.23.

Figura 4.23. Fereastra aplicaţiei

Page 73: Carte matlab 2008

Introducere în Simulink 73

Se va modifica numele primului bloc Transfer Fcn prin click pe unul dintre cuvinte "Transfer Fcn". Se va afişa 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 aplicaţiei

Analog, se modifică numele blocului Transfer Fcn la "Plant". Acum toate blocurile sunt introduse corespunzător, iar modelul trebuie să arate ca în figura 4.25.

Figura 4.25. Fereastra aplicaţiei

Conectarea blocurilor cu linie

Acum că toate blocurile sunt aliniate corect urmează conectarea lor. Se

vor executa următorii paşi.

Page 74: Carte matlab 2008

74 Introducere în Simulink

Se apăsă pe mouse şi se trage o linie de la ieşirea blocului Step la intrarea pozitivă a blocului Sum. Lăsaţi butonul mouse-lui numai dacă aţi ajuns la intrarea potrivită. Vezi următoarea figura 4.26.

Figura 4.26. Fereastra aplicaţiei

Linia rezulată este cu o săgeată înnegrită. Dacă săgeata este fără haşură, înseamnă că linia nu s-a conectat la bloc, vezi următoarea figură 4.27.

Figura 4.27. Fereastra aplicaţiei

Se face click pe săgeată (considerată acum ca ieşire) şi se duce linia

pâna la intrarea blocului sumator. Sau altfel, dacă doriţi să redesenaţi linia pentru că s-a conectat greşit, 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ă.

Page 75: Carte matlab 2008

Introducere în Simulink 75

Conectaţi 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ă obţineţi următoarea schemă, figura 4.28.

Figura 4.28. Fereastra aplicaţiei

Linia rămasă netrasată este reacţia sistemului care conectează ieşirea

din Plant la intrarea negativă a blocului Sum. Pentru conectarea liniei se ţine apăsat tasta Ctrl cât timp se trage de mouse din punctul de unde vrem să exită conexiunea. În acest caz, se porneşte din partea dreaptă a blocului Plant. Desenaţi până când obţineţi colţul din stânga jos a reacţiei respective, vezi figura 4.29.

Figura 4.29. Fereastra aplicaţiei

Page 76: Carte matlab 2008

76 Introducere în Simulink

Acum, săgeata se tratează ca o ieşire a unui terminal. Desenăm linia de aici până la intrarea negativă a blocului Sum.

Figura 4.30. Fereastra aplicaţiei

Acum putem să aliniă blocurile pentru a obţine o schemă bloc cu un

aspect plăcut. Pentru a modifica poziţia unui bloc se selectează şi se trage cu mouse-ul. Liniile vor rămâne conectate şi se vor redesena automat. Analog, dacă se trage de colţ sau de mjlocul unei linii acestea se vor deplasa. Porniţi din partea stângă şi mutaţi fiecare linie până când vor fi orizontale. Adaptaţi spaţiul dintre blocuri pentru a lăsa loc etichetelor. Modelul trebuie să arate ca în figura 4.31.

Figura 4.31. Fereastra aplicaţiei

Î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

Page 77: Carte matlab 2008

Introducere în Simulink 77

doriţi să existe această etichetă. Se va începe cu dublu click deasupra liniei ce leagă blocul Step de blocul Sum. Se afişează un chenar gol în interiorul căruia este cursorul de editare, vezi figura 4.32 de mai jos.

Figura 4.32. Fereastra aplicaţiei

Se va tasta (r), etichetând astfel semnalul de referinţă după care se face click în exterior pentru a termina editarea. Etichetaţi în acelaş mod cu (e) eroarea, cu (u) semnalul de control şi cu (y) ieşirea. Modelul final arată ca în figura 4.33.

Figura 4.33. Fereastra aplicaţiei

Pentru a salva modelul, se va selecta Save As din meniul File şi se va introduce numele modelului.

Page 78: Carte matlab 2008

78 Introducere în Simulink

Simulare

Modelul fiind acum complet se poate simula. Selectaţi 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 obţine figură 4.34 de mai jos.

Figura 4.34. Rezultat simulare

Preluarea variabilelor din MATLAB

Î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 următoarea comandă Matlab: >>K=2.5 după care apăsaţi Enter. Această variablă se poate acum utiliza în Simulink. Dublu-click pe blocul Gain şi întroduceţi variabila K în câmpul destinat factorului de amplificare.

Page 79: Carte matlab 2008

Introducere în Simulink 79

Închideţi fereastra de dialog. Acum blocul Gain din Simulink arată variabila K şi nu un număr.

Figura 4.35. Fereastra aplicaţiei

Rulaţi din nou sistemul şi urmăriţi semnalul de ieşire pe osciloscop.

Rezultatul trebuie să fie identic cu cel obţinut mai sus.

Page 80: Carte matlab 2008

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 următoare. Pentru a încerca aceasta, modificaţi în MATLAB, valoarea lui K, prin întroducerea în Command Window a următoarei comandă: K=5

Simulaţi din nou sistemul, deschideţi osciloscopul şi apăsaţi butonul de autoscalare. O să vedeţi noua ieşire, dar acum cu un factor de amplificare mai mare, figura 4.37.

Page 81: Carte matlab 2008

Introducere în Simulink 81

Figura 4.37. Rezultat simulare

Page 82: Carte matlab 2008

82 Introducere în Simulink

Page 83: Carte matlab 2008

Analiza regimului tranzitoriu

Lucrarea nr. 5

5.1 Obiectivele lucrării - se definesc polii şi zero-urile pentru sistemele liniare - se determină parametrii răspunsului în domeniul timp - se determină răspunsul sistemelor; - se determină tipul răspunsului: oscilant, subamortizat, amortizat

critic sau supraamortizat.

5.2 Consideraţii teoretice

Analiza şi proiectarea sistemelor de control trebuie să ţină seama de:

• răspunsul tranzitoriu, • eroarea regimului stabilizat, • stabilitatea.

Această lucrare de laborator se bazează pe prima consideraţie

menţionată, analiza răspunsului tranzitoriu – pentru un sistem dat. Pentru a proiecta un sistem de control, trebuie să se treaca prin mai

multe etape. În primul rând, modul de comportament al sistemelor (electrice

Page 84: Carte matlab 2008

Analiza regimului tranzitoriu

84

şi/sau mecanice) care se vor analiza trebuie să fie descrie printr-un set de ecuaţii diferentiale care caracterizează funcţionarea acestora (legile fizice ale domeniului – legile lui Kirchoff şi respectiv legile lui Newton). Astfel că, metode precum cea de rezolvare a ecuaţiilor diferenţiale (Newton) sau cea a trasformatei Laplace se vor folosi pentru a determina răspunsul în timp a diferitelor tipuri de sisteme. Pasul următor în proiectarea unui sistem de control consta în analiza răspunsului în domeniul timp a sistemului în sine, lucru care reprezintă esenţa acestei lucrari de laborator.

5.2.1 Zerourile şi polii unui sistem

Polii şi zerourile joacă un rol esenţial în analiza şi proiectarea sistemelor de control. Polii funcţiei de transfer sunt daţi de acele valori ale variabilei complexe ωσ js += a transformatei Laplace pentru care funcţia de transfer devine infinită. Pe de alta parte, zerourile sunt valorile lui s care fac ca funcţia de transfer să devină zero.

O metodă de vizualizare a locului polilor si zerourilor este reprezentarea grafică în planul complex s. În MATLAB polii si zerourile pot fi reprezentaţi grafic folosind functia pzmap care genereaza reprezentarea pol-zero pentru funcţia de transfer pe care o desemnăm prin variabila sys.

Ca exemplu, să considerăm funcţia de transfer )(sG exprimată prin:

13212)( 23

2

−++++

=sss

sssG (5.1)

Folosind MATLAB pentru a evidentia numaratorul si numitorul vom

avem:

>> num = [1 2 1]; >> den = [1 2 3 –1]; >> roots(num) ans = -1 -1 >> roots(den)

Page 85: Carte matlab 2008

Analiza regimului tranzitoriu

85

ans =

-1.1378 + 1.5273i -1.1378 - 1.5273i 0.2757

>>

După cum se poate vedea din exemplul de mai sus, s-au găsit două

zerouri, ambele de coordonate (-1,0), precum şi trei poli dintre care doi poli complex conjugaţi localizaţi î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.

Page 86: Carte matlab 2008

Analiza regimului tranzitoriu

86

Pole-Zero Map

Real Axis

Imag

inar

y Ax

is

-1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

polizerou

Figura 5.1. Diagrama poli-zerouri

5.2.2 Parametrii răspunsul tranzitoriu

Unul dintre obiective proiectării sistemelor de control este de a obţine un răspuns tranzitoriu în concordanţă cu specificaţiile impuse iniţial. Analiza răspunsului tranzitoriu implică determinarea următorilor parametrii:

- timpul de creştere - rt , - timpul de intrare în regim stabilizat - sst , - timpul de atingere a supracreşterii maxime - pt , - supracreşterea maximă - PO , exprimată în %,

precum şi determinarea constantelor sistemului. 5.2.3 Analiza sistemelor de ordinul I Un sistem de ordinul întâi poate fi descris ca un sistem care are un

singur pol, fiind exprimat printr-o funcţie de transfer de forma:

Page 87: Carte matlab 2008

Analiza regimului tranzitoriu

87

asasG+

=)( (5.2)

Dacă acestui sistem îi aplicăm la intrare o treaptă unitară, atunci

răspunsul sistemului va fi:

)()(

)()()(

assasY

sGsRsY

+=

⋅= (5.3)

Aplicând transformata Laplace inversă acestei expresii va rezulta:

atnf etytyty −−=+= 1)()()( (5.4)

Parametrii care caracterizează performantele răspunsului (de exemplu

constanta de timp a sistemului, timpul de creştere şi timpul de stabilizare) pot fi evaluaţi din această expresie. Constanta de timp a răspunsului la semnalul treaptă este timpul necesar pentru ca valoarea ieşirii să scadă la 37% din valoarea iniţială. Alternativ, costanta de timp este timpul în care răspunsul 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 întâi în MATLAB, trebuie facută reprezentarea grafică a răspunsului la treaptă. Funcţia step(sys) este o comanda din MATLAB care plotează răspunsul treaptă a sistemului sys. De asemenea, functia impulse(sys) este o comandă care plotează răspunsul sistemului la semnalul impuls aplicat sistemului sys.

Să considerăm funcţia de transfer 5

5)(+

=s

sG .

Pentru reprezentarea grafică a răspunsului la treapta unitate a lui )(sG

avem: >> num = 5; >> den = [1 5]; >> sys = tf(num,den)

Page 88: Carte matlab 2008

Analiza regimului tranzitoriu

88

Transfer function: 5 ----- s + 5 >> step(sys) După cum se poate vedea în figura 5..2, răspunsul treaptă a sistemului

de ordinul I este dat de diferenţa dintre )exp( at− şi semnalul unitate, adică este )exp(1 at−− .

Figura 5.2. Răspunsul treapta pentru sistemul de ordinul I

Dacă pe graficul obţinut se pune cursorul săgeată şi se face click,

atunci se va obţine pentru acel punct valoarea amplitudinii şi timpul aferent acestei valori, figura 5.3.

Page 89: Carte matlab 2008

Analiza regimului tranzitoriu

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 creştere - rt . Timpul de creştere este definit ca fiind timpul necesar formei de undă să creasca de la 0.1 pâna la 0.9 din valoarea sa finală. Timpul de creştere este dat de relaţia:

atr

2,2= (5.5)

Al treilea parametru care este de asemenea evaluat în analiza unui

sistem de ordinul I este timpul de stabilizare - st . 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 relaţia:

ats

4= . (5.6)

Page 90: Carte matlab 2008

Analiza regimului tranzitoriu

90

5.2.4 Analiza sistemelor de ordinul II

Un sistem de ordinul II este definit de relatia:

22 2)(

nn

n

sssG

ωςωω

++= (5.7)

unde nω este frecvenţa naturală proprie în ipoteza că toate amortizările sunt înlaturate. Valorile acestui parametru ne dau indicaţii referitoare la viteza de răspuns a sistemului. Cel de-al doile parametru, ς pe de alta parte, este o mărime adimensională şi reprezintă raportul sau factorul de amortizare. Raportul de amortizare ne oferă o informaţie despre natura răspunsului tranzitoriu a sistemului (dacă acest răspuns va fi unul oscilant sau amortizat). De asemenea ne poate oferi o informaţie asupra numărul de supracreşteri şi oscilaţii pe care le poate avea răspunsul unui sistem de ordinul II. Prin urmare vom distinge urmatoarele cazuri posibile în funcţie de valoarea parametrului ζ. Cazul 1. 0=ζ , sistem oscilator Amplasarea celor doi poli este pe axa imaginară - ωj , a planului s, unde de această dată

njs ω±= deoarece 0=σ . Cazul 2. 1>ζ , sistem supraamortizat Amplasarea celor doi poli în planul complex s este dată de valoarea acesora 12 −±= ςωςω nns . Cazul 3. 1=ζ , sistem critic amorsat Amplasarea polilor în acest caz este dată de relaţia ns ςω−= (identici) Cazul 4. 10 << ζ , sistem subamortizat Polii sistemului sunt exprimaţi de relaţia:

Page 91: Carte matlab 2008

Analiza regimului tranzitoriu

91

21 ςωςω −±−= nn js .

Din punct de vedere practic răspunsul tranzitoriu al unui sistem de ordinul II prezintă deseori oscilaţii înainte ca să ajungă la un regim stabilizat.

Răspunsul subamortizat la o intrare treaptă a sistemului de ordinul II, supus unor condiţii iniţiale, este dat de relaţia:

)sin(11)( θβωβ

ςω +−= − tetc ntn (5.8)

unde 21 ςβ −= şi

ςβθ 1tan −= (5.9)

Criteriile de performanţă care sunt folosite pentru a caracteriza

răspunsul tranzitoriu la o intrare treaptă în acest caz, includ analiza timpul de crestere, a timpul de vîrf, a supracreşteri maxime, şi a timpul de stabilizare. Timpul de creştere este timpul necesar răspunsului sistemului să creasca de la 10% la 90% din valoarea finală, la fel ca la un sistem de ordinul I.

Timpul de vîrf este timpul necesar răspunsului la trepta să atinga primul şi cel mai mare vîrf de creştere:

21 ςω

π

−=

n

pt (5.10)

Procentul de supracreştere maximă este definit ca raportul dintre

valoarea maximă minus valoarea finală, având expresia:

%100%21 xePO ς

ξπ

−−

= (5.11)

Timpul de stabilizare - sst , este timpul necesar ca răspunsul la trepta al sistemului de ordinul II să prezinte oscilaţii mici (sub 5%) în jurul valorii finale. În mod uzual, dacă se consideră că variaţiile oscilaţiilor se încadrează în pragul de 2% din valoarea finală, atunci timpul de atingere a regimului stabil se poate determina cu relaţia:

Page 92: Carte matlab 2008

Analiza regimului tranzitoriu

92

nsst

ςω4

= (5.12)

Răspunsul sistemului de ordinul II la treaptă În această secţiune vom analiza influienţa pe care o are adăugarea unui

pol şi/sau zerou asupra răspunsului unui sistem standard de ordinul II, atunci când la intrare aplicăm un semnal treaptă unitară.

Funcţia de transfer în buclă deschisă şi funcţia de transfer în bucla închisă pentru un sistem standard de ordinul II sunt date de relaţiile (5.13). Răspunsul sistemului în buclă închisă la semnalul treaptă unitară, pentru un factor de atenuare 5.0=ζ şi o frecvenţă naturală sec/4radn =ω este prezentat în figura 5.4. Polii sistemului în buclă închisă sunt j3.46 2- s ±= .

)2()(

2

n

n

sssG

ζωω

+= ; 22

2

2)()(

nn

n

sssRsY

ωζωω

++= (5.13)

Figura 5.4. Răspunsul sistemului de ordinul II

Page 93: Carte matlab 2008

Analiza regimului tranzitoriu

93

Răspunsul sistemului de ordinul II modificat cu un zerou

Sistemul standard de ordinul II nu conţine zerouri în funcţia de transfer. Dacă un astfel de sistem este modificat prin introducerea unui zerou, atunci supracreşterea şi timpul de stabilizare se vor modifica în mod semnificativ, după cum vom arăta mai jos. Să presupunem că sistemul standard de ordinul II în buclă deschisă este modificat prin inserarea unui zerou. Factorul de amplificare al funcţiei de transfer se va modifica cu termenul 1/z, astfel că constanta vitezei de eroare nu îşi schimbă valoarea iniţială atunci când zeroului introdus îşi modifică valoarea. Valorile pentru factorul de atenuare -ζ şi frecvenţa naturală - nω , ramân neschimbate.

)2()()(

2

n

n

sszssG

ζωω

++

= ; 222

2

)/2()(

)()(

nnn

n

szszs

sRsY

ωωζωω

++++

= (5.14)

Vom considera 6 valori distincte pentru zeroul introdus în forma standard a sistemului de ordinul II. Fiecare din locaţiile alese se va considera în partea stînga 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 fixaţi la valorile s = 0 si s = -4. Răspunsurile corespunzatoare sistemului, pentru fiecare valoare distinctă a zeroului, la semnalul treaptă unitară sunt prezentate în figura 5.5. Acestea pot fi comparate cu răspunsul sistemului standard de ordinul II, figura 5.4.

Page 94: Carte matlab 2008

Analiza regimului tranzitoriu

94

Figura 5.5. Răspunsul sistemului de ordinul II modificat cu un zerou

Valorile polilor sistemului în buclă închisă sunt prezentate în tabelul următor.

z = 0.2 z = 0.5 z = 1 z = 2 z = 5 z = 10 -83.8091 -35.5499 -19.1652 -10.4721 3.6000+j1.7436 -2.8000+j2.8566 -0.1909 -0.4501 -0.8348 -1.5279 -3.6000-1.7436 -2.8000-j2.8566

Comparaţi valoarea reală a polilor din vecinatatea axei imaginare jω

cu timpul corespunzător de intrare în regim stabilizat al răspunsului la semnalul treaptă. De asemenea menţionăm că pentru primele 4 valori ale zeroului z (0.2, 0.5, 1, 2) cei doi poli corespunzători sistemului în buclă închisă sunt reali, astfel că nu există supracreştere la răspunsul treaptă a sistemului. Aceste situaţii sunt similare cu cazul de răspuns supraatenuat pentru sistemul standard de ordinul II. Pentru ultimele două valori ale zeroului z (5, 10), polii sistemului sunt complecşi conjugaţi şi prin urmare există o supracrestere a răspunsului la semnalul treaptă. Pentru 5=z valoarea efectivă a factorului de atenuare este 9.0=ζ , căruia îi corespunde o supracrestere de 0.15%. Pentru 10=z valoarea efectivă a factorului de

Page 95: Carte matlab 2008

Analiza regimului tranzitoriu

95

atenuare este 7.0=ζ , căruia îi corespunde o supracrestere de 4.6%. Deşi valorile supracreşterilor sunt crescatoare în fiecare din cazurile anterioare, totuşi legătura dintre parametrii ce caracterizează răspunsul în timp la semnalul treaptă şi parametrii sistemului - ζ (factorul de atenuare), respectiv nω (frecvenţa naturală), rămîne şi în aceasta situaţie (sistem de ordinul II cu zerou suplimentar) încă valabilă. Timpul de creştere se măreste dacă valoarea zeroului suplimentar se deplasează spre stînga în planul complex s. Atunci zeroul suplimentar este în vecinătatea axei imaginare ωj şi de asemenea, sistemul în buclă închisă prezintă un pol tot în vecinătatea axei imaginare ωj . Prin urmare, timpul de atingere a regimului stabilizat este mai mare decît în cazul unui sistem standard de ordinul II.

Răspunsul sistemului de ordinul II modificat cu un pol

Sistemul standard de ordinul II prezintă doi poli pentru funcţia de transfer. Dacă sistemul se modifică prin includerea unui al treilea pol, atunci timpul de atingere a regimului stabiliza şi supracreşterea vor fi dependente de locatia noului pol, depinzînd de poziţia în planul complex s (semiplanul stîng 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 relaţie. Atunci noua funcţie de transfer a sistemului (modificat) în buclă închisă este dată de relaţia a doua.

))(2()(

2

pssspsGn

n

++=

ζωω ;

ppsspszs

sRsY

nnn

n223

2

2)2()(

)()(

ωζωζωω

+++++

= (5.15)

Vom considera 5 valori pe care la poate lua polul introdus suplimentar. Fiecare dintre aceste valori se găseşte în semiplanul stîng 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 0=s si

4−=s . Răspunsurile sistemului în buclă închisă pentru diferitele valori ale

Page 96: Carte matlab 2008

Analiza regimului tranzitoriu

96

polului suplimentar p sunt prezentate în figura 5.6. Acestea pot fi comparate cu răspunsul aferent unui sistem de ordinul II standard. Locaţiile polilor pentru sistemul în buclă închisă sunt aratate în tabelul de mai jos. Să remarcăm că acum avem 3 poli pentru sistemul în buclă închisă. Comparăm valoarea părtii reala a polului aflat cel mai aproape de axa imaginară ωj cu timpul de stabilizare corespunzator răspunsului la semnalul treaptă. De asemenea, comparăm 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

efectiv ( )( ) ⎟⎟

⎞⎜⎜⎝

⎛⎟⎟⎠

⎞⎜⎜⎝

⎛= −

clprealclpimag

eff1tancosζ . Să remarcăm că timpul de atingere a

regimului stabilizat cît şi supracresterea, vor descreşte dacă polul suplimentar se deplasează către stînga în planul complex s. Totuşi, chiar şi cu o valoare mare 20−=s parametrii de răspuns – supracreşterea şi timpul de intrare în regim stabilizat, vor avea valori mai mari decit în cazul răspunsului unui sistem standard de ordinul II.

Figura 5.6. Răspunsul sistemului de ordinul II modificat cu un pol

Page 97: Carte matlab 2008

Analiza regimului tranzitoriu

97

p = 1 p = 2 p = 5 p = 10 p = 20 -4.8549 -5.5926 -7.7513 -11.7551 -20.9054

-0.0725+j1.8139 -0.2037+ j2.3833

-0.6244+j3.1514 -1.1224+j3.5144 -1.5473+j3.5935

-0.0725- j1.8139 -0.2037- j2.3833

-0.6244-j3.1514 -1.1224-j3.5144 -1.5473 - j3.5935

Răspunsul sistemului de ordinul superior În practică, analiza comportamenrul unui sistem de ordin superior sau

a unui sistem cu zerouri pe baza unor aproximari făcute asupra unui sistem de ordinul II este foarte utilă. Deşi calculele făcute în cazul unui sistem standard de ordinul II nu vor conduce în mod exact la rezultate corespunzatoare acestor sisteme, totuşi aceste rezultate pot furniza o acceptabilă aproximare în cele mai multe cazuri. 5.3 Verificare Determinaţi parametrii de răspuns în domeniul timp pentru sistemele următoare:

1. )5s2s)(2s(

10s8s4)s( 2

2

+−+++

=H ; 2. 3

10)(+

=s

sH ; 3. 16

52)( 2 +−+

=ss

ssH ;

4. )1s)(2s)(j2s)(j2s(

25s5s)s(2

++−+++

=H ; 5. [ ] xy

uxxdtd

⋅=

⋅⎥⎦

⎤⎢⎣

⎡+⋅⎥

⎤⎢⎣

⎡ −−=

0101

0123

;

6. 2212)( 2

2

++++

=sssssH .

7. Determinaţi parametrii de răspuns în timp pentru ecuaţiile diferenţiale date folosind descompunerea în fracţii partiale.

Page 98: Carte matlab 2008

Analiza regimului tranzitoriu

98

)(2)(15)(5)(10)(25 2

2

tutudtdtyty

dtdty

dtd

+=+−

8. Determinaţi parametrii de răspuns în timp pentru ecuaţiile diferentiale date folosind orice metodă.

1)(3)(2)()(5)(5 2

2

−+=++− tutudtdtyty

dtdty

dtd

9. Determinaţi răspunsul la semnalul treaptă pentru circuitele din figura următoare.

Pentru circuitul RLC se vor considera următoarele seturi de valori: - R = 1K, L = 1mH, C = 1uF (Supra-atenuat) - R = 200, L = 1mH, C = 1uF (Critic atenuat) - R = 40, L = 1mH, C = 1uF (Sub-atenuat) 10. Determinaţi parametrii de răspuns la semnalul treaptă pentru filtrul trece jos din figura următoare:

Page 99: Carte matlab 2008

Analiza regimului tranzitoriu

99

11. Ce se va întampla cu circuitul din figura următoare după ce intrerupatorul va fi închis. Explicaţi.

Page 100: Carte matlab 2008

Analiza regimului tranzitoriu

100

Page 101: Carte matlab 2008

Analiza regimului stabil

Lucrarea nr. 6

6.1 Obiectivele lucrării

- determină erorilor regimului stabil - alegerea parametrilor unui sistem pentru o eroare dată - introduce conceptului de sensibilitate a sistemului - prezintă erorilor regimului staţionar în cazul sistemele

modelate prin ecuaţii de stare

6.2 Consideraţii teoretice Analiza şi proiectarea unui sistem de control se axeaza pe 3 tipuri de

specificaţii: - răspunsul regimului tranzitoriu; - erorile regimului stabil (permanent); - stabilitatea sistemului. Elementele de răspuns în regim tranzitoriu au fost introduse în

lucrarea precedentă. Această lucrare se concentrează asupra celei de-a doua

Page 102: Carte matlab 2008

Analiza regimului stabil

102

specificaţii, adică analiza regimului (stabil) permanent pentru sistemele continuue în timp.

6.2.1 Erori ale regimului staţionar la semnale de test Erorile în regim stationar, arată diferenţa dintre intrarea şi ieşirea unui

sistem, când timpul tinde la infinit. Intrările de test folosite pentru determinarea erorilor din regimul permanent sunt descrise în tabelul urmator.

Tabelul 6.1.

Semnal de

intrare

Interpretarea fizica Funcţia de timp

Transformata Laplace

treaptă Constanta de poziţie )(1 t s1

rampă Constanta de viteză t 2

1s

parabolă Constanta de acceleraţie

2t 3

1s

6.2.2 Erorile statice ale sistemelor cu reacţie negativă unitară

În figura 6.1 se prezintă un sistem cu reacţie negativă în care funcţia

de transfer pe calea directă este )(sG , iar funcţia de transfer pe calea inversă este 1)( =sH .

Page 103: Carte matlab 2008

Analiza regimului stabil

103

Examinînd diagramadin figură, se observă că eroarea - )(sE , este dată de diferenţa dintre intrare de referinţă )(sR şi ieşire )(sC , şi este de forma:

)()()( sCsRsE −= (6.1)

Ieşirea - )(sC , este egală cu produsul dintre intrare - )(sR , şi funcţia

de transfer, )(sG , fiind de forma:

)()()( sGsEsC ⋅= (6.2) Putem substitui relaţia (6.2) în (6.1) rezultând soluţia pentru eroarea -

)(sE după cum urmează:

)(1)()(sG

sRsE+

= (6.3)

Aplicând teorema valorii finale, putem determina eroarea de regim

stationar - )(∞e , în forma:

)(1)(lim)(

0 sGsRse

s +⋅

=∞→

(6.4)

dacă se cunoaşte intrarea )(sR şi funcţia de transfer )(sG a sistemului Dacă aplicăm diferite intrări de test pentru )(sR , putem trage concluzii

privitoare la relaţiile care există între sistemul în buclă deschisă - )(sG şi natura erorilor din regimul staţionar - )(∞e .

E(s) R(s)

Figura 6.1. Sistem cu reacţie unitară negativă

)(sG

C(s)

+-

Page 104: Carte matlab 2008

Analiza regimului stabil

104

Pentru o intrare de test de tip treaptă, erorile din regimul staţionar se pot determina cu relaţia:

)(11lim)(

0 sGe

s +=∞

→. (6.5)

Pentru o intrare de tip rampă, erorile din regimul staţionar se pot

determina cu relaţia:

)(1lim)(

0 sGse

s ⋅=∞

→. (6.6)

Iar, pentru o intrare de test parabolică, erorile la regim permanent se

pot determina cu relaţia:

)(1lim)( 20 sGs

es ⋅

=∞→

. (6.7)

6.2.3 Constante de eroare statică Erorile statice ale regimului stabilizat sunt erori care oferă informaţii

asupra performanţei răspunsului unui sistem. Pentru o intrare de tip treaptă, constanta de eroare statică din regimul stabil este dată de

)(lim

0sGK

sP →= . (6.8)

Acest lucru provine din relaţia (6.5). Ecuaţia (6.8) se mai numeşte eroare statică de poziţie. Pentru o intrare de tip rampă sau parabolă, constantele statice de erore din regimul stabil se pot exprima pe baza relaţiilor (6.6) şi respectiv (6.7) şi sunt date de:

)(lim0

sGsKsv ⋅=→

(6.9)

Page 105: Carte matlab 2008

Analiza regimului stabil

105

)(lim 2

0sGsK

sa ⋅=→

(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 acceleraţie.

Se consideră sistemul cu reacţie negativă din figura 6.2.

Utilizând 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 >>

E(s) R(s)

)12)(10)(8()5)(2(500

+++++sss

ss C(s) +

-

Figura 6.2. Sistem cu reacţie negativă

Page 106: Carte matlab 2008

Analiza regimului stabil

106

Pentru a determina constanta de eroare statică, trebuie sa folosim

funcţia dcgain(sys). Ca exemplu, considerăm un sistem cu reacţie unitară care are intrarea de tip treaptă, ca în figura 6.2, iar funcţia de transfer directă este )(sG . Pentru a determina eroarea statică de poziţie vom scrie:

>> Kp = dcgain(sysg) Kp =

5.2083 >>

Apoi, folosind relaţia (6.5) şi calculând 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 funcţia dcgain(sys) din Matlab. Acest lucru e valabil atât timp cât sistemul )(sG este stabil, adică nu există poli în semiplanul dreapt al planului complex s. Dacă dorim să determinăm erorile stationare ale regimului stabil pentru un sistem cu intrare de tip rampă, putem utiliza relaţia (6.9) înmulţind )(sG cu s. In MATLAB avem:

>> numsg = conv([1 0],numg); >> densg = poly([-8 –10 –12]); >> syssg = tf(numsg,densg) Functia de transfer: 500 s^3 + 3500 s^2 + 5000 s ---------------------------- s^3 + 30 s^2 + 296 s + 960 >> syssg = minreal(syssg)

Page 107: Carte matlab 2008

Analiza regimului stabil

107

Functia de transfer: 500 s^3 + 3500 s^2 + 5000 s ---------------------------- s^3 + 30 s^2 + 296 s + 960 >>

Pentru a determina eroarea statică de viteză vom scrie:

>> Kv = dcgain(syssg) Kv =

0 >>

Din relaţia (6.6), pentru a determina eroarea statică a regimului stabil, vom utiliza următoarea 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.

6.2.4 Tipuri de sisteme Valorile erorilor statice ale regimurilor stabile sunt dependente de

funcţia de transfer de pe calea directa - )(sG , în care contează numarul de integrări pure pe care funcţia de transfer le conţine. De altfel, pe baza acestor integratori vom defini noţiunea de „tip de sisteme”, care depinde în mod direct de numărul de integrări pure din sistem. Astfel că, orice funcţie de transfer dată pentru un sistem liniar se poate exprima sub forma:

Page 108: Carte matlab 2008

Analiza regimului stabil

108

K

K

))(())((

)(21

21

pspsszszs

sG n ++++

= (6.11)

în care n reprezintă numărul de integrări pure. Dacă 0=n , adică nu există integratori în funcţia de transfer, atunci sistemul este de Tipul 0. Dacă 1=n , (există un singur integrator pur), atunci sistemul este de Tipul 1. Asemanător, dacă 2=n , sistemul este de Tipul 2, şi aşa mai departe.

Relaţiile dintre: tipul semnalului aplicat la intrare, tipul sistemului (adică caracteristica funcţiei 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

Sistem de tip 0 Sistem de tip 1 Sistem de tip 2 Semnal

de intrare

Formula de

calcul a erorii

sse

Constanta de

eroare statică

Eroare Constanta de

eroare statică

Eroare

Constanta de

eroare statică

Eroare

Treaptă, )(tu

pK+11

kK p =

pK+11

∞=pK

0

∞=pK

0

Rampă, )(ttu

vK1

0=vK

kKv = vK

1

∞=vK

0

Parabolă,

)(2 tut aK1

0=aK

0=aK

kK a = aK

1

6.2.5 Erori ale regimului stabil datorate perturbaţiilor

Un sistem în buclă închisă supus unei perturbaţii - )(sD , aplicate între regulatorul - )(sC şi elementul controlat - )(sG , este arătat în figura 6.3.

Page 109: Carte matlab 2008

Analiza regimului stabil

109

Expresia erorii din regimul stabil este dată de relaţia:

)()()(1

)()()()(1

1)(21

2

21

sDsGsG

sGsRsGsG

sE+

−+

= (6.12)

În aceasta relaţie (6.12), termenul - )()(1

1

21 sGsG+ este o funcţie de

transfer asociată cu eroarea )(sE în raport cu intrarea )(sR , iar termenul

)()(1)(

21

2

sGsGsG

+− este o funcţie de transfer asociată cu eroarea )(sE în

raport cu intrarea de perturbaţie )(sD . Aplicând teorema valorii finale vom putea determina valoarea erorii staţionare a regimului stabil.

Astfel că avem:

)()(1)(lim)(21

0 sGsGsRsE

sR +⋅

=∞→

(6.13)

)()(1)()(lim)(

21

2

0 sGsGsGsRsE

sD +⋅⋅

=∞→

(6.14)

Relaţia (6.13) este expresia erori staţionare a regimului stabil

datorată intrării )(sR , iar relaţia (6.14) este expresia eroarea staţionare a regimului stabil datorată perturbaţiei - )(sD . Pentru o perturbaţie de tip treaptă, eroare stationară a regimului stabil este dată de relaţia:

E(s) R(s)

Figura 6.3. Sistem de control cu perturbaţie

)(sC

Y(s)

+ -

)(sG

B(s)

+ +

D(s)

Page 110: Carte matlab 2008

Analiza regimului stabil

110

)(lim)(lim

11)(

1020

sGsG

E

ss

D

→→

+=∞ (6.15)

6.2.6 Erorile staţionare ale sistemelor cu reacţie negativă neunitară

Un sistem în buclă închisă cu reacţie negativă neunitară este arătat în

figura 6.4. Funcţia de transfer de pe calea directa este )(sG (elementului controlat al sistemului), iar funcţia de transfer de pe reacţie (calea inversă) este )(sH . O metodă de a rezolva eroarea stationară constă în a converti sistemul dat într-un sistem cu reacţie unitară, aşa cum se prezintă în figura 6.5.

E(s) R(s)

Figura 6.4. Sistem în buclă închisă cu reacţie neunitară

)(sG C(s)

+-

)(sH B(s)

Page 111: Carte matlab 2008

Analiza regimului stabil

111

Folosind metoda reducerii diagramelor bloc, funcţia de transfer rezultată este în cazul sistemului din figura 6.5 dată de expresia:

)()()(1)()(

sGsHsGsGsT

−+= (6.16)

Mai departe se aplică consideraţiile teoretice ale paragrafului anterior. 6.2.7 Sensibilitatea sistemelor Sensibilitatea este definită ca şi gradul în care modificările

parametrilor sistemului afectează funcţia de transfer şi performanţele sistemului. Pentru un sistem cu sensibilitate 0, înseamnă că modificarea parametrilor nu are nici un efect asupra funcţiei de transfer, care este şi cazul ideal. Cu cât sensibilitatea este mai mare, cu atât mai mare este efectul asupra funcţiei de transfer.

Matematic, sensibilitatea este dată de produsul dintre raportul

variaţiilor funcţiei de transfer şi funcţia de transfer (FF∂ ) şi raportul

variaţiilor (derivata) parametrilor şi parametrii P (PP

∂), aşa cum este arătat

în relaţia (6.17).

PF

FPS F

P ∂∂

= (6.17)

E(s) R(s)

Figura 6.5. Sistem în buclă închisă cu reacţie unitară (echivalent)

)()()(1)(

sGsHsGsG

−⋅+

C(s) +

-

B(s)

Page 112: Carte matlab 2008

Analiza regimului stabil

112

6.2.8 Eroari stationare pentru sistemele

modelate prin ecuaţii de stare Pentru sistemele descrise prin ecuaţii de stare în buclă închisă, eroarea

regimului stationar este dată de relaţia:

( )[ ]BAsICssRssEss

1

001)(lim)(lim −

→→−−= (6.18)

unde, A este matricea de tranziţie a sistemului, B este matricea de intrare, C este matricea de ieşire şi I este matricea unitară de aceeaşi dimensiune cu matricea A. 6.3 Verificare

1. Pentru sistemul din figura 6.1 determinaţi erorile de regim stationar pentru sistemului )(sG de mai jos, atunci când la intrare se aplică o treaptă, o rampă şi respectiv o parabolă.

)6)(5)(4)(3()3)(2(15)(

++++++

=ssss

sssG

2. Pentru sistemul din figura 6.1 determinaţi erorile de regim stationar

ale sistemului )(sG de mai jos, pentru o intrare de tip treaptă, rampă şi parabolă.

)4)(3()2)(1(25)(

++++

=ssssssG

3. Pentru sistemul din figura 6.1 determinaţi erorile de regim stationar

ale sistemului )(sG de mai jos pentru o intrare de tip treaptă, rampă şi respectiv parabolă.

Page 113: Carte matlab 2008

Analiza regimului stabil

113

)3)(2()6)(5(10)( 2 ++

++=

ssssssG

4. Pentru sistemul din figura 6.3 determinaţi eroarea de regim stationar

pentru perturbaţii de tip treaptă, rampă şi parabolă in cazul

2

25)(+

=s

sC şi )2)(1(

)(++

=ss

ssG .

4. Pentru sistemul din figura 6.4 valoarea erorii din regimul stationar

este 100

1 . Se cere să se determine valoarea lui K dacă 3

10)(+

=s

sC ,

)2)(1(100)(

++=

ssssG şi

5)(

+=

sksH .

Page 114: Carte matlab 2008

Analiza regimului stabil

114

Page 115: Carte matlab 2008

Analiza sistemelor prin metoda locul rădăcinilor

Lucrarea nr. 7 7.1 Obiectivele lucrării

- se prezintă modul de obţinere a locului rădăcinilor - se analizează comportarea sistemelor pe baza locului rădăcinilor - este introdus conceptul de compensator - se prezintă proiectarea sistemelor de control

7.2 Consideraţii teoretice

Analiza şi proiectarea unui sistem de control va lua în considerare

urmatoarele specificaţii:

răspunsul regimului tranzitoriu, erorile din starea stabilă; stabilitatea sistemului.

Elementele legate de răspunsul tranzitoriu şi de erorile stării stabile au

fost deja introduse în cadrul lucrărilor anterioare. Stabilitatea este a 3-a specificaţie care se va discuta în cadrul prezentei lucrări folosind metoda de analiză şi proiectare cunoscută de metoda Locul rădăcinilor.

Page 116: Carte matlab 2008

Metoda locul rădăcinilor

116

7.2.1 Locul rădăcinilor

Locul rădăcinilor este o metodă grafică care se bazează pe reprezentarea polilor sistemului în buclă închisă, atunci când un parametru al sistemului (factor de compensare) este modificat. Aceasta metodă este intens folosită în analiza şi proiectarea stabilităţii, precum şi a răspunsului tranzitoriu pentru sistemele de control.

Se consideră sistemul în buclă închisă descris de următoarea funcţie de

transfer:

)()(

)()()(

sqsp

sRsYsT == (7.1)

unde p(s) si q(s) sunt polinoame în s. Rădăcinile ecuaţiei

caracteristice 0)( =sq determină modurile de răspuns ale sistemului. Pentru sistemul în buclă închisă prezentat în figura 7.1, ecuaţia caracteristică este dată de relaţia:

0)(1 =⋅+ sGK (7.2)

unde K este un parametru ajustabil. Rădăcinile ecuaţiei caracteristice trebuie să satisfacă relaţia (7.2), acestea situîndu-se în planul complex s.

Un exemplu de reprezentare a locului rădăcinilor este arătat în figura

7.3. Acest rezultat s-a obţinut pentru sistemul din figura 7.2, a cărui funcţie de transfer echivalentă s-a notat prin T(s).

E(s) R(s)

Figura 7.1. Sistem de control în buclă închisă cu un parametru K variabil

K

Y(s)

+-

)(sG

B(s)

Page 117: Carte matlab 2008

Metoda locul rădăcinilor

117

)1()3)(2()3)(1(

)()()(

++++++

==sKsss

ssKsRsYsT (7.3)

Figura 7.3. Locul rădăcinilor pentru sistemul în buclă închisă - )(sT

E(s) R(s)

Figura 7.2. Sistem de control în buclă închisă

)2()1(

+⋅+⋅

sssK

Y(s)

+-

31+s

B(s)

Page 118: Carte matlab 2008

Metoda locul rădăcinilor

118

7.2.2 Locul rădăcinilor în Matlab

Pentru a obţine reprezentarea grafică din figura 7.3 s-a utilizat mediul

Matlab. Graficul are la baza funcţia de transfer )(sT a sistemului din figura 7.2, a cărei expresie este dată de relaţia (7.3). Primul pas în obţinerea locului rădăcinilor este de a ne asigura că există valori pentru care ecuaţia (7.2) este satisfăcută. Pentru exemplul considerat, ecuaţia caracteristică poate fi scrisă astfel:

0)3)(2(

11 =++

++

ssssK . (7.4)

Această forma este necesară pentru a putea apela functia rlocus din

Matlab. Pentru obţinerea locului rădăcinilor pentru funcţia de transfer din relaţia (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 funcţiei rlocus din Matlab pentru obţinerea locului rădăcinilor este utilizarea liniei de comandă

[r,K]=rlocus(p,q),

care va returna sub forma unei matrice r, valorile rădăcinilor din planul complex s pentru factorul de amplificare K.

Se poate vedea că în figura 7.3 pentru valori crescătoare ale parametrului K există două ramuri ale locului rădăcinilor care se departează de axa reală. Aceasta înseamnă că pentru valori mari ale parametrului K în ecuaţia caracteristică vom avea două rădăcini complex conjugate. Pentru a găsi valoarea parametrului K care să corespundă pentru o pereche de rădăcini complexe se va folosi funcţia rlocfind din Matlab, apelată sub forma

>> rlocfind(sys).

Page 119: Carte matlab 2008

Metoda locul rădăcinilor

119

Aceasta funcţie se poate apela numai după ce am obţinut figura cu

reprezentarea grafică a locului rădăcinilor cu funcţia rlocus.

Execuţia funcţiei rlocfind va conduce la apatiţia unui cursor în formă de cruce în figura grafică. Acest cursor poate fi deplasat de-a lungul locului rădăcinilor, iar prin click pe un anume punct al figurii funcţia rlocfind va furniza valoarea corespunzatoare pentru parametrul K, aşa cum se prezintă în figura 7.4.

Figura 7. 4. Cursorul cruce apare după apelul funcţiei rlocfind

Page 120: Carte matlab 2008

Metoda locul rădăcinilor

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 selectaţi aşa cum indică figura 7.5.

Figura 7.5. Polii marcaţi după alegere

Page 121: Carte matlab 2008

Metoda locul rădăcinilor

121

7.2.3 Răspunsul sistemelor

Din examinarea figurii 7.5 se poate vedea că există 3 polii pentru

funcţia de transfer a sistemului în buclă închisă:

polii: ⎟⎟⎟

⎜⎜⎜

⎛−+

=8454.0

4306,30636,24306,30636,2

jj

s

Aceştia corespund unui factor de amplificare (parametru) K =

13.6002.

Obţinerea răspunsului la semnalul treaptă pentru sistemul considerat presupune folosirea funcţiei de transfer )(sT din relatia (7.4), astfel că ieşirea este:

sssssssY 1

)1(6002,13)3)(2()3)(1(6002,13)( ⋅

++++++

= . (7.5)

Prin descompunerea în fracţii simple a lui )(sY şi apelarea funcţiei

residue din Matlab vom obţine ca rezultat expresia lui )(ty .

>> 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

Page 122: Carte matlab 2008

Metoda locul rădăcinilor

122-0.8454 0 k = []

>>

Descompunerea în fracţii simple este dată în relaţia (7.6):

ss

jsj

jsjsY

38454.0

4033.04311.30773.2

1461.12983.14311.30773.2

1461.12983.1)(

++

−+

+++−

+−+

−−=

(7.6)

Aşa cum se poate vedea din relaţia anterioară (7.6), efectul datorat

polului 0.8454- s = este foarte mic în comparaţie cu ceilalţi doi poli. Astfel că, dacă îl neglijăm putem face următoarea aproximare:

sjsj

jsjsY 3

4311.30773.21461.12983.1

4311.30773.21461.12983.1)( +

+++−

+−+

−−= (7.7)

Pe baza relaţiei (7.7) se poate determina factorul de amortizare - ς , frecvenţa naturală - nω şi timpul de stabilizare - sst .

>> 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ă

nn

n

sssT

ωξωω

++=

2)( 2

2

, (7.8)

Page 123: Carte matlab 2008

Metoda locul rădăcinilor

123

se poate calcula atât factorul de amortizare - ς , cât şi frecventa naturală -

nω . Astfel că se obţine:

0876,16=nω 1546,42 =nζω

5179,00109,4

==

ζωn

Pentru un factor de amortizare ς cuprins intre 10 << ζ , se consideră că avem un sistem cu răspuns subatenuat, cu un timp de stabilizare

93,14=

⋅=

nsst

ωζ secunde. Rezultatul obţinut este prezentat în figura 7.6.

Figura 7.6. Răspunsul sistemului la treapta de semnal (timp de stabilizare 93,1=st s)

Page 124: Carte matlab 2008

Metoda locul rădăcinilor

124

7.2.4 MATLAB SISO Design Tool

Componenta SISO Design Tool a bibliotecii Control System din

Matlab este o funcţie performantă ce utilizează metoda lucul rădăcinilor în analiza şi proiectarea sistemelor de control. Această componentă permite vizualizarea într-o fereastră grafică a locului rădăcinilor, precum şi a polilor pentru un sistem dat. Aceştia pot fi ajustaţi prin folosirea pointerului de la mouse aşa cum este prezentat în figura 7.7.

Figura 7.7. Fereastra grafică a componentei SISO Design Tool.

7.2.5 Sensibilitatea faţă de locul rădăcinilor

Rădăcinile ecuaţiei caracteristice ale unui sistem dat determină răspunsul tranzitoriu pentru sistemul în buclă închisă. Efectul datorat variaţiei parametrului reprezintă o metodă utilă de măsurare a sensibilităţii în raport cu rădăcinile. Astfel că vom defini sensibilitatea prin relaţia:

Page 125: Carte matlab 2008

Metoda locul rădăcinilor

125

Ks

sKS

PF

FPS s

KsK ∂

∂=⇒

∂∂

= (7.9)

în care s este locaţia curentă a polului, iar K este valoarea curentă a

câştigului. Folosind relaţia (7.9) şi convertind derivatele partiale la incremente finite, variaţile actuale ale polilor în buclă închisă se pot aproxima prin:

KK

ssS s

K∆

∆= (7.10)

unde s

s∆

reprezintă modificarea fracţionară datorată locaţiei polului - s, iar

KK∆ este modificarea fracţionară datorată câştigului - K. Sensibilitatea este

un număr complex care se poate exprima sub forma

θωσ ∠⇒+= rjS sK , (7.11)

unde mărimea şi orientarea lui s

KS furnizează o măsură a sensibilităţii în raport cu rădăcina.

7.3. Verificare

1. Folosind funcţia rlocus să se obţină locul rădăcinilor pentru urmatoarele funcţii de transfer corespunzătoare unor sisteme de control cu structură identică cu cea prezentată în figura 7.1, dacă parametrul K variaza între: ∞<< K0 .

(a) 12

5)( 23 +−+=

ssssG ; (b)

12513)( 23

2

+++++

=sss

sssG ;

(c) 52312

1)( 26

23

+−++++

=sss

ssssG .

Page 126: Carte matlab 2008

Metoda locul rădăcinilor

126 2. Un sistem cu reacţie negativă unitară are funcţia de transfer în buclă

deschisă dată de expresia

( )( )23

22)( 2

2

+++−

=sssssKsKG .

Folosind MATLAB reprezentaţi locul rădăcinilor şi arătaţi cu ajutorul funcţiei rlocfind că valoarea maximă a parametrului K pentru ca sistemul să fie stabil este K = 0.79.

3. Se consideră sistemul cu reacţie prezentat în figura 7.1 unde funcţia de

transfer )(sG este

2

1)(s

ssG += .

Pentru ce valoare a parametrului K, factorul de atenuare ς este egal cu

2=ς ? 4. Se consideră sistemul de control cu reacţie din figura de mai jos.

Avem trei posibile regulatoare pentru sistem considerat anterior: (a) KsG =)( (regulator proportional)

(b) sKsG =)( (regulator integral)

(c) 2)(sKsG = (regulator proportional, dublu integral)

E(s) R(s)

Figura 7.8. Sistem de control în buclă închisă cu regulator )(sC

)(sC

Y(s)

+-

)(sG

B(s)

Page 127: Carte matlab 2008

Metoda locul rădăcinilor

127

Condiţia de proiectare care trebuie satisfăcută este dată de timpul de atingere a regimului stabil, adică 10<sst s. Se cere:

1. Locul rădăcinilor pentru fiecare regulator şi determinarea valoarii

parametrului K astfel ca, condiţia impusă să fie îndeplinită. 2. Reprezentarea grafică în cadrul aceleiaşi figuri a răspunsului la

semnalul treaptă uniate pentru fiecare regulator, pentru sistemul în buclă închisă.

3. Compararea rezultatelor obţinute pentru fiecare din cele trei cazuri şi interpretarea din punctul de vedere a răspunsului tranzitoriu şi a regimului stabilizat.

Page 128: Carte matlab 2008

Metoda locul rădăcinilor

128

Page 129: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor

Lucrarea nr. 8

8.1 Obiectivele lucrării

- Prezentarea funcţiilor sisotool si rltool - Proiectarea unui sistem cu regulator de tip P - Proiectarea unui sistem cu regulator de tip PD - Proiectarea unui sistem cu compensator cu avans de fază

8.2 Introducere

Biblioteca Control Systems din MATLAB conţine două funcţii

sisotool şi rltool utile în proiectarea sistemelor de control. Acestea se bazează pe metoda grafică Locul rădăcinilor şi reprezintă de fapt două proceduri de analiză şi proiectare interactivă a sistemelor liniare de control cu o intrare şi o ieşire (SISO).

Atunci cînd este apelată, funcţia sisotool deschide o fereastră grafică în care se vor reprezenta ulterior graficele pentru Locul rădăcinilor şi respectiv, Diagramele BODE.

Page 130: Carte matlab 2008

130 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Funcţia rltool dacă se apelează va deschide o fereastră grafică în care se va putea reprezenta numai graficul Locul rădăcinilor.

Aceste două proceduri cu interfaţa grafică permit proiectarea în mod interactiv a compensatoarelor pe baza reprezentării grafice a Locului rădăcinilor, Diagramelor BODE şi Nichols, în cazul unui sistem în buclă deschisă. Astfel că, pentru a deschide o sesiune de lucru, se va introduce următoarea comandă în fereastra de comenzi a MATLAB-ului: >> sisotool

Apelul funcţiei sisotool se poate face cu sau fără argumente, după cum urmează. De exemplu: sisotool(Gp), sau sisotool(Gp, Gc). unde prin Gp se reprezintă modelul (funcţia de transfer) pentru sistemul controlat, iar Gc se reprezintă modelul (funcţia de transfer) pentru compensator.

De asemenea, este permisă importarea modelului în cadrul procedurii de proiectare prin metoda Locul rădăcinilor, astfel că aceasta se poate încărca:

• din spaţiul de lucru al MATLAB (MATLAB workspace); • dintr-un fişier de tip MAT ( mat-file); • dintr-o diagramă SIMULINK (mdl-file).

În mod similar, funcţia rltool va deschide o sesiune de proiectare pentru un sistem de tipul SISO liniar în care se va putea vizualiza numai graficul Locul rădăcinilor.

În continuare se va exemplifica modul de proiectare pe baza caracteristicilor metodei Locul rădăcinilor. 8.3 Proiectarea sistemelor de control

În sistemul de control care se prezintă în figura următoare, se consideră că )(sGc este un regulator, iar )(sGp este sistemul controlat a

cărui funcţie de transfer este )5)(2(

1)(++

=sss

sGp .

Page 131: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 131

8.3.1 Proiectarea unui regulator de tip P

Să considerăm că )(sGc din figura de mai sus este un regulator de tip

proporţional – K. Utilizînd procedura de proiectare sisotool, se cere să se proiecteze un sistem de control care să îndeplinească următoarele caracteristici:

(a) Domeniul lui K pentru ca stabilitatea sistemului să fie garantată. (b) Valoarea polilor complecşi dominanţi să corespundă unui factor de atenuare 6,0=ς .

Pentru aceste valori obţinute se vor indica: marginea de câştig (gain

margin - GM) şi marginea de fază (phase margin - PM). De asemenea se va determina răspunsul la semnalul treaptă precum şi parametrii ce caracterizează răspunsul în domeniul timp.

Pentru a determina modelul sistemului de control şi pentru a începe procedura de proiectare, vom introduce următoarele comenzi MATLAB: >> Gp = tf(1, [1 7 10 0]) >> sisotool În răspuns, se va deschide fereastră grafică iniţială prezentată în figura 8.1.

Page 132: Carte matlab 2008

132 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.1. Fereastră grafică iniţială

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ă configuraţie, punând compensatorul fie pe calea inversă (feedback) fie pe calea directă. Prin apăsare succesivă va bascula între aceste două configuraţii.

Acum vom selecta opţiunea Import Model din meniul File. Această acţiune va deschide fereastra de dialog Import System Data, prezentată în figura 8.2. Configuraţiile 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 cărui valoare iniţială este 1.

Se va selecta Gp prin click pe simbolul graphic → pentru a introduce acesta vasloare în câmpul G.

Page 133: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 133

Figura 8.2. Fereastra de introducere a datelor

Butonul Other basculează de asemenea între două configuraţii

posibile. Facem click OK. După aceste acţiuni se vor afişa în zona de reprezentare grafică Locul rădăcinilor (RL) si Diagramele BODE (DB) corespunzătoare sistemului în buclă deschisă, figura 8.3. Pătrăţelele roşi de pe RL reprezintă polii sistemului în buclă închisă pentru o valoare a factorului de câştig 1 (implicit valoarea este C(s) = 1). De asemenea, pe diagramele BODE apar reprezentate marginea de câştig (GM) si marginea de fază (FM) ce corespund unui factor de câştig implicit 1 (C(s) = 1).

Page 134: Carte matlab 2008

134 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.3. Fereastra cu graficele RL şi Diagramele BODE

În procedura de proiectare, prin apăsarea butonului din dreapta al

mouse-ului se apelează meniurile specifice regiunilor de reprezentare grafică. Acestea prezintă mai multe opţiuni aşa cum se pot vedea în figura 8.4.

Click dreapta pentru locul radacinilor Click dreapta pentru diagramele Bode

Figura 8.4. Meniuri specifice pentru graficele RL si diagramele BODE

Page 135: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 135

Dacă se doreşte modificarea factorului de câştig al compensatorului se va modifica valoarea din câmpul aferent lui )(sC . De asemenea, factorul de câştig se mai poate modifica în mod grafic prin deplasarea polilor (pătrăţelele roşii de pe graficul RL), de-a lungul graficului într-o altă locaţie dorită. Pentru modificarea prin această operaţie, se sugerează ca mai întîi să se selecteze din meniu opţiunea Zoom XY prin click-dreapta pe mouse. Apoi se selectează regiunea dorită din graficul locul rădăcinilor, după care se face operaţiune de deplasare (hold and place) a pătrăţelelor.

Ca o alternativă, această operaţie se poate face şi prin utilizarea opţiunii Zoom icons de pe meniul toolbar, vezi figura 8.5. Prin click pe Mouse Zoom icon (Zoom în XY), şi apoi click pe locaţia dorită din locul rădăcinilor care se doreşte mărită. Se închide opţiunea Mouse Zoom, după care se deplasează polii sistemului în buclă închisă în locaţia dorită.

Figura 8.5. Simbolurile grafice ale Toolbar pentru Zoom

(a) Pentru a găsi valoarea marginii de stabilitate se vor deplasa polii

sistemului de-a lungul locului până la intersecţia cu axa. Se activează opţiunea Mouse Zoom după care se încadrează (delimitează) regiunea polilor şi la eliberarea mouse-ului se realizează zoom-ul zonei selectate. Se deplasează polii în poziţia exactă de intersecţie a locului cu axa din care rezultă marginea de stabilitate. Se dezactivează Zoom-ul şi rezultă rezultatul din figura 8.6.

Page 136: Carte matlab 2008

136 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.6. Determinarea marginii de stabilitate

(b) Pentru a determina câştigul în cazul unui factorul de atenuare 6,0=ς ,

se vor deplasa polii complecşi până ce factorul de atenuare afişat în mod continuu în partea de jos a zonei de reprezentare grafică ajunge ca valoare în vecinătatea lui 0.6. Acum se activează opţiunea de Zoom şi se vor deplasa polii până ce valoarea factorului va fi exact de 0.6. Rezultatul obţinut va fi cel din figura de mai jos, figura 8.7.

Page 137: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 137

Figura 8.7. Alegerea polilor pentru un factor 6,0=ς

Factorul de câştig determinat este 89,80 =K . De asemenea, unul din

polii complecşi precum şi frecvenţa naturală nω sunt afişaţi în partea de jos a reprezentării grafice şi în cazul de faţă au următoarele valori,

02,1766,01 js +−= şi respectiv 28,1=nω rad/s. În plus, marginea de câştig (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 obţine răspunsul la semnalul treaptă. Se va face click dreapta pe graficul obţinut şi se va selecta opţiunea Characteristics, iar mai apoi Rise Time şi Peak Overshoot. Dacă pe graficul de răspuns trasat cu linie albastră se face click stînga, se vor afişa parametrii ce caracterizează răspunsul în domeniul timp pentru sistemul analizat, figura 8.8.

Page 138: Carte matlab 2008

138 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.8. Răspunsul la semnalul treaptă

8.3.2 Proiectarea unui regulator de tip PD

Pentru sistemul din exemplul anterior se cere să se proiecteze un regulator C(s) care să satisfacă următoarele cerinţe:

• Poli dominanţi să corespundă unui factor de atenuare 707,0=ς • Timpul de atingere a regimului stabilizat sa fie 2=st sec.

τ4=st , şi 5,0=τ sec.

25,0

11===

τςωn , şi 45)707,0(tan 1 =− º

Prin urmare 221 js +−=

Pentru a determina modelul sistemului ce trebuie controlat şi pentru a porni procedura de proiectare a acestui sistem SISO, vom introduce următoarele comenzi MATLAB

Page 139: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 139

>> Gp = tf(1, [1 7 10 0]) >> sisotool Ca răspuns, vom obţine următoarea fereastră iniţială, ce nu conţine nici o reprezentare în zona grafică pentru Locul rădăcinilor şi Diagramele BODE, figura 8.9.

Figura 8.9. Fereastra iniţială din procedura SISO Design Tool

Vom începe prin a selecta Import Model din meniul File. Această

acţiune va deschide căsuţa de dialog Import System Data. Acum vom selecta Gp prin click pe → pentru ca în câmpul G să se transfere valoarea corespunzătoare funcţiei Gp. Acest lucru este prezentat în figura 8.10.

Page 140: Carte matlab 2008

140 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.10. Activarea funcţiei Gp din fereastra Import System Data

Se face acum click pe OK. În acest moment se vor afişa graficele

corespunzătoare pentru Locul rădăcinilor şi respectiv Diagramele BODE în regiunile de reprezentare grafică corespunzătoare. Vezi figura 8.11.

Figura 8.11. Graficele pentru locul rădăcinilor şi diagramele BODE

Page 141: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 141

Procedura de proiectare a sistemelor de control SISO liniare oferă câteva constrîngeri care uşurează modul de îndeplinire a specificaţiilor de proiectare iniţiale. Acestea se pot utiliza numai dacă proiectantul doreşte acest lucru.

Plasarea perechii de poli complecşi pe diagramă în locaţia ce corespunde unui factor de atenuare 707,0=ς , se va face prin selectarea opţiunii Design Constraints după care se activează New din meniul click-dreapta corespunzător Locului Rădăcinilor. Această acţiune va deschide editorul Design Constraints. În câmpul corespunzător factorului de atenuare se va introduce valoarea 0,707. Acest lucru va conduce la afişarea unei perechi de raze umbrite corespunzătoare pantei căutate. Adăugarea timpului de stabilizare se face prin redeschiderea opţiunii New Constraint şi vom alege timpul de stabilizare din meniul pull-down prin setarea în câmpul aferent a valorii 2. Pentru a avea un pol a sistemului în buclă închisă de valoarea 221 js +−= , va trebui să adăugăm un zerou pentru ca diagrama locului să se deplaseze spre stînga semiplanului complex s. Adăugarea unui zerou, se face prin activarea din meniul toolbar a simbolului Ο şi plasarea acestuia pe axa reală în partea stînga a polilor, asfel încît să aibe o valoare cât mai mica. Acum vom deplasa polii sistemului în buclă închisă în partea superioară a locului rădăcinilor, către punctul de intersecţie rezultat din condiţiile impuse pentru factorul de atenuare ς şi respectiv τ . Se va activa funcţia Zoom şi se va plasa pătratul în zona ce conţine zeroul controlerului şi polul buclei închise. Corectăm poziţia zeroului pe axa reală şi în acelaşi timp se ţine apăsat butonul din stînga al mouse-ului şi se deplasează polul buclei închise pînă cînd polul ajunge în poziţia dorită, aşa cum se observă în figura 8.12.

Page 142: Carte matlab 2008

142 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.12. Proiectarea controlerului pe baza specificaţiilor impuse

Pentru a salva valorile obţinute pentru compensatorul rezultat, se va

selecta opţiunea Export din meniul File. Această acţiune va deschide sesiunea SISO Tool Export. Acum se va selecta opţiunea Compensator C din coloana Component. Pentru a schimba numele, vom face double-click în celula corespunzătoare pentru Compensatorul C şi vom schimba numele punînd PD. Facem click pe butonul corespunzător opţiunii Export to Workspace. După aceste operaţiuni vom introduce comanda: >> PD iar ca răspuns se va afişa:

Zero/pole/gain:

Page 143: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 143

10.0157 (s+2.397)

Astfel că, controlerul de tip PD are o expresie aproximativă (rezultată în urma unei trunchieri) dată de 2410)( += ssC .

Acum din meniul principal vom selecta opţiunea Loop responses/Close-Loop Step pentru a obţine răspunsul la treapta de semnal. Facem click-dreapta pe graficul de răspuns şi selectăm Characteristics după care Rise Time şi respectiv Peak Overshoot. Dacă poziţionăm mouse-ul pe linia albastră a răspunsului şi se face click-stînga, atunci se vor afişa parametrii ce caracterizează răspunsul în domeniul timp, aşa cum este arătat în figura 8.13. de mai jos.

Figura 8.13. Răspunsul sistemului în buclă închisă cu controler de tip PD

De asemenea, să notăm că pe diagramele BODE, ale sistemului în

buclă deschisă sunt afişate atât marginea de câştig – GM, cât şi marginea de fază – PM pentru sistemul compensat.

Page 144: Carte matlab 2008

144 Proiectarea sistemelor de control cu metoda locul rădăcinilor

8.3.3. Proiectarea unui compensator cu avans de fază

Pentru sistemul din exemplul 1 să se proiecteze un compensator cu

avans de fază )(

)()(

0

00

pszsK

sC+

+= care să îndeplinească următoarele

specificaţii:

• Polii dominanţi să prezinte un factor de atenuare 707,0=ς • Polii dominanţi să asigure un timp de atingere a regimului stabil

2=st sec. Avem că:

24 == τst ⇒ 5,0=τ sec.

25.0

11===

τςωn şi 45)707,0(tan 1 =− º.

Prin urmare va exista un pol de valoare 221 js +−=

Graficul corespunzător Locului rădăcinilor va reprezenta punctul de pornire pentru procedura de proiectare. Pentru început vom selecta un controler nul şi vom folosi cerinţele date pentru a găsi locaţia corespunzătoare polului controlerului, precum şi factorul de câştig corespunzător. În acest exemplu vom selecta zeroul ca fiind plasat pe axa reală în punctul –1.75. Pentru a determina modelul sistemului controlat şi pentru a începe procedura de proiectare a sistemului de control vom introduce următoarele comenzii: >> Gp = tf(1, [1 7 10 0]) >> sisotool

Ca răspuns, vom obţine o fereastră iniţială fără grafice, corespunzătoare procedurii SISO Design Tool. Se va selecta opţiunea Import Model din meniul File. Acum se va deschide căsuţa de dialog

Page 145: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 145

Import System Data, unde vom selecta Gp prin click pe simbulul → pentru a activa cîmpul G şi astfel se vor încarca datele corespunzătoare modelului Gp de mai sus. Se face click pe OK, după care se vor afişa graficele corespunzătoare Locului Rădăcinilor şi respectiv Diagramele BODE în zonele aferente ale ferestrei.

Acum urmează să plasăm perechea de poli complecşi pe diagrama Locului în poziţia corespunzătoare unui factor de atenuare 707,0=ς . Pentru aceasta vom selecta opţiunea Design Constraints după care vom alege New din meniul corespunzător obţinut prin click-dreapta pe graficul Locul rădăcinilor. Această acţiune va deschide editorul Design Constraints. În câmpul corespunzător factorului de atenuare vom introduce valoarea impusă de 0,707. Acum pe grafic vor apărea o pereche de raze umbrite a căror pante corespunde valorii introduse. Pentru a adăuga şi timp de atingere a regimului stabilizat vom redeschide fereastra New Constraint şi vom alege din meniul pull-down valoarea 2 în câmpul corespunzător. Acum vom plasa cursorul în poziţia corespunzătoare controlerului C(s) unde vom face click pentru a deschide căsuţa de dialog. În locaţia Edit Compensator C vom introduce –1.75 corespunzătoare polului real. De asemenea, adăugarea unui pol real se poate face şi prin activarea meniului toolbar. Se alege simbolul corespunzător pentru pol - ↑× şi se plasează pe axa reală în dreapta polului cu valoarea cea mai mare. Se va deplasa polul corespunzător sistemului în bucla închisă către intersecţia corespunzătoare condţtiilor impuse pentru ς şi respective τ . Acum se poate activa din mouse funcţia Zoom şi se plasează pătratul în regiunea care conţine zeroul controlerului şi polul 1z al sistemului în buclă închisă. Se va corecta poziţia polului pe axa reală şi în acelaşi timp se ţine apăsat butonul din stînga al mouse-ului deplasându-se polul buclei închise până când polul ajunge în locaţia dorită aşa cum este arătat în figura 8.14.

Page 146: Carte matlab 2008

146 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Figura 8.14. Plasarea polilor pe baza condiţiilor impuse

Salvarea compensatorului obţinut se face prin selectarea opţiunii

Export din meniul File. Această acţiune va deschide SISO Tool Export. Acum vom selecta Compensator C din coloana Component. Pentru a schimba numele se face double-click în celula corespunzătoare Compensatorului C şi se schimbă numele punând în cazul de faţa PhLead. După aceasta se face click pe butonul Export to Workspace. Acum în fereastra de comenzi a MATLAB-ului se introduce >> PhLead care va determina afişarea funcţiei de transfer a controlerului.

Zero/pole/gain:

Page 147: Carte matlab 2008

Proiectarea sistemelor de control cu metoda locul rădăcinilor 147

023.8)75.1(2588,64

++⋅

ss

Expresia obţinută în urma procedurii grafice de proiectare se poate aproxima

cu )8(

)75.1(64++⋅

ss .

Pentru a obţine răspunsul sistemului în buclă închisă la semnalul

treaptă, din meniul principal selectăm Loop responses/Close-Loop Step. Vizualizarea parametrilor de răspuns în domeniul timp pentru sistem se poate face dacă pe graficul obţinut vom face click-dreapta şi vom selecta opţiunea Characteristics după care alegem Rise Time şi Peak Overshoot. Prin click-stînga pe linia albastră vom putea vizualiza parametrii de răspuns ai sistemului în domeniul timp, aşa cum se prezintă în figura 8.15.

Figura 8.15. Răspunsul sistemului în buclă închisă cu compensator cu avans

de fază

Page 148: Carte matlab 2008

148 Proiectarea sistemelor de control cu metoda locul rădăcinilor

Page 149: Carte matlab 2008

Proiectarea sistemelor de control prin metoda diagramelor BODE

Lucrarea nr. 9

9.1 Obiectivele lucrării

- sisteme compensate cu avans de fază - sisteme compensate de fază întârziată

9.2 Proiectarea sistemelor compensate

9.2.1 Compensarea de tip phase-lead Exemplul 1: Să se proiecteze un sistem de control cu compensator cu

avans de fază pentru sistemul ( ) ( )11+

=ss

sG , astfel încît eroarea în starea

stabilă să fie mai mică decît 0.1 pentru un semnal treaptă unitară aplicat la intrarea sistemului, iar supracreşterea maximă a răspunsului tranzitoriu să fie mai mică de 25%.

Page 150: Carte matlab 2008

150 Proiectarea sistemelor de control cu metoda diagramelor BODE

Specificarea erorii din starea stabilă

( ) ( ) KssKsssGK

ssV =+⋅

==→→ 1

1limlim00

(9.1)

10 1.011≥⇒<== K

KKe

Vss

Specificarea supracreşterii din răspunsul tranzitiriu (%)

Reamintim că relaţia dintre supracreşterea exprimată în (%) a răspunsului şi factorul de atenuare - ζ , este data de

21100%)Overshoot( ζ

ζπ

−−

= e (9.2) În Figura 9.1 s-a reprezentat dependenţa grafică dintre aceşti 2 factori.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

10

20

30

40

50

60

70

80

90

100

% O

vers

hoot

damping ratio ζ Figura 9.1 Supracreşterea (%) vs. Factor de atenuare (ζ )

Page 151: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 151

Astfel, relaţia dintre marginea de fază - phase margin (PM), si factorul de atenuare - (ζ ) pentru cazul special al unei funcţii de transfer în buclă

închisă ( ) ( )n

nss

sGζω

ω2

2

+= este dată de relaţia următoare

⎟⎟⎟

⎜⎜⎜

−+= −

22

1

241

2tanPMζζ

ζ (9.3)

ceea ce arată că marginea de fază pentru un sistem compensat ar trebui să fie mai mare de o45 pentru a obţine o supracreştere maximă mai mică de 25% şi aşa cum se prezintă în Figura 9.2.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

10

20

30

40

50

60

70

80

Pha

se M

argi

n (P

M)

damping ratio ζ Figura 9.2 Marginea de fază (PM) vs. Factor de atenuare (ζ )

Page 152: Carte matlab 2008

152 Proiectarea sistemelor de control cu metoda diagramelor BODE

Procedură de proiectare a compensatorului cu avans de fază

i.) Se alege o constantă de câştig K astfel încît eroarea staţionară în starea stabilă care a fost specificată să fie satisfăcută. Din cele arătate anterior, se cunoaşte că K trebuie să fie mai mare sau egal cu 10, astfel că vom considera 10=K .

ii.) Se va determina pe reprezentarea grafică marginea de câştig (gain margin GM) şi marginea de fază (phase margin - PM) corespunzătoare sistemului necompensat în cazul factorului de câştig 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ă supracreşterii specificate.

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-20

0

20

40

60Gm = Inf, Pm=17.964 deg. (at 3.0842 rad/sec)

10-1 100-180

-160

-140

-120

-100

Figura 9.3 Diagramele Bode pentru sistemul necompensat - ( )sGK ⋅

Page 153: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 153

Din figura 9.3, marginea de fază – PM, a sistemului necompensat este

o20PM ≈uncomp . Astfel, alegînd o margine de fază PM pentru

sistemul compensat egală cu o45PM =comp , rezultă că avem nevoie

de o valoare adiţională de fază o25PMPM =−= uncompcompmφ . Acum că mφ a fost determinat, se poate determina parametrul α al compensatorului cu avans de fază, care se va alege 3.0=α şi care va corespunde unei faze maxime de avans de o33 .

iii.) Faza maximă de avans mφ trebuie să fie adăugată la valoarea nouă a frecvenţei de trecere mω . Compensatorul cu avans de fază introduce un factor de câştig a cărui valoare este în jur de ( ) dB2.53.0log10 =− corespunzător unei frecvenţe noi mω . Astfel, trebuie determinată frecvenţa la care sistemul necompensat are o amplificare de

( ) dB2.53.0log10 −= . 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 câştig al sistemului necompensat este egal cu –5.2dB la o frecvenţă

secrad 5.4=ω . Fie secrad 5.4=mω . iv.) Se vor calcula parametrii compensatorului cu avans de fază pe baza

valorilor obţinute în paşii (i.) pînă la (iii.). Funcţia de transfer a compensatorului cu avans de fază este dată de

( ) 111

TsTssC

αα ++

⋅= (9.4)

sau

( ) 1

1 +

+=

TjTjjC

ωαωω cu 1 <α (9.5)

unde αωm

T 1= .

Astfel, pentru 3.0=α , sec 41.0=T . Aceasta conduce la următorul compensator cu avans de fază:

Page 154: Carte matlab 2008

154 Proiectarea sistemelor de control cu metoda diagramelor BODE

( )1123.0

141.0+

+=

sssC (9.6)

Rezultate simulate pentru compensatorul Phase-lead Simulările în Matlab au la bază următoarele comenzii care se pot salva într-un fişier m-script. clear all; wm = 4.5; % gain-crossover frequency alpha = 0.3; % 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); Rezultatul simulării compensatorului este prezentat în figura 9.4

Page 155: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 155

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

20

25

30

10-1 100 101 102

10

20

30

Figura 9.4 Diagrama Bode pentru compensatorul cu avans de fază ( )sC

Acum pentru a vedea diferenţa dintre sistemul necompensat şi sistemul compensat vom considera următorul fişier 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');

Page 156: Carte matlab 2008

156 Proiectarea sistemelor de control cu metoda diagramelor BODE

ylabel('Phase (deg)'); xlabel('Frequency (rad/sec)'); legend('uncompensated','compensated', -1);

Rezultatul simulării conduce la obţinerea figurii 9.5.

10-1 100 101 102-100

-50

0

50Bode Diagrams

Mag

nitu

de (d

B)

uncompensatedcompensated

10-1 100 101 102-180

-160

-140

-120

-100

-80

Pha

se (d

eg)

Frequency (rad/sec)

uncompensatedcompensated

Figura 9.5. Diagrama Bode pentru sistemul necompensat şi compensat

Pentru a obţine răspunsul sistemului la semnalul de tip treaptă se va considera următorul fişier de comenzii Matlab: figure; sys1c = tf(gnumc,gdenc); sys2c = tf(numc,denc); step(sys1c,sys2c);grid; legend('uncompensated','compensated',-1);

Rezultatul este prezentat în figura 9.6.

compensated system

uncompensated system

Page 157: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 157

Time (sec.)

Am

plitu

de

Step Response

0 2 4 6 8 10 120

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

uncompensatedcompensated

Figura 9.6 Răspunsul la treaptă a sistemului necompensat şi compensat

În cazul în care se doreşte să se vizualizeze şi răspunsul la semnalul de tip rampă unitară, atunci se va considera următoarea 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);

Page 158: Carte matlab 2008

158 Proiectarea sistemelor de control cu metoda diagramelor BODE

0 1 2 3 4 50

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Time (sec)

Unit Ramp Input response

uncompensatedcompensateddesired

Figura 9.7 Răspunsul sistemului necompensat şi respectiv compensat la

semnalul rampă unitară

9.2.2 Compensarea de tip phase-lag

Exemplul 2: Să se proiecteze un sistem de control cu compensator de fază

întîrziată pentru sistemul ( ) ( )11+

=ss

sG , astfel încît eroarea staţionară în

starea stabilă să fie mai mică decit 0.1 pentru un semnal treaptă unitară aplicat la intrarea sistemului şi supracreşterea maximă să fie mai mică decît 25%.

Specificarea erorii staţionare Aşa cum a fost calculat anterior în relaţiile (9.1), s-a obţinut 10≥K .

Specificarea supracreşterii din răspunsul tranzitiriu (%)

Pe baza calculelor din exemplul precedent, relaţiile (9.2) avem că

o45PM ≥comp .

Page 159: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 159

Procedura de proiectare a compensatorului de fază întîrziată

i.) Se va alege un factor de câştig constant K astfel încît eroarea

staţionară 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 10=K .

ii.) Se va determina pe reprezentarea grafică, marginea de fază (PM) şi marginea de câştig (GM) pentru sistemul necompensat în cazul unui factor de câştig constant K determinat la pasul (i.). Apoi se va estima frecvenţa la care are loc o margine de fază PM de o50 . Vom nota această frecvenţa ca fiind noua frecvenţa de trecere mω . Din figura 9.8, se vede că secrad 84.0=mω .

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

-20

0

20

40

60Gm = Inf, Pm=17.964 deg. (at 3.0842 rad/sec)

10-1 100-180

-160

-140

-120

-100

Figura 9.8. Diagrama Bode pentru sistemul necompensat ( )sGK ⋅ .

Page 160: Carte matlab 2008

160 Proiectarea sistemelor de control cu metoda diagramelor BODE

iii.) Se va determina câştigul corespunzător pentru sistemul necompensat

corespunzător frecvenţei secrad 84.0=mω . Din Figura 9.8, câştigul sistemului necompensat pentru secrad 84.0=mω este 20 dB. Pentru a

duce curba de câştig jos la 0 dB la mω , va trebui ca compensatorul

phase-lag să furnizeze ( ) dB 20log20 =α or 1010 2020

==α . iv.) Se vor calcula parametrii compensatorului phase-lag pe baza valorilor

obţinute în paşii anteriori de la (i.) pîna la (iii.). Funcţia de transfer a unui compensator phase-lag este data de

( ) 111

TsTssC

αα ++

⋅= (9.7)

sau

( ) 1

1 +

+=

TjTjjC

ωαωω cu 1>α (9.8)

unde sec 9.1110==

mT

ω. Aceasta asigură ca frecvenţa

T1

=ω să fie

cu o decadă sub noua frecvenţă de trecere mω . Astfel compensatorul phase-lag proiectat este dat de

( )111919.11

++

=sssC . (9.10)

Rezultate simulate pentru Compensatorul Phase-lag Simulare în Matlab pentru compensatorul de fază întîrziată este dată de

Page 161: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 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);

Page 162: Carte matlab 2008

162 Proiectarea sistemelor de control cu metoda diagramelor BODE

Frequency (rad/sec)

Pha

se (d

eg);

Mag

nitu

de (d

B)

Bode Diagrams

0

5

10

15

20

10-3 10-2 10-1 100

-50

-40

-30

-20

-10

Figura 9.9 Diagrama Bode pentru sistemul compensat phase-lag Acum pentru a vedea diferenţa dintre sistemul necompensat şi

sistemul compensat vom considera următorul fişier 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);

Page 163: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 163

10-1 100 101 102-100

-50

0

50Bode Diagrams

Mag

nitu

de (d

B)

uncompensatedcompensated

10-1 100 101 102-180

-160

-140

-120

-100

-80

Pha

se (d

eg)

Frequency (rad/sec)

uncompensatedcompensated

Figura 9.10 Diagramele Bode pentru sistemul necompensat şi respectiv

compensat

Pentru a obţine răspunsul sistemului la semnalul de tip treaptă se va considera următorul fişier 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 răspunsul sistemului compensat şi respectiv necompensat la semnalul treaptă unitară.

uncompensated system

compensated system

Page 164: Carte matlab 2008

164 Proiectarea sistemelor de control cu metoda diagramelor BODE

Time (sec.)

Am

plitu

de

Step Response

0 5 10 15 20 25 30 350

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

uncompensatedcompensated

Figura 9.11. Răspunsul la treaptă a sistemului necompensat şi respectiv

compensat

În cazul în care se doreşte să se vizualizeze şi răspunsul la semnalul de tip rampă unitară, atunci se va considera următoarea 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);

Page 165: Carte matlab 2008

Proiectarea sistemelor de control cu metoda diagramelor BODE 165

0 1 2 3 4 50

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Time (sec)

Unit Ramp Input response

uncompensatedcompensateddesired

Figura 9.12 Răspunsul sistemului necompensat şi respectiv compensat la

semnalul rampă unitară

Page 166: Carte matlab 2008

166 Proiectarea sistemelor de control cu metoda diagramelor BODE

Page 167: Carte matlab 2008

Proiect de curs

Teoria Sistemelor

1. Se va alege un sistem fizic SISO liniar al cărui ordin să fie 3 sau mai mare; 2. Determinaţi modelul acestui sistem exprimat prin funcţie de transfer şi prin ecuaţii de stare; 3. Analizaţi stabilitatea absolută a acestui sistem prin identificarea polilor şi a zerourilor, etc.; 4. Analizaţi răspunsul tranzitoriu şi stabil al sistemului şi discutaţi despre stabilitatea relativă a sistemului: polii dominanţi, răspunsul la treapta unitară, analiza erorii stationare, etc. utilizînd reprezentarea grafică a răspunsului, metoda locul rădăcinilor şi răspunsul la frecventa etc.; 5. Pentru sistemul fizic considerat, alegeţi un set de parametrii care să definească performanţele răspunsului unui sistem de control pe baza factorului de atenuare şi a constantei de timp pentru polii dominanţi, precum şi a erorii staţionare impuse; 6. Proiectaţi un sistem de control cu regulator de tip P pe baza specificaţiilor definite la punctul 5 şi repetaţi paşii de la 2 la 4; 7. Proiectaţi un sistem de control cu regulator de tip PD pe baza specificaţiilor definite la punctul 5 şi repetaţi paşii de la 2 la 4;

Page 168: Carte matlab 2008

168 Proiect de curs

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 [email protected]

8. Proiectaţi un sistem de control cu reacţie după stare pe baza specificaţiilor definite la punctul 5 şi repetaţi pasii de la 2 la 4; 9. Proiectaţi un sistem de control cu observer de stare pe baza specificaţiilor definite la punctul 5 şi repetaţi paşii de la 2 la 4; 10. Proiectati un sistem de control optimal şi repetaţi paşii de la 2 la 4; 11. Comparaţi rezultatele obtinute mai sus în cadrul paşilor de la 6 la 9 şi formulaţi o concluzie proprie asupra acestor rezultate; 12. Scrieti un raport în care să fie prezentate concluziile asupra sistemului considerat iniţial precum şi asupra sistemului de control rezultat în cadrul punctelor 5, 6, 7, 8 şi 9. În raport vor fi incluse fişierele MATLAB rezultate însoţite de reprezentările grafice obţinute.

Notă: 1. Se va utiliza MATLAB şi SIMULINK pentru realizarea cerintelor menţionate. 2. Raportul scris trebuie sã fie concis şi sã conţinã concluzii bazate pe rezultatele obţinute.

Page 169: Carte matlab 2008

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. Coloşi, 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 roboţilor, Cluj-Napoca, Lito UTN-

N, 1997. 9. Rusu, Calin, - Digital control system design, Ed. Casa cărţii de ştiinţă,

Cluj-Napoca, 2000. 10. Rusu, Calin, Szöke Enikö, Mureşan Manuela - Matlab în controlul

sistemelor. Ghid practice pentru studenţi şi ingineri. Editura Mediamira, Cluj-Napoca, 132 pagini, ISBN 973-713-019-7, 2005.

11. Rusu, Calin, Szöke Enikö – Aplicaţii Matlab în controlul sistemelor. Ghid practice pentru studenţi. Editura Mediamira 2006, Cluj-Napoca, 160 pagini, ISBN 973-713-101-0, 2006.

Page 170: Carte matlab 2008