Sunteți pe pagina 1din 170

MATLAB ÎN

MODELAREA, SIMULAREA
ŞI
CONTROLUL SISTEMELOR

GHID PRACTIC PENTRU STUDENŢI

Călin RUSU
Enikö SZÖKE
Melinda RADIAN KREISER
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
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
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
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
Cuprins
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
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.
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:
calin.rusu@edr.utcluj.ro

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


x Prefaţă
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.
12 Introducere în MATLAB

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.
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.
14 Introducere în MATLAB

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:
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
16 Introducere în MATLAB

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

>> fprintf('Area of a circle is %8.4f Square


meters\n', 3.1416*3^2)

Area of a circle is 28.2744 Square meters

>>

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


tabelul 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ă
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 =
18 Introducere în MATLAB

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

⎡1 2⎤
Matrice C = ⎢ ⎥ se introduce în MATLAB utilizând spaţiu sau virgulă cu
⎣3 4⎦
punct şi virgulă sau carriage return, după cum urmează:
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 =

>>
20 Introducere în MATLAB

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ţiile 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
-1
este echivalent cu CD .
-1
Inversa matricei se notează cu C ş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]
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
22 Introducere în MATLAB

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 i n v e r s . A c e s t a s e o bţ i ne î n MATLAB utilizând
simbolul ‘ (apostrof). Ur mă t or ul exemplu a r a tă 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
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 unitate
meshgrid X şi Y matrici pentru desenare 3-D
ones Matricea cu toate elementele 1
zeros Matricea cu toate elementele 0
rand Generează numere aleatoare cu 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 elementelor
size 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 diagonalele
fliplr Roteşte matricea în jurul axei verticale
(inverseaza ordinea coloanelor)
flipud Roteşte matricea în jurul axei orizontale
(inverseaza ordinea liniilor)
reshape Schimbă dimensiunea matricei
rot90 Roteşte matricea cu 90 degrade
: (colon) Index în matrice, rearanjare matrice
24 Introducere în MATLAB

Table 1.7 Operaţii în matrici


det Determinantul matricei
trace Suma elementelor de pe diagonală
inv Inversa matricei
eig Valoarea proprie a unei matrici vectorului
poly Polinomul caracteristic
exp Exponent
logm Logaritm
sqrtm Rădăcină pătrată

1.2.3 Funcţii şi operaţii elementare


Operaţiile de bază precum adunare, scădere, înmulţire, î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 cosinus
acosh Arc cosinus hiperbolic
angle Argument
asin Arc sinus
asinh Arc sinus hiperbolic
atan Arc tangent
atanh Arctangent hiperbolic
conj Conjugatul unui număr complex
cos Cosinus
exp Exponenţial bază e
cosh Cosinus hiperbolic
floor Rotunjire spre infinit
fix Rotunjire spre zerou
imag Partea imaginară
log Logaritm natural
Introducere în MATLAB 25

log10 Logaritm zecimal


real Partea reală
rem Restul împărţirii
round Rotunjire către cel mai apropiat întreg
sign Funcţia semn
sinh Sinus hiperbolic
sqrt Rădăcină pătrată
tan Tangent
tanh 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


26 Introducere în MATLAB

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.
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
28 Introducere în MATLAB

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 ciclului
else Utilizat cu if
elseif Utilizat cu if
and Închide ciclul for, while, şi if
error 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 invocat
while 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);
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)


30 Introducere în MATLAB

>> (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 p a r t e a imaginară. D e e x e mp l u , 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)
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

s 3 + 32s 2 + 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().
32 Introducere în MATLAB

>> 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
Introducere în MATLAB 33

1.4 Verificare

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

N ( s) = 2s 2 + 6s + 9

D( s) = s 3 + 2s 2 − 9s + 1

N (s)
2. Fie o expresie raţională. Descompuneţi în fracţii simple folosind
D( s)
comenzile din Matlab.

3. Fie polinomul P ( s) = 2s 4 − 3s + 9 . 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 f (t ) = e − t ⋅ 4 cos(t ) cu o rezoluţie de 0.1s.

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


2s + 3
6. Evaluaţi polinomul F ( s ) = 2 utilizând funcţia polyval.
s − 3s + 5 s = 2
34 Introducere în MATLAB
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.
36 Modelarea sistemelor liniare

Astfel că putem scrie:

N ( s) (2.1)
G(s) =
D( s )

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

N ( s ) = bm s m + bm −1 s m −1 + ... + b1 s + b0 (2.2)

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

D( s) = a n s n + a n −1 s n −1 + ... + a1 s + a0 . (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:

s+3
G ( s) = . (2.4)
s − 2s + 1
3

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

d
x = Ax + Bu (2.5)
dt
y = Cx + Du

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:

d ⎡0 1 ⎤ ⎡ 0 ⎤
x=⎢ ⎥ x + ⎢2.083⎥u (2.6)
dt ⎣0 − 1.71⎦ ⎣ ⎦
y = [1.05 − 5]x

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 =
38 Modelarea sistemelor liniare

0
2.0830

>> C = [1.05 –5]

C =

1.0500 -5.0000

>> D = 0

D =

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

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

( s + z1 )( s + z 2 )...(s + z m ) ( s + 1)( s + 2)
G (s) = k =2 .
( s + p1 )( s + p 2 )...(s + p n ) s( s + 2)( s + 3)( s + 4)

Î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:
40 Modelarea sistemelor liniare

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ă
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).
42 Modelarea sistemelor liniare

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:

d2 d d
−5 2
y (t ) + 2 y (t ) + 3 y (t ) = x(t ) + x(t ) ; 2 y '' ' + y '' = x .
dt dt dt

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


posibile.

s +1 ( s + 1)( s + 2) 25 10
G ( s) = ; G ( s) = ; G ( s) = + .
s + 2s + 3
2
− s − 2s + 3s − 2
3 2
s + 3 s +1

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


sus.
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ă.
44 Conectarea sistemelor liniare

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

G ( s ) = G1 ( s ) ⋅ G1 ( s ) ⋅ L ⋅ G N ( s )
N (3.1)
G ( s) = ∏ Gk ( s)
k =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).

2s + 1
G1 ( s ) = (3.2)
s + 10s 2 − 2s + 1
3

s+2
G2 ( s ) = (3.3)
( s + 3)( s − 3)

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


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


46 Conectarea sistemelor liniare

G ( s ) = G1 ( s) + G1 ( s) + L + G N ( s )
N (3.4)
G ( s ) = ∑ Gk ( s)
k =1

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

G1 ( s )
G ( s) = (3.5)
1 m G1 ( s ) ⋅ G2 ( s )

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:
48 Conectarea sistemelor liniare

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.


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:
50 Conectarea sistemelor liniare

>> 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.
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.
52 Conectarea sistemelor liniare

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


54 Conectarea sistemelor liniare

3.4 Verificare
1. Determinaţi funcţia de transfer echivalentă pentru următoarele
sisteme conectate în serie folosind Matlab

2 2s + 5 s−2
G1 ( s ) = ; G2 ( s) = ; G3 ( s ) =
s+3 s − 5s + 7
2
s − 2)( s + 5 j )( s − 5 j )

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.

2s + 1 s−4 s −1
G4 ( s) = 2 ; G5 ( s ) = 2 ; G6 ( s) = −1
s +3 s − 2s + 2 2s + 3s − 2 + s −3

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.


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.
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.
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,
58 Introducere în Simulink

1
s+ 1
Step Transfer Fcn 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.
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


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


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


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


Introducere în Simulink 65

Notă: răspunsul la treapta de semnal începe la t = 1 . Acesta se poate


modifica prin dublu-click pe blocul "step". Dacă se schimbă parametrii
sistemului atunci se reface simularea din nou. Să facem acum dublu-click pe
blocul "Transfer Fcn" şi să modifică numitorul 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.
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 t = 1 ). 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.
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


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


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


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


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
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.
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.
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.
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.
Introducere în Simulink 81

Figura 4.37. Rezultat simulare


82 Introducere în Simulink
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
84 Analiza regimului tranzitoriu

ş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 s = σ + jω 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 G (s ) exprimată prin:

s 2 + 2s + 1
G(s) = 3 (5.1)
s + 2 s 2 + 3s − 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)
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.
86 Analiza regimului tranzitoriu

Pole-Zero Map
2

1.5

0.5
zerou

Imaginary Axis
poli
0

-0.5

-1

-1.5

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

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 - t r ,
- timpul de intrare în regim stabilizat - t ss ,
- timpul de atingere a supracreşterii maxime - t p ,
- 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:
Analiza regimului tranzitoriu 87

a
G(s) = (5.2)
s+a

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


răspunsul sistemului va fi:

Y ( s) = R( s) ⋅ G ( s)
a (5.3)
Y (s) =
s( s + a)

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

y (t ) = y f (t ) + y n (t ) = 1 − e − at (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.

5
Să considerăm funcţia de transfer G ( s ) = .
s+5

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


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

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 1 − exp(−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.
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 - t r . 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:

2,2
tr = (5.5)
a

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


sistem de ordinul I este timpul de stabilizare - t s . Timpul de stabilizare este
este definit ca fiind timpul necesar formei de undă pentru a atinge 98% din
valoarea semnalului aplicat la intrare. Timpul de stabilizare este dat de
relaţia:

4
ts = . (5.6)
a
90 Analiza regimului tranzitoriu

5.2.4 Analiza sistemelor de ordinul II


Un sistem de ordinul II este definit de relatia:

ωn
G ( s) = (5.7)
s + 2ςω n s + ω n2
2

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ă
s = ± jω n deoarece σ = 0 .

Cazul 2. ζ > 1 , sistem supraamortizat


Amplasarea celor doi poli în planul complex s este dată de valoarea
acesora
s = ςω n ± ω n ς 2 − 1 .

Cazul 3. ζ = 1 , sistem critic amorsat


Amplasarea polilor în acest caz este dată de relaţia
s = −ςω n (identici)

Cazul 4. 0 < ζ < 1 , sistem subamortizat


Polii sistemului sunt exprimaţi de relaţia:
Analiza regimului tranzitoriu 91

s = −ςω n ± jω n 1 − ς 2 .

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:

1
c(t ) = 1 − e −ςωnt sin( βω n t + θ ) (5.8)
β
unde
β
β = 1 − ς 2 şi θ = tan −1 (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:

π
tp = (5.10)
ωn 1 − ς 2

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


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

ξπ

1−ς 2
% PO = e x100% (5.11)

Timpul de stabilizare - t ss , 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:
92 Analiza regimului tranzitoriu

4
t ss = (5.12)
ςω n

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 ζ = 0.5 şi o frecvenţă naturală ω n = 4rad / sec este
prezentat în figura 5.4. Polii sistemului în buclă închisă sunt s = - 2 ± j3.46 .

ω n2 Y ( s) ωn2
G ( s) = ; = 2 (5.13)
s ( s + 2ζω n ) R( s ) s + 2ζω n s + ωn2

Figura 5.4. Răspunsul sistemului de ordinul II


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.

ωn2 ( s + z ) Y ( s) ωn2 ( s + z )
G ( s) = ; = 2 (5.14)
s ( s + 2ζω n ) R( s ) s + (2ζω n + ωn2 / z ) s + ωn2

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.
94 Analiza regimului tranzitoriu

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 z = 5
valoarea efectivă a factorului de atenuare este ζ = 0.9 , căruia îi corespunde
o supracrestere de 0.15%. Pentru z = 10 valoarea efectivă a factorului de
Analiza regimului tranzitoriu 95

atenuare este ζ = 0.7 , 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.

ωn2 p
G (s) = ;
s( s + 2ζω n )( s + p)

Y (s) ωn2 ( s + z )
= 3 (5.15)
R( s ) s + (2ζω n + p) s 2 + 2ζω n ps + ωn2 p

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 s = 0 si
s = −4 . Răspunsurile sistemului în buclă închisă pentru diferitele valori ale
96 Analiza regimului tranzitoriu

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
⎛ ⎛ imag (clp ) ⎞ ⎞
efectiv ζ eff = cos⎜⎜ tan −1 ⎜⎜ ⎟⎟ ⎟⎟ . Să remarcăm că timpul de atingere a
⎝ ⎝ real (clp ) ⎠⎠
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 s = −20 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


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+ -0.6244+j3.1514 -1.1224+j3.5144 -1.5473+j3.5935
j2.3833
-0.0725- j1.8139 -0.2037- -0.6244-j3.1514 -1.1224-j3.5144 -1.5473 - j3.5935
j2.3833

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:

4s 2 + 8s + 10 10 2s + 5
1. H (s) = ; 2. H ( s ) = ; 3. H ( s ) = ;
(s + 2)(s − 2s + 5)
2
s+3 s − 6s + 1
2

d ⎡− 3 − 2⎤ ⎡1 ⎤
s 2 + 5s + 25 x=⎢ ⎥ ⋅ x + ⎢ ⎥ ⋅u
4. H (s) = ; 5. dt ⎣1 0 ⎦ ⎣0 ⎦ ;
(s + 2 j)(s − 2 j)(s + 2)(s + 1)
y = [1 0] ⋅ x

s 2 + 2s + 1
6. H ( s ) = .
s 2 + 2s + 2

7. Determinaţi parametrii de răspuns în timp pentru ecuaţiile diferenţiale


date folosind descompunerea în fracţii partiale.
98 Analiza regimului tranzitoriu

d2 d d
25 2
y (t ) − 10 y (t ) + 5 y (t ) = 15 u (t ) + 2u (t )
dt dt dt

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


date folosind orice metodă.

d2 d d
−5 2
y (t ) + 5 y (t ) + y (t ) = 2 u (t ) + 3u (t ) − 1
dt dt dt

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:
Analiza regimului tranzitoriu 99

11. Ce se va întampla cu circuitul din figura următoare după ce


intrerupatorul va fi închis. Explicaţi.
100 Analiza regimului tranzitoriu
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
102 Analiza regimului stabil

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 Interpretarea fizica Funcţia de Transformata
de timp Laplace
intrare
treaptă Constanta de poziţie 1(t ) 1
s
rampă Constanta de viteză t 1
s2
parabolă Constanta de t2 1
acceleraţie s3

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 G (s) , iar funcţia de transfer pe calea inversă
este H ( s ) = 1 .
Analiza regimului stabil 103

R(s) E(s) C(s)

+ G (s )
-

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

Examinînd diagramadin figură, se observă că eroarea - E (s ) , este dată


de diferenţa dintre intrare de referinţă R(s ) şi ieşire C (s ) , şi este de forma:

E ( s) = R( s) − C ( s) (6.1)

Ieşirea - C (s ) , este egală cu produsul dintre intrare - R(s ) , şi funcţia


de transfer, G (s ) , fiind de forma:

C ( s) = E ( s) ⋅ G ( s) (6.2)

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


E (s ) după cum urmează:

R( s)
E ( s) = (6.3)
1 + G(s)

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


stationar - e(∞) , în forma:

s ⋅ R( s)
e(∞) = lim (6.4)
s →0 1 + G ( s )

dacă se cunoaşte intrarea R(s ) şi funcţia de transfer G (s) a sistemului

Dacă aplicăm diferite intrări de test pentru R(s ) , putem trage concluzii
privitoare la relaţiile care există între sistemul în buclă deschisă - G (s ) şi
natura erorilor din regimul staţionar - e(∞) .
104 Analiza regimului stabil

Pentru o intrare de test de tip treaptă, erorile din regimul staţionar se


pot determina cu relaţia:

1
e(∞) = lim . (6.5)
s →0 1 + G ( s )

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


determina cu relaţia:

1
e(∞) = lim . (6.6)
s →0 s ⋅ G(s)

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


pot determina cu relaţia:

1
e(∞) = lim . (6.7)
s →0 s ⋅ G ( s)
2

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

K P = lim G ( s ) . (6.8)
s →0

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:

K v = lim s ⋅ G ( s ) (6.9)
s →0
Analiza regimului stabil 105

K a = lim s 2 ⋅ G ( s ) (6.10)
s →0

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.

R(s) E(s) 500( s + 2)( s + 5) C(s)


+ ( s + 8)( s + 10)( s + 12)
-

Figura 6.2. Sistem cu reacţie negativă

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

>>
106 Analiza regimului stabil

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 G (s) .
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 G (s ) 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 G (s ) 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)


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 - G (s ) , î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:
108 Analiza regimului stabil

( s + z1 )( s + z 2 ) K
G ( s) = (6.11)
s ( s + p1 )( s + p 2 ) K
n

în care n reprezintă numărul de integrări pure. Dacă n = 0 , adică nu există


integratori în funcţia de transfer, atunci sistemul este de Tipul 0.
Dacă n = 1 , (există un singur integrator pur), atunci sistemul este de Tipul 1.
Asemanător, dacă n = 2 , 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 Formul Constant Eroare Constant Eroar Constant Eroar
de a de a de a de e a de e
intrare calcul a eroare eroare eroare
erorii statică statică statică
e ss
Treaptă, 1 1
u (t ) 1+ K p Kp = k 1+ K p Kp = ∞ 0 Kp = ∞ 0

Rampă, 1 1
tu (t ) Kv = 0 ∞ Kv = k Kv = ∞ 0
Kv Kv
Parabolă 1 1
, Ka = 0 ∞ Ka = 0 ∞ Ka = k
Ka Ka
t 2 u (t )

6.2.5 Erori ale regimului stabil datorate perturbaţiilor

Un sistem în buclă închisă supus unei perturbaţii - D(s ) , aplicate între


regulatorul - C (s) şi elementul controlat - G (s ) , este arătat în figura 6.3.
Analiza regimului stabil 109

D(s)
R(s) E(s) Y(s)
+
+ C (s ) + G (s )
-
B(s)

Figura 6.3. Sistem de control cu perturbaţie

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

1 G2 ( s )
E ( s) = R( s) − D( s) (6.12)
1 + G1 ( s )G2 ( s ) 1 + G1 ( s )G2 ( s )

1
În aceasta relaţie (6.12), termenul - este o funcţie de
1 + G1 ( s )G2 ( s )
transfer asociată cu eroarea E (s) în raport cu intrarea R(s) , iar termenul
G2 ( s)
− este o funcţie de transfer asociată cu eroarea E (s ) în
1 + G1 ( s )G2 ( s )
raport cu intrarea de perturbaţie D(s ) . Aplicând teorema valorii finale vom
putea determina valoarea erorii staţionare a regimului stabil.

Astfel că avem:

s ⋅ R( s)
E R (∞) = lim (6.13)
s →0 1 + G ( s )G ( s )
1 2

s ⋅ R( s) ⋅ G2 ( s)
E D (∞) = lim (6.14)
s →0 1 + G ( s )G ( s )
1 2

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


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

1
E D (∞ ) = (6.15)
1
+ lim G1 ( s )
lim G2 ( s ) s →0
s →0

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 G (s ) (elementului
controlat al sistemului), iar funcţia de transfer de pe reacţie (calea inversă)
este H (s ) . 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.

R(s) E(s) C(s)


+ G (s )
-
B(s)
H (s)

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


Analiza regimului stabil 111

R(s) E(s)
C(s)
+ G ( s)
- 1 + G ( s) ⋅ H ( s) − G ( s)
B(s)

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

Folosind metoda reducerii diagramelor bloc, funcţia de transfer


rezultată este în cazul sistemului din figura 6.5 dată de expresia:

G(s)
T (s) = (6.16)
1 + G ( s) H ( s) − G ( s)

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
∂F
variaţiilor funcţiei de transfer şi funcţia de transfer ( ) şi raportul
F
P
variaţiilor (derivata) parametrilor şi parametrii P ( ), aşa cum este arătat
∂P
în relaţia (6.17).

P ∂F
S PF = (6.17)
F ∂P
112 Analiza regimului stabil

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:

s →0 s →0
[
lim sE ( s ) = lim sR( s ) 1 − C (sI − A) B
−1
] (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 G (s ) de mai jos, atunci când la intrare se aplică o
treaptă, o rampă şi respectiv o parabolă.

15( s + 2)( s + 3)
G(s) =
( s + 3)( s + 4)( s + 5)( s + 6)

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


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

25( s + 1)( s + 2)
G ( s) =
s ( s + 3)( s + 4)

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


ale sistemului G (s ) de mai jos pentru o intrare de tip treaptă, rampă
şi respectiv parabolă.
Analiza regimului stabil 113

10( s + 5)( s + 6)
G ( s) =
s 2 ( s + 2)( s + 3)

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


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

25 s
C ( s) = şi G ( s ) = .
s+2 ( s + 1)( s + 2)

4. Pentru sistemul din figura 6.4 valoarea erorii din regimul stationar
1 10
este . Se cere să se determine valoarea lui K dacă C ( s ) = ,
100 s+3
100 k
G(s) = şi H ( s ) = .
s ( s + 1)( s + 2) s+5
114 Analiza regimului stabil
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.
116 Metoda locul rădăcinilor

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:

Y ( s) p( s)
T (s) = = (7.1)
R( s) q( s)

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


caracteristice q( s ) = 0 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:

1 + K ⋅ G (s) = 0 (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.

R(s) E(s) Y(s)

+ K G (s )
-
B(s)

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


cu un parametru K variabil

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).
Metoda locul rădăcinilor 117

R(s) E(s) Y(s)


K ⋅ ( s + 1)
+
- s ⋅ ( s + 2)
B(s)
1
s+3

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

Y (s) K ( s + 1)( s + 3)
T (s) = = (7.3)
R( s ) s ( s + 2)( s + 3) + K ( s + 1)

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


118 Metoda locul rădăcinilor

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 T (s ) 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:

s +1
1+ K = 0. (7.4)
s ( s + 2)( s + 3)

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


120 Metoda locul rădăcinilor

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


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

⎛ 2,0636 + j 3,4306 ⎞
⎜ ⎟
polii: s = ⎜ 2,0636 − j 3,4306 ⎟
⎜ 0.8454 ⎟
⎝ ⎠

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 T (s ) din relatia (7.4), astfel că
ieşirea este:

13,6002( s + 1)( s + 3) 1
Y (s) = ⋅ . (7.5)
( s + 2)( s + 3) + 13,6002( s + 1) s

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


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

>> K = 13.6002;
>> num = K*poly([-1 -3]);
>> den = [1 5 6+K K 0]; % with R(s) included
>> [r,p,k]=residue(num,den)

r =
-1.2983 - 1.1461i
-1.2983 + 1.1461i
-0.4033
3.0000

p =
-2.0773 + 3.4311i
-2.0773 - 3.4311i
122 Metoda locul rădăcinilor
-0.8454
0

k =
[]

>>

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

− 1.2983 − j1.1461 − 1.2983 + j1.1461


Y (s) = +
s + 2.0773 − j 3.4311 s + 2.0773 + j 3.4311
(7.6)
− 0.4033 3
+ +
s + 0.8454 s

Aşa cum se poate vedea din relaţia anterioară (7.6), efectul datorat
polului s = - 0.8454 este foarte mic în comparaţie cu ceilalţi doi poli. Astfel
că, dacă îl neglijăm putem face următoarea aproximare:

− 1.2983 − j1.1461 − 1.2983 + j1.1461 3


Y (s) = + + (7.7)
s + 2.0773 − j 3.4311 s + 2.0773 + j 3.4311 s

Pe baza relaţiei (7.7) se poate determina factorul de amortizare - ς ,


frecvenţa naturală - ω n şi timpul de stabilizare - t ss .

>> poly([-2.0773-3.4311i –2.0773+3.4311i])

ans =
1.0000 4.1546 16.0876

>>

Pentru sistemul de ordinul doi scris sub forma standard consacrată

ω n2
T (s) = , (7.8)
s 2 + 2 sω n ξ + ω n
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:

ω n = 16,0876 2ζω n = 4,1546


ω n = 4,0109
ζ = 0,5179

Pentru un factor de amortizare ς cuprins intre 0 < ζ < 1 , se consideră că


avem un sistem cu răspuns subatenuat, cu un timp de stabilizare
4
t ss = = 1,93 secunde. Rezultatul obţinut este prezentat în figura 7.6.
ζ ⋅ ωn

Figura 7.6. Răspunsul sistemului la treapta de semnal (timp de stabilizare


t s = 1,93 s)
124 Metoda locul rădăcinilor

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:
Metoda locul rădăcinilor 125

P ∂F K ∂s
S Ks = ⇒ S Ks = (7.9)
F ∂P s ∂K

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

s ∆K
S Ks = (7.10)
∆s K
s
unde reprezintă modificarea fracţionară datorată locaţiei polului - s, iar
∆s
∆K
este modificarea fracţionară datorată câştigului - K. Sensibilitatea este
K
un număr complex care se poate exprima sub forma

S Ks = σ + jω ⇒ r∠θ , (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: 0 < K < ∞ .

5 s 2 + 3s + 1
(a) G(s) = ; (b) G ( s ) = ;
s 3 + 2s 2 − s + 1 s 3 + 5s 2 + 2 s + 1
s3 + s2 + s +1
(c) G ( s) = 6 .
s + 12s 2 − 23s + 5
126 Metoda locul rădăcinilor

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


deschisă dată de expresia

KG ( s ) = K
(s − 2s + 2) .
2

s (s + 3s + 2 )
2

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 G (s ) este

s +1
G ( s) = .
s2

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.

R(s) E(s) Y(s)

+ C(s) G(s)
-
B(s)

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


cu regulator C ( s )

Avem trei posibile regulatoare pentru sistem considerat anterior:

(a) G(s) = K (regulator proportional)


K
(b) G ( s) = (regulator integral)
s
K
(c) G ( s) = 2 (regulator proportional, dublu integral)
s
Metoda locul rădăcinilor 127

Condiţia de proiectare care trebuie satisfăcută este dată de timpul de


atingere a regimului stabil, adică t ss < 10 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.
128 Metoda locul rădăcinilor
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.
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ă Gc ( s ) este un regulator, iar G p (s ) este sistemul controlat a
1
cărui funcţie de transfer este G p ( s) = .
s( s + 2)( s + 5)
Proiectarea sistemelor de control cu metoda locul rădăcinilor 131

8.3.1 Proiectarea unui regulator de tip P

Să considerăm că Gc (s ) 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 ς = 0,6 .

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.


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.
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).
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
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 C (s ) . 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.
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 ς = 0,6 ,


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.
Proiectarea sistemelor de control cu metoda locul rădăcinilor 137

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

Factorul de câştig determinat este K 0 = 8,89 . 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,
s1 = −0,766 + j1,02 şi respectiv ωn = 1,28 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.
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 ς = 0,707


• Timpul de atingere a regimului stabilizat sa fie t s = 2 sec.

ts = 4τ , şi τ = 0,5 sec.
1 1
ςωn = = = 2 , şi tan −1 (0,707) = 45 º
τ 0,5
Prin urmare s1 = −2 + j 2

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


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 ς = 0,707 , 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 s1 = −2 + j 2 , 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.
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:
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 C ( s) = 10s + 24 .

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


K (s + z 0 )
avans de fază C ( s ) = 0 care să îndeplinească următoarele
(s + p0 )
specificaţii:

• Polii dominanţi să prezinte un factor de atenuare ς = 0,707


• Polii dominanţi să asigure un timp de atingere a regimului stabil
t s = 2 sec.

Avem că:

t s = 4τ = 2 ⇒ τ = 0,5 sec.
1 1
ςω n = = = 2 şi tan −1 (0,707) = 45 º.
τ 0.5

Prin urmare va exista un pol de valoare s1 = −2 + j 2

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
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 ς = 0,707 .
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 z1 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.
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:
Proiectarea sistemelor de control cu metoda locul rădăcinilor 147

64,2588 ⋅ ( s + 1.75)
s + 8.023

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


64 ⋅ ( s + 1.75)
cu .
( s + 8)

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ă
148 Proiectarea sistemelor de control cu metoda locul rădăcinilor
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


1
avans de fază pentru sistemul G (s ) = , astfel încît eroarea în starea
s(s + 1)
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%.
150 Proiectarea sistemelor de control cu metoda diagramelor BODE

Specificarea erorii din starea stabilă

K ⋅1
K V = lim sG (s ) = lim s =K (9.1)
s →0 s →0 s(s + 1)

1 1
ess = = < 0.1 ⇒ K ≥ 10
KV K

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

1−ζ 2
Overshoot(%) = 100e (9.2)

În Figura 9.1 s-a reprezentat dependenţa grafică dintre aceşti 2 factori.

100

90

80

70

60
% Overs hoot

50

40

30

20

10

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
damping ratio ζ

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


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ă
ω n2
închisă G (s ) = este dată de relaţia următoare
s(s + 2ζω n )
⎛ ⎞
⎜ −1 2ζ ⎟
PM = tan ⎜ ⎟ (9.3)
⎜ 1 + 4ζ 2 − 2ζ 2 ⎟⎠

ceea ce arată că marginea de fază pentru un sistem compensat ar trebui să fie


mai mare de 45o pentru a obţine o supracreştere maximă mai mică de 25%
şi aşa cum se prezintă în Figura 9.2.

80

70

60
P has e M argin (P M )

50

40

30

20

10

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
damping ratio ζ

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


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 K = 10 .
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.

Bode Diagrams

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


60

40

20
Phase (deg); Magnitude (dB)

-20

-100

-120

-140

-160

-180
-1 0
10 10
Frequency (rad/sec)

Figura 9.3 Diagramele Bode pentru sistemul necompensat - K ⋅ G (s )


Proiectarea sistemelor de control cu metoda diagramelor BODE 153

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


PM uncomp ≈ 20 o . Astfel, alegînd o margine de fază PM pentru
sistemul compensat egală cu PM comp = 45o , rezultă că avem nevoie
de o valoare adiţională de fază φ m = PM comp − PM uncomp = 25o .
Acum că φ m a fost determinat, se poate determina parametrul α al
compensatorului cu avans de fază, care se va alege α = 0.3 şi care va
corespunde unei faze maxime de avans de 33o .
iii.) Faza maximă de avans φ m trebuie să fie 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 − 10 log(0.3) = 5.2dB
corespunzător unei frecvenţe noi ω m . Astfel, trebuie determinată
frecvenţa la care sistemul necompensat are o amplificare de
10 log(0.3) = −5.2dB . Prin urmare, ω m ar trebui să fie egală cu această
frecvenţă astfel ca, aceasta să devină noua frecvenţă de trecere 0-dB
pentru sistemul compensat. Prin analiza Figurii 9.3, factorul de câştig
al sistemului necompensat este egal cu –5.2dB la o frecvenţă
ω = 4.5 rad sec . Fie ω m = 4.5 rad sec .

iv.) Se vor calcula parametrii compensatorului cu avans de fază pe baza


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

1 s +1 T
C (s ) = ⋅ (9.4)
α s + 1 αT
sau

jωT + 1
C ( jω ) = cu α < 1 (9.5)
jωαT + 1
1
unde T = .
ωm α

Astfel, pentru α = 0.3 , T = 0.41 sec . Aceasta conduce la următorul


compensator cu avans de fază:
154 Proiectarea sistemelor de control cu metoda diagramelor BODE

0.41s + 1
C (s ) = (9.6)
0.123s + 1

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


Proiectarea sistemelor de control cu metoda diagramelor BODE 155

Bode Diagrams

30
Phase (deg); Magnitude (dB)

25

20

30

20

10

-1 0 1 2
10 10 10 10
Frequency (rad/sec)

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

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');
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.

Bode Diagrams
50
Magnitude (dB)

0 uncompensated
compensated

-50

-100
-1 0 1 2
10 10 10 10

-80

-100
uncompensated
Phase (deg)

-120 compensated compensated


system
-140
uncompensat
-160 ed system
-180
-1 0 1 2
10 10 10 10
Frequency (rad/sec)
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.


Proiectarea sistemelor de control cu metoda diagramelor BODE 157

Step Response

1.6

1.4

uncompensated
1.2 compensated

1
Amplitude

0.8

0.6

0.4

0.2

0
0 2 4 6 8 10 12
Time (sec.)

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

Unit Ramp Input response


5

4.5

4
uncompensated
3.5 compensated
desired
3

2.5

1.5

0.5

0
0 1 2 3 4 5
Time (sec)

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ă


1
întîrziată pentru sistemul G (s ) = , astfel încît eroarea staţionară în
s(s + 1)
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 K ≥ 10 .

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

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

PM comp ≥ 45o .
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 K = 10 .
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 50o . Vom nota
această frecvenţa ca fiind noua frecvenţa de trecere ω m . Din figura
9.8, se vede că ω m = 0.84 rad sec .

Bode Diagrams

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


60

40

20
P has e (deg); M agnitude (dB )

-20

-100

-120

-140 ωm
-160

-180
-1 0
10 10
Frequency (rad/sec)

Figura 9.8. Diagrama Bode pentru sistemul necompensat K ⋅ G (s ) .


160 Proiectarea sistemelor de control cu metoda diagramelor BODE

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


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

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


20
phase-lag să furnizeze 20 log(α ) = 20 dB or α = 10 20 = 10 .

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

1 s +1 T
C (s ) = ⋅ (9.7)
α s + 1 αT

sau

jω T + 1
C ( jω ) = cu α > 1 (9.8)
jωαT + 1

10 1
unde T = = 11.9 sec . Aceasta asigură ca frecvenţa ω =
să fie
ωm T
cu o decadă sub noua frecvenţă de trecere ω m . Astfel compensatorul
phase-lag proiectat este dat de

11.9s + 1
C (s ) = . (9.10)
119s + 1

Rezultate simulate pentru Compensatorul Phase-lag

Simulare în Matlab pentru compensatorul de fază întîrziată este dată de


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

Bode Diagrams

20

15

10

Phase (deg); M agnitude (dB)


5

-10

-20
-30

-40
-50
-3 -2 -1 0
10 10 10 10
Frequency (rad/sec)

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

Bode Diagrams
50
Magnitude (dB)

0 uncompensated
compensated

-50

-100
-1 0 1 2
10 10 10 10

-80
compensate
-100 d system
uncompensated
Phase (deg)

-120 uncompensat compensated


ed system
-140

-160

-180
-1 0 1 2
10 10 10 10
Frequency (rad/sec)
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ă.
164 Proiectarea sistemelor de control cu metoda diagramelor BODE

Step Response

1.6

1.4

uncompensated
1.2 compensated

1
Amplitude

0.8

0.6

0.4

0.2

0
0 5 10 15 20 25 30 35
Time (sec.)

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

Unit Ramp Input response


5

4.5

4
uncompensated
3.5 compensated
desired
3

2.5

1.5

0.5

0
0 1 2 3 4 5
Time (sec)

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


semnalul rampă unitară
166 Proiectarea sistemelor de control cu metoda diagramelor BODE
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;
168 Proiect de curs

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.

26-28 Baritiu • Electrical Engineering Building • Technical University of Cluj • Cluj-Napoca • Romania
Telephone: (0264) 401242 • Lab: (0264) 401830 • Fax: (0264) 592055
http://www.et.utcluj.ro Calin.Rusu@edr.utcluj.ro
169

Bibliografie

1. MATLAB 7.1 Student Version Release 14 with Service Pack 3,


MathWotks, 2005
2. Simulink 6.3 Student Version Release 14 with Service Pack 3,
MathWorks, 2005
3. Control Tutorials for Matlab, Prentice Hall, Ann Arbor, MI, 2001, ISBN
0-201-47700-9
3. Brian, Adrian - MATLAB 5 for Engineers, Prentice Hall, New-York,
1999
4. 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.

S-ar putea să vă placă și