Sunteți pe pagina 1din 194

Universitatea Politehnica Bucureşti

Facultatea de Automatică şi Calculatoare


Departamentul de Automatică şi Ingineria Sistemelor

Semnale şi sisteme

Îndrumar de laborator

Florin S. Tudor, Cristian Oară, Radu Ştefan

Bucureşti, 2013
Prefaţă
Îndrumarul de laborator cu titlul Semnale şi Sisteme se adresează ı̂n principal
studenţilor Facultăţii de Automatică şi Calculatoare, din cadrul Universităţii
”Politehnica” din Bucureşti, anul II de Licenţă. Cartea poate fi folosită şi de
către inginerul automatist, care caută o mai bună ı̂nţelegere teoretică şi apli-
cativă a domeniului semnalelor şi sistemelor, fundamental ı̂n ştiinţa Ingineriei
Sistemelor.
Lucrarea conţine 7 capitole, orientate preponderent către aplicaţii ce trebuie
dezvoltate ı̂n mediul Matlab R
, un limbaj de nivel ı̂nalt, folosit pe scară largă
atât de universităţile renumite, cât şi ı̂n cercetare / proiectare inginerească de
vârf. Generic, un capitol cuprinde breviarul teoretic aferent, exemple, exerciţii
rezolvate (codul Matlab aferent este dat ı̂n Anexă) şi probleme propuse, care
au ca scop aprofundarea şi extinderea noţiunilor prezentate.
Capitolul 1 conţine o scurtă introducere ı̂n Matlab: variabile (scalare, vecto-
riale, matriciale), tipuri de fişiere, operatori, reprezentări grafice de funcţii ı̂n
două, respectiv trei dimensiuni. Capitolul 2 abordează problematica semnale-
lor. Se studiază operaţii elementare cu semnale (translaţia ı̂n timp, convoluţia),
tratate din punct de vedere numeric, precum şi reprezentarea ı̂n frecvenţă a
semnalelor. Sunt prezentate câteva aplicaţii interesante: periodicitatea feno-
menelor naturale, analiza/sinteza semnalelor audio, prelucrări elementare de
imagini. În Capitolul 3, se introduce conceptul de sistem. Expunerea este
centrată ı̂n jurul sistemelor de convoluţie (liniare şi invariante ı̂n timp). Sunt
prezentate exemple tipice de sisteme (masă–resort cu amortizare, circuitul
RC), ı̂mpreună cu funcţiile de transfer corespunzatoare. Capitolul 4 tratează
răspunsul dinamic al sistemelor de convoluţie cu o intrare şi o iesire, pentru
semnale de tip persistent (impuls, treaptă, semnal armonic). Capitolul 5 ı̂şi
propune familiarizarea cititorului cu reprezentarea ı̂n frecvenţă a sistemelor
(caracteristicile amplitudine–frecvenţă şi fază frecvenţă, cunoscute ca diagra-
mele Bode) şi cu noţiuni elementare de filtrare. Capitolul 6 propune studiul
reprezentării polare a funcţiei de transfer (care este o funcţie raţională com-
plexă), cunoscută ca locul Nyquist sau hodograful. De asemenea, criteriul
de stabilitate al lui Nyquist este enunţat şi aplicat pe exemple. Capitolul 7
completează noţiunile despre sisteme dinamice ı̂n timp discret.

Bucureşti, 2013 Autorii

v
Cuprins

Prefaţă v

1. Introducere ı̂n Matlab 1


1.1. Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Prezentarea mediului de programare . . . . . . . . . . . . . . . 1
1.3. Reprezentarea grafică a funcţiilor . . . . . . . . . . . . . . . . . 7
1.4. Polinoame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5. Platforma Mathematica şi Matlab . . . . . . . . . . . . . . . . 11
1.6. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Semnale 23
2.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1. Convoluţia şi translaţia ı̂n timp . . . . . . . . . . . . . . 28
2.3.2. Aproximaţii ale funcţiei δ . . . . . . . . . . . . . . . . . 29
2.3.3. Transformări integrale . . . . . . . . . . . . . . . . . . . 30
2.4. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3. Sisteme 41
3.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.1. Sisteme de convoluţie . . . . . . . . . . . . . . . . . . . 41
3.2.2. Circuitul RC . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.3. Ecuaţii diferenţiale forţate . . . . . . . . . . . . . . . . . 44
3.3. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4. Răspunsul dinamic 59
4.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2. Moduri de reprezentare ale unui sistem SISO . . . . . . . . . . 59
4.3. Analiza răspunsului ı̂n timp . . . . . . . . . . . . . . . . . . . . 60
4.3.1. Sisteme de ordinul I . . . . . . . . . . . . . . . . . . . . 62
4.3.2. Sisteme de ordinul II cu poli reali . . . . . . . . . . . . . 66
4.3.3. Sisteme de ordinul II cu poli complecşi . . . . . . . . . . 68
4.4. Specificaţii de performanţă . . . . . . . . . . . . . . . . . . . . 70

vii
viii Semnale şi sisteme. Îndrumar de laborator

4.5. Efectul zerourilor şi al polilor suplimentari . . . . . . . . . . . . 74


4.5.1. Efectul unui zerou . . . . . . . . . . . . . . . . . . . . . 74
4.5.2. Efectul unui pol . . . . . . . . . . . . . . . . . . . . . . 75
4.6. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5. Diagramele Bode 83
5.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2.1. Diagramele Bode . . . . . . . . . . . . . . . . . . . . . . 84
5.2.2. Filtrare . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6. Analiza Nyquist 109


6.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 109
6.2. Hodograful . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.2.1. Conturul Nyquist . . . . . . . . . . . . . . . . . . . . . . 109
6.2.2. Hodografele elementelor de bază . . . . . . . . . . . . . 110
6.2.3. Trasarea calitativă . . . . . . . . . . . . . . . . . . . . . 111
6.3. Analiza stabilităţii . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.3.1. Criteriul lui Nyquist . . . . . . . . . . . . . . . . . . . . 113
6.4. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.5. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7. Sisteme ı̂n timp discret 129


7.1. Scopul laboratorului . . . . . . . . . . . . . . . . . . . . . . . . 129
7.2. Eşantionarea semnalelor . . . . . . . . . . . . . . . . . . . . . . 129
7.3. Modele discrete . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.4. Alte metode de discretizare . . . . . . . . . . . . . . . . . . . . 131
7.5. Metodologii de sinteză . . . . . . . . . . . . . . . . . . . . . . . 132
7.6. Exerciţii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.7. Exerciţii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . 134

A. Programe Matlab pentru exerciţii rezolvate 137


A.1. Introducere ı̂n Matlab . . . . . . . . . . . . . . . . . . . . . . . 137
A.2. Semnale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
A.3. Sisteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
A.4. Răspunsul dinamic . . . . . . . . . . . . . . . . . . . . . . . . . 155
A.5. Diagramele Bode . . . . . . . . . . . . . . . . . . . . . . . . . . 168
A.6. Analiza Nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

Postfaţă 187

Bibliografie 189
1. Introducere ı̂n Matlab

1.1. Introducere
Numele MATLAB R
este prescurtarea sintagmei MATrix LABoratory. Limba-
jul a fost scris iniţial ca să faciliteze accesul şi utilizarea programelor dedicate
calculului algebric: LINPACK (LINear Algebra PACKage), BLAS (Basic Li-
near Algebra Subprograms) şi EISPACK (EIgen System PACKage).
Matlab este un limbaj de nivel ı̂nalt şi un mediu de lucru interactiv, care
permite efectuarea de calcule numerice mai eficient decât utilizând limbaje de
programare clasice, spre exemplu Fortran, C/C++, Java. Principalele aplicaţii
vizează scrierea de algoritmi, analiza şi vizualizarea datelor, prelucrarea sem-
nalelor, modelare asistată de calculator, proiectarea sistemelor automate. De
asemenea, Matlab are ı̂ncorporate câteva zeci de toolboxuri utile pentru o gamă
largă de aplicaţii: Control System Toolbox, Signal Processing Toolbox, Bio-
informatics Toolbox, Aerospace Toolbox, Image Acquisition Toolbox şi multe
altele, dintr-o varietate de domenii inginereşti.
Matlab are ı̂ncorporat pachetul Simulink R
, un mediu programare bazat pe
diagrame bloc, dedicat simulării asistate de calculator.
Mai multe informaţii despre Matlab pot fi găsite pe site-ul web al pro-
ducătorului: The MathWorks Inc., http://www.mathworks.com.

1.2. Prezentarea mediului de programare


Matlab conţine câteva comenzi utile similare comenzilor UNIX, de exemplu
ls, pwd, cd. Comenzile sunt utile pentru a lista directorul de lucru al mediului
Matlab, verificarea căii către directorul de lucru şi schimbarea directorului de
lucru. Matlab ı̂şi caută fişierele ı̂n anumite directoare, care sunt controlate de
comanda path. Comanda path listează directoarele din calea ı̂n care mediul
Matlab caută aceste fişiere. Un nou director poate fi adăugat la aceasta cale cu
comanda path(path,p) sau path(p,path), unde p este directorul nou (care
poate conţine de exemplu funcţii scrise de utilizator).

Help ı̂n Matlab


Dacă se cunoaşte numele unei funcţii pe care dorim să o utilizăm, se foloşete
comanda help pentru a afla detalii complete cu privire la apelul acesteia:
>> help numefuncţie

1
2 Semnale şi sisteme. Îndrumar de laborator

Această comandă dă o descriere a funcţiei şi o listă de funcţii legate de ea.
Dacă nu vă amintiţi exact numele funcţiei, puteţi folosi comanda lookfor şi
un cuvânt cheie asociat funcţiei. Această comandă va afişa o listă de funcţii
care au acel cuvânt cheie ı̂n descriere:

>> lookfor cuv^


antcheie

Comanda doc deschide browserul Help. Comanda doc numefuntie afişează


documentaţia disponibilă pentru funcţia/clasa/librăria specificată.
Alte comenzi utile sunt info, what si which. Descrierea acestor comenzi
poate fi găsită cu ajutorul comenzii help. Matlab mai conţine o serie de
exemple care pot fi vizualizate cu ajutorul comenzii demo.

Operatori ı̂n Matlab


Matlab conţine toate structurile de comandă obişnuite. În continuare sunt
daţi operatorii elementari.

(i) Operatori relaţionali: mai mic (<), mai mic sau egal (<=), mai mare (>),
mai mare sau egal (>=), egal (==), diferit (∼=). Atenţie la diferenţa
dintre operatorul de atribuire ’=’ şi cel de testare a egalităţii ’==’.
(ii) Operatori aritmetici: adunare (+), scădere (–), ı̂nmulţire (*), ı̂mpărţire
la dreapta (/), ı̂mpărţire la stânga (\), ridicare la putere (ˆ) , transpus
conjugata (’).
(iii) Operaţii ı̂n buclă şi operaţii logice: for, while, if şi & (and), |(or) şi ˜
(not).

Variabile Matlab
Variabilele uzuale ı̂n Matlab sunt scalari, vectori, matrice. Aceste variabile
pot fi create printr-o simplă asignare:

>> x = 17*2/9-33

Odată creată, o variabilă poate fi reasignată, atât ca tip (float, double etc.)
cât şi ca valoare. În plus, dacă nu doriţi afişarea rezultatelor intermediare,
puneţi ’;’ la sfârşitul liniei:

>> t = 5;
>> t = t+1

Matlab permite lucrul cu numere complexe. −1 poate fi scris i sau j cu
condiţia să nu fie redefinite de utilizator. De asemenea, -1+2j este interpre-
tat corect, ı̂n schimb -1+j2 nu este: Matlab interpretează j2 ca numele unei
Capitolul 1. Introducere ı̂n Matlab 3

variabile. Se poate scrie -1+j*2. În continuare sunt date câteva operaţii cu
numere complexe:

Scalar complex >> x = 3 + 4j


Partea reală a lui x >> real(x) =⇒ 3
Partea imaginară a lui x >> imag(x) =⇒ 4
Modulul lui x >> abs(x) =⇒ 5
Argumentul lui x >> angle(x) =⇒ 0.9273
Conjugatul lui x >> conj(x) =⇒ 3 − 4i

Generarea matricelor
Matlab stochează variabilele sub forma unor matrice de dimensiuni m × n,
unde m este numărul de linii şi n este numărul de coloane. O matrice de
dimensiune 1 × 1 este un scalar; o matrice de dimensiune 1 × n este un vector
linie, iar o matrice m × 1 este un vector coloană. O matrice este scrisă ı̂ntre
paranteze drepte [ ], cu spaţii care separă coloane adiacente şi ’;’ care separă
linii adiacente. Elementele complexe ale unei matrice nu trebuie să fie scrise
cu spaţii: spre exemplu, -1+2j este corect ca element al matricei, dar -1 +
2j nu este. Ca exemplu, se consideră următoarele valori pentru variabila x:

Vector linie >> x = [1 2 3] sau >> x = [1, 2, 3]


Vector coloană >> x = [1; 2; 3] sau >> x = [1, 2, 3]0
Matrice 3 × 3 >> x = [1 2 3; 4 5 6; 7 8 9]
Matrice 2 × 3 complexă >> x = [1 + 3j 1 + j 5j; 4 5 + j 7 − 6j]
Vectorii pot fi generaţi folosind operatorul două puncte ’:’. De exemplu,
pentru a genera un vector x care ia valori ı̂ntre 0 şi 10 cu pasul 0.5, se poate
folosi următoarea comandă (generează o matrice de 1 ∗ ×21)

>> x=0:0.5:10;

Alte metode sunt (apelaţi help numefuncţie):


(i) linspace - generează un vector prin specificarea primului şi ultimului
element şi a numărului de intervale egale dintre cele două numere;
(ii) logspace - este asemănătoare comenzii linspace, numai că intervalele
sunt echidistante pe o scală logaritmică.
Matlab conţine funcţii care generează matrice speciale:

eye(n) Returnează matricea identitate n × n


zeros(m,n) Returnează o matrice m × n cu zerouri
ones(m,n) Returnează o matrice m × n cu elemente de unu
diag(A) Extrage diagonala matricei A
rand(m,n) Returnează o matrice m × n cu elemente aleatoare
4 Semnale şi sisteme. Îndrumar de laborator

Accesul la elementele unei matrice


Elementele unei matrice sunt accesate prin specificarea liniei şi a coloanei. De
exemplu, ı̂n matricea A=[1 2 3; 4 5 6; 7 8 9], elementul de pe linia 1 şi
coloana 3 poate fi accesat scriind:

>> x=A(1,3) care va ı̂ntoarce valoarea 3

Linia 2 poate fi obţinută scriind:

>> y=A(2,:) care va ı̂ntoarce [4 5 6] unde ’:’ ı̂nseamnă ”toate coloanele”.

O submatrice a lui A formată din liniile 1 şi 2 şi toate coloanele poate fi scrisă:

>> z=A(1:2,1:3) care ı̂ntoarce [1 2 3;4 5 6]

Un element al unei matrice poate fi corectat uşor. Spre exemplu, dacă vrem
să ı̂nlocuim valoarea de pe poziţia 3×3 cu 0, scriem A(3,3) = 0.

Operaţii cu matrice
Matlab poate efectua operaţii aritmetice, relaţionale şi logice cu matrice.
Dacă dimensiunile matricelor implicate ı̂n operaţie sunt incompatibile, Mat-
lab ı̂ntoarce un mesaj de eroare. Împărţirea este definită ı̂n felul următor:
Soluţia ecuaţiei A ∗ x = b este x = A\b şi soluţia ecuaţiei x ∗ A = b este
x = b/A numai dacă A este inversabilă şi toate matricele sunt compatibile
dimensional.
Adunarea şi scăderea implică operaţii element cu element; ı̂n schimb, ı̂nmulţi-
rea şi ı̂mpărţirea nu. Matlab oferă şi posibilitatea efectuării operaţiilor element
cu element punând ’.’ ı̂naintea operatorului după cum urmează: ı̂nmulţire
(.*), ı̂mpărţire la dreapta (./), ı̂mpărţire la stânga (.\), ridicare la putere (.ˆ),
transpus conjugata (.’). Diferenţa dintre ı̂nmulţirea de matrice şi ı̂nmulţirea
element cu element este vizibilă ı̂n următorul exemplu:

>> A = [1 2;3 4]
>> B = A*A
>> C = A.*A

Matlab are o serie de funcţii pentru determinarea inversei, determinantului,


valorilor proprii şi multe altele. În cele ce urmează sunt listate câteva funcţii
utile.
Capitolul 1. Introducere ı̂n Matlab 5

det(A) Determinantul matricei A


inv(A) Inversa matricei A
eig(A) Valorile şi vectorii proprii
norm(A) Norme vectoriale şi matriciale
rank(A) Rangul matricei A

Fişiere Matlab
Există mai multe tipuri de fişiere Matlab: scripturi de comenzi Matlab, fişiere
care definesc funcţii create de utilizator, fişiere care includ rezultate numerice
sau grafice.

Fişiere *.m

Matlab este un limbaj interpretativ (interpretor), comenzile scrise sunt inter-


pretate ı̂n sesiunea curentă a Matlab. Totuşi, este dificil să scriem secvenţe
lungi de comenzi de fiecare dată când vrem să realizăm un obiectiv. Există
două modalităţi de a extinde puterea Matlabului: scripturi şi funcţii. Ambele
metode utilizează fişiere .m. Avantajul fişierelor .m este că sunt salvate co-
menzile şi pot fi uşor modificate fără a rescrie la fiecare rulare ı̂ntreaga listă
de comenzi.

Scripturi

Scripturile Matlab sunt secvenţe de comenzi scrise ı̂ntr-un editor şi salvate
ı̂ntr-un fişier .m. Comenzile se scriu ı̂n ordinea execuţiei. Instrucţiunile sunt
executate scriind numele fişierului ı̂n promptul Matlab:

>> nume_fisier

Execuţia fişierelor .m este echivalentă cu scrierea ı̂ntregii liste de comenzi ı̂n


promptul Matlab. Toate variabilele folosite ı̂n fişierul .m sunt aduse ı̂n mediul
de lucru Matlab, workspace. Mediul de lucru, care este gol la pornirea Matla-
bului, conţine toate variabilele definite ı̂n sesiunea respectivă.

Funcţii

Un al doilea tip de fişier .m poate fi o funcţie care are următoarea formă:

function [iesire1,iesire2]= numefunctie(intrare1, intrare2)


Comanda Matlab1;
Comanda Matlab2;
6 Semnale şi sisteme. Îndrumar de laborator

Numele fişierului .m corespunzător acestei funcţii este numefunctie.m şi


este executat din linia de comandă Matlab sau dintr-un alt fişier .m prin:

>> [iesire1,iesire2]=numefunctie(intrare1,intrare2)

Observaţii.

(i) Comentariile se marchează cu ’%’.

(ii) Afişarea rezultatelor este suprimată prin folosirea ’;’la sfârşitul liniei.

(iii) O linie poate fi extinsă pe o alta folosind ’...’ la sfârşitul primei linii.

Fişiere .mat
Fişierele .mat sunt fişiere binare (comprimate), folosite pentru a stoca rezul-
tate numerice. Aceste fişiere pot fi folosite pentru a salva rezultate generate
printr-o secvenţă de instrucţiuni Matlab. De exemplu, pentru a salva valorile
a două variabile, var1 şi var2 ı̂n fişierul numefişier.mat vom scrie:

>> save numefisier.mat var1 var2

Pentru a salva ı̂n acest fişier toate variabilele curente (existente ı̂n spaţiul de
lucru):

>> save numefisier.mat

Un fişier .mat poate fi ı̂ncărcat ı̂n Matlab apelând

>> load numefisier.mat

Fişiere postscript
Graficele generate ı̂n Matlab pot fi salvate ı̂ntr-un fişier postscript pentru a fi
utilizate mai târziu. De exemplu, pentru a salva graficul curent vom scrie:

>> print -dps numefisier.ps

Pentru alte opţiuni apelaţi help print.

Fişiere diary
O ı̂nregistrare a sesiunii Matlab poate fi ţinută cu comanda diary şi salvată
ı̂ntr-un fişier diary. Pentru a ı̂ncepe ı̂nregistrarea unui fişier diary şi a-l salva
ca un fişier cu numele numefisier vom scrie:
Capitolul 1. Introducere ı̂n Matlab 7

>> diary numefisier

Pentru a marca sfârşitul ı̂nregistrării şi a ı̂nchide fişierul vom folosi comanda

>> diary

1.3. Reprezentarea grafică a funcţiilor


Matlab conţine numeroase comenzi pentru crearea graficelor bidimensionale şi
tridimensionale. Cea mai des utilizată metodă este plot,care are mai multe
argumente opţionale. Dacă y este un vector linie, plot(y) desenează o linie
frântă ı̂ntre punctele de coordonate (i, y(i)) cu i = 1 : length(y). Dacă x şi y
sunt vectori linie de aceeaşi lungime, plot(x,y) desenează graficul cu punctele
de abscisă x (i ) şi ordonată y(i ). Un exemplu simplu de utilizare a comenzii
este trasarea graficului unui semnal u(t) = te−t cos 8πt.
t = linspace(0,8,401);
x = t.*exp(-t).*cos(8*pi*t);
plot(t,x);
xlabel(Timp(s))
ylabel(Amplitudine)
Acest script generează graficul din figura 1.1.

Figura 1.1.: Graficul functiei x(t) = te−t cos(2π · 4t)


8 Semnale şi sisteme. Îndrumar de laborator

Comenzi
Câteva comenzi care generează grafice 2D sunt:

plot Grafic ı̂n coordonate liniare ca o funcţie continuă


stem Grafic ı̂n coordonate liniare ca o funcţie discretă
loglog Axe x şi y logaritmice
semilogx Axa y liniară, axa x logaritmică
semilogy Axa x liniară, axa y logaritmică
hist Histograma
polar Coordonate polare

Personalizarea graficelor
Câteva dintre cele mai frecvente comenzi sunt:

xlabel Eticheta axei x


ylabel Eticheta axei y
title Titlul graficului
grid Adaugă un grid graficului
gtext Permite poziţionarea textului cu mouseul
text Permite poziţionarea textului la anumite coordonate
axis Permite schimbarea axelor x si y
figure Creează o nouă fereastră pentru un grafic
figure(n) Face figura n figura curentă
hold on Permite desenarea mai multor grafice
hold off Încheie comanda hold
close(n) Închide figura numărul n
subplot(a,b,c) Creează o matrice de grafice a × b cu c figura curentă
orient Specifică orientarea unei figuri

Scări logaritmice
Atunci când valorile luate de un semnal diferă ı̂ntre ele cu câteva ordine de
mărime sau atunci când se doreşte reprezentarea anumitor grafice pe un do-
meniu foarte larg (de exemplu, de la 0 la 105 ) se folosesc scări logaritmice.
Într-o scară logaritmică, punctele 10k cu k ∈ Z sunt echidistante. De cele mai
multe ori ı̂n astfel de grafice variabila reprezentată pe abscisă are semnificaţie
de frecvenţă. În secvenţa de numere ..., 1, 2, 5, 10, ... pe o scară logaritmică
(log10 ) distanţa dintre 1 şi 2 este aproximativ egală cu cea dintre 5 şi 10 şi
aproximativ egală cu o treime din distanţa dintre 1 şi 10. În plus, Matlab efec-
tuează o scalare suplimentară, care constă ı̂n numărul de pixeli alocat unităţii
pentru fiecare axă ı̂n parte, adică distanţei dintre două puteri succesive ale lui
10. Pentru lucrul cu scări logaritmice pot fi utile următoarele funcţii Matlab,
care au fost indicate şi anterior: loglog, semilogx, semilogy, logspace.
Capitolul 1. Introducere ı̂n Matlab 9

2 2
Figura 1.2.: Graficul funcţiei g(x1 , x2 ) = e−x1 −x2 sin(4x2 ) cos(4x1 )

Grafice 3D
Se consideră funcţia de două variabile
2 2
g(x1 , x2 ) = e−x1 −x2 sin(4x2 ) cos(4x1 ).

Pentru generarea graficului 3D al funcţiei g(x1 , x2 ) se poate utiliza următoarea


secvenţa de comenzi. Se utilizează funcţiile meshgrid(), mesh(), care cre-
ează matricele X şi Y (apelează help meshgrid ı̂n Matlab):

x = linspace(-pi/2, pi/2, 50);


y = linspace(-pi/2, pi/2, 50);
[X Y] = meshgrid(x, y);
G = exp(-X.^2-Y.^2).*sin(4*Y).*cos(4*X);
mesh(X,Y,G);

O matrice mai poate fi vizualizată ca o suprafaţă cu comanda meshc sau


surf. Pentru funcţii de două variabile pot fi obţinute grafice ı̂n care apar
anumite contururi corespunzătoare curbelor de nivel. Aceste contururi vor fi
etichetate cu valoarea funcţiei pe curba de nivel respectivă:

c = contour(G);
clabel(c);
10 Semnale şi sisteme. Îndrumar de laborator

1.4. Polinoame
Polinoamele apar frecvent ı̂n teoria semnalelor şi sistemelor, de exemplu ı̂n
reprezentarea ı̂n frecvenţă a sistemelor de convoluţie prin intermediul aşa-
numitei funcţii de transfer, ca raport de polinoame cu coeficienţi reali sau
complecşi. Funcţia de transfer este transformata Laplace (transformata Z) a
funcţiei pondere care defineşte sistemul de convoluţie respectiv.
Matlab reprezintă polinoamele ca vectori linie de coeficienţi polinomiali. De
exemplu, polinomul s2 + 4s − 5 este reprezentat ı̂n Matlab prin:

>> p = [1 4 -5]

În continuare vom lista câteva dintre cele mai importante comenzi folosite
la manipularea polinoamelor.

roots(p) Rădăcinile polinomului p


polyval(p,x) Evaluarea polinomului p la valorile vectorului x
conv(p1,p2) Produsul polinoamelor p1 si p2
deconv(p1,p2) Rezultatul ı̂mpărţirii lui p1 la p2
poly2str(p,’s’) Afişarea polinomului ca o ecuaţie ı̂n variabila s
poly(r) Determinarea unui polinom pe baza rădacinilor r

Aproximarea polinomială

Fiind dat un set de date {xi , yi }i=1...N , se poate determina polinomul care
aproximează cel mai bine ı̂n sensul celor mai mici pătrate funcţia y = f (x).
Apelul
>> yp = polyfit(x,y)

returnează coeficienţii polinomului aproximant


yp (x) = an xn + an−1 xn−1 + · · · a1 x + a0 .
Se prezintă ı̂n continuare un exemplu de aproximare polinomială.

x = 1:10; % Datele
y = [1 5 3 3 2 3 6 11 17 34];
plot (x , y , ’*’); hold on
P = polyfit(x, y, 4); % gaseste coeficientii polinomului
% aproximant de gradul 4
xp = linspace (1,10,100);
yp = polyval( P, xp); % se calculeaza valorile polinomului
% P in punctele x_p
plot(xp , yp ,’r’ )
legend(’Date experimentale’ ’Polinom’);
Capitolul 1. Introducere ı̂n Matlab 11

1.5. Platforma Mathematica şi Matlab


Mathematica este un limbaj de nivel ı̂nalt alternativ, cu multe toolboxuri
utile, utilizat ı̂n matematică, ştiinţe inginereşti, fizică şi alte arii ale ştiinţei şi
calculului numeric aplicat (technical computing). Limbajul Matlab are câteva
biblioteci comune cu acesta, cum ar fi Symbolic Math Toolbox şi Partial
Differential Equation Toolbox. Se consultă:

>> help Symbolic Math Toolbox

Sunt implementate metode diverse de calcul al limitelor, integrare, deri-


vare, rezolvare a ecuaţiilor polinomiale, a ecuaţiilor diferenţiale sau cu deri-
vate parţiale. Ecuaţiile pot fi rezolvate fie analitic (se lucrează cu variabile
simbolice, expresiile rezultate sunt literale), fie numeric (metode numerice de
integrare, derivare, rezolvare a ecuaţiilor diferenţiale etc.). Se lucrează aşadar
cu obiecte simbolice, care pot fi definite folosind instrucţiunea:

>>syms variabila1 variabila2

În cele ce urmează sunt listate câteva funcţii precum şi exemple edificatoare.

limit Calculează simbolic limita unei funcţii


diff Calculează simbolic derivata unei funcţii
int Calculează simbolic (numeric) integrala (ne)definită
solve Rezolvă simbolic ecuaţii polinomiale
dsolve Rezolvă simbolic ecuaţii diferenţiale
gradient Determină simbolic gradientul

syms x y % definire x, y ca obiecte simbolice


f = cos(x)^2 + x^3 % definire f(x)
subplot(211), ezplot(f) % reprezinta grafic f(x)
g = exp(-x^2-y^2)*sin(x*y) ; % definire g(x)
subplot(212), ezmesh(g) % reprezinta grafic g(x,y)

L = limit( (1+x / n)^n , n , inf)


limit(x/abs(x),x,0,’left’)

fprim = diff(f)
fpprim = diff(f,2)
gprim = diff(g,y)

F = int(f,x) % integrare nedefinita in raport cu x


F = int(f,0,1) % Integrare definita
12 Semnale şi sisteme. Îndrumar de laborator

a = solve(f) % rezolva ecuatia f(x) = 0


a = solve(’f(x)=3’)
dsolve(’Dy = 1 + y^2’ , ’y(0) = 1’)

1.6. Exerciţii rezolvate


Exerciţiul 1.1. Pentru o mai bună ı̂nţelegere a scărilor logaritmice, explicaţi
ce realizează scriptul următor:
subplot( 2, 1, 1 );
f = logspace( 0, 2, 100 );
loglog( log( f ) );
subplot( 2, 1, 2 );
f = logspace( 0, 2, 100 );
semilogy( f );

Figura 1.3.: Graficele pentru Exercitiul 1.1

Exerciţiul 1.2. Reprezentaţi grafic funcţiile y1 (x) = sin(x), y2 (x) = 2 sin(x),


y3 (x) = sin(2x).
Exerciţiul 1.3. Trasaţi graficul funcţiei y(t) = 1(t) · cos(t), unde 1(t) este
funcţia treaptă unitară (a lui Heaviside), definită de:

1, t ≥ 0;
1(t) =
0, t < 0.
Capitolul 1. Introducere ı̂n Matlab 13

Figura 1.4.: Graficele pentru Exerciţiul 1.2

Figura 1.5.: Graficele pentru Exerciţiul 1.3


14 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 1.4. Mai multe perechi (x, y) pot fi reprezentate grafic printr-un
singur apel al funcţiei plot. Reprezentaţi pe acelaşi grafic funcţiile y1 (x) =
2 cos(x), y2 (x) = cos(x), y3 (x) = 0.5 cos(x) pe intervalul x ∈ [0; 2π].

Figura 1.6.: Graficul pentru Exerciţiul 1.4

Exerciţiul 1.5. Hodograful. Se numeşte drum parametrizat ı̂n R2 , γ(ω) =


(f1 (ω), f2 (ω)) ∀ω ∈ I orice funcţie continuă γ : I → R2 , unde I este un interval
al dreptei reale. Submulţimea lui R2 :(γ)={(f1 (ω), f2 (ω))|ω ∈ I} se numeşte
hodograful drumului γ. În multe probleme specifice Teoriei Sistemelor, hodo-
graful se reprezintă ı̂n coordonate carteziene:

x = f1 (ω)
γ:
y = f2 (ω), ∀ω ∈ I.
Ca exerciţiu, trasaţi hodograful următorului drum parametrizat:
 1
x = 1+ω 2
γ: ω
y = − 1+ω 2, ∀ω ∈ R.

Exerciţiul 1.6. Trasaţi graficul funcţiei trian(αt), unde



1 − |t|, −1 < t < 1;
trian(t) =
0, altfel,
pentru 0 < α < 1 si 1 < α < ∞.
Capitolul 1. Introducere ı̂n Matlab 15

Figura 1.7.: Graficul pentru Exerciţiul 1.6

Rezolvare. Vom folosi două fişiere: o funcţie ı̂n care generăm trian(t) şi un
script ı̂n care facem diferite prelucrări. Funcţia trian(t) se găseşte ı̂n fişierul
trian.m, vezi Anexa. Fişierul ı̂n care am trasat graficele se găseşte de aseme-
nea ı̂n Anexă. Rezultatele sunt prezentate ı̂n figura 1.7.

Exerciţiul 1.7. Trasaţi graficul funcţiei y(t) = ramp(t) · et .

Rezolvare. Funcţia rampă, ramp(t), are următoarea formă:



t, t ≥ 0;
ramp(t) =
0, t < 0.

Se obţine graficul din figura 1.8. Codul Matlab este prezentat ı̂n Anexă.

1.7. Exerciţii propuse


Exerciţiul 1.8. a) Scrieţi o funcţie care returnează suma şi produsul ele-
mentelor unui vector generat aleator (sum, prod, rand). Adaptaţi apoi
funcţia, astfel ı̂ncât să fie luate ı̂n considerare doar elementele mai mari
decât 0.5.

b) Scrieţi un script care reprezintă grafic poziţiile rădăcinilor polinomului


16 Semnale şi sisteme. Îndrumar de laborator

Figura 1.8.: Graficul pentru Exerciţiul 1.7

p(z) = z n − 1 ı̂n planul complex pentru diverse valori ale lui n ∈ N


(rădăcinile de ordin n ale unităţii).
c) Scrieţi o funcţie care reprezintă grafic atât funcţia f (x) = x2 + 2ab + b2
cât şi plasarea rădăcinilor acesteia ı̂n planul complex (folosiţi instrucţiunea
figure). Funcţia primeşte drept parametri de intrare a, b ∈ R.
Exerciţiul 1.9. a) Să se reprezinte grafic funcţia de două variabile
sin(r)
f (r) = ,
r
cu r2 = x2 + y 2 . Se vor desena două grafice: unul cu x, y ∈ [−15; 15] şi
unul cu x, y ∈ [−30; 30].
b) Desenaţi trei cercuri concentrice de raze 1, 2, 3 cu diferite culori.
Exerciţiul 1.10. Folosiţi help şi daţi o soluţie numerică la următoarele
cerinţe:
2 R1 2
a) Desenaţi e−x , pentru x ∈ [−3, 3]. Calculaţi 0 e−x dx folosind funcţiile
R3 2
trapz şi quad. Calculaţi de asemenea −3 e−x dx.
R5 x
b) Calculaţi 0 xe− 3 dx folosind funcţiile trapz şi quad. Verificaţi analitic şi
5
numeric că valoarea integralei este −24e− 3 + 9.
Capitolul 1. Introducere ı̂n Matlab 17

Figura 1.9.: Graficul pentru Exerciţiul 1.9

c) Se dă ecuaţia diferenţială ẋ+x2 = 0 cu condiţia iniţială x(0) = 1. Rezolvaţi


ecuaţia utilizând funcţia ode23.
Exerciţiul 1.11. Un set de date cunoscut {xi , yi }i∈1,N poate fi aproximat ca
o combinaţie liniară de M funcţii arbitrare:

yP (x) = c1 f1 (x) + c2 f2 (x) + · · · + cM fM (x).

Coeficienţii se determină astfel ı̂ncât eroarea să fie minimă ı̂n sensul celor
mai mici pătrate. Astfel, se consideră setul de date generat prin secvenţa de
comenzi
x = linspace(0,10,200);
y = randn(1,200);
Se cere aproximarea setului de date printr-o combinaţie liniară a funcţiilor
sin(x), sin(2x), sin(3x). Reprezentaţi pe acelaşi grafic rezultatele obţinute,
i.e., setul de date şi yP (x).

Indicaţie. Fie yP (x) = c1 sin(x) + c2 sin(2x) + c3 sin(3x). Din setul de date


avem succesiv:


 y1 = c1 sin(x1 ) + c2 sin(2x1 ) + c3 sin(3x1 )
y2 = c1 sin(x2 ) + c2 sin(2x2 ) + c3 sin(3x2 )


 · · · = ···
y200 = c1 sin(x200 ) + c2 sin(2x200 ) + c3 sin(3x200 )

18 Semnale şi sisteme. Îndrumar de laborator

y = F c ⇒ c = F # y, unde
   
y1 sin(x1 ) sin(2x1 ) sin(3x1 )
 
 y2  sin(x2 ) sin(2x2 ) sin(3x2 )
 c1
y= , F = , c = c2  , F # F = I.
   
 ..  .. ..  .. 
  .  . .  . c3
y200 sin(x200 ) sin(2x200 ) sin(3x200 )
Apelaţi ı̂n Matlab c=F\y.
Exerciţiul 1.12. Scrieţi un script Matlab care desenează graficele funcţiilor
u(t) si v(t), prezentate ı̂n figura 1.10.

Figura 1.10.: Graficele pentru Exerciţiul 1.12

Exerciţiul 1.13. Convergenţa seriilor infinite. Considerăm seriile:


n n
X
k
X 1
Sn = a , a ∈ (−1, 1), Pn = , p∈N
kp
k=0 k=1
Capitolul 1. Introducere ı̂n Matlab 19

a) Scrieţi o funcţie care primeşte ca parametri a ∈ (−1, 1), n ∈ N şi returnează


Sn . Reprezentaţi grafic Sn , utilizând funcţia stem. Verificaţi că, pentru
1
n suficient de mare, Sn ≈ 1−a . Testaţi pentru −1 < a < 0 şi pentru
0 < a < 1.
b) Reluaţi punctul anterior pentru Pn cu p = 2. Verificaţi că, ı̂n acest caz,
2
lim Pn = π6 . Dar pentru p ∈ {3, 4, 5} ?
n7→∞

Exerciţiul 1.14. Aruncarea unei bile ı̂n câmp gravitaţional. Ecuaţiile


coordonatelor bilei ı̂n funcţie de timp sunt:
1
x(t) = v0 cos(α)t, y(t) = h + v0 sin(α)t − gt2 ,
2
unde t ∈ [0, tfinal ] este variabila de timp, h este ı̂nălţimea, v0 este viteza iniţială
a bilei, α este unghiul vectorului v0 cu orizontala, iar g = 9.8 m/s2 . Cerinţe:

Figura 1.11.: Graficul pentru Exerciţiul 1.14

a) Scrieţi o funcţie care primeşte ca parametri tfinal , h, v0 , α şi desenează


traiectoria bilei ı̂n planul xOy. Se va desena pe acelaşi grafic solul, i.e.,
funcţia y(x) = 0, ∀x.
b) Caz particular: tfinal = 1 s, h = 1.5 m, v0 = 4 m/s, α = π/4 rad. Găsiţi
distanţa de impact cu solul, i.e., x pentru care y ≈ 0. În cât timp are loc
impactul? Găsiţi şi reprezentaţi pe grafic ymax . La ce moment de timp are
loc y = ymax ?
20 Semnale şi sisteme. Îndrumar de laborator

c) Desenaţi bila ı̂n mişcare (o scurtă animaţie). Se vor folosi: o buclă for,
plot, drawnow.

Exerciţiul 1.15. Seturi Julia. Căutaţi pe Wikipedia Julia Sets, un exemplu


celebru al teoriei haosului. Date fiind două numere complexe, c si z0 , se
defineşte urmatoărea recurenţă:
2
zn = zn−1 + c.
Şirul de numere complexe z1 , z2 , z3 , . . . se numeşte orbita lui z0 .

Figura 1.12.: Graficul pentru Exerciţiul 1.15

a) Se poate arăta că, dacă există un număr n0 ∈ N a.ı̂. |zn0 | > 2, orbita
sistemului tinde la infinit. Numărul n0 se numeşte viteză limită (escape
velocity) pentru un z0 particular. Scrieţi o funcţie care returnează această
viteză, de forma n=escapeVelocity(z0,c,N), unde N este valoarea ma-
ximă admisă (i.e., dacă |zN | < 2, n = N ; se previn astfel bucle infinite).
Folosiţi funcţia abs pentru calculul modulului unui număr complex.
b) Vom scrie aici funcţia M=julia(zMax,c,N). Generaţi o matrice Z ∈ C500×500 ,
având partea reală ı̂ntre -zMax şi zMax şi partea imaginară ı̂ntre aceleaşi
Capitolul 1. Introducere ı̂n Matlab 21

limite. Pentru fiecare element din Z, se păstrează ı̂n M viteza limită co-
respunzătoare. Indicaţie. Z = X + jY . Veţi folosi funcţiile linspace şi
meshgrid. Mai departe, M(i,j)=escapeVelocity(Z(i,j),c,N), pentru
i, j ∈ {1, . . . , 500}.

c) Apelaţi M=julia(zMax,c,N) pentru diverse valori ale parametrilor. Se vor


genera fractali. Pentru vizualizarea fractalului, apelaţi imagesc(atan(0.1*M)).
Spre exemplu, apelul următor generează figura 1.12.

M=julia(1,-0.297491+i*0.641051,100);
imagesc(atan(0.1*M))
2. Semnale
2.1. Scopul laboratorului
Laboratorul are ca scop familiarizrea studentului cu noţiunea de semnal, atât
ı̂n domeniul timp, cât şi ı̂n frecvenţă. Sunt studiate operaţiile de bază cu sem-
nale, translaţia ı̂n timp şi convoluţia. Se acordă o atenţie sporită impulsului
Dirac, prin studierea unor aproximări, unor proprietăţi fundamentale, precum
şi a derivatelor acestuia. Laboratorul tratează şi problema analizei şi sintezei
unui semnal, folosind serii şi transformate Fourier şi aplicarea transformatei
Laplace ı̂n mediul de programare Matlab.

2.2. Breviar teoretic


Se numeşte semnal o funcţie f : T → A, unde A este o mulţime dată nu-
mită imaginea semnalului, iar T este domeniul de definiţie al semnalului
(axa timpului). Dacă T ⊂ R, atunci f (t) este un semnal continual; dacă
T ⊂ Z, atunci f [n] este un semnal discret.

Cele mai des folosite semnale, numite şi semnale standard, sunt:

1, t ≥ 0
1) Treapta unitară: 1(t) = ;
0, t < 0
2) Semnalul rampă : ramp(t) = t1(t);

1, k = 0
3) Impuls discret: δ[k] = ;
0, k 6= 0

1, a ≤ t ≤ b
4) Impuls dreptunghiular: rect(t) = ;
0, altfel

1 − |t|, −1 ≤ t ≤ 1
5) Impuls triunghiular: trian(t) = ;
0, altfel
6) Semnale exponenţiale: u(t) = Aeat , a ∈ R∗ ;
7) Semnale armonice: u(t) = A cos(ωt + φ).
Spaţiile de semnale sunt spaţii vectoriale Banach - spaţii normate (se poate
defini o normă) şi complete (orice şir Cauchy este convergent). Dacă semnalul
are energia finită, i.e., kuk2 < ∞, se poate defini un produs scalar. În acest
caz, vorbim de spaţii Hilbert.

23
24 Semnale şi sisteme. Îndrumar de laborator

Operaţii cu semnale
În continuare definim două operaţii importante: translaţia ı̂n timp şi convoluţia.

Translaţia ı̂n timp


Fie τ ∈ R un parametru fixat şi u ∈ SR un semnal continuu. Se numeşte
operator de translaţie (shift) operatorul σ τ : SR → SR definit de:

σ τ u (t) = u(t − τ ), t ∈ R

(2.1)

Prin analogie se poate defini operatorul de translaţie ı̂n timp pentru semnale
ı̂n timp discret:

σ k : SRd → SRd , σ k u (t) = u[n − k], n ∈ Z.



(2.2)

Convoluţia
În teoria semnalelor şi a sistemelor convoluţiile joacă un rol important deoarece
definesc (ı̂n domeniul timp) o clasă importantă de sisteme liniare. Convoluţia
(produsul de convoluţie) stabileşte o relaţie ı̂ntre semnalul de intrare şi cel de
ieşire prin intermediul funcţiei pondere, care descrie sintetic sistemul dinamic
respectiv. Pentru semnale discrete definiţia convoluţiei este:

X
(h ∗ u)[n] = h[n − k]u[k], n ∈ Z, (2.3)
k=−∞

iar pentru semnalele cu timp continuu:


Z ∞
(h ∗ u)(t) = h(t − τ )u(τ ), t ∈ R. (2.4)
−∞

Calculul numeric al convoluţiei


Calculul convoluţiilor discrete se face reţinând din suma seriei (2.3) numai un
număr finit de termeni, să zicem ı̂ntre indicii de ı̂nsumare −M şi M , rezultând
următoarea formulă de calcul:
M
X
(h ∗ u)[n] ' h[n − k]u[k], n ∈ Z. (2.5)
k=−M

Calculul convoluţiei ı̂n cazul continuu se poate efectua ı̂n două etape:
(i) Se aproximează integrala din (2.4) cu o integrală definită pe un interval
mărginit numit orizont de timp, care se alege cu atât mai mare cu cât se
doreşte o precizie mai bună. Se obţine formula de calcul:
Z M
(h ∗ u)(t) ≈ h(t − τ )u(τ ), t ∈ R. (2.6)
−M
Capitolul 2. Semnale 25

(ii) Integrala definită (2.6) se aproximează printr-o sumă finită. Pentru


aceasta se aleg de exemplu 2n + 1 puncte ı̂n intervalul [−M, M ], notate
p−n , p−n+1 , . . . , pn−1 , pn . Uzual punctele se aleg echidistante, i.e.,

2M
` := |pk+1 − pk | = ; (k = −n : n − 1),
2n + 1
a.ı̂. p−n = −M, pn = M obţinându-se următoarea formulă de calcul,
similară celei de la calculul convoluţiei discrete (2.5):
n
X 
(h ∗ u)(n) ≈ (h(t − pk )u(pk ) `, (2.7)
k=−n

2M
unde ` = 2n+1 este lungimea intervalului de eşantionare.

Observaţie. La calculul efectiv al convoluţiilor cu ajutorul calculatorului,


pot apărea următoarele tipuri de erori:

(i) Erori de trunchiere (semnale continue/discrete) - Din punct de ve-


dere al calculului numeric semnalele cu suport infinit trebuie trunchiate
rezultând semnale cu suport finit (orizont finit de timp). Convoluţiile
calculate pe baza semnalelor trunchiate suferă aşadar automat de erori
de trunchiere (deoarece suma seriei se calculează pe baza unui număr
finit de termeni), valorile semnalelor ı̂n afara orizontului de timp (inter-
valului de trunchiere) fiind considerate zero. Eroarea de trunchiere este
rezonabil de mică dacă semnalele iau valori ”mici” ı̂n afara intervalului
de trunchiere.

(ii) Erori de eşantionare (semnale continue) - Pentru a calcula numeric


convoluţia unor semnale continue acestea trebuie discretizate (eşantionate),
astfel ı̂ncât integrala de convoluţie să poată fi ı̂nlocuită cu o sumă de
convoluţie. Eroarea de eşantionare apare din cauza faptului că se pierde
total informaţia despre evoluţia funcţiei ı̂ntre două momente succesive
de eşantionare. Eroarea de eşantionare este rezonabil de mică dacă in-
tervalul de eşantionare este suficient de mic.

(iii) Erori de rotunjire (semnale continue/discrete) - datorate erorilor ine-


rente de calcul ı̂n format virgulă mobilă. Eroarea de rotunjire poate fi
făcută rezonabil de mică dacă se foloseşte o precizie numerică suficient
de mare.

Analiza de semnal. Transformata Fourier


Reprezentarea şi analiza sistemelor LTI prin intermediul integralei (sumei) de
convoluţie se bazează pe scrierea semnalelor ca o combinaţie liniară de impul-
suri shiftate (deplasate). Ne vom ocupa acum de o reprezentare alternativă
26 Semnale şi sisteme. Îndrumar de laborator

pentru semnale şi pentru sisteme LTI, anume scrierea semnalelor sub formă
de combinaţii liniare de exponenţiale complexe (semnale armonice). Repre-
zentările astfel rezultate sunt cunoscute sub numele de seria Fourier, respectiv
transformata Fourier cu timp continuu şi cu timp discret.

Reprezentarea ı̂n serie Fourier a semnalelor periodice continue


Un semnal u(t) este periodic dacă pentru un T > 0 avem că u(t+T ) = u(t), ∀t.
Cea mai mică valoare strict pozitivă a lui T care satisface u(t + T ) = u(t)
se numeşte perioadă fundamentală, iar ω0 = 2π/T se numeşte pulsaţie fun-
damentală. Considerăm semnalul periodic ”de bază” u(t) = ejω0 t şi asociem
cu acesta setul de exponenţiale complexe relaţionate armonic Φk (t) = ejkω0 t =

ejk T t , k = 0, ±1, ±2, . . .. Fiecare semnal Φk (t) are o pulsaţie fundamentală
care este multiplu de ω0 , prin urmare fiecare semnal este periodic, cu perioada
T (deşi pentru |k| ≥ 2, perioada fundamentală este o fracţie din T ). Fie acum
o combinaţie liniară de exponenţiale complexe relaţionate armonic:
+∞ +∞
X X 2π
u(t) = ak ejkω0 t = ak ejk T t . (2.8)
k=−∞ k=−∞

Acest semnal este periodic, cu perioada T . Reprezentarea unui semnal periodic


ı̂n forma (2.8) se numeşte reprezentarea ı̂n serie Fourier. De notat că orice
semnal periodic poate fi scris ı̂n forma (2.8).
Dacă u(t) este un semnal real atunci avem că u(t) = u∗ (t). Va rezulta astfel
că a∗k = a−k , prin urmare, reprezentarea ı̂n serie Fourier a semnalului u(t) real
este:
+∞
X
u(t) = a0 + 2 Ak cos(kω0 t + θk ). (2.9)
k=1

Altă formă a seriei Fourier se obţine scriind ak = Bk + jCk , unde Bk si Ck


sunt reali:
+∞ h
X i
u(t) = a0 + 2 Bk cos(kω0 t) − Ck sin(kω0 t) . (2.10)
k=1

Ecuaţiile (2.9) şi (2.10) sunt cele mai ı̂ntâlnite forme ale reprezentării ı̂n serie
Fourier. Evident, este nevoie de o procedură de calcul al coeficienţilor ak . Se
poate arăta că formula de calcul al acestora este
Z Z
1 1 2π
ak = u(t)e−jkω0 t dt = u(t)e−jk T t dt. (2.11)
T T T T

Ecuaţia (2.8) se numeşte ecuaţia de sinteză, iar (2.11) se numeşte ecuaţia de


analiză. Coeficienţii ak se mai numesc şi coeficienţi spectrali ai semnalului
u(t). Aceşti coeficienţi complecşi măsoară porţiunea din semnalul u(t) din
fiecare armonică.
Capitolul 2. Semnale 27

Extensia analizei Fourier la semnale neperiodice


O clasă destul de largă de semnale, care include şi semnalele de energie finită,
se poate reprezenta prin intermediul unei combinaţii liniare de exponenţiale
complexe. În timp ce ı̂n cazul semnalelor periodice, exponenţialele com-
plexe care le constituie sunt relaţionate armonic, ı̂n cazul semnalelor nepe-
riodice exponenţialele complexe care le constituie sunt infinitezimal apropiate
ı̂n frecvenţă, iar reprezentarea ı̂n termeni de combinaţie liniară adoptă forma
unei integrale, ı̂n loc de sumă. Spectrul de coeficienţi rezultat din această re-
prezentare se numeşte transformata Fourier, iar integrala de sinteză (cea care
foloseşte aceşti coeficienţi pentru a reprezenta semnalul ca pe o combinaţie
liniară de exponenţiale complexe) se numeşte transformată Fourier inversă.
Un semnal neperiodic poate fi văzut ca un semnal periodic, cu perioadă
infinită. În reprezentarea Fourier a unui semnal periodic, pe măsură ce creşte
perioada, frecvenţa fundamentală scade şi componentele relaţionate armonic
devin tot mai apropiate ı̂n frecvenţă. Dacă perioada tinde la infinit, compo-
nentele frecvenţiale formează un spectru continuu şi suma seriei Fourier devine
o integrală.

Transformata Fourier continuă


Fie un semnal u(t) de durată limitată, i.e., pentru un anume T1 avem că
u(t) = 0 pentru |t| > T1 . Din acest semnal neperiodic se construieşte semnalul
ũ(t), periodic, pentru care u(t) constituie o perioadă. Scriem reprezentarea ı̂n
serie Fourier a lui ũ(t):
+∞
X
ũ(t) = ak ejkω0 t ,
k=−∞
Z T /2
1
ak = ũ(t)e−jkω0 t dt.
T −T /2

Dacă ţinem cont de faptul că ũ(t) = u(t) pentru |t| < T /2 şi u(t) = 0 ı̂n afara
acestui interval, putem rescrie ecuaţiile precedente:

1 T /2 1 ∞
Z Z
−jkω0 t 1
ak = u(t)e dt = u(t)e−jkω0 t dt = U (jkω0 ).
T −T /2 T −∞ T

Înlocuim expresia coeficienţilor ak ı̂n ecuaţia de analiză Fourier a semnalului


ũ(t) şi obţinem:
+∞ +∞
X 1 1 X
ũ(t) = U (jkω0 )ejkω0 t = U (jkω0 )ejkω0 t ω0 . (2.12)
T 2π
k=−∞ k=−∞

Pe măsură ce T → +∞, ũ(t) se apropie de u(t), prin urmare limita expresiei


(2.12) devine o reprezentare a lui u(t). Mai mult, pe măsură ce T → +∞,
28 Semnale şi sisteme. Îndrumar de laborator

avem că ω0 → 0, iar partea dreaptă a relaţiei (2.12) devine o integrală. Mai
exact, fiecare termen al sumei din (2.12) este aria unui dreptunghi de ı̂nălţime
U (jkω0 )ejkω0 t şi lătime ω0 (t este considerat fix). Obţinem astfel ecuaţiile de
analiză şi de sinteză Fourier pentru semnalul neperiodic u(t)
Z ∞
1
u(t) = U (jω)ejωt dω (2.13)
2π −∞
Z ∞
U (jω) = u(t)e−jωt dt. (2.14)
−∞

Ecuaţiile (2.13) se numesc transformările Fourier (inversă şi directă). U (jω)


se numeşte transformata Fourier a semnalului u(t).

Transformata Laplace
Un instrument extrem de util ı̂n studiul semnalelor şi sistemelor liniare ı̂l
constituie transformata Laplace. Această transformată integrală are multe
aplicaţii ı̂n fizică şi inginerie, având o serie de avantaje procedurale care de-
rivă din transferarea problemelor din domeniul calculului diferenţial ı̂n cel al
calculului algebric.
Fie f : R → R. Transformata Laplace unilaterală la dreapta a funcţiei f (t)
ı̂n punctul s = σ + jω este:
Z ∞
e−st f (t)dt.

F (s) = L+ f (t) =
0

Transformata Laplace este bine definită dacă integrala din membrul drept
este finită, i.e. f ∈ O, clasa funcţiilor original. De remarcat proprietatea de
convoluţie a transformatei Laplace:
  
L h∗u =L h L u .

2.3. Exerciţii rezolvate


2.3.1. Convoluţia şi translaţia ı̂n timp
Exerciţiul 2.1. Calculaţi şi reprezentaţi grafic convoluţiile următoarelor pe-
rechi de semnale. Identificaţi şi evaluaţi eroarea de trunchiere alegând ori-
zonturi de timp diferite. Pentru convoluţiile ı̂n timp continuu identificaţi şi
evaluaţi eroarea de eşantionare alegând diferite intervale de eşantionare pentru
un orizont de timp fixat.

a) h[n] = 1[n], n ∈ Z, u = h;

b) h[n] = a|n| , u[n] = a|n| , n ∈ Z, a = 0.9;

c) h[n] = δ[n], u[n] = a|n| , n ∈ Z, a = 0.9;


Capitolul 2. Semnale 29

Figura 2.1.: Exemplu de grafice pentru Exerciţiul 2.1, τ = 3.

d) h(t) = rect(t), t ∈ R, u = h;

e) h(t) = eαt 1(t), u(t) = eβt 1(t), t ∈ R, α = β = −1.

Rezolvare. Funcţiile cont conv şi discr conv calculează produsul de convoluţie
dintre u şi h, variabile simbolice. Codul aferent este dat ı̂n Anexă.
De asemenea, putem rezolva problema utilizând funcţia conv, deja imple-
mentată ı̂n Matlab, care calculează numeric produsul de convoluţie dintre doi
vectori. Cititorul interesat va implementa cele propuse.
Exerciţiul 2.2. Considerăm semnalul treaptă 1(t). Translataţi această funcţie
la stânga şi la dreapta.

Rezolvare. Translatarea funcţiei la dreapta reprezintă ı̂ntârzierea funcţiei cu


un anume timp, iar translatarea la stânga reprezintă devansarea acesteia, cu
un timp anume. Presupunând că translatarea se face cu un timp τ , avem
funcţia intârziată dată de 1(t − τ ) şi funcţia devansată dată de 1(t + τ ). Im-
plementarea este disponibilă ı̂n Anexă.

2.3.2. Aproximaţii ale funcţiei δ


Exerciţiul 2.3. Semnalul δ(t) (impulsul Dirac) şi derivatele sale nu sunt
funcţii ı̂n sensul uzual al definiţiei (i.e., sunt funcţii generalizate, definite formal
ca distribuţii). Exemplele următoare ilustrează diverse posibilităţi de aproxi-
mare a lui δ prin intermediul unor funcţii uzuale. Trasaţi graficul următoarelor
aproximări pentru diverse valori n ∈ N∗ :
30 Semnale şi sisteme. Îndrumar de laborator
(
1 1
n, pentru − 2n ≤t≤ 2n ;
a) dn (t) =
0, in rest.

b) dn (t) = n · trian(nt), t ∈ R;
t 2
c) dn (t) = n · bell(nt), t ∈ R, unde bell(t) := √1 e− 2 , t ∈ R, este clopotul lui

Gauss.

Rezolvare. Sunt propuse două soluţii: vezi funcţiile din Anexă.


Exerciţiul 2.4. Vizualizaţi grafic aproximaţiile derivatelor δ (1) , δ (2) , δ (3) obţinute
prin derivarea şirului de funcţii de la punctul c) al Exerciţiului 2.3.

Rezolvare. Vezi Exerciţiul 2.4 din Anexă. Verificaţi analitic calculul derivatelor
şi propuneţi o altă metodă de rezolvare.
Exerciţiul 2.5. Pentru orice funcţie regulată Φ(t) continuă ı̂n 0 avem relaţia:
Z +∞
Φ(0) = δ(t)Φ(t)dt. (2.15)
−∞

Scopul acestui exerciţiu este să verificaţi calitatea aproximaţiilor funcţiei δ


de la Exerciţiul 2.3 prin evaluarea erorii (reziduului) cu care este satisfăcută
relaţia (2.15) atunci când δ(t) este ı̂nlocuit cu o aproximaţie dn (t). Mai precis,
calculaţi eroarea: Z ∞
εΦ (n) = dn (t)Φ(t)dt − Φ(0)
−∞
pentru aproximaţiile lui δ de la Exerciţiul 2.3 şi funcţia Φ(t) continuă ı̂n 0:
(
4( 41 − t2 ), pentru − 21 ≤ t ≤ 12 ,
Φ(t) = (2.16)
0, in rest.

şi arătaţi grafic că lim εΦ (n) = 0.


n→∞

Rezolvare. Vezi Exerciţiul 2.5 din Anexă.

2.3.3. Transformări integrale


Exerciţiul 2.6. Fie semnalul f (t) = 7 sin(2π·2t)+11 sin(2π·3t)+13 sin(2π·5t)
din figura 2.2. Folosind transformata Fourier, figuraţi grafic spectrul semna-
lului f (t).

Rezolvare. După cum se poate vedea (figura 2.2) semnalul constă ı̂n trei
armonici de frecvenţe 2 Hz, 3 Hz şi 5 Hz, de amplitudini 7, 11 şi, respectiv,
13. Dacă luăm transformata Fourier a acestui semnal (figura 2.2), ar trebui să
aflăm ce ”cantitate” din fiecare frecvenţă compune semnalul. Codul este dat
ı̂n Anexă.
Capitolul 2. Semnale 31

Graficul semnalului f (t)

Spectrul semnalului f (t)

Figura 2.2.: Exerciţiul 2.6


32 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 2.7. Considerăm un semnal periodic dreptunghiular:


(
1, pentru |t| < T1
f (t) =
0, pentru T1 < |t| < T /2,

unde, pentru exemplificare, alegem T = 1 şi T1 = 0.25 (figura 2.3). Determinaţi


şi figuraţi ı̂n planul complex coeficienţii Fourier ai semnalului dreptunghiular,
pentru T = 1 şi T1 = 1/4, 1/8, 1/16. Reconstruiţi apoi semnalul original
folosind aceşti coeficienţi. Având ı̂n vedere că suma din relaţia (2.8) nu se
poate face de la −∞ la +∞, evaluaţi această sumă ı̂ntre −M şi M , unde
M = 10, 20, 100.

Figura 2.3.: Semnal periodic dreptunghiular (T = 1, T1 = 1/4)

Rezolvare: Coeficienţii seriei Fourier pentru acest semnal se pot găsi cu relaţia
(2.11):
2T1 sin(kω0 T1 ) sin(2kπ TT1 )
a0 = , ak = = .
T kπ kπ
În figura 2.4 observăm reprezentarea coeficienţilor Fourier ı̂n planul complex.
Prezentăm ı̂n continuare figurile pentru semnalul reconstruit din coeficienţi
Fourier.

Exerciţiul 2.8. Analiza petelor solare. Dorim să analizăm variaţiile de


activitate ale petelor solare din ultimii 300 de ani. Activitatea petelor solare
este periodică, având o perioadă de 11 ani. Să dovedim acest fapt.
Astronomii folosesc o funcţie, denumită numărul lui Wolfer, care se cal-
culează folosind numărul şi mărimea petelor solare. Datele aferente sunt ı̂n
memoria Matlab. Apelaţi load sunspot.dat ı̂n fereastra de comandă. Aplicaţi
Capitolul 2. Semnale 33

Figura 2.4.: Coeficienţii seriei Fourier pentru semnalul dreptunghiular

(a) 21 de termeni (b) 41 de termeni

(c) 201 de termeni

Figura 2.5.: Reconstrucţie a semnalului dreptunghiular


34 Semnale şi sisteme. Îndrumar de laborator

apoi transformarea Fourier datelor, folosind funcţia Matlab fft(x). Ulterior,


reprezentaţi grafic puterea ı̂n funcţie de perioadă.

Rezolvare: Rezultatul acestei transformări este un vector cu numere complexe,


Y . Mărimea |Y |2 are ca semnificaţie fizică puterea, iar reprezentarea grafică
a puterii ı̂n funcţie de frecvenţă se numeşte periodogramă.
Pentru scopul nostru, este mai relevant să reprezentăm puterea ı̂n funcţie
de perioadă. Se observă pe graficul obţinut că puterea are un maxim pentru
T ≈ 11 ani. Codul este prezentat ı̂n Anexă.

Exerciţiul 2.9. Analiza şi sinteza semnalelor audio ı̂n Matlab. Sursele
sonore sunt medii elastice aduse ı̂n stare de oscilaţie. Un exemplu standard
este ecuaţia coardei vibrante cu condiţii de margine Dirichlet, analizată la
cursul de Matematică 3. De la aceste surse, vibraţiile se propagă prin mediul
elastic (uzual prin aer) până la receptor (urechea). Un microfon va ı̂nregistra
un semnal de forma:

X
y(t) = pn cos [2πfn (t − φn )],
n=1

ı̂n care semnificaţia fizică a amplitudinilor pn este energia care este asociată
fiecărei frecvenţe. f1 se numeşte frecvenţă fundamentală, iar f2 , f3 , . . . ar-
monicile sale, cu fn = nf1 . Unghiul φn reprezintă defazajul. Spectrul de
putere este distribuţia energiei pentru fiecare armonică, ı̂n cazul nostru vecto-
rul p = [p1 , p2 , p3 , . . . ].

a) Analiza armonică. Funcţia analiza.m, dată ı̂n Anexă, utilizează funcţiile


wavread() şi fft() pentru calculul spectrului de putere a sunetului dintr-un
fişier *.wav. Folosim această funcţie pentru analiza fişierelor audio LA.wav,
vioara LA.wav, flaut LA.wav. Figura 2.6 prezintă formele de undă şi spec-
trele pentru diverse instrumente interpretând nota LA, f1 = 440 Hz. Folosiţi
funcţia dată pentru analiza fişierelor date: apelaţi ı̂n linia de comandă, e.g.,
analiza(’LA.wav’), etc.

Observaţie. Un ton pur de forma x(t) = p1 cos(2πf1 t) sună metalic şi inex-
presiv. Dacă apar armonicile fn = nf1 , sunetul capătă expresivitate - aşa se
schimbă timbrul instrumental (vioară, flaut).

b) Sinteza semnalelor audio. Aşadar, pentru un instrument muzical par-


ticular, vectorul [p1 , p2 , p3 , . . . ] este cheia sintezei sunetului său. Plecând de
la o frecvenţă fundamentală dată şi puterea pn asociată armonicii fn , unda
sintetizată este:
X∞
y(t) = pn cos (2πnf1 t).
n=1
Capitolul 2. Semnale 35

Figura 2.6.: Analiza diverselor instrumente cu funcţia analiza.m

Funcţia sinteza.m (vezi Anexa) creează o undă sonoră plecând de la această


relaţie şi scrie semnalul obţinut ı̂ntr-un fişier *.wav cu funcţia wavwrite.
Folosiţi această funcţie pentru sinteza unui semnal audio de 3 s, cu f1 = 440
Hz si p = [1, 0.8, 0.1, 0.04]. Instrucţiunea Matlab este:

>>sinteza(’test.wav’, 440, 3, [1 .8 .1 .04])

c) Ne propunem aici sinteza cu ajutorul Matlab a vocalelor având aceeaşi


tonalitate (frecvenţă fundamentală) şi volum (putere). În 1859 fizicianul ger-
man von Helmholtz a prezentat următoarele spectre de putere pentru sinteza
vocalelor:
Vocala p1 p2 p3 p4 p5 p6 p8 p16
U ff mf pp
O mf f mf p
A p p p mf mf p p
E mf mf ff
I mf p p mf

unde ff, f, mf, p au semnificaţia fortissimo, forte, mezzo forte, piano. Codul
Matlab este dat ı̂n Anexă.

2.4. Exerciţii propuse


Exerciţiul 2.10. Se consideră semnalele discrete, i.e., n ∈ Z:

f1 [n] = sinc[n] 1[n + 5] − 1[n − 5] ,
f2 [n] = 1 − rect[n],
f3 [n] = 1[n] − 1[n − 5].
36 Semnale şi sisteme. Îndrumar de laborator

Scrieţi un program Matlab care să verifice proprietăţile de comutativitate, dis-


tributivitate şi elementul neutru ale produsului de convoluţie. Pentru calculul
produsului de convoluţie, utilizaţi funcţia Matlab conv().

sin(πn)
1) sinc[n] := πn , n ∈ Z;

2) comutativitate: (f1 ∗ f2 )[n] = (f2 ∗ f1 )[n];



3) distributivitate: f1 [n] ∗ f2 [n] + f3 [n] = f1 [n] ∗ f2 [n] + f1 [n] ∗ f3 [n];

4) element neutru: (f1 ∗ δ)[n] = (δ ∗ f1 )[n] = f1 [n].

Exerciţiul 2.11. Folosind aproximaţia din Exerciţiul 2.3, punctul c), verificaţi
numeric că: Z ∞
δ (k) (t)Φ(t)dt = (−1)k Φ(k) (0),
−∞

pentru k = 1, 2, 3. Folosiţi funcţia Φ(t) dată ı̂n (2.16) pentru a reprezenta


grafic eroarea. Indicaţie:
Z ∞
(k)
εΦ = δ (k) (t)Φ(t)dt − (−1)k Φ(k) (0), n ∈ N∗ .
−∞

Puteţi folosi funcţiile Matlab trapz() sau quad() pentru calculul numeric al
integralei. O altă posibilă rezolvare este inspirată de Exerciţiul 2.5.

Exerciţiul 2.12. Folosind aproximaţia din Exerciţiul 2.3, punctul c), verificaţi
numeric că:
0 0
δ∗δ =δ ,
0 0 00
δ ∗δ =δ .

Exerciţiul 2.13. Reluaţi Exerciţiul 2.5 pentru diverse funcţii Φ(t) construite
de voi. Φ(t) trebuie să fie regulată, continuă ı̂n zero şi derivabilă ı̂n zero de
câte ori este necesar.

Exerciţiul 2.14. Funcţia Matlab fft (Fast Fourier Transform) este un in-
strument util şi eficient pentru calculul transformatei Fourier (TF). Apelul ti-
pic al funcţiei este fft(x,N), unde x este semnalul original, iar N este numărul
de puncte al transformatei - apelaţi help fft pentru detalii. Exerciţiul ı̂şi pro-
pune să arate efectul pe care ı̂l produce modificarea lui N , respectiv numărul
de repetiţii ale perioadei fundamentale din x asupra TF.
Fie semnalul x[n] = cos 2πn
10 , cu n ∈ 0, 29. Cerinţe:

a) Reprezentaţi grafic modulul TF pentru trei valori distincte ale lui N : 64,
128, 256.
Capitolul 2. Semnale 37

b) Alegeţi N = 2048 şi variaţi numărul de repetiţii ale perioadei fundamen-


tale (construiţi trei semnale de lungimi diferite). Trasaţi grafic TF cores-
punzătoare.

Exerciţiul 2.15. Sunete ı̂n Matlab. Considerăm semnalul armonic:


 π
x(t) = sin 2π · 440t + , ∀t ∈ [−1, 1],
4
pe care ı̂l eşantionăm cu frecvenţa Fs = 8 kHz, adică t = -1:1/Fs:1-1/Fs.

a) Care este frecvenţa F a semnalului, ı̂n hertzi? Reprezentaţi grafic x(t)


pentru t ∈ [−1, 1] şi pentru t ∈ [0, 0.01], i.e., 1 msec. Ce se observă?

b) Ascultaţi semnalul x(t) pentru t ∈ [−1, 1] şi pentru t ∈ [0, 0.01]. Veţi
folosi funcţia Matlab sound(x,Fs). Ascultaţi de asemenea 5 ∗ x(t), x(t)/2.
Apelaţi sound(x,Fs/2) şi sound(x,2*Fs). Care sunt diferenţele? Argu-
mentaţi riguros.

c) Reprezentaţi grafic şi ascultaţi semnalele:

y(t) = e−2t x(t),


z(t) = sin 2π · 800t2 − 3π

4 , cu t ∈ [−1, 1], Fs = 8000 Hz.
w(t) = 5x(t) + 4 sin (2π · 880t) + z(t),

d) Figuraţi grafic spectrul semnalelor date, x(t), y(t), z(t).

Exerciţiul 2.16. Zgomotul alb. Funcţia Matlab randn(1,n) generează un


semnal aleator de lungime n, cu distribuţie de probabilitate normală (gaus-
siană) de medie nulă şi varianţă unitară. Cerinţe:

a) Generaţi şi reprezentaţi grafic un semnal aleator de lungime n = 104 .


Confirmaţi cele afirmate ı̂n enunţ. Indicaţie: Histograma se determină
cu funcţia hist(), iar varianţa unui semnal cu funcţia var.

b) Calculaţi TF a zgomotului alb generat, precum şi modulul transformatei


(cu funcţiile fft, abs).

c) Reprezentaţi grafic modulul TF cu plot şi semilogy (scală liniară şi scală
logaritmică). Ce observaţi? Justificaţi denumirea de zgomot alb.

Exerciţiul 2.17. Imagini ı̂n Matlab. Acestea se pot reprezenta ca o ma-


trice, utilizând funcţia image. Spre exemplu, instrucţiunile:

culori = gray(256);
colormap(culori);
image(1:256);
38 Semnale şi sisteme. Îndrumar de laborator

20 20

40 40

60 60

80 80

100 100

120 120

140 140

160 160

180 180

200 200
20 40 60 80 100 120 140 160 180 200 20 40 60 80 100 120 140 160 180 200

(a) Variaţie sinusoidală (b) Produs de sinusoide

Figura 2.7.

reprezintă o imagine alb-negru de 1 pixel pe 256 de pixeli (Matlab ı̂ntinde ima-


ginea astfel ı̂ncât să acopere dimensiunea standard a figurii). Aici, 1 reprezintă
negru, iar 256, alb. Cerinţe:

a) Examinaţi matricea culori, de dimensiune 256×3. Ce semnificaţie atribuiţi


elementelor? Pentru a obţine o imagine color, apelaţi
>> colormap; image(1:64).
Interpretaţi de asemenea matricea culori2 = colormap.

b) Creaţi o imagine de 200×200 pixeli, cu variaţie sinusoidală a intensităţii pe


direcţie verticală, vezi Figura 2.7a. Indicaţii. Construiţi un semnal sinu-
soidal de perioadă 400. Mai departe, se vor lua primele 200 de eşantioane
din semnalul unidimensional creat. Repetaţi de 200 de ori acest vector
(obţinem o matrice de 200 × 200) folosind funcţia repmat (sau orice altă
metodă).

c) Afişaţi acum transpusa matricei de la punctul b). Ce se obţine? Afişaţi


apoi produsul celor două matrice (element cu element) pentru a obţine
Figura 2.7b.

d) Modificaţi perioada semnalului armonic, pentru a obţine Figura 2.8. Se va


folosi modulul funcţiei sinus, i.e., abs(sin()).

Exerciţiul 2.18. Matlab are câteva funcţii interesante pentru calculul simbo-
lic al transformatei Laplace: laplace, ilaplace. Pentru un rezultat ”lizibil”,
folosiţi funcţiile simplify şi pretty.

a) Calculaţi TL pentru funcţia f (t) = −1.25 + 3.5te−2t + 1.25e−2t . Verificaţi


rezultatul dat de Matlab, ı̂n două moduri: prin calcul direct şi prin TL
inversă.
Capitolul 2. Semnale 39

20 20

40 40

60 60

80 80

100 100

120 120

140 140

160 160

180 180

200 200
20 40 60 80 100 120 140 160 180 200 20 40 60 80 100 120 140 160 180 200

(a) Variaţie sinusoidală (b) Produs de sinusoide

Figura 2.8.

10(s + 1)
b) Calculaţi TL inversă pentru F (s) = . Verificaţi rezultatul.
s(s2 + 4s + 5)
c) O altă funcţie utilă, care nu foloseşte ı̂nsă variabile simbolice, este residue.
Funcţia realizează descompunerea ı̂n fracţii simple. Reluaţi punctul b)
folosind funcţia residue.

Observaţie. Rezultatul obţinut poate conţine termenii sinh(x) şi cosh(x),


unde:
ex − e−x ex + e−x
sinh(x) = ; cosh(x) = .
2 2
3. Sisteme
3.1. Scopul laboratorului
Laboratorul propune studiul sistemelor dinamice, liniare şi invariante ı̂n timp.
Pentru ı̂nceput, se studiază grafic proprietăţile sistemelor. În continuare, labo-
ratorul prezintă exemple reale de sisteme (circuitul RC, masă-resort cu amor-
tizare), care sunt ulterior analizate din punct de vedere dinamic.

3.2. Breviar teoretic


Înţelegem prin sistem o aplicaţie definită pe spaţiul semnalelor de intrare U
cu valori ı̂n spaţiul semnalelor de ieşire Y, T : U → Y, y = T u .
Ne vom concentra atenţia asupra sistemelor liniare, invariante ı̂n timp şi
cauzale, care au proprietăţi interesante.
Un sistem este liniar dacă T este un operator liniar, adică satisface principiul
superpoziţiei. Un sistem este invariant ı̂n timp dacă o translaţie ı̂n timp a
intrării produce aceeaşi translaţie ı̂n ieşire. Mai exact, dacă u(t) generează
ieşirea y(t), atunci intrarea shiftată u(t − τ ), ∀τ ∈ R produce y(t − τ ). Numim
un sistem cauzal dacă ieşirea depinde doar de intrările curente sau din trecut.
Un sistem cauzal se mai numeşte non–anticipativ.
Formal, aceste proprietăţi se scriu:
  
(i) liniaritate: T α1 u1 +α2 u2 = α1 T u1 +α2 T u2 , ∀u1,2 ∈ U, ∀α1,2 ∈ C;
(ii) invarianţăı̂n timp:
σ τ T(u) = σ τ (y) = y(t − τ ) = T u(t − τ ) = T σ τ u(t) , ∀τ ∈ R;
  

(iii) cauzalitate: dacă u1 (t) = u2 (t), ∀t ≤ τ =⇒ y1 (t) = y2 (t), ∀t ≤ τ .

3.2.1. Sisteme de convoluţie


Definiţia 3.1. Un sistem y = T(u) se numeşte sistem de convoluţie dacă
există o funcţie h(t), numită funcţie pondere, astfel ı̂ncât y = h ∗ u.
Propoziţia 3.1. Un sistem de convoluţie este liniar şi invariant ı̂n timp. Mai
mult, sistemul este şi cauzal dacă şi numai dacă h(t) = 0, ∀t < 0.
De notat că proprietăţile şi definiţiile prezentate sunt valabile atât pentru
sisteme continuale, cât şi pentru sisteme discrete. În continuare, analizăm
răspunsul sistemelor de convoluţie la impuls şi la intrări de tip armonic.

41
42 Semnale şi sisteme. Îndrumar de laborator

Răspunsul la impuls
Tratăm cazul sistemelor discrete, pentru că este mai intuitiv. Astfel, fie y[n] =
(h ∗ u)[n] un sistem de convoluţie. Dacă u[k] = δ[k], vom avea:
+∞
X
y[n] = h[n − k]δ[k] = h[n].
k=−∞
Aşadar: Funcţia podere a unui sistem de convoluţie este răspunsul la
impuls al sistemului respectiv.

Răspunsul la intrări armonice


Fie un sistem de convoluţie continuu, iar u(t) = ejωt . Atunci:
Z ∞ Z ∞ Z ∞
y(t) = h(τ )u(t − τ )dτ = h(τ )e jω(t−τ )
dτ = ejωt
h(τ )e−jωτ dτ
−∞ −∞ −∞

Z ∞
y(t) = H(jω)u(t), unde H(jω) := h(τ )e−jωτ dτ. (3.1)
−∞

Funcţia H(jω) = F h(t) (jω) se numeşte răspunsul ı̂n frecvenţă al sistemului
de convoluţie caracterizat prin funcţia pondere h. Mai mult, se observă că
răspunsul unui sistem de convoluţie la o intrare armonică este tot o armonică,
având aceeaşi frecvenţă ω, dar de amplitudine şi fază diferite. Rezultatul este
valabil şi pentru sistemele cu timp discret.

Funcţia de transfer
Să generalizăm rezultatul anterior ı̂n domeniul operaţional. Fie sistemul de
convoluţie y = h ∗ u. Atunci răspunsul sistemului la intrarea u(t) = est , cu
s ∈ C, este:
Z ∞
y(t) = h(τ )es(t−τ ) dτ = H(s)u(t).
−∞

Funcţia H(s) = L h(t) (s) este funcţia de transfer a sistemului de convoluţie.
Mai mult, dacă sistemul este cauzal, i.e., h(t) = 0, ∀t < 0, atunci:
Z ∞
h(τ )e−sτ dτ = L+ h (s)

H(s) =
0

este transformata Laplace (TL) unilaterală la dreapta. De remarcat proprie-


tatea de convoluţie a transformatei Laplace:
Y (s) = H(s)U (s),
unde U (s) este TL a semnalului de intrare u(t), iar Y (s) este TL a semnalului
de ieşire y(t), cu y(t) = (h ? u)(t).
Capitolul 3. Sisteme 43

3.2.2. Circuitul RC
Prezentăm ı̂n cele ce urmează un exemplu simplu de sistem liniar, invariant ı̂n
timp şi cauzal, circuitul RC. Acesta se asimilează cu un sistem dinamic a cărui
intrare (comandă) este tensiunea u(t) şi a cărui ieşire (mărime măsurată) y(t)
este tensiunea pe condensator.

Circuitul este descris de următoarea ecuaţie diferenţială:


dy(t) 1 1
+ y(t) = u(t), t ∈ R. (3.2)
dt RC RC
Soluţia acestei ecuaţii ı̂n condiţii iniţiale nule (u(0) = 0, y(0) = 0) este:
Z t
1 t−τ
y(t) = e− RC u(τ )dτ, t ∈ R (3.3)
RC 0
care se mai poate scrie sub forma unui produs de convoluţie y = h ∗ u, unde
1 − t
h(t) = e RC 1(t), t∈R (3.4)
RC
este funcţia pondere a sistemului cu intrarea u şi ieşirea y. Conform relaţiilor
precedente, răspunsul ı̂n frecvenţă al circuitului RC este H(jω) = F{h}(jω):
1
H(jω) = .
1 + jRCω
Pentru intrarea armonică:

u(t) = αu cos(ωt + φu ), (3.5)

unde αu ≥ 0, φu ∈ R şi, respectiv, t ∈ R rezultă ieşirea:

y(t) = αy cos(ωt + φy ), (3.6)

unde

αy =|H(jω)|αu , respectiv
φy =φu + arg(H(jω)). (3.7)
44 Semnale şi sisteme. Îndrumar de laborator

3.2.3. Ecuaţii diferenţiale forţate


În general, orice sistem fizic este caracterizat de legi fizico-matematice, care se
exprimă uzual prin ecuaţii diferenţiale (posibil cu derivate parţiale, coeficienţi
variabili ı̂n timp, neliniare). Ca un caz particular al acestor sisteme, sistemele
liniare şi invariante ı̂n timp (LTI) sunt caracterizate de ecuaţii diferenţiale
ordinare, liniare, cu coeficienţi constanţi.
Aşadar, să considerăm forma generală a unei ecuaţii diferenţiale forţate de
ordin n ∈ N, care exprimă comportamentul intrare–ieşire al unui sistem LTI:
dn y(t) dy(t) dm u(t) du(t)
an n
+ · · · + a 1 + a 0 y(t) = bm m
+ · · · + b1 + b0 u(t). (3.8)
dt dt dt dt
Se aplică transformata Laplace ecuaţiei (3.8), cu condiţii iniţiale nule. Uti-
lizând proprietatea derivării funcţiei original a TL, cu condiţii iniţiale nule
L{f (n) (t)}(s) = sn F (s), (3.8) devine:
an sn Y (s) + · · · + a1 sY (s) + a0 Y (s) = bm sm U (s) + · · · + b1 sU (s) + b0 U (s).
De remarcat că funcţia de transfer a sistemului, definită ı̂n S3.1, se poate
obţine direct din ecuaţiile anterioare:

Y (s) bm sm + · · · + b1 s + b0
H(s) := = . (3.9)
U (s) an sn + · · · + a1 s + a0
În concluzie, funcţia de transfer a unui sistem de convoluţie este o funcţie
raţională complexă, i.e., este un raport de două funcţii polinomiale, de
forma H(s) = B(s)
A(s) .

3.3. Exerciţii rezolvate


Exerciţiul 3.1. Reprezentaţi ı̂n Matlab funcţia de transfer:
3s2 − 5s + 7
H(s) = ,
−s3 + 2s
cu ajutorul coeficienţilor sau ca obiect. Reprezentaţi grafic răspunsul la im-
puls, i.e., funcţia pondere.

Rezolvare. O funcţie de transfer de forma (3.9) se poate reprezenta cu funcţia


transfer function, i.e., tf(num, den) sau ca obiect. În Matlab vom scrie:
num = [3 -5 7]; % coeficientii polinomului de la numitor
den = [-1 0 2 0];
H = tf(num,den);

% ca obiect
s = tf(’s’);
H = (3*s^2-5*s+7)/(-s^3+2*s);
Capitolul 3. Sisteme 45

Putem desena extrem de simplu răspunsul ı̂n timp al unui sistem dat prin
H(s). Spre exemplu, răspunsul la impuls se determină apelând:

>> impulse(H);

Alte funcţii Matlab utile sunt step(H), initial(ss(H),x0), lsim(H,u,t).


Apelaţi help pentru detalii.

Exerciţiul 3.2. Fie sistemele următoare, cu intrarea u şi ieşirea y.

a)
Σ1 : y[n] = u[−n], n ∈ Z, Σ2 : y(t) = u(t) cos(t + 1), t ∈ R.
Reprezentaţi grafic ieşirile celor două sisteme la intrările u1 (k) = e−k , u2 (k) =
2 sin(πt), unde k ∈ Z pentru Σ1 şi k ∈ R pentru Σ2 . Studiaţi cauzalitatea
sistemelor.

b)
Σ1 : y(t) = u(2t), t ∈ R, Σ2 : y[n] = nu[n], n ∈ Z.
Studiaţi dacă sistemele sunt invariante ı̂n timp.

c)
Σ1 : y(t) = t2 u(t), t ∈ R, Σ2 : y(t) = u2 (t), t ∈ R
Sunt sistemele liniare? Verificaţi ı̂n Matlab.

Rezolvare:
a) Codul Matlab este dat ı̂n Anexă. Figura 3.2 prezintă răspunsul lui Σ1 la
u1 (t) şi răspunsul lui Σ2 la u2 (t). Dacă n < 0, spre exemplu n = −3, atunci
y[−3] = u[3]. Sistemul Σ1 nu este cauzal, pentru că semnalul de ieşire depinde
de valori viitoare ale intrării. Acest lucru poate fi vizualizat direct din grafic,
vezi figura 3.1. Sistemul Σ2 este cauzal, pentru că ieşirea depinde doar de
valori actuale ale intrării. Astfel de sisteme se numesc sisteme fără memorie.
b) Se verifică uşor că sistemul Σ1 este invariant ı̂n timp. Să probăm acest
lucru folosind Matlab. Aşadar, pentru Σ1 , alegem ca intrare semnalul drept-
unghiular: (
1, −2 ≤ t ≤ 2
u1 (t) = .
0, ı̂n rest
Se observă din figura 3.2 că y2 (t) = y1 (t − 2), unde y2 (t) este răspunsul siste-
mului la u2 (t) = u1 (t − 2).
O metodă alternativă pentru a demonstra că un sistem este variant la de-
plasari temporale constă ı̂n căutarea unui contraexemplu, i.e., un semnal par-
ticular pentru care proprietatea de invarianţă ı̂n timp este violată. Aşadar,
pentru sistemul Σ2 , fie u1 [n] = δ[n], pentru care ieşirea este y1 [n] = nδ[n] = 0.
Dacă u2 [n] = u1 [n − N ] = δ[n − N ], unde N ∈ Z este fixat, atunci y2 [n] =
nδ[n − N ] = N δ[n − N ]. Aşadar, sistemul Σ2 nu este invariant ı̂n timp.
46 Semnale şi sisteme. Îndrumar de laborator

4 Raspunsul sistemului Σ1 la u1[n]


x 10
2.5

1.5
u1d[n]

0.5

0
−10 −8 −6 −4 −2 0 2 4 6 8 10
n

4
x 10
2.5

1.5
y1d[n]

0.5

0
−10 −8 −6 −4 −2 0 2 4 6 8 10
n

Raspunsul sistemului Σ2 la u2(t)


10

5
u2(t)

−5

−10
−10 −8 −6 −4 −2 0 2 4 6 8 10
t

10

5
y2(t)

−5

−10
−10 −8 −6 −4 −2 0 2 4 6 8 10
t

Figura 3.1.: Exerciţiul 3.2a


Capitolul 3. Sisteme 47

1.5

1
Intrarea u1(t)

0.5

−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5

1.5

1
Iesirea y1(t)

0.5

−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
Timp
1.5
Intrarea u2(t)=u1(t−2)

0.5

−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5

1.5

1
Iesirea y2(t)

0.5

−0.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
Timp

Figura 3.2.: Exerciţiul 3.2b


48 Semnale şi sisteme. Îndrumar de laborator

c) Sistemul Σ1 este liniar, dar sistemul Σ2 nu este liniar. Pentru a testa acest
aspect, alegem ca semnale de intrare:
t sin(πt)
u1 (t) = e− 10 sin(2π 5t), u2 (t) = sinc(t) := .
πt
Implementarea Matlab se găseşte ı̂n Anexă.
Exerciţiul 3.3. Să considerăm sistemul masă–resort cu amortizare, caracte-
rizat prin ecuaţia diferenţială de ordinul II:

mÿ(t) + bẏ(t) + ky(t) = F (t), (3.10)

unde y(t) este coordonata mobilului, iar F (t) este forţa exterioară. Consi-
derăm intrarea sistemului u(t) = F (t), iar ieşirea coordonata mobilului.

a) Studiaţi liniaritatea şi invarianţa ı̂n timp pentru sistemul dat.


b) Uzual, un sistem de ordin II se scrie sub forma:

ÿ(t) + 2ζωn ẏ(t) + ωn2 y(t) = K · ωn2 u(t), (3.11)

unde ωn > 0 se numeşte pulsaţie naturală, iar ζ este factorul de amortizare.


Găsiţi expresiile pentru ζ şi ωn ı̂n funcţie de parametrii fizici ai sistemului
(m, k, b).
c) Determinaţi funcţia de transfer a sistemului H(s), considerând y(0+ ) =
ẏ(0+ ) = 0. Calculaţi rădăcinile polinomului caracteristic. Când este siste-
mul stabil? Discuţie după ζ.
d) Folosind funcţia Matlab impulse, reprezentaţi grafic răspunsul la impuls al
sistemului dat. Se dă ζ = 2, ωn = 1, K = 1. Daţi alte valori parametrului
ζ, spre exemplu ζ ∈ {1, 0.9, 0.5, 0.1, 0, −0.5}. Ce se observă?

Rezolvare:
a) Ecuaţia diferenţială care caracterizează sistemul este liniară (apar doar
combinaţii liniare de variabile dependente) şi invariantă ı̂n timp: coeficienţii
m, b, k nu depind de timp. Aşadar, sistemul este liniar şi invariant ı̂n timp.
Mai mult, acesta este şi cauzal.
b) Împărţim ecuaţia (3.10) prin m şi obţinem:
b k 1
ÿ(t) + ẏ(t) + y(t) = u(t). (3.12)
m m m
Prin egalarea coeficienţilor cu (3.11), obţinem:
r
k b 1
ωn = , ζ= √ , K= .
m 2 km k
Capitolul 3. Sisteme 49

ωn2
c) H(s) = K · . Polinomul caracteristic este χ(s) = s2 +
s2 + 2ζωn s + ωn2
2ζωn s + ωn2 , iar rădăcinile lui sunt:
p p
p1 = −ζωn + ωn ζ 2 − 1, p2 = −ζωn − ωn ζ 2 − 1.

Sistemul este stabil ı̂n sens strict numai şi numai dacă Re{p1,2 } < 0
(demonstraţi acest fapt), ceea ce este echivalent cu ζ > 0.

d) Codul Matlab pentru ζ = 0.1 este dat ı̂n continuare. Daţi voi valorile
specificate pentru parametrul ζ.

wn = 1;
zeta = 0.1;
H = tf(wn^2,[1 2*zeta*wn wn^2]);
impulse(H);

Se obţine graficul din figura 3.3. Se observă că pentru ζ > 1, răspunsul
sistemului la impuls este aperiodic. În plus, rădăcinile lui χ(s) sunt re-
ale. Pentru ζ = 1, răspunsul la impuls este aperiodic critic, iar χ(s) are
o rădăcină reală dublă. Dacă 0 < ζ < 1, răspunsul sistemului este o
oscilaţie amortizată.
p Rădăcinile lui χ(s) sunt complex conjugate, p1 =
−ζωn + jωn 1 − ζ , p2 = p∗1 . Când ζ = 0, amortizarea este 0, iar sistemul
2

oscilează liber. Care este legătura dintre rădăcinile lui χ(s) şi răspunsul la
impuls al sistemului?

Exerciţiul 3.4. Fie sistemul masă-resort cu amortizare vâscoasă, având funcţia


de transfer:
1
H(s) = 2
.
ms + bs + k
Se dau m = 1 kg, b = 0.5 Ns/m, k = 4 N/m. Considerăm aici semnale de
stimul armonice, e.g., u(t) = sin(ω0 · t), unde ω0 > 0 este fixat. Cerinţe:

a) Calculaţi pulsaţia naturală ωn .

b) Reprezentaţi grafic răspunsul forţat al sistemului (condiţii iniţiale nule) la


semnalul u(t) = sin(t) (ω0 = 1), pentru t ∈ [0, 30] sec. Folosiţi funcţia
Matlab lsim. Determinaţi din grafic amplitudinea, frecvenţa şi defazajul
semnalului de ieşire:

y(t) = Ay sin(ωy t + ∆φ).

c) Calculaţi răspunsul ı̂n frecvenţă al sistemului, H(jω). Calculaţi de aseme-


nea |H(j · ω0 )| şi arg H(j · ω0 ), pentru ω0 = 1 rad/s. Ce observaţi?
50 Semnale şi sisteme. Îndrumar de laborator

Impulse Response

0.8

0.6

0.4
Amplitude

0.2

−0.2

−0.4

−0.6

−0.8
0 10 20 30 40 50 60
Time (seconds)

Figura 3.3.: Exercitiul 3.3.d

d) Reluaţi punctul b) pentru ω0 = 1 : 0.2 : 3. Cum se modifică amplitudinea


semnalului de ieşire Ay ? La ce frecvenţă Ay ı̂şi atinge maximul?

Rezolvare:
q
k
a) ωn = m = 2 rad/s.

b) Codul Matlab este dat ı̂n continuare:

m = 1; k = 4; b = 0.5;
H = tf(1,[m b k]);

t = 0:0.01:30; w0 = 1;
u = sin(w0*t);
figure; lsim(H,u,t); grid

Obţinem figura 3.4. Observăm că semnalul de ieşire are aceeaşi pulsaţie ca
semnalul de intrare, i.e., ωy = ω0 = 1 rad/s. În plus, de pe grafic avem că
Ay (ω0 ) ≈ 0.329. Defazajul nu se poate citi clar de pe grafic, ı̂nsă se vede
că ∆φ ≈ 0.

c)
1 1
H(jω) = = .
−mω 2 + jbω + k 2
−ω + jω/2 + 4
Capitolul 3. Sisteme 51

Linear Simulation Results

0.8

0.6

0.4

0.2
Amplitude

−0.2

−0.4

−0.6

−0.8

−1
0 5 10 15 20 25 30
Time (seconds)

Figura 3.4.: Exercitiul 3.4.b

2
Când ω = ω0 = 1, H(jω0 ) = . Aşadar,
6+j
2
|H(jω0 )| = √ = 0.3288,
37
π
arg H(jω0 ) = − arctan(1/6) = − + arctan(6) = −0.165 rad.
2
Se observă că Ay = |H(jω0 )|, ∆φ = arg H(jω0 ). Am verificat astfel cele
afirmate ı̂n breviarul teoretic, S3.2.2.

d) Codul Matlab rămâne acelaşi ca la punctul b (evident, se modifică cores-


punzător valoarea pulsaţiei ω0 ). Observăm că maximul Ay,max se atinge
pentru ω0 = ωn . Demonstraţi analitic acest lucru. Fenomenul este cunos-
cut sub numele de rezonanţă.

Exerciţiul 3.5. Se consideră circuitul RC, prezentat ı̂n S3.2.2, cu R · C = 1


s. Circuitul primeşte la intrare semnalul u(t) = cos(2t) · sin(30t), t ∈ [0, 15] s.
Să se determine cu ajutorul Matlab tensiunea de pe condensator ı̂n funcţie de
timp prin cel puţin trei metode. Pentru verificare, reprezentaţi grafic cele trei
semnale obţinute.

Rezolvare: Propunem trei metode pentru determinarea răspunsului la intrarea


dată: calculul numeric al convoluţei cu funcţia conv(h,u), rezolvarea ecuaţiei
diferenţiale ı̂n condiţii iniţiale nule cu funcţia dslove, şi utilizarea funcţiei
lsim(H,u,t).
52 Semnale şi sisteme. Îndrumar de laborator

Raspuns in timp al circuitului RC prin 3 metode


0.15

y(t) prin conv


0.1

0.05

−0.05
0 5 10 15
t

0.15
y(t) prin lsim

0.1

0.05

−0.05
0 5 10 15
t
5382/(160925 exp(t)) −...+ sin(32 t)/2050
0.06
y(t) prin dsolve

0.04
0.02
0
−0.02

0 5 10 15
t

Figura 3.5.: Exerciţiul 3.5

Codul Matlab este dat ı̂n Anexă. Rezultatul este prezentat ı̂n figura 3.5. Se
observă că cele trei semnale sunt identice. Câteva observaţii: apelul
>> y3 = dsolve(’Dy+y=cos(2*t)*sin(30*t)’,’y(0)=0’);
returnează o variabilă simbolică, care se poate reprezenta grafic folosind rutina
ezplot. Pentru scalarea corespunzătoare a convoluţiei se apelează
>> y1=conv(h,t)/Fs;
i.e., se imparte rezultatul prin Fs , frecvenţa de eşantionare a semnalelor con-
tinue. Am ales aici Fs = 1000 Hz.

3.4. Exerciţii propuse


Exerciţiul 3.6. Se consideră circuitul RC, prezentat ı̂n S3.2.2, cu RC = 1.
Cerinţe:

a) Demonstraţi ecuaţia (3.3). Pentru aceasta, se va folosi un factor de inte-


grare v(t), al cărui scop este să reducă partea stângă a expresiei (3.2) la
derivata produsului v(t)y(t), i.e.,

dy 1 dh i
v(t) + v(t)y(t) = v(t)y(t) .
dt RC dt

Indicaţie. Se determină factorul de integrare v(t) din ecuaţia precedentă.


Apoi, se ı̂nmulţeşte ecuaţia (3.2) cu v(t) şi se integrează.
Capitolul 3. Sisteme 53

b) Determinaţi şi trasaţi graficul lui y(t) (tensiunea pe condensator) calculând


convoluţia lui u(t) cu h(t), unde:
(
1, pentru 1 ≤ t < 2;
u(t) = (3.13)
0, in rest.

c) Determinaţi şi trasaţi grafic răspunsul tensiunii z(t) pe rezistenţă, la intra-


rea (3.13), folosind faptul că z = g ? u, unde g(t) este funcţia pondere a
sistemului cu intrarea u şi ieşirea z:
h 1 − t i
g(t) = 1 − e RC 1(t), t ∈ R.
RC

Verificaţi numeric că y(t) + z(t) = u(t), t ∈ R şi explicaţi discrepanţele.

d) Calculaţi şi reprezentaţi grafic răspunsul sistemului de convoluţie definit de


h la intrări de tip treaptă, respectiv, de tip rampă.

e) Ştiind că RC = 1 s, calculaţi răspunsul circuitului la intrarea armonică


u(t) = cos(2πf0 t), unde ω0 := 2πf0 t, iar t ∈ R pentru 2πRC = f10 . Figuraţi
grafic u si y.
Indicaţie. Se folosesc relaţiile (3.6) şi (3.7).

f) Calculaţi răspunsul circuitului la intrarea:


1
u(t) = cos(2πf t) + cos(2π f˜t), t ∈ R,
4
cu 2πf RC = 1 si 2π f˜RC = 3. Figuraţi grafic u si y.
Indicaţie. Se foloseşte proprietatea de liniaritate a sistemelor de convoluţie.

Figura 3.6.: Circuit RL paralel

Exerciţiul 3.7. Considerăm circuitul RL paralel din figura 3.6 ı̂n care sursa
de curent produce intrarea x(t), iar ieşirea y(t) este curentul prin bobină.

a) Găsiţi ecuaţia diferenţială care leagă pe x(t) cu y(t).


54 Semnale şi sisteme. Îndrumar de laborator

b) Determinaţi funcţia de transfer a sistemului şi răspunsul la impuls.

c) Determinaţi funcţia de răspuns ı̂n frecvenţă a sistemului, considerând răspunsul


la intrări de tipul x(t) = ejωt .

d) Determinaţi răspunsul la intrarea x(t) = cos(t).

e) Determinaţi răspunsul la intrarea x(t) = N ∗


P
k=1 k cos(2kπt), cu N ∈ N ales
de voi.

Exerciţiul 3.8. Considerăm circuitul RLC prezentat ı̂n figura 3.7, cu R =


0.5 Ω, L = 1 H, C = 1 F. Cerinţe:

❡ ✲
L R ❡

vi ❄ vo
❄ C ❄
❡ ❡

Figura 3.7.: Circuit RLC serie

a) Verificaţi că ecuaţia dinamică a circuitului este:


R 1 1
ÿ(t) + ẏ(t) + y(t) = u(t),
L LC LC
unde y ≡ v0 este ieşirea, iar u ≡ vi este intrarea. Determinaţi pulsaţia
naturală ωn şi factorul de amortizare ζ.

b) Studiem răspunsul liber y` (t), i.e., u(t) = 0, ∀t. Fie y(0) = a şi ẏ(0) =
b, unde a, b ∈ {−3, −1, 0, 1, 2}. Găsiţi răspunsul liber al circuitului RLC
pentru diverse combinaţii ale condiţiilor iniţiale. Se va folosi rutina dsolve.

c) Reluaţi punctul anterior pentru R = 0 Ω. Ce se observă?

d) Studiem răspunsul forţat yf (t), având y(0) = ẏ(0) = 0. Determinaţi


funcţia de transfer H(s). Reprezentaţi grafic răspunsul sistemului la im-
puls, treaptă unitară, şi rampă. Funcţii recomandate: impulse, step,
lsim.

e) Reprezentaţi grafic răspunsul total y(t) = y` (t) + yf (t), pentru u(t) = 1(t)
şi y(0) = 2, ẏ(0) = −3.
Observaţie. Ca alternativă, putem determina y(t) apelând:
>> lsim(ss(H),u,t,[-3 2]);
Verificaţi acest lucru. Apelaţi de asemenea help ss.
Capitolul 3. Sisteme 55

Exerciţiul 3.9. Considerăm circuitul RC, cu R · C = 0.01 s.


a) Găsiţi funcţia de transfer a sistemului, precum şi constanta de timp T .
Reprezentaţi grafic răspunsul la treaptă unitară. Cât este timpul tranzito-
riu? Dar timpul de creştere? Indicaţie. În general, un sistem de ordinul I
este de forma:
K
H(s) = ,
Ts + 1
unde K este amplificarea ı̂n regim staţionar (justificaţi această denumire),
iar T este constanta de timp. Pentru diverse caracteristici ale răspunsului la
treaptă, daţi click dreapta pe figură şi selectaţi din Characteristics mărimile
de interes.
1
b) Studiem ı̂n continuare răspunsul ı̂n frecvenţă. Fie ω0 := RC = 100. Cum
se comportă sistemul la intrări armonice de forma u(t) = cos(ωt), pentru
frecvenţe ω < ω0 ? Dar pentru ω > ω0 ? Cât este defazajul dintre semnalul
de intrare şi cel de ieşire pentru ω = ω0 ? Veţi folosi lsim şi o scalare
corespunzătoare a axei timpului.

c) Folosim o sursă de tensiune continuă, u(t) = 12 V, ∀t > 0. Cât este


curentul i(t) prin circuit, după un timp suficient de mare? Dar tensiunea
de pe condensator? Determinaţi analitic şi grafic răspunsul permanent şi
răspunsul tranzitoriu al sistemului la intrare treaptă.
Exerciţiul 3.10. Considerăm un sistem mecanic format dintr-o locomotivă
de masă m1 şi un vagon de masă m2 , care ı̂ntâmpină din partea aerului o
rezistenţă proporţională cu viteza, de constantă b. Modelăm cuplajul dintre
cele două corpuri printr-un resort de constantă de elasticitate k. Notăm poziţia
corpurilor la momentul t cu x1 (t), respectiv x2 (t). Locomotiva dezvoltă o forţă
de tracţiune F (t).
a) Scrieţi ecuaţiile dinamice pentru cele două corpuri. Aplicaţi transformata
Laplace, ı̂n condiţii iniţiale nule.

b) Sistemul dat are o intrare F (s) şi două ieşiri, X1 (s) şi X2 (s). Scrieţi cele
două ecuaţii de la punctul anterior sub forma:
   
X1 (s) 1
A(s) · = F (s),
X2 (s) 0

unde A(s) este o matrice de dimensiune 2 × 2 care depinde de variabila


s ∈ C.

c) Precum este evident, funcţia de transfer pentru sistemul dat este o matrice
de 2 × 1:
   
X1 (s) H1 (s)
Y (s) = = H(s)F (s), H(s) = ,
X2 (s) H2 (s)
56 Semnale şi sisteme. Îndrumar de laborator

unde Hi (s) = XFi(s)


(s)
, i ∈ {1, 2}. Calculaţi H(s), prelucrând relaţia de la
punctul anterior. Când este inversabilă matricea A(s)?
d) Fie m1 = m2 = 1 kg, b = 0.2 J/m, k = 4 N/m. Reprezentaţi H(s) ı̂n
Matlab ca obiect. Determinaţi răspunsul la impuls. Este sistemul stabil?
Argumentaţi riguros.
e) Determinaţi răspunsul sistemului la intrări armonice de diferite frecvenţe
ω > ωn sau ω < ωn . Observaţi că frecvenţa de rezonanţă este:
r r
k k
ωn = = = 2 rad/s.
m1 m2

Exerciţiul 3.11. Fie circuitul RLC, cu R = 2Ω, L = 1H, C = 0.5F, având


funcţia de transfer:
1
LC
H(s) = R 1
.
s2 + L s + LC
a) Determinaţi răspunsul la treaptă unitară, ı̂n două moduri: analitic, i.e.,
calculaţi y(t) = L−1 {Y (s)}, şi ı̂n Matlab, cu funcţia step. Verificaţi rezul-
tatele obţinute.
b) Reluaţi punctul anterior pentru u(t) = t · 1(t).
c) Calculaţi ωn . Reprezentaţi grafic ı̂n Matlab răspunsul sistemului la intrări
armonice ui (t) = sin(ωi t), i = 1, 2, 3, pentru ω1 < ωn , ω2 = ωn , respectiv
pentru ω3 > ωn . Calculaţi de asemenea |H(jωi )|, i = 1, 2, 3 şi verificaţi
grafic rezultatele.
d) Fie w = logspace(-2, 2, 100). Reprezentaţi grafic ı̂n Matlab f (ω) =
|H(jω)| şi g(ω) = arg H(jω). Verificaţi rezultatele de la punctul anterior.
Indicaţie. Veţi folosi funcţiile abs(H), angle(H), unde H este un vector de
numere complexe. Pentru reprezentarea grafică, apelaţi semilogx(w,H).
Exerciţiul 3.12. Considerăm circuitul din figura 3.8, cu R1 = R2 = 2 kΩ,
C = 100µF, L = 10 mH. Cerinţe:

a) Scrieţi ecuaţiile diferenţiale pentru sistemul dat şi determinaţi funcţia de


Y (s)
transfer H(s) = X(s) ı̂n termenii R1 , R2 , C, L.

b) Reprezentaţi polii şi zerourile sistemului ı̂n planul complex. Puteţi folosi
funcţia Matlab pzmap(H). Este acesta stabil?
c) Reprezentaţi grafic răspunsul la impuls, respectiv la treaptă unitară. Calculaţi
şi reprezenaţi grafic h(t) = L−1 {H(s)}.
d) Fie w = logspace(-2, 2, 100). Reprezentaţi grafic ı̂n Matlab f (ω) =
|H(jω)|. Indicaţie. Veţi folosi funcţia abs(H), unde H este un vector de
numere complexe. Pentru reprezentarea grafică, apelaţi semilogx(w,H).
Capitolul 3. Sisteme 57

Figura 3.8.: Circuitul de la Exerciţiul 3.12

e) Reprezentaţi grafic ı̂n Matlab răspunsul sistemului la intrare armonică


x(t) = sin(ωt) pentru un ω ales de voi. Se verifică rezultatele de la punctul
anterior?
4. Răspunsul dinamic
4.1. Scopul laboratorului
Scopul laboratorului este studierea răspunsului dinamic (ı̂n domeniul timp) al
sistemelor de convoluţie cu o intrare şi o ieşire (Single-Input Single-Output,
SISO), invariante ı̂n timp, având transformata Laplace a funcţiei pondere o
raţională proprie. Un astfel de sistem se poate descrie prin intermediul funcţiei
de transfer:
B(s)
H(s) = (4.1)
A(s)
unde B(s) şi A(s) sunt polinoame cu coeficienţi reali cu ∂B(s) ≤ ∂A(s). Uzual
B(s) şi A(s) sunt presupuse coprime astfel ı̂ncât rădăcinile lor sunt zerourile,
respectiv polii sistemului H(s).

4.2. Moduri de reprezentare ale unui sistem SISO


Un sistem (4.1) se poate descrie prin intermediul funcţiei de transfer ı̂n mai
multe moduri:

1) Prin coeficienţii funcţiei raţionale:

bm sm + bm−1 sm−1 · · · b1 s + b0
H(s) = , (4.2)
an sn + an−1 sn−1 · · · a1 s + a0
unde bi , aj ∈ R, i = 0 : m, j = 0 : n, m ≤ n;

2) În forma poli-zerouri:


a) cu coeficienţi complecşi:
Qm
(s − zi )
H(s) = k Qni=1 , (4.3)
j=1 (s − pj )

unde k ∈ R, zi ∈ C, pj ∈ C, i = 1 : m, j = 1 : n;
b) cu coeficienţi reali:
Qm 1 Qm2 2
i=1 (s − zi ) (s + 2ζzi ωzi + ωz2i )
H(s) = k Qn1 Qi=1
n2 2 2
, (4.4)
j=1 (s − pj ) i=1 (s + 2ζpi ωpi + ωpi )

unde k ∈ R, zi , pj ∈ R, −1 ≤ ζzi ≤ 1, −1 ≤ ζpi ≤ 1, ωzi , ωpi ∈ R+ .

59
60 Semnale şi sisteme. Îndrumar de laborator

În Matlab un sistem se poate reprezenta alternativ:

1) sub formă de funcţie de transfer folosind funcţia tf:

H=tf(num,den),

unde num şi den sunt vectori ce conţin coeficienţii numărătorului, respectiv
ai numitorului funcţiei de transfer, aceştia fiind aşezaţi ı̂n ordinea des-
crescătoare a puterilor coeficienţilor polinomiali;

2) sub formă de funcţie de transfer ı̂n forma poli-zerouri folosind zpk :

H=zpk(z,p,k),

unde z şi p sunt vectori ce conţin zerourile, respectiv polii funcţiei de


transfer, iar k este factorul de amplificare.

În ambele situaţii variabila H este un obiect de tip sistem. Se pot realiza
conversii ı̂ntre cele două moduri de reprezentare ale unui sistem cu ajutorul
funcţiilor Matlab tf2zp şi zp2tf, cu sintaxa:

[z,p,k]=tf2zp(num,den);
[num,den]=zp2tf(z,p,k).

Exerciţiul 4.1. Folosind comenzile Matlab prezentate anterior, scrieţi următoa-


rele funcţii de transfer:
s+5 3
H1 (s) = ; H2 (s) = 2 .
s (s + 1) (s + 2) s − 16
Rezolvare: Codul este dat ı̂n Anexă.

Exerciţiul 4.2. Efectuaţi conversia tf2zpk pentru funcţia de transfer:


s+5
H(s) = .
s2 + 3s + 1

4.3. Analiza răspunsului ı̂n timp


Răspunsul ı̂n timp al unui sistem reprezintă dependenţa ieşirii sistemului ca
funcţie de timp, considerată pentru un semnal de intrare specificat. Implicit,
pentru clasele de sisteme studiate răspunsul ı̂n timp la un semnal precizat este
unic.
În analiza şi sinteza (proiectarea) sistemelor automate un rol esenţial este
jucat de criteriile de performanţă. În etapa de proiectare aceste criterii de
performanţă sunt folosite pentru a ajusta parametrii sistemului ı̂n vederea
obţinerii unei anumite comportări dorite. Sistemele automate sunt inerent di-
namice şi de aceea criteriile de performanţă sunt adesea exprimate ı̂n termenii
Capitolul 4. Răspunsul dinamic 61

răspunsului ı̂n timp al sistemului la anumite semnale test de intrare. Semna-


lele test standard (impuls, treaptă, rampă, armonic) sunt o submulţime relativ
restrânsă de semnale de intrare la care trebuie să lucreze un anumit sistem.
Cu toate acestea, răspunsul ı̂n timp al sistemului la semnale complexe poate
fi bine evaluat pe baza răspunsului la aceste semnale test standard.
Pentru clasa de sisteme de care ne ocupăm (sisteme de convoluţie cu funcţie
de transfer raţională), răspunsul ı̂n timp y(t) la semnalul de intrare u(t) se
poate obţine ı̂n două feluri:

1) prin produsul de convoluţie:


Z ∞
y(t) = h(t − τ )u(τ )dτ ; (4.5)
−∞

2) prin transformata Laplace inversă:

y(t) = L−1 {Y (s)}(t) = L−1 {H(s) · U (s)}(t). (4.6)

În majoritatea covârşitoare a situaţiilor se preferă a doua metodă ı̂ntrucât


calculul relativ complicat al integralei din (4.5) este redus ı̂n (4.6) la o simplă
ı̂nmulţire ı̂n calcul operaţional. Ca argument suplimentar adăugăm că sisteme-
le sunt cel mai adesea modelate (descrise) prin intermediul funcţiei de transfer
raţionale H(s), iar răspunsul sistemelor se studiază la semnale test elementare
u(t) a căror transformată Laplace U (s) este disponibilă ı̂n tabele; transformata
Laplace inversă a lui Y (s) se obţine prin descompunerea ı̂n fracţii simple şi
folosirea formulelor de inversare standard.
Descompunerea ı̂n fracţii simple şi teorema dezvoltării sunt prezentate pe
larg ı̂n curs. Datorită liniarităţii sistemului, se poate observa că răspunsul
general se obţine prin superpoziţia răspunsurilor ı̂n timp ale unor sisteme mai
simple, de ordinul I sau II. Din această cauză este esenţială studierea ı̂n detaliu
a comportării unor astfel de sisteme elementare la anumite semnale de test de
intrare, cum ar fi:
1) impulsul Dirac: δ(t);
2) semnale de tip polinomial:
tn−1
u(t) = 1(t), n ≥ 1;
(n − 1)!
uzual n = 1 (treaptă), n = 2 (rampă), n = 3 (parabolă);
3) semnale armonice: u(t) = ejωt 1(t), ω ≥ 0.
Având ı̂n vedere că orice specificaţie de proiectare asupra unui sistem auto-
mat nu se face decât după asigurarea stabilităţii sistemului, vom fi interesaţi
ı̂n majoritatea cazurilor de răspunsul ı̂n timp al sistemelor stabile I/O.
Sistemele elementare de care ne vom ocupa sunt:
62 Semnale şi sisteme. Îndrumar de laborator

K
1) Element de ordinul I: H(s) = 1+T s ; K, T > 0;
2
ωn
2) Element de ordinul II: H(s) = 2,
s2 +2ζωn s+ωn
ωn > 0, 0 ≤ ζ ≤ 1;

3) Element de ordinul II cu pol şi/sau zerou suplimentar:


ωn2
+ z)
z (s
H(s) = , ωn > 0, 0 ≤ ζ ≤ 1.
s2 + 2ζωn s + ωn2

Transformatele Laplace ale semnalelor test


Semnalul y(t) L{y(t)}
δ(t) 1
tn−1 1
(n−1)! 1(t) sn
1
ejωt 1(t) s−jω

În continuare vom pune ı̂n evidenţă unele particularităţi ale răspunsului
sistemelor liniare la anumite semnale de tip persistent. Dacă sistemul este
(extern) strict stabil, adică polii raţionalei P[H(s)] ⊂ C− , atunci ı̂n cazul
intrărilor polinomiale sau al celor armonice, răspunsul forţat al sistemului se
desface ı̂n două componente: una permanentă (caracter persistent, de acelaşi
tip cu intrarea) şi cealaltă tranzitorie (care marchează trecerea de la un regim
permanent la altul):
y(t) = yp (t) + yt (t). (4.7)

4.3.1. Sisteme de ordinul I


Forma generală este:
K
H(s) = , (4.8)
1 + Ts
cu K, T ∈ R. Uzual se ia K > 0, răspunsul ı̂n timp pentru K < 0 reducându-
se la acest caz printr-o simplă simetrizare ı̂n raport cu abscisa.

Răspunsul la impuls
Fie sistemul descris de funcţia de transfer:
1
H(s) = . (4.9)
s+σ
Aplicând transformata Laplace inversă rezultă următoarea expresie pentru
funcţia pondere h(t) a sistemului :

h(t) = L−1 {H(s)}(t) = e−σt 1(t). (4.10)


Capitolul 4. Răspunsul dinamic 63

h(t)

Figura 4.1.: Răspunsul la impuls al unui sistem de ordinul I

Dacă σ > 0 → polul s = −σ < 0 → sistemul e stabil;


Dacă σ < 0 → polul s = −σ > 0 → sistemul e instabil.
Exerciţiul 4.3. Trasaţi răspunsul la impuls pentru H(s), considerând mai
ı̂ntâi valori σ > 0 şi apoi valori σ < 0.

Rezolvare: Codul Matlab corespunzător se găseşte ı̂n Anexă. Dacă σ > 0, cu


cât σ creşte, cu atât funcţia pondere scade mai repede. Dacă σ < 0, cu cât σ
creşte ı̂n modul, cu atât funcţia pondere creşte mai repede.
Exerciţiul 4.4. Trasaţi răspunsul la impuls, evidenţiind dependenţa acestuia
de poziţia polului s = − T1 . Indicaţie. Se fixează K, spre exemplu K = 4, şi se
trasează cu mesh().

Rezolvare: Vezi Anexa.


Exerciţiul 4.5. Rulaţi programul din Anexă (Exerciţiul 4.5) reprezentând
răspunsul la impuls al unui sistem de ordinul I şi deduceţi funcţia de transfer
a sistemului utilizând graficul obţinut (vezi figura 4.1).

Rezolvare: Cunoscând răspunsul la impuls al unui sistem de ordinul I se pot


obţine coeficienţii K şi T conform figurii 4.1. Să probăm acest lucru. Funcţia
de răspuns cauzal la impuls este
 
−1 K K
h(t) = L = e−t/T 1(t).
Ts + 1 T
64 Semnale şi sisteme. Îndrumar de laborator

K
Avem ı̂n mod trivial că h(0) = T. Dreapta de interes trece prin h(0) şi are
panta h0 (0). Aşadar:
K K
x(t) = h0 (0) · t + h(0) = − 2
t+ .
T T
Când x(t) = 0, t = T . Astfel, afirmaţia a fost verificată.

Răspunsul la treaptă unitară


Pentru un sistem de ordinul I ı̂n forma generală, răspunsul la treaptă este:
 
−1 K t
y(t) = L = K(1 − e− T ), t ≥ 0. (4.11)
s(1 + T s)
Se constată imediat că yp (t) = H(0) = K, t ≥ 0, este componenta perma-
t
nentă, iar yt (t) = −Ke− T este componenta tranzitorie. O altă cale pentru
determinarea componentei permanente, respectiv tranzitorii este:
yp (t) = y(∞) = K,

yt (t) = y(t) − yp (t) = −Ke−t/T .


Exerciţiul 4.6. Trasaţi răspunsul la treaptă pentru un sistem stabil parame-
trizat după T > 0. Indicaţie. Folosiţi funcţia mesh.

Rezolvare: Codul Matlab este prezentat ı̂n Anexă. Cu cât T este mai mic, cu
atât sistemul răspunde mai rapid la treaptă.
Exerciţiul 4.7. Din răspunsul la treaptă al unui sistem de ordinul I determinaţi
coeficienţii T şi K.

Rezolvare: Rulaţi codul dat ı̂n Anexă. Cunoscând răspunsul la treaptă unitară
al unui sistem de ordinul I se pot obţine coeficienţii K şi T conform figurii 4.2.
Din relaţia (4.11), avem că y(∞) = K (asimptotic). Dreapta de interes are
ecuaţia:
K
x(t) = y 0 (0) · t = t.
T
Când x(t) = K, t = T .

Răspunsul la rampă
Pentru un sistem de ordinul I ı̂n forma generală, răspunsul la treaptă este:
 
−1 K 
− Tt

y(t) = L = K t − T + T e , t ≥ 0. (4.12)
s2 (1 + T s)
Cum H(0) = K şi H 0 (0) = −KT se constată direct că yp (t) = H(0)t+H 0 (0) =
t
K(t − T ) este componenta permanentă, iar yt (t) = KT e− T este componenta
tranzitorie.
Capitolul 4. Răspunsul dinamic 65

Figura 4.2.: Răspunsul la treaptă al unui sistem de ordinul I

Figura 4.3.: Răspunsul la rampă al unui sistem de ordinul I


66 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 4.8. Trasaţi un răspuns la rampă ı̂n cazul stabil, punând ı̂n
evidenţă răspunsul permanent şi tranzitoriu, respectiv valorile lui K şi T de
pe grafic.

Rezolvare: Rulaţi codul corespunzător din Anexă. Cunoscând răspunsul la


rampă al unui sistem de ordinul I se pot obţine coeficienţii K şi T conform
figurii 4.3.

Răspunsul la intrare armonică


Pentru un sistem de ordinul I ı̂n forma generală, răspunsul este:
 
K K  t

y(t) = L−1 = ejωT − e− T , t ≥ 0. (4.13)
(s − jω)(1 + T s) 1 + jT ω
Obţinem:
K h t
 t
i
y(t) = √ cos(ωt − α) − e− T cos α + j sin(ωt − α) − e− T sin α ,
1 + T 2ω2
cu t ≥ 0, unde tan α = T ω. Partea reală Re(y(t)) a răspunsului corespunde
intrării cos(ωt)·1(t), iar partea imaginară Im(y(t)) corespunde intrării sin(ωt)·
1(t). Componenta permanentă sinusoidală este:
K
yp (t) = √ sin(ωt − α) (4.14)
1 + T 2ω2
evidenţiindu-se modificarea de amplitudine şi fază.
Exerciţiul 4.9. Trasaţi un răspuns la intrare armonică (cazul stabil), punând
ı̂n evidenţă răspunsul permanent/tranzitoriu, respectiv valorile lui K şi T de
pe grafic.

Rezolvare: Cunoscând răspunsul la intrare armonică al unui sistem de ordinul


I se pot obţine coeficienţii K şi T conform figurii 4.4.

4.3.2. Sisteme de ordinul II cu poli reali


Forma generală este:
K
H(s) = (4.15)
(1 + T1 s)(1 + T2 s)
cu K, T1 , T2 ∈ R, (T1 ≥ 0, T2 ≥ 0 pentru sisteme stabile).

Răspunsul la impuls
Aplicând transformata Laplace inversă se obţine următoarea funcţie pondere:
 
−1 1 1  − T1 t − 1 t

L {H(s)} = h(t) = K − e 1 − e T2 , t ≥ 0. (4.16)
T1 T2
Capitolul 4. Răspunsul dinamic 67

Figura 4.4.: Răspunsul la intrare armonică al unui sistem de ordinul I

Exerciţiul 4.10. Trasaţi răspunsul la impuls h(t), pentru exemplul următor,


considerând pentru p1 şi p2 valorile: −10, −2, 0, 2, 10:
1
H(s) = .
(s + p1 )(s + p2 )

Rezolvare: Dacă sistemul este stabil (polii sunt negativi) funcţia pondere des-
creşte cu atât mai repede cu cât polii sunt plasaţi mai la stânga. Dacă sistemul
este instabil (polii sunt pozitivi) funcţia pondere creşte exponenţial la infinit.
Codul Matlab este dat ı̂n Anexă.

Răspunsul la treaptă unitară


Pentru un sistem de ordinul II cu poli reali răspunsul la treaptă unitară este:
   
−1 K T1 − T1 t T2 − T1 t
y(t) = L =K 1− e 1 − e 2 .
s(1 + T1 s)(1 + T2 s) T1 − T2 T2 − T1
(4.17)

Exerciţiul 4.11. Se ia K > 0, T2 = αT1 şi se studiază răspunsul ı̂n timp la


impuls şi treaptă parametrizat după α . Se observă că este importantă poziţia
relativă a polilor (pol dominant).

Exerciţiul 4.12. Se iau doi poli stabili a.i. T2 = 10T1 şi se trasează răspunsurile
(pe acelaşi grafic) datorate lui T1 , lui T2 şi ambilor poli, observându-se influenţa
fiecăruia ı̂n parte. Se studiază răspunsurile la impuls şi la treaptă.
68 Semnale şi sisteme. Îndrumar de laborator

Figura 4.5.: Răspunsul la impuls pentru diverse sisteme de ordin II

Rezolvare: Din răspunsul ı̂n timp al acestor sisteme se observă că polul − αT1 1
este pol dominant, adică răspunsul sistemului este puternic influenţat de prezen-
ţa acestui pol. De asemenea, se poate observa că − αT1 1 este un pol lent şi − T11
este un pol rapid (acesta are un răspuns mult mai rapid). În practică, pentru
un α suficient de mare, prezenţa acestui pol se poate neglija.

4.3.3. Sisteme de ordinul II cu poli complecşi


Forma generală este:

σd := ζωnp,
ωn2 ωn2 ω := ωn 1 − ζ 2 ,
H(s) = 2 = , d
s + 2ζωn s + ωn2 (s + ζωn ) + (ωn 1 − ζ ) sin θ ζ,
p
2 2 2 :=
p1,2 := −σd ± jωd ,

unde:
ωn = pulsaţie naturală;
ζ = coeficient de amortizare;
ωd = pulsaţie amortizată.
cu 0 ≤ ζ ≤ 1, ωn > 0. Polii acestui sistem sunt:
p
p1,2 = −ζωn ± jωn 1 − ζ 2 = −σd ± jωd .

Răspunsul la impuls se obţine aplicând transformata Laplace inversă a


funcţiei de transfer H(s):

ωn e−ζωn t
h(t) = L−1 {H(s)}(t) = p sin (ωd t) 1(t). (4.18)
1 − ζ2
Capitolul 4. Răspunsul dinamic 69

Răspunsul la treaptă unitară este dat de


 
σd
y(t) = L−1 {Y (s)}(t) = 1 − e−σd t cos ωd t + ωd sin ωd t
1 (4.19)
= 1− p e−ζωn t cos (ωd t − θ).
1−ζ 2

Observaţii.
1. Dacă ζ = 0 rezultă θ = 0 şi ωd = ωn . În acest caz avem un răspuns oscilant
de amplitudine constantă. Dacă ζ < 1 apare un răspuns amortizat, iar dacă
ζ = 1 un răspuns aperiodic.
2. Deoarece θ = arcsin ζ, este sugestivă vizualizarea polilor complex-conjugaţi
ı̂n plan pentru diverse valori ale lui ζ, vezi figura 4.6.

Figura 4.6.: Poli complex-conjugaţi

3. Se remarcă faptul că valoarea finală a răspunsului sistemului (adică valoa-


rea de regim staţionar) coincide cu valoarea semnalului treaptă aplicat la
intrare (Explicaţie: H(0) = 1).
Exerciţiul 4.13. Să se traseze răspunsul la impuls, treaptă unitară şi sem-
nal armonic ı̂n funcţie de ωn t, şi nu ı̂n funcţie de t, parametrizate după
factorul de amortizare ζ. Observaţi ce se ı̂ntâmplă ı̂n următoarele cazuri:
ζ < 0, ζ = 0, ζ = 1, ζ = 0.707 = √12 , , ζ > 1. Consideraţi de asemenea şi cazul
ı̂n care intrarea armonică are pulsaţia egală cu pulsaţia naturală a sistemului
şi ζ = 0.

Rezolvare. Codul Matlab este prezentat ı̂n Anexă. Se remarcă faptul că
răspunsul elementului de ordinul II cu ζ = 0, deci pur oscilant, pentru o
intrare armonică de tipul cos ωn t, de pulsaţie naturală identică cu cea a ele-
mentului, are punctele de extrem situate pe conul din figura 4.7. Propunem
cititorului interesat analiza cazului ζ = 1.
Exerciţiul 4.14. Să se traseze pe acelaşi grafic răspunsul la intrare treaptă
2
ωn
unitară al unui sistem de ordinul II de forma H(s) = s2 +2ζω 2 pentru
n s+ωn
ζ = 0.5, ωn = 1 şi curba pe care se găsesc punctele de extrem.
70 Semnale şi sisteme. Îndrumar de laborator

Figura 4.7.: Conul

4.4. Specificaţii de performanţă


Pentru specificarea performanţelor relative la regimul tranzitoriu pentru sis-
tem (automat) se utilizează de obicei semnalul treaptă unitară. Definirea
acestor indicatori de performanţă se face folosind răspunsul tipic la treaptă
unitară al unui sistem de ordinul II stabil, ca ı̂n figura 4.8.

Indici ce măsoară viteza de răspuns

1) Tc , Tc1 : timpi de creştere (timpul ı̂n care ieşirea ajunge prima dată la 100%,
respectiv ajunge de la 10% la 90% din valoarea finală).

2) Tv : timp de vârf (timpul ı̂n care ieşirea ajunge la valoarea sa maximă,


ymax ).

Indici ce măsoară calitatea urmăririi treptei

1) σ: suprareglaj (valoarea maximă cu care ieşirea depaşeşte valoarea de regim


stationar).

2) mv : subreglaj (valoare maximă negativă a ieşirii).

3) Tt : timp tranzitoriu (timpul necesar componentei tranzitorii să coboare


sub un anumit nivel δ considerat, i.e., |y(t) − yst | < δ · yst , ∀t > Tt ).

4) εst : eroarea staţionară.

Formulele acestea sunt valabile exclusiv pentru sistemele de ordinul II. Cu toate
acestea, ele se folosesc de multe ori ı̂n practică pentru o evaluare aproximativă
a oricărui sistem.
Capitolul 4. Răspunsul dinamic 71

Figura 4.8.: Parametrii de răspuns dinamic

Evaluări bazate pe sistemul de ordinul II. Se pot scrie următoarele ex-


presii aproximative:
2.16ζ + 16 1.8
Tc1 ≈ ≈ (pentru 0.3 ≤ ζ ≤ 0.8). (4.20)
ωn ωn
Din calcule rezultă următoarele expresii exacte:
π
Tv = p , (4.21)
ωn 1 − ζ 2

− √ πζ ymax − yst
σ=e 1−ζ 2 , 0 ≤ ζ < 1, uzual σ[%] = · 100, (4.22)
yst
4.6 4
Tt = , δ = 1%, Tt = , δ = 2%. (4.23)
ζωn ζωn
Răspunsul unui sistem de urmărire la o intrare treaptă trebuie să satisfacă
simultan cerinţele:

(i) să fie rapid (Tv , Tc , Tc1 mici);

(ii) să urmărească cât mai fidel semnalul treaptă (σ mic şi Tt mic).

Aceste cerinţe sunt ı̂nsă contradictorii, aşa cum ilustrează exerciţiile următoare.
72 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 4.15. Reprezentaţi pe acelaşi grafic funcţiile σ(ζ), (ωn Tt )(ζ),-


(ωn Tc1 )(ζ) şi (ωn Tv )(ζ) (aceştia se numesc timpi normalizaţi).
Exerciţiul 4.16. Reprezentaţi pe acelaşi grafic dependenţa lui ωn Tc1 de ζ şi
aproximaţia liniară dată ı̂n relaţia (34). Evaluaţi intervalul pe care această
aproximaţie este corectă.
Observaţie. Aproximaţia liniară este bună pe intervalul 0.3 ÷ 0.8 .
Exerciţiul 4.17. Trasaţi pentru ζ fixat (de exemplu 0.3) răspunsul ı̂n timp
pentru diferite valori ale lui ωn . Trageţi concluzii privind σ(ωn ), Tc1 (ωn ),
Tt (ωn ), Tv (ωn ) şi apoi confirmaţi rezultatele obţinute reprezentând pe acelaşi
grafic (ı̂n mai multe ferestre) aceste dependenţe.
Observaţie. Suprareglajul nu depinde de ωn .

Utilizând formulele putem determina un sistem de ordinul II al cărui răspuns


la treaptă are caracteristicile impuse de Tc , σ, Tt :
1.8
ωn ≥ , (4.24)
Tc1
ζ ≥ ζ(σ), (4.25)
4
ζωn = σd ≥ . (4.26)
Tt
Exerciţiul 4.18. Reprezentaţi ı̂n plan zona ı̂n care trebuie să fie plasaţi polii
unui sistem pentru a ı̂ndeplini cerinţele: Tc1 < 0.6s, σ < 10%, Tt < 3s.

Rezolvare. Codul este dat ı̂n Anexă. Zona de stabilitate este reprezentată ı̂n
figura 4.9.
Observaţie. Matlab oferă informaţii despre timpul tranzitoriu, timpul de
creştere, eroarea staţionară şi valoarea de vârf. Trebuie doar să apăsaţi pe bu-
tonul din dreapta al mouse-ului ı̂n figura care reprezintă răspunsul la treaptă
dorit şi să selectaţi ”Characteristics” şi apoi ”Peak Response”, ”Settling Time”,
”Rise Time”, ”Steady State”.
50
Exerciţiul 4.19. Se dă sistemul cu funcţia de transfer G(s) = s(s+5) conectat
ı̂n buclă ı̂nchisă negativă. Determinaţi grafic σ, Tv , Tc , Tt .
Indicaţie:
H=tf([50],[1 5 0]);
step(feedback(H,1))

Exerciţiul 4.20. Se dă schema din figura 4.10. Aproximaţi sistemul Hyr (s) cu
un sistem de ordinul II, estimaţi valorile Tt , Tv , σ şi comparaţi cu cele obţinute
din graficul răspunsului la treaptă al sistemului original. Explicaţi diferenţele.
Comparaţi grafic răspunsurile pentru sistemul original şi cel aproximat.
Capitolul 4. Răspunsul dinamic 73

Figura 4.9.: Zona de stabilitate

Figura 4.10.
74 Semnale şi sisteme. Îndrumar de laborator

4.5. Efectul zerourilor şi al polilor suplimentari


4.5.1. Efectul unui zerou
În această secţiune studiem comportarea răspunsului ı̂n timp al unui sis-
tem având un zerou finit şi doi poli complex–conjugaţi. Pentru a face clară
dependenţa răspunsului de poziţia relativă a zeroului faţă de poli, parame-
trizăm sistemul ı̂n forma:
s
ωn2 (1 + ζωn α )
H(s) = , (4.27)
s2 + 2ζωn s + ωn2

unde α ∈ R. Zeroul suplimentar este z = −ζωn α = −ασd . Răspunsul la


treaptă unitară este dat de:
p
ρ2 − 2ζρ + 1 p
y(t) = 1 − p sin(ωn 1 − ζ 2 t + θ), t ≥ 0, (4.28)
1 − ζ2

1−ζ 2 1
unde tan(θ) = ζ−ρ şi ρ = ζα .

Exerciţiul 4.21. Trasaţi graficul răspunsului la impuls şi la treaptă pentru


ζ = 0.5, ωn = 1 parametrizat ı̂n funcţie de α (α > 0 şi respectiv α < 0) şi cu
timp normalizat. Verificaţi şi afirmaţiile din observaţia următoare.

Observaţie. Distingem două cazuri:

(i) când α > 0 (zerou stabil), suprareglajul creşte semnificativ dacă α '
1 ÷ 4. Dacă α  1, suprareglajul rămâne aproape neschimbat. Timpul
tranzitoriu nu este influenţat semnificativ de zeroul suplimentar;

(ii) când α < 0 (zerou instabil), suprareglajul scade semnificativ dacă |α| '
1 ÷ 4. În acest caz observăm că:

dy ωn
(0) = < 0, (4.29)
dt ζα

adică panta graficului este negativă şi astfel răspunsul ı̂n timp va scădea
ı̂ntr-o primă fază şi apoi va creşte (figura 4.11).

Se observă că ı̂n acest caz răspunsul la treaptă al sistemului taie axa abs-
ciselor de atâtea ori câte zerouri instabile are sistemul considerat, iar punctul
de plecare este:
y(0) = lim sY (s) = H(∞). (4.30)
s→∞
Capitolul 4. Răspunsul dinamic 75

Figura 4.11.: Graficul răspunsului la treaptă al unui sistem de ordinul II având:


a) un zerou instabil; b) două zerouri instabile

4.5.2. Efectul unui pol


În această secţiune vom studia comportarea răspunsului ı̂n timp al unui sistem
stabil având doi poli complex–conjugaţi şi un pol real. Pentru acest lucru vom
parametriza sistemul ı̂n forma:

ωn2
H(s) = s . (4.31)
(s2 + 2ζωn s + ωn2 )(1 + ζωn α )

Polul suplimentar este p = −ζωn α = −ασd .

Exerciţiul 4.22. Trasaţi graficul răspunsului la impuls şi la treaptă pentru


ζ = 0.5, ωn = 1 parametrizat ı̂n funcţie de α (α > 0) şi cu timp normalizat.

Observaţie. Suprareglajul este practic neschimbat pentru valori α ' 1 ÷ 4,


iar timpul tranzitoriu este puternic dependent de α. Suprareglajul scade cu
cât α e mai mic (poate să şi dispară). În acest caz se poate observa că timpul
de creştere scade o dată cu creşterea lui α.

4.6. Exerciţii propuse


Exerciţiul 4.23. Reprezentaţi grafic răspunsul sistemelor următoare la intrările
u1 (t) = 1(t), u2 (t) = t 1(t) şi respectiv u3 (t) = sin 2t 1(t):
s−1
a) H1 (s) = ;
s+1
1
b) H2 (s) = ;
(s − 1)2
76 Semnale şi sisteme. Îndrumar de laborator

1
c) H3 (s) = ;
s2 + 4s + 5
1
d) H4 (s) = ;
s(s2 − 1)
1
e) H5 (s) = .
s2 + 2s + 2
Exerciţiul 4.24. Considerăm sistemul descris de ecuaţia diferenţială:

ÿ + 4ẏ + 20y = 2u̇ − u.

a) Fie u(t) = 1(t), y(0) = −1, ẏ(0) = −2. Calculaţi Y (s). Reprezentaţi grafic
răspunsul sistemului y(t) = L−1 {Y (s)}. Determinaţi de asemenea compo-
nenta forţată şi componenta liberă pentru soluţia obţinută. Indicaţie. Dacă
Y (s) este o raţională proprie oarecare, y(t) se poate reprezenta grafic cu
instrucţiunea impulse(Y).

b) Calculaţi H(s), ı̂n condiţii iniţiale nule. Reprezentaţi ı̂n planul complex po-
lii şi zerourile sistemului. Este acesta stabil? Reprezentaţi grafic răspunsul
forţat al sistemului la intrările u1 (t) = 1(t), u2 (t) = t 1(t), şi respectiv
u3 (t) = cos 3t 1(t).

c) Care este regimul staţionar (permanent) pentru u(t) = 1(t)? Dar regimul
tranzitoriu? Folosiţi pentru verificare teorema valorii finale.
Exerciţiul 4.25. Fie u(t) un semnal dreptunghiular periodic (figura 4.12).

a) Se consideră circuitul RC serie, având ca ieşire tensiunea de pe condensator.


Funcţia de transfer a sistemului este:
1
H(s) = .
RC · s + 1
Să se reprezinte grafic ieşirea sistemului pentru intrarea u(t), considerând
diverse valori pentru constanta de timp τ := R · C a circuitului. Spre
exemplu, alegeţi τ ∈ {0.05, 0.3, 1, 5, 10}. Ce se poate observa?

b) Se consideră circuitul RLC, având ca ieşire tensiunea de pe condensator.


Funcţia de transfer a sistemului este:
1
LC
H(s) = R 1
.
s2 + L s + LC

Să se reprezinte grafic ieşirea sistemului pentru intrarea u(t), cu R = 0.5 Ω,


L = 10 mH, C = 10 mF. Modificaţi valorile elementelor circuitului pentru
obţinerea diverselor răspunsuri dorite: un răspuns extrem (peak response)
mai mic, timp de răspuns mai mare, blocare completă a semnalului de
intrare etc.
Capitolul 4. Răspunsul dinamic 77

Semnal dreptunghiular periodic


1.5

0.5
u(t)

−0.5

−1

−1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Timp (s)

Figura 4.12.: Semnal dreptunghiular periodic

c) Considerăm acum tensiunea alternativă de la reţeaua electrică din România:



u1 (t) = Uef 2 sin(2πf t),

unde Uef = 220 V, iar f = 50 Hz. Reluaţi punctele a) şi b) pentru t =


0:1e-5:0.5. Modificaţi valorile R, L, C astfel ı̂ncât la ieşire să obţineţi
un curent continuu. Este realizabil fizic acest circuit?

d) Reluaţi punctul anterior pentru u2 (t) = Uef 2 |sin(2πf t)|, i.e., u2 =
abs(u). Cum putem realiza fizic această nouă intrare?

Exerciţiul 4.26. Ecuaţia mişcării ı̂n plan vertical a unei antene de satelit
este
J θ̈(t) + bθ̇(t) = M (t),
unde θ(t) este unghiul de ı̂nălţare a antenei, J = 6 · 105 kgm2 este momentul
de inerţie al acesteia, b = 2 · 104 N·m·s coeficientul de frecare, iar M (t) este
cuplul motor. Se doreşte aducerea antenei intr-o poziţie unghiulară specificată
θref utilizând o schemă de reglare ı̂n reacţie inversă cu un compensator de tip
proporţional K (vezi figura 4.14), astfel ı̂ncât suprareglajul să nu depăşească
10%, iar timpul de creştere să nu fie mai mare de 80 s. Fie u ≡ M (comanda),
y ≡ θ (ieşirea), r ≡ θref (referinţa).

a) Determinaţi funcţiile de transfer ale sistemului H(s), respectiv ale sistemu-


lui ı̂n buclă ı̂nchisă G(s) = YR(s)
(s)
.
78 Semnale şi sisteme. Îndrumar de laborator

Raspunsul circuitului RC, cu RC = 0.1 sec

1.5

0.5
Amplitude

−0.5

−1

−1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)

Linear Simulation Results

1.5

0.5
Amplitude

−0.5

−1

−1.5

−2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)

Figura 4.13.: Răspunsul circuitului RC (sus) şi răspunsul circuitului RLC (jos)
la semnalul dreptunghiular periodic din figura 4.12

Figura 4.14.: Sistem de reglare automată


Capitolul 4. Răspunsul dinamic 79

b) Sistemul G(s) este un sistem de ordinul II. Determinaţi ζ şi ωn . Calculaţi


şi reprezentaţi ı̂n planul complex polii sistemului G(s). Pentru ce valori ale
lui K este acesta stabil?
c) Ce implică prima cerinţă de performanţă, σ ≤ 10% ? Dar Tc ≤ 80 s?
Figuraţi ı̂n planul complex aceste restricţii.
d) Alegeţi o valoare potrivită pentru parametrul K, i.e., care asigură stabili-
tatea şi cerinţele de performanţă. Reprezentaţi grafic răspunsul la treaptă.
Verificaţi calitatea reglării. Care este răspunsul staţionar?
e) Determinaţi timpul tranzitoriu Tt0 (grafic sau analitic). Cât de mult poate
fi acesta redus? Figuraţi ı̂n planul complex toate cele trei restricţii şi
determinaţi noua valoare K. Reprezentaţi grafic răspunsul la treaptă şi
verificaţi rezultatele.
f) Reprezentaţi grafic răspunsul la treaptă pentru K = 200, 400, 1000, 2000.
Estimaţi suprareglajul şi timpul de treştere examinând cele 4 grafice. Verifi-
caţi acurateţea calculelor anterioare.

Exerciţiul 4.27. Se consideră sistemul ı̂n reacţie negativă unitară având


funcţia de transfer pe calea directă:
K
H(s) = , K > 0.
s(s + 2)
H(s)
a) Calculaţi funcţia de transfer ı̂n buclă ı̂nchisă G(s) = 1+H(s) . Cum trebuie
să fie K pentru a asigura stabilitatea sistemului ı̂n buclă ı̂nchisă?
b) Specificăm următoarele performanţe de regim tranzitoriu la intrare de tip
treaptă: timp de vârf tv ≤ 1.1 sec, suprareglaj σ ≤ 5%. Figuraţi ı̂n
planul complex aceste restricţii. Pentru ce valori ale lui K pot fi satisfăcute
simultan cele două cerinţe de performanţă?
c) Alegeţi o valoare pentru K şi verificaţi ı̂n Matlab dacă specificaţiile sunt
ı̂ndeplinite.

Exerciţiul 4.28. Considerăm sistemele:


2 2(1 − s)
G1 (s) = , G2 (s) = .
s+2 (s + 2)(s + 1)
a) Reprezentaţi pe acelaşi grafic răspunsul la treaptă pentru cele două sisteme.
Ce constataţi? Determinaţi răspunsul staţionar şi răspunsul tranzitoriu
pentru ambele răspunsuri.
b) Reprezentaţi ı̂n planul complex polii şi zerourile celor două sisteme. Care
este legătura ı̂ntre plasarea zerourilor şi răspunsul la treaptă? Verificaţi
concluziile prin simulare (spre exemplu, mutaţi zeroul instabil).
80 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 4.29. Ne propunem să proiectăm un compensator K(s) pentru


un sistem de ordinul I (vezi figura 4.14). Sistemele sunt de forma:
α kp s + ki
H(s) = , α, T > 0, K(s) = .
Ts + 1 s
Ne propunem proiectarea unui compensator care asigură ca polii ı̂n buclă
ı̂nchisă să fie ı̂n interiorul cercurilor din figura 4.15.

Regiuni pentru plasarea radacinilor


4

1
Im(s)

−1

−2

−3

−4
−5 −4 −3 −2 −1 0 1 2 3 4 5
Re(s)

Figura 4.15.: Plasarea polilor

a) Ce valori pentru ωn , ζ corespund regiunilor indicate ı̂n figura 4.15? O


simplă estimare din figură este suficientă.
b) Fie α = 1, T = 1/2 s. Calculaţi sistemul ı̂n buclă ı̂nchisă G(s).
c) Găsiţi valorile parametrilor kp şi ki pentru care polii sistemului ı̂n buclă
ı̂nchisă sunt ı̂n regiunile specificate.
d) Arătaţi că, indiferent de valorile parametrilor α, T , compensatorul poate
plasa polii oriunde ı̂n planul complex.
Exerciţiul 4.30. Funcţia de transfer dintre elevator şi altitudine pentru ae-
ronava Boeing-747 poate fi aproximată ca:
30(6 − s)
H(s) = .
s(s2 + 4s + 13)
Capitolul 4. Răspunsul dinamic 81

a) Reprezentaţi grafic răspunsul la impuls. Calculaţi h(∞) cu teorema valorii


finale. Rezultă o valoare nenulă. Argumentaţi această observaţie.

b) Găsiţi ζ şi ωn . Calculaţi utilizând formulele cunoscute tc (timpul de creştere),


tt (timpul tranzitoriu) şi σ (suprareglajul).

c) Estimaţi pe graficul de la punctul a) tc , tt , σ. Comparaţi rezultatele


obţinute cu cele de la punctul b).

Exerciţiul 4.31. Considerăm un sistem de ordinul II cu un pol suplimentar


de forma:
ωn2 p
H(s) = .
(s + p)(s2 + 2ζωn s + ωn2 )

a) Arătaţi că răspunsul sistemului la intrare treaptă este:


 p 
−pt −ζωn t 2
y(t) = 1 + Ae + Be sin ωn 1 − ζ · t − θ ,

−ωn2 p
unde A = , B=p .
ωn2 − 2ζωn p + p2 (ωn − 2ζωn p + p2 )(1 − ζ 2 )
2

b) Care termen domină ı̂n expresia lui y(t) când p devine mare?

c) Determinaţi valori aproximative pentru A, B pentru valori mici ale lui p


(”mici” ı̂n raport cu ce?). Ce termen domină y(t)?

d) Fie ωn = 1 şi ζ = 0.7. Reprezentaţi grafic ı̂n Matlab y(t) pentru diferite
valori ale lui p (de la valori foarte mici la valori foarte mari). În ce punct
efectul polului suplimentar asupra răspunsului la treaptă devine neglijabil?
5. Diagramele Bode
5.1. Scopul laboratorului
Scopul laboratorului constă ı̂n studierea răspunsului ı̂n frecvenţă al unui sis-
tem. În particular, pentru clasa de sisteme studiate (liniare, invariante ı̂n timp
şi având funcţia de transfer proprie), răspunsul la un semnal de intrare sinu-
soidal este tot un semnal sinusoidal de aceeaşi frecvenţă cu cea a semnalului
de intrare. În schimb, amplitudinea şi faza semnalului de ieşire diferă de cele
ale semnalului de intrare.
Mai precis, vom examina funcţia de transfer H(s), pentru s = jω şi vom
dezvolta câteva metode specifice de reprezentare a lui H(jω), cu ω ∈ (−∞, ∞).
Vom studia ı̂n acest capitol caracteristicele amplitudine–frecvenţă, respectiv
fază–frecvenţă, cunoscute ca diagramele (caracteristicile) Bode, ı̂n onoarea
lui Bode care le-a folosit prima dată la studiul amplificării operaţionale. În
plus, vom implementa diverse tipuri de filtre, prezentate pe larg ı̂n secţiunea
Exerciţii rezolvate.

5.2. Breviar teoretic


Fie H(s) o funcţie de transfer. Orice reprezentare grafică a numărului complex
H(jω), pentru ω ∈ (−∞, +∞) se numeşte reprezentare ı̂n frecvenţă (sau ı̂n
pulsaţie) a sistemului H(s).
Numărul complex H(jω) poate fi reprezentat fie ı̂n formă carteziană, fie ı̂n
formă polară. În reprezentare polară H(jω) = |H(jω)|ej arg(H(jω)) . Notând
H(ω) := |H(jω)| şi φ(ω) := arg(H(jω)),
avem că H(jω) = H(ω)ej·φ(ω) .
Diagramele Bode (numite alternativ caracteristici amplitudine–pulsaţie şi
fază–pulsaţie sau caracteristici (semi)logaritmice) sunt graficele amplitudinii
H(ω) şi respectiv ale fazei φ(ω) ca funcţii de ω, pentru ω ≥ 0. Abscisa
pentru ambele caracteristici este gradată ı̂n scară logaritmică (figura 5.1),
ordonata pentru H(ω) este gradată liniar ı̂n decibeli1 şi ordonata pentru φ(ω)
este gradată liniar ı̂n radiani (sau grade).
De reţinut că distanţa dintre două puncte reprezentând puteri consecutive
ale lui 10, de pe abscisa gradată logaritmic, se numeşte decadă, vezi figura 5.1.
1
Relaţia ı̂ntre o mărime H şi reprezentarea ei ı̂n beli este [H]B := log |H|2 , unde log este
funcţia logaritm ı̂n bază zece. Aşadar, reprezentarea ı̂n decibeli a mărimii H > 0 este
[H]dB = 20 log H.

83
84 Semnale şi sisteme. Îndrumar de laborator

[y]dB

decadã

0 10
1 2
10
logx

Figura 5.1.: Scara logaritmică

5.2.1. Diagramele Bode


Trasarea calitativă
Vom prezenta o procedură de trasare a caracteristicilor asimptotice şi a celor
reale, atât pentru amplitudine, cât şi pentru fază.

Problemă: Dându-se un sistem H(s), se cere trasarea caracteristicilor:


[H(ω)]dB = f (log ω) şi φ(ω) = f (log ω), pentru ω ∈ [0, ∞).
Algoritm trasare:
1) Se rescrie funcţia de transfer a sistemului sub formă de produse (conectări
ı̂n serie) de elemente integratoare, de ordin 1, 2, de intârziere sau anticipaţie
(la numitor, respectiv la numărător):
Ql Qm
K i=1 (Ti s + 1) (T 2 s2 + 2ζi Tni s + 1)
H(s) = q Qn Qpi=1 n2i 2 ,
s j=1 (Tj s + 1) j=1 (Tnj s + 2ζj Tnj s + 1)

cu Ti , Tj , Tni , Tnj > 0, ζi , ζj ∈ [0, 1).


2) Se determină frecvenţele de tăiere ı̂n ordinea crescătoare (descrescătoare a
constantelor de timp). Astfel, intervalul [0, ∞) este ı̂mpărţit pe benzi de
frecvenţă: [0, ∞) = [0, ωT1 ) ∪ [ωT1 , ωT2 ) ∪ [ωT3 , ωT4 ) ∪ ... , ωTk = T1k .

3) (i) Caracteristica amplitudine-frecvenţă (AF): Pe fiecare bandă se tra-


sează caracteristica asimptotică corespunzătoare fiecărui element, adu-
nând de fiecare dată pantele. Caracteristica reală urmăreşte asimp-
totele, cu specificităţile fiecărui sistem elementar ı̂n parte.
(ii) Caracteristica fază-frecvenţă (FF): Se desenează caracteristica speci-
fică fiecărui element, pe acelaşi grafic, apoi se ı̂ncearcă vizual ı̂nsumarea
graficelor pe fiecare bandă de frecvenţă.
În Matlab:
>> bode(sys) % pentru caracterstica reala
>> bodemag(sys) % pentru caracteristica amplitudine-frecventa
Capitolul 5. Diagramele Bode 85

Caracteristicile elementelor de bază


K
Integratorul: H(s) = sq , K ∈ R+ , q ∈ Z.

AF: Se obţine o familie de drepte având panta de −20q dB/dec, de forma


20 log K − 20q log ω = [K]dB − 20q log ω.
FF: Faza este constantă, iar valoarea ei depinde de q, φ(ω) = −q π2 .

Bode Diagram
60

50 q=−2
q=−1
40
Magnitude (dB)

30

[K]dB
20

10

0
q=1
−10 q=2

−20
180

90
Phase (deg)

−90

−180
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)

Figura 5.2.: Diagramele Bode ale integratorului (discuţie după q, K = 10)

K
Elementul de ordin I. H(s) = , T ∈ R, K > 0 ⇒ [H(ω)]dB =
Ts + 1
[K]dB − 20 log (1 + ω 2 T 2 ). Cum T ∈ R, se foloseşte |ωT | = ω|T | ⇒ ωT = |T1 | ,
frecvenţa de tăiere. Dacă T > 0, atunci sistemul este stabil. Dacă T < 0,
atunci sistemul este instabil.
AF: Cele trei benzi vor fi:
joasă frecvenţă (j.f.): [K]dB ;
medie frecvenţă (m.f.): −3 dB (abatere, ajută la caracteristica reală);
ı̂naltă frecvenţă (ı̂.f.): dreaptă cu panta de −20 dB/dec.
FF: φ(ω) = − arctan(ωT ). Observăm că dacă T < 0, atunci se modifică doar
faza, vezi figura 5.3.
86 Semnale şi sisteme. Îndrumar de laborator

Bode Diagram
20

15 T>0

10
Magnitude (dB)

−5

−10

−15

−20
0
Phase (deg)

−45

−90
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)

Bode Diagram
20

15 T<0
10
Magnitude (dB)

−5

−10

−15

−20
90
Phase (deg)

45

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

Figura 5.3.: Element de ordin I: stabil (sus); instabil (jos)


Capitolul 5. Diagramele Bode 87

Bode Diagram
150

zeta = 0
100
Magnitude (dB)

50

zeta = 1
−50

−100
0

−90
Phase (deg)

−180

−270

−360
−2 −1 0 1 2
10 10 10 10 10
Frequency (rad/sec)

Figura 5.4.: Element de ordin II

ωn2
Elementul de ordin II. H(s) = , ωn > 0, 0 < ζ < 1.
s2 + 2ζωn s + ωn2
ω
Notând x = ωn obţinem:
1
H(ω) ← H(x) = p .
(1 − x )2 + 4ζ 2 x2
2

Frecvenţa de tăiere este ωT = ωn ⇔ xT = 1.


AF:
j.f.: 0; m.f.: −10 log 4 − 20 log ζ;
ı̂.f.: dreaptă cu panta de −40 dB/dec.
2ζx
FF : φ(ω) = arctan(− 1−x 2 ).

Observaţii.
1) Ambele caracteristici depind de ζ. Dacă ζ > 1, atunci elementul de ordin
II are 2 poli reali, deci practic elementul de ordin II devine o ı̂nseriere a 2
elemente de ordinul I. Reamintim că ζ = 0 reprezintă regimul de rezonanţă,
ζ = 1 este regimul aperiodic critic, iar ζ > 1 reprezintă regimul supracritic.
2) Caracteristicile elementelor inverse, i.e., Hinv (s) · H(s) = 1, sunt simetri-
cele celor de mai sus faţă de abscisă.
88 Semnale şi sisteme. Îndrumar de laborator

5.2.2. Filtrare
În multe aplicaţii ne interesează să schimbăm amplitudinile relative ale compo-
nentelor frecvenţiale dintr-un semnal sau chiar să eliminăm unele componente
frecvenţiale cu totul. Acest procedeu se numeşte filtrare. Sistemele liniare şi
invariante ı̂n timp (LTI) care pot schimba forma spectrului unui semnal se
numesc filtre de formare. Sistemele LTI care lasa să treacă anumite frecvenţe
esenţial nemodificate şi atenuează (sau chiar elimină) alte frecvenţe se numesc
filtre selective de frecvenţă.
Astfel, fie un sistem de convoluţie y(t) = (h ∗ u)(t). Conform proprietăţii de
convoluţie a transformatei Fourier (TF):

Y (jω) = H(jω)U (jω), (5.1)

unde Y (jω) este TF a ieşirii y(t), U (jω) este TF a intrării u(t), iar H(jω)
este răspunsul ı̂n frecvenţă al sistemului, definit ı̂n (3.1). Aşadar, ecuaţia (5.1)
descrie un filtru de frecvenţă.

5.3. Exerciţii rezolvate


Trasaţi caracteristicile Bode pentru următoarele sisteme:
2s + 1
Exerciţiul 5.1. H(s) = .
s(10s + 1)(s2 + 4s + 8)
1 1 2s+1 1
Rezolvare. H(s) = 8 s 10s+1 ( 1
√ 1
)2 s2 +2( √ )( √1 )s+1)
. Obţinem:
2 2 2 2 2

1 1 1
K = ; T1 = 10; T2 = 2; T3 = √ , iar ζ = √ ≈ 0.7.
8 2 2 2
1

Aşadar, frecvenţele de tăiere sunt ωT1 = 10 < ωT2 = 21 < ωT3 = 2 2.

AF: Vom respecta algoritmul prezentat anterior.


1) (0, ωT1 ): integrator, dreaptă cu panta de −20 dB/dec. La ω = 1, asimptota
de j.f. are valoarea [K]dB = [ 18 ]dB ≈ −18 dB.

2) [ωT1 , ωT2 ): element de ordin I, dreaptă cu panta de −20 dB/dec.

3) [ωT2 , ωT3 ): ordin I inversat, dreaptă cu panta de −20 + 20 = 0 dB/dec.

4) [ωT3 , ∞): ordin II (cu poli complecşi), dreaptă cu panta de 0 − 40 = −40


dB/dec.
FF : φ(ω) = − π2 + arctan(2ω) − arctan(10ω) − arctan( 1,4ωω n
2 −ω 2 ). În general,
ωn
aici nu se precizează decât valorile la 0 şi la ∞, dacă se pot calcula. Deci
φ(0) = − π2 , iar φ(∞) = − π2 + π2 − π2 − π2 − π = −2π.
Codul Matlab este prezentat ı̂n Anexă.
Capitolul 5. Diagramele Bode 89

Bode Diagram
100

50
Magnitude (dB)

0
−18

−50

−100
[K]
dB
−150
−90

−135
Phase (deg)

−180

−225

−270
−3 −2 −1 0 1 2
10 10 10 10 10 10
Frequency (rad/sec)

Figura 5.5.: Rezultatul Exerciţiului 5.1

Rezultatele sunt prezentate ı̂n figura 5.5. Exerciţiile următoare nu vor mai
conţine explicaţii analitice extinse, ci doar observaţii practice din analiza gra-
ficelor, deoarece ele reprezintă din punct de vedere al rezolvării doar aplicarea
directă a procedurii.
10 1+s2
Exerciţiul 5.2. H(s) = s (0,1s+1)(0,05s+1) .

Rezolvare. ω1 = 1, ω2 = 10, ω3 = 20. Elementul de ordin II prezent ı̂n sistem


are ζ = 0, funcţionând la rezonanţă. Acest fenomen va fi pus ı̂n evidenţă clar
pe caracteristica de amplitudine. După cum s-a văzut acesta este reprezentat
prin discontinuitatea ı̂n frecvenţa de tăiere. Codul Matlab este dat ı̂n Anexă.
Rezultatul este prezentat ı̂n figura 5.6.
αs + 1
Exerciţiul 5.3. H(s) = , α, β > 0. Calculaţi supω |H(jω)|. Discuţie
βs + 1
după α şi β.

Rezolvare. Cazul 1. α < β ⇒ ω1 = β1 < ω2 = α1 . Valoarea supω |H(jω)| se ia


de pe grafic şi corespunde valorii maxime a lui [H]dB . Aici,
[H]dB,max = 0 ⇒ sup |H(jω)| = 1.
ω

Rezultatul este prezentat ı̂n figura 5.7, iar codul Matlab ı̂n Anexă.
90 Semnale şi sisteme. Îndrumar de laborator

Bode Diagram
50

0
Magnitude (dB)

−50

rezonanta

−100

−150
450

405
Phase (deg)

360

315

270

225
−1 0 1 2 3
10 10 10 10 10
Frequency (rad/sec)

Figura 5.6.: Rezultatul Exerciţiului 5.2

Bode Diagram
0

−1

−2
Magnitude (dB)

−3

−4

−5

−6

−7

−8
0

−5
Phase (deg)

−10

−15

−20
−2 −1 0 1
10 10 10 10
Frequency (rad/sec)

Figura 5.7.: Rezultatul Exerciţiului 5.3


Capitolul 5. Diagramele Bode 91

1 1
Cazul 2. α > β ⇒ ω1 = α < ω2 = β. Graficele sunt simetricele celor de
mai sus faţă de abscisă. În plus supω |G(jω)| = αβ . Verficaţi analitic corecti-
tudinea afirmaţiei anterioare. Indicaţie: Maximul se găseşte pe caracteristica
asimptotică. De ce?
s−a
Exerciţiul 5.4. H(s) = , a ∈ R+ .
s+a
Rezolvare. Este cazul filtrului de tip trece-tot care are modulul 1 pe ı̂ntreg
spectrul pozitiv de frecvenţe.
AF: 0 dB pe ω ∈ [0, ∞).
FF: φ(ω) = arctan ω2aω
2 −a2 (asemănătoare cu element de ordin I, doar că se
schimbă punctul de inflexiune şi capetele ı̂ntre care evoluează, φ(0+ ) =
π
2 , iar φ(∞) = 0).

Construiţi o funcţie Matlab care primeşte la intrare parametrul a şi afişează


diagrama Bode (vezi Anexa). Se dau valori pozitive lui a. Graficul amplitudi-
nii va avea variatii mici in jurul semiaxei logaritmice. Care este cauza acestui
fenomen şi cum se poate proceda pentru vizualizarea corectă a graficului?
Exerciţiul 5.5. Reprezentaţi diagramele Bode pentru sistemul:
s
H(s) = −100 .
s3+ 12s2 + 21s + 10
s
Rezolvare. H(s) = −10 1 .
(s + 1)2 ( 10 s + 1)
Observăm că sistemul are factorul de amplificare K = −10 negativ, iar ele-
1
mentele sale sunt: un zerou ı̂n origine, un pol ı̂n s = − 10 de multiplicitate 1
si un pol dublu in s = −1.

Matlab:
num = [-100 0];
den = [1 12 21 10];
H = tf(num,den);
bode(H)
Exerciţiul 5.6. Reprezentaţi diagramele Bode pentru sistemul:
s2 + s + 25
H(s) = 4 .
s3 + 100s2
Matlab:
num = [4 4 100];
den = [1 100 0 0];
H = tf(num,den);
bode(H)
92 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 5.7. H(s) = K


s e−τ s .

Rezolvare.
K π
H(ω) = , iar φ(ω) = −ωτ − .
ω 2
Se observă că faza este liniară. În general, un sistem cu timp mort are
funcţia de transfer H(s) = H̃(s)e−τ s , unde H̃(s) este o funcţie de transfer
raţională (strict) proprie. Rezultă că |H(jω)| = |H̃(jω)|, aşadar modulul nu
este influenţat de timpul mort. În schimb faza este φ(ω) = arg(H̃(jω)) − ωτ ,
afectată semnificativ la frecvenţe mari (φ(∞) = −∞). Propunem cititorului
trasarea diagramelor Bode pentru K = 2, τ = 1.
Exerciţiul 5.8. Reprezentaţi diagramele Bode parametrizate atât ı̂n funcţie
de ω cât şi de ζ pentru un element de ordinul 2: H(ω) = H(ω, ζ), φ(ω) =
φ(ω, ζ), ζ ∈ R.

Rezolvare. Codul este dat ı̂n Anexă.


Exerciţiul 5.9. Fie semnalul continuu cu frecvenţa fundamentală ω0 = 2π,
+3
X
x(t) = ak ejkω0 t ,
k=−3

unde a0 = 1, a1 = a−1 = 41 , a2 = a−2 = 12 , a3 = a−3 = 31 . În plus, consideraţi


sistemul LTI cu funcţia pondere h(t) = e−t 1(t).

a) Folosind relaţia lui Euler2 , scrieţi semnalul x(t) ca o sumă de funcţii cosinus.
Reprezentaţi grafic semnalul.

b) Calculaţi răpunsul ı̂n frecvenţă al sistemului LTI dat, H(jω),


precum şi
modulul sau |H(jω)| =: H(ω). Reprezentaţi grafic H(ω) dB = f (log(ω)).

c) Arataţi că:
+3
X
y(t) = ak H(jk2π)ejk2πt .
k=−3

d) Scrieţi semnalul y(t) ca o sumă de funcţii cosinus. Reprezentaţi grafic


semnalul.

Rezolvare.

a) Din ipoteze, avem că


1 j2πt  1 j4πt  1 j6πt
+ e−j2πt + + e−j4πt + + e−j6πt .

x(t) = 1 + e e e
4 2 3
2 jx
e = cos x + j sin x, ∀x ∈ R.
Capitolul 5. Diagramele Bode 93

Graficul semnalului x(t)


3.5

2.5

2
x(t)

1.5

0.5

−0.5
−3 −2 −1 0 1 2 3
Timp

Figura 5.8.: Exerciţiul 5.9.a

Raspunsul in frecventa
0

−5

−10

−15
Modulul H(ω) (dB)

−20

−25

−30

−35

−40
−2 −1 0 1 2
10 10 10 10 10
Pulsatia ω (rad/s)

Figura 5.9.: Exerciţiul 5.9.b


94 Semnale şi sisteme. Îndrumar de laborator

Din relaţia lui Euler, rezultă usor că 2 cos(ωt) = ejωt + e−jωt . Relaţia de
mai sus devine:
1 2
x(t) = 1 + cos 2πt + cos 4πt + cos 6πt.
2 3
În figura 5.8 avem reprezentarea grafică a semnalului x(t). Se foloseşte
codul prezentat ı̂n Anexă.
b) ∞
Z ∞
−τ −jωτ 1 −(1+jω)τ
1
H(jω) = e e dτ = − e = .
0 1 + jω
0 1 + jω
1 1
H(ω) := |H(jω)| = =√ .
|1 + jω| 1 + ω2
În figura 5.9 avem reprezentarea grafică a funcţiei H(ω). Codul Matlab se
găseşte ı̂n Anexă.
P+3 jk2πt .
c) Plecăm de la observaţia că x(t) = k=−3 xk (t), unde xk (t) = ak e
Dacă determinăm răspunsul sistemului la intrarea xk (t), atunci răspunsul
P+3
y(t) la semnalul x(t) se obţine prin superpoziţie, i.e., y(t) = k=−3 yk (t).
Vom avea succesiv:
Z ∞ Z ∞
yk (t) = h(τ )xk (t − τ )dτ = h(τ )ak ejk2π(t−τ ) dτ
0 0
Z ∞
= ak ejk2πt h(τ )e−jk2πτ dτ
0
+3
X
jk2πt
yk (t) = ak H(jk2π)e ⇒ y(t) = ak H(jk2π)ejk2πt , q.e.d.
k=−3

d) Din relaţia de la c), avem că:


+3
X
y(t) = bk ejkω0 t ,
k=−3

unde bk = ak H(jk2π). Rezulta ca b0 = 1,


1 1 1 1 1 1
b1 = 4 1+j2π , b2 = 2 1+j4π , b3 = 3 1+j6π ,

1 1 1 1 1 1
b−1 = 4 1−j2π b−2 = 2 1−j4π b−3 = 3 1−j6π

Reprezentarea ca sumă de funcţii cosinus se obţine imediat:


3
X
y(t) = 1 + 2 Dk cos(2πkt + θk ), bk = Dk ejθk .
k=1

Propunem ca exerciţiu determinarea numerică a coeficientilor şi reprezen-


tarea grafică a semnalului.
Capitolul 5. Diagramele Bode 95

Exerciţiul 5.10. Circuitul RC este utilizat pe scară larga pentru implemen-


tarea unor filtre specifice de frecvenţă. Acest exerciţiu propune studiul filtrelor
de tip trece–jos (FTJ) şi trece–sus (FTS) realizate cu circuitul RC.

a) Considerând ca intrare tensiunea de alimentare u(t) şi ca ieşire tensiunea


de pe condensator vC (t), am aratat ı̂n S 3.2.2 că răspunsul ı̂n frecvenţă al
sistemului LTI rezultat este:
1
H(jω) = .
1 + RCjω

Sistemul LTI astfel obţinut este un filtru de tip TJ. Reprezentaţi grafic
modulul numărului complex H(ω) := |H(jω)| şi fază φ(ω) := arg[H(jω)],
pentru RC ∈ {1, 2, . . . , 7} s. Justificaţi denumirea de FTJ.

b) Ca alternativă, putem considera ca ieşire tensiunea de pe rezistor vR (t).


Ecuaţia diferenţială care caracterizează sistemul, z(t) := vR (t) este:

dz(t) du(t)
RC + z(t) = RC . (5.2)
dt dt

Determinaţi răspunsul ı̂n frecvenţă al sistemului G(jω) pentru RC = 5 sec.


Trasaţi grafic funcţiile G(ω) := |G(jω)| şi φ(ω) := arg[G(jω)]. Obţinem
un FTS. Justificaţi această denumire.

c) Fie R · C = 0.1 s. Reprezentaţi diagramele lui Bode pentru sistemele H(s)


şi G(s). Verificaţi prin simulare caracterul celor două filtre.

d) Fie R · C = 0.1 s şi fie semnalul de stimul u(t) = 1(t) + e(t), unde e(t) este
un zgomot alb de medie nulă şi varianţă 0.1. Reprezentaţi grafic răspunsul
sistemului H(s).

Rezolvare.
a) Se obţine:
1
H(ω) = p .
1 + ω 2 · (RC)2
Faza se calculeaza cu relaţia:
 
Im H(jω)
φ(ω) = arctg = arctg(−ωRC).
Re H(jω)

Graficul pentru diverse valori ale parametrului RC este dat ı̂n figura 5.10. În
Matlab, am determinat modulul şi faza folosind relaţiile obţinute. Rutina se
găseşte ı̂n Anexă.
96 Semnale şi sisteme. Îndrumar de laborator

Modulul raspunsului in frecventa Argumentul raspunsului in frecventa


0 0

−10
−10
−20

−20 −30
Modulul H(ω) (dB)

Faza φ(ω) (grade)


−40
−30
RC creste
−50

−40 −60

−70
−50
−80

−60 −90
−2 0 2 −2 0 2
10 10 10 10 10 10
Pulsatia ω (rad/s) Pulsatia ω (rad/s)

Figura 5.10.: Exerciţiul 5.10.a

Observaţie. Pentru frecvenţe joase, ı̂n vecinătatea punctului ω = 0, se ob-


servă pe grafic că |H(jω)| ≈ 1 (0 dB), ceea ce ı̂nseamna că frecvenţele joase
”trec”. Pentru valori mari ale frecvenţei ω, |H(jω)| este considerabil mai mic
şi scade liniar cu creşterea lui ω. Astfel, circuitul RC cu ieşirea pe condensator
este un FTJ.
Observaţie. Să presupunem că ne dorim ca filtrul sa permită trecerea doar
pentru frecvenţe foarte joase. Se observă din grafic că 1/RC trebuie să fie mic,
respectiv RC să fie mare.
b) Dacă u(t) = ejωt , atunci avem că z(t) = G(jω)ejωt . Înlocuind ı̂n relaţia
(5.2), obţinem după calcule elementare:
jωRC
G(jω) = .
1 + jωRC
Modulul şi argumentul răspunsului ı̂n frecvenţă G(jω) rezultă imediat:

ωRC 1
G(ω) = p , φ(ω) = arctg .
1 + (ωRC) 2 ωRC
Graficele sunt date ı̂n figura 5.11, iar codul Matlab aferent ı̂n Anexă.
Observaţie. Se poate observa din figură că sistemul atenuează frecvenţele
ı̂nalte şi permite trecerea frecvenţelor ı̂nalte, adică |ω| >> 1/RC. Prin ur-
mare, sistemul este un FTS neideal.
Capitolul 5. Diagramele Bode 97

Modulul raspunsului in frecventa


10

0
Modulul H(ω) (dB)

−10

−20

−30

−40
−3 −2 −1 0 1 2 3
10 10 10 10 10 10 10

Argumentul raspunsului in frecventa


100

80
Faza φ(ω) (grade)

60

40

20

0
−3 −2 −1 0 1 2 3
10 10 10 10 10 10 10
Pulsatia ω (rad/s)

Figura 5.11.: Exercitiul 5.10.b

1
c) Pentru R · C = 0.1 s, avem frecvenţa de tăiere ω0 = RC = 10 rad/s. Alegem
pentru simulare semnalele de stimul

u1 (t) = sin(3t) + 4 cos(2t), t > 0, u2 (t) = sin(25t) + 4 cos(40), t > 0.

Se observă că u1 (t) este compus din armonice cu frecvenţe mai mici decât
ω0 . Prin urmare, acest semnal ”va trece” neamortizat prin sistemul H(s).
Semnalul u2 (t) este compus din armonice cu frecvenţe mai mari decât ω0 .
Vom avea la ieşire o armonică amortizată.
Considerăm acum sistemul G(s), care se comportă ca un filtru trece-sus,
i.e., semnalele armonice de frecvenţe ı̂nalte trec. Reluând raţionamentul an-
terior, u1 (t) este amortizat, iar u2 (t) trece. Propunem ca exerciţiu cititorului
verificarea afirmaţiilor cu Matlab. Se va folosi spre exemplu instrucţiunea
lsim(H,u1,t);.

d) Codul Matlab este dat ı̂n Anexă. Se obţine figura 5.12. Se observă că
efectul perturbator al zgomotului alb este ı̂nlăturat prin filtrare.
Acest procedeu este folosit pe scară largă ı̂n practica inginerească atunci
când un semnal de interes (spre exemplu, informaţia de la un senzor) este
perturbat.

Exerciţiul 5.11. Filtrul trece–jos ideal şi filtrul trece–tot (FTT).


98 Semnale şi sisteme. Îndrumar de laborator

Linear Simulation Results

1.2

0.8
Amplitude

0.6

0.4

0.2

−0.2
−1 0 1 2 3 4 5 6 7 8 9 10
Time (seconds)

Figura 5.12.: Zgomot alb filtrat

a) FTJ ideal are răspunsul ı̂n frecvenţă:


(
1, |ω| ≤ ωc ,
H(jω) =
0, |ω| > ωc .

Detereminaţi funcţia pondere a sistemului, h(t). Reprezentaţi grafic H(ω)


şi h(t). Ce puteţi spune despre cauzalitatea sistemului?

b) Răspunsul ı̂n frecvenţă al unui filtrul trece-tot este de forma

jωT0 − 1
H(jω) = ,
jωT0 + 1

unde T0 este un număr real fixat. Calculaţi H(ω). Ce observaţi? Calculaţi


şi reprezentaţi grafic φ(ω).

c) Un filtru trece-tot poate fi reprezentat ca o ı̂ntârziere pură, i.e., H(s) =


e−sN , N ∈ N. Rezultă H(jω) = e−jωN . Calculaţi şi reprezentaţi grafic
H(ω) şi φ(ω).

Rezolvare.
a) Funcţia pondere se calculează pornind de la definiţie:
Capitolul 5. Diagramele Bode 99

Z ωc Z ωc
1 1
h(t) = H(jω)ejωt dω = ejωt dω
2π −ωc 2π −ωc
1
ejωc t − e−jωc t

=
2πjt
sin(ωc t)
= .
πt
Graficele funcţiilor H(ω) şi h(t) pentru ωc = 2rad/s sunt date ı̂n figura 5.13.
Codul Matlab aferent este ı̂n Anexă.
Raspunsul in frecventa
2

1.5

1
H(ω)

0.5

−0.5

−1
−5 −4 −3 −2 −1 0 1 2 3 4 5
ω (rad/s)

Functia pondere a filtrului trece banda


0.8

0.6

0.4
h(t)

0.2

−0.2
−15 −10 −5 0 5 10 15
Timp (s)

Figura 5.13.: Exerciţiul 5.11.a

Observaţie. De notat că h(t) 6= 0, pentru t < 0. În consecinţa, un filtru ideal
nu este cauzal, fiind nepotrivit pentru acele aplicaţii practice care necesita filtre
cauzale. Mai mult, chiar dacă cauzalitatea nu este o constrângere esenţială,
filtrul ideal este greu de implementat fizic, pe când un filtru neideal (spre
exemplu, filtrele neideale TS si TJ tratate anterior) este mult mai simplu de
realizat (cu un simplu circuit RC).

b)
|jωT0 − 1|
H(ω) = = 1, ∀ω ∈ R.
|jωT0 + 1|
Pentru calculul fazei φ(ω), scriem răspunsul in frecventa sub forma H(jω) =
Re H(jω) + jIm H(jω):
100 Semnale şi sisteme. Îndrumar de laborator

(jωT0 − 1)(1 − jωT0 ) ω2T 2 − 1 2ωT0


H(jω) = = 2 02 +j 2 2 .
(1 − jωT0 )(1 + jωT0 ) ω T0 + 1 ω T0 + 1
Faza devine:

Im H(jω) 2ωT0
φ(ω) = arctg = arctg 2 2 .
Re H(jω) ω T0 − 1
Codul Matlab pentru reprezentarea grafică a funcţiei φ(ω) este dat ı̂n Anexă.
Graficul este dat ı̂n figura 5.14.

Observaţie. Pentru reprezentarea grafică, am folosit funcţia Matlab atan2


ı̂n locul clasicei atan. Funcţia aleasă ı̂ntoarce valoarea funcţiei arctan(x) ı̂n
toate cele 4 cadrane. Argumentăm aceasta alegere pe baza fenomenului de
phase shift, adică shiftarea fazei cu 90o la frecvenţa ω0 = T10 , care duce la un
rezultat eronat al funcţiei Matlab atan - ı̂ntoarce doar valori ı̂ntre − π2 , π2 .
 

d) Avem că H(ω) = |e−jωN | = 1, ∀ω ∈ R, ∀N ∈ N. Faza este scade liniar cu


frecvenţa, φ(ω) = −jωN . Propunem cititorului să reprezinte grafic (ı̂n Matlab
şi analitic) diagramele Bode pentru acest sistem.

Faza pentru Filtrul Trece Tot


180

160

140

120
φ(ω) (grade)

100

80

60

40

20

0
−3 −2 −1 0 1 2 3
10 10 10 10 10 10 10
ω (rad/s)

Figura 5.14.: Exerciţiul 5.11.b

Exerciţiul 5.12. Ne propunem studiul filtrelor nonrecursive discrete. Aceste


filtre nu depind de valori anterioare ale ieşirii, având astfel forma generală:
k=N
X
y[n] = bk u[n − k].
k=−N
Capitolul 5. Diagramele Bode 101

Constatăm că ieşirea este o medie ponderată a valorilor intrării de la u[n − N ]


până la u[n + N ], cu ponderile date de coeficienţii bk .

a) Un exemplu des ı̂ntâlnit este filtrul de medie alunecatoare (MA), unde


ieşirea y[n] este media valorilor semnalului de intrare u[n] ı̂ntr-o vecinătate
a lui n. Luăm un caz simplu:
1
y[n] = (u[n − 1] + u[n] + u[n + 1]) .
3
Determinaţi funcţia pondere şi răspunsul ı̂n frecvenţă al filtrului MA. Repre-
zentaţi grafic H(ω) := |H(ejω )|. Interpretaţi graficul obţinut.

b) Reluaţi punctul anterior pentru cazul general, adică:

k=N
1 X
y[n] = u[n − k].
2N + 1
k=−N

Rezolvare.
a) Funcţia pondere este răspunsul sistemului la impulsul discret. Într-adevăr,
dacă u[n] = δ[n], atunci y[n] = h[n]. Obţinem:

1
h[n] = (δ[n + 1] + δ[n] + δ[n − 1]) .
3
Pentru sistemele discrete, răspunsul ı̂n frecvenţă H(ejω ) este dat de relaţia:
+∞
X
H(ejω ) = h[n]e−jωn .
n=−∞

În cazul nostru, vom avea succesiv:


+∞ +∞ +∞
!
1 X X X
H(ejω ) = δ[n + 1]e−jωn + δ[n]e−jωn + δ[n − 1]e−jωn
3 n=−∞ n=−∞ n=−∞
1 jω
e + 1 + e−jω

=
3
1
= (1 + 2 cos(ω)).
3

Graficul funcţiei H(ω) = 13 |1 + 2 cos(ω)| este dat ı̂n figura 5.15. Script-ul
Matlab necesar se găseşte ı̂n Anexă.

Observaţie. Se observă din grafic (figura 5.15) că filtrul nerecursiv dat are
caracteristicile unui FTJ neideal, adică nu are o tranziţie bruscă ı̂ntre benzile
de frecvenţă corespunzatoare (banda de trecere, respectiv de atenuare).
102 Semnale şi sisteme. Îndrumar de laborator

Functia pondere pentru filtrul nerecursiv dat


0.35

0.3

0.25

0.2
h[n]

0.15

0.1

0.05

0
−5 −4 −3 −2 −1 0 1 2 3 4 5
n (esantioane)

Raspunsul in frecventa
1

0.8

0.6
H(ejω)

0.4

0.2

0
−8 −6 −4 −2 0 2 4 6 8
ω (rad/s)

Figura 5.15.: Exerciţiul 5.12.a

Raspunsul in frecventa al unui filtru MA cu N = 33

0.9

0.8

0.7

0.6
|H(ejω)|

0.5

0.4

0.3

0.2

0.1

−3 −2 −1 0 1 2 3
ω (rad/s)

Figura 5.16.: Exerciţiul 5.12.b


Capitolul 5. Diagramele Bode 103

b) În acest caz, funcţia pondere devine:


+N
1 X
h[n] = δ[n − k].
2N + 1
k=−N

Rezultă că răspunsul la impuls este un un semnal dreptunghiular discret:


(
1
, −N ≤ n ≤ N,
h[n] = 2N +1
0, altfel.
Răspunsul ı̂n frecvenţă devine:
+N
1 X
H(ejω ) = e−jωk .
2N + 1
k=−N

După un volum moderat de calcule, se obţine:


sin (2N + 1) ω2
 
jω 1
H(e ) = .
2N + 1 sin ω2
Graficul funcţiei H(ω) pentru N = 33 este dat ı̂n figura 5.16, iar codul Matlab
ı̂n Anexă. Studiaţi ce se ı̂ntâmplă pentru diverse valori ale parametrului N ,
spre exemplu N = 16, N = 65.
Observaţie. Filtrele de MA fac parte dintr-o clasă interesantă de filtre, FIR
(Finite Impulse Response). Justificaţi această denumire.
Exerciţiul 5.13. Proiectarea filtrelor. Ne propunem aici proiectarea unui
filtru H(s) cu caracteristica amplitudine–frecvenţă impusă a priori: dorim ca
modulul la joasă frecvenţă să fie 0 < Ainf < 1, iar la ı̂naltă frecvenţă să avem
modulul Asup > 1. Specificăm banzile de frecvenţă dorite prin alegerea primei
frecvenţe de frângere ωt . Găsiţi filtrul, având doar un pol şi un zerou.

Rezolvare. Sistemul H(s) are un pol şi un zerou. Deoarece se dau 3 parametri,
i.e., Ainf , Asup , ωt , vom avea 3 necunoscute:
r
as + b a2 ω 2 + b2
H(s) = ⇒ |H(jω)| = .
cs + 1 c2 ω 2 + 1
Condiţiile impuse devin:
a b
|H(j · 0)| = b = Ainf ; |H(j · ∞)| = = Asup ⇒ a = cAsup ; = ωt .
c a
s + ωt
După calcule, se obţine H(s) = s ωt . Trebuie să impunem ca prima
+
Asup Ainf
frecvenţă de frângere să fie ωt , i.e., 1c < ab ⇒ Ainf < ωt2 Asup . Reprezentaţi ı̂n
Matlab diagramele Bode pentru sistemul obţinut. Alegem Ainf = 0.1, Asup =
20, ωt = 10 rad/s.
104 Semnale şi sisteme. Îndrumar de laborator

5.4. Exerciţii propuse


Exerciţiul 5.14. Reprezentaţi diagramele Bode pentru sistemul:
0.01(s2 + 0.01s + 1)
H(s) = .
s2 [s2 /4 + 0.02(s/2) + 1]
Determinaţi polii şi zerorile sistemului (folosiţi funcţia pzmap).
Exerciţiul 5.15. Un sistem cu zerouri ı̂n semiplanul complex drept deschis se
numeşte sistem de fază neminimă. Efectul acestor zerouri instabile este vizibil
ı̂n faza sistemului φ(ω). Astfel, se dau funcţiile de transfer de forma:
s+α s−α
G1 (s) = , α > 0; G2 (s) = , α > 0.
0.1s + 1 0.1s + 1
a) Să se reprezinte diagramele Bode pentru diverse valori ale parametrului
α. Ce se ı̂ntâmplă cu G1,2 (ω)? Dar cu φ1,2 (ω)? Argumentaţi riguros
răspunsul.
b) Să se reprezinte pe acelaşi grafic răspunsul indicial al sistemelor G1 (s) şi
G2 (s). Ce observaţi?

Exerciţiul 5.16. Construiţi un semnal periodic compus din mai multe ar-
monici distincte, apoi perturbaţi-l cu un zgomot alb (se generază cu funcţia
Matlab randn). Filtraţi apoi semnalul obţinut folosind un filtru selectiv de
frecvenţă astfel ı̂ncat la ieşirea filtrului să se găsească un semnal cât mai apro-
piat de cel original. Calculaţi numeric diferenţele dintre semnalul obţinut după
filtrare şi cel original.
Exerciţiul 5.17. O conjectură celebră afirmă că sistemul auditiv uman nu
sesizează modificările de fază ale unui semnal audio. Pentru a valida conjec-
tura, este suficient sa prelucrăm un semnal vocal cu un filtru discret trece-tot
de faza neminimă (FTT) şi să verificăm potrivirea auditiv. Un FTT discret
este de forma:  Pn N
k=0 bk z −k
H(z) = Pn −k
.
k=0 ak z

Coeficienţii filtrului precizat se gasesc ı̂n fisierul s vocal.mat, astfel ı̂ncât


b(k + 1) = bk şi a(k + 1) = ak . Pentru ı̂ncărcarea fişierului, se va folosi
instrucţiunea Matlab load.

a) Scrieţi ı̂n fisierul discurs0.au semnalul speech din fişierul dat, prin folo-
sirea funcţiei Matlab auwrite. Frecvenţa de eşantionare este Fs = 11025
Hz. Scrierea se va face pe 16 biţi, cu metoda de codare liniară.
b) Să se implementeze FTT ı̂n Matlab pentru N = 1, utilizând funcţia filt.
Să se obţină răspunsul la impuls şi răspunsul ı̂n frecvenţă al filtrului (funcţia
freqz).
Capitolul 5. Diagramele Bode 105

c) Reprezentaţi grafic polii şi zerourile filtrului. Folosiţi funcţia pzmap. Este
sistemul de faza minimă?

d) Aplicaţi filtrul obţinut semnalului vocal din variabila speech. Vom folosi
funcţia Matlab filter. Scrieţi ı̂n fişierul discurs1.au semnalul filtrat
obţinut. Sesizaţi vreo diferenţă? Argumentează riguros, pe baza celor
studiate a priori.

e) Sa se refacă punctele b) - d) pentru N = 50. Se sesizează o diferenţă.


Descrieţi distorsiunea şi argumentaţi.

Exerciţiul 5.18. Filtrele nerecursive pot implementa filtre de tip trece–sus.


Ca un exemplu simplu, fie ecuaţia cu diferenţe:

x[n] − x[n − 1]
y[n] = .
2
Determinaţi funcţia pondere h[n] şi răspunsul ı̂n frecvenţă H(ejω ) pentru sis-
temul dat. Reprezentaţi grafic |H(ejω )|. Am obţinut un FTS? Argumentaţi.

Exerciţiul 5.19. Se consideră filtrul dat de:


(
1, |ω| ≤ π3 ,
H(jω) =
0, |ω| > π3 .

P
Fie semnalul de stimul u(t) = δ(t − 9n). Cerinţe:
n=−∞

a) Ce proprietăţi are filtrul H(jω) dat? Verificaţi dacă este real sau complex,
cauzal sau necauzal. Calculaţi:
Z ∞
1
h(t) = F −1 {H(jω)} := H(jω)e+jωt dω.
2π −∞

b) Calculaţi şi reprezentaţi grafic transformata Fourier a semnalului de stimul


U (jω).

c) Determinaţi şi reprezentaţi grafic răspunsul sistemului Y (jω), respectiv


y(t).

Exerciţiul 5.20. Se consideră sistemul H(s), având răspunsul ı̂n frecvenţă


dat ı̂n figura 5.17a. Dacă
π π
u(t) = sin(ω1 t + ) + 2 cos(ω2 t − ),
4 3
unde ω1 , ω2 > 0, calculaţi şi reprezentaţi grafic y(t). Discuţie după ω1 , ω2 .
Verificaţi rezultatul ı̂n Matlab pentru ω1 = π, ω2 = 2π.
106 Semnale şi sisteme. Îndrumar de laborator

(a) Răspuns ı̂n frecvenţă

(b) Cerinţe de proiectare

Figura 5.17.
Capitolul 5. Diagramele Bode 107

Exerciţiul 5.21. Propunem proiectarea unui filtru neideal de tip trece-jos cu


specificaţiile din figura 5.17b. În plus, ne dorim H(0) = 1. Se impune ca filtrul
proiectat să aibă funcţia de răspuns ı̂n frecvenţă de forma:
K
H(jω) = .
α + jω

a) Determinaţi K astfel ı̂ncât H(0) = 1.

b) Găsiţi intervalul admisibil pentru α astfel ı̂ncât filtrele rezultate să ı̂ndeplinească
specificaţiile din figura 5.17b.
6. Analiza Nyquist

6.1. Scopul laboratorului


În acest laborator se studiază locul de transfer (sau locul Nyquist) şi principala
sa aplicaţie ı̂n studiul stabilităţii sistemelor ı̂n buclă ı̂nchisă. Locul de transfer
este reprezentarea ı̂n planul complex a vectorului H(s), atunci când s parcurge
axa imaginară, i.e., s = jω, cu ω ∈ (−∞, ∞).

6.2. Hodograful
Fie un sistem cu funcţia de transfer H(s). Se numeşte reprezentare ı̂n frecvenţă
a sistemului orice reprezentare grafică a evoluţiei vectorului H(jω) ı̂n funcţie
de ω. Evident, H(jω) ∈ C poate fi scris in forma carteziană:

H(jω) = Re(H(jω)) + jIm(H(jω)).

Notând Re(H(jω)) =: U (ω) şi Im(H(jω)) =: V (ω), rezultă:

H(jω) = U (ω) + jV (ω).

Graficul (curba parametrizată) V (ω) = f (U (ω)), se numeşte hodograf sau loc


de transfer, sau loc Nyquist. Cum U : R → R este funcţie pară, iar V : R → R
este funcţie impară, locul Nyquist este simetric ı̂n raport cu axa reală; este
deci suficientă trasarea curbei doar pentru ω ∈ [0, ∞) şi simetrizarea ei ı̂n
raport cu axa reală.

6.2.1. Conturul Nyquist


Locul de transfer sau locul Nyquist este reprezentarea grafică ı̂n planul complex
a vectorului H(s), atunci când s parcurge axa imaginară, i.e., s = jω, cu ω ∈
(−∞, +∞). Dacă funcţia H(s) are poli pe axa imaginară, valoarea ei devine
infinit când s = jω trece printr-un pol, ceea ce corespunde unei discontinuităţi
ı̂n reprezentarea grafică a lui H(s). Pentru a evita acest lucru, eventualii poli
de pe axa imaginară se ocolesc spre dreapta cu semicercuri de rază r şi se face
r → 0. Pe de altă parte, reprezentarea de pe axa imaginară se extinde tipic cu
punctele de pe un semicerc ce uneşte punctele de la ±∞ aflat ı̂n semiplanul
drept, având rază R → ∞, rezultând conturul Nyquist, vezi figura 6.1.

109
110 Semnale şi sisteme. Îndrumar de laborator

Figura 6.1.: Conturul Nyquist

6.2.2. Hodografele elementelor de bază

Integratorul: H(s) = sKq , K ∈ R, q ∈ Z. Avem discuţie după q > 0. Pentru


trasarea locului de transfer se analizează comportarea de-a lungul axei ima-
ginare s = jω, pe semicercul s = Rejθ , când θ ∈ [−π/2, π/2], cu R → ∞.
Dacă q > 0 se analizează ı̂n plus comportarea pe semicercul s = rejθ , când
θ ∈ [−π/2, π/2], cu r → 0, rezultând locul Nyquist din figura 6.2.

Figura 6.2.: Integratorul, discuţie după q > 0


Capitolul 6. Analiza Nyquist 111

K
Elementul de ordin I : H(s) = T s+1 , K, T > 0.
2
ωn
Elementul de ordin II : H(s) = 2,
s2 +2ζωn s+ωn
ωn > 0, ζ ∈ [0, 1).

V V

K
2 K ù=0
ù= 4
x x x x x
ù= 4 ù=0 U U
æ=1

æ=0

Elementul de ordin I Elementul de ordin II

6.2.3. Trasarea calitativă


Se observă forma curbei V = f (U ) ı̂n formă explicită sau implicită. Apoi se
studiază comportarea la joasă frecvenţă (ω = 0) şi la ı̂naltă frecvenţă (ω = ∞).
Mai departe, se analizează tabelul de variaţie. Pentru o trasare cât mai
riguroasă a graficului se mai pot studia:
i. Intersecţiile cu axele;

ii. Asimptote, limite la capete;

iii. Monotonie (derivata I): acestea se studiază doar când U şi V au forme ı̂n
general simple. În rest trasarea se face prin puncte şi studierea compor-
tamentului la joasă frecvenţă (ω = 0+ ) şi la ı̂naltă frecvenţă (ω = ∞.)

iv. Comportarea hodografului la joasă frecvenţă (vezi figura 6.3):


r(s)
Fie un sistem H(s) = , o funcţie raţională de transfer. Atunci există
p(s)
r̃(s) şi p̃(s), două polinoame, cu proprietatea că r̃(0) = p̃(0) = 1, astfel
K r̃(s)
ı̂ncât H(s) = q .
s p̃(s)
v. Comportarea hodografului la ı̂naltă frecvenţă (figura 6.4):

r(s)
Dacă H(s) = p(s) , notăm e = ∂(p(s)) − ∂(r(s)), numit excesul de poli al
coef. dominant al lui p
lui H(s). Mai notăm ce = coef. dominant al lui r . Atunci faza sistemului la
ω → ∞ va fi (
−e π2 , ce > 0
φ(∞) = π
−e 2 − π, ce < 0
112 Semnale şi sisteme. Îndrumar de laborator

V
v v

v
K U

Figura 6.3.: Comportamentul hodografului la joasă frecvenţă

V ce>0

e=2
U

e=1

Figura 6.4.: Comportamentul hodografului la ı̂naltă frecvenţă

Observaţie. În MATLAB funcţia care trasează diagrame Nyquist este nyquist(sys),
unde sistemul poate fi dat sub forma tf sau zpk.

6.3. Analiza stabilităţii


Intuitiv, răspunsul unui sistem stabil la un semnal de tip impuls devine nul
după un timp suficient de mare. Astfel, conform definiţiei, un sistem de
convoluţie continuu SISO este stabil dacă limt7→∞ g(t) = 0, unde g(t) este
funcţia pondere.
O definiţie alternativă: un sistem este stabil ı̂n sens BIBO (Bounded In-
put/Bounded Output) dacă pentru orice intrare mărginită ieşirea rezultată este
de asemenea mărginită.
R∞
Propoziţia 6.1. Sistemul G(s) este stabil ⇐⇒ kgk1 := −∞ |h(t)|dt < ∞.
Capitolul 6. Analiza Nyquist 113

6.3.1. Criteriul lui Nyquist


Criteriul Nyquist este o metodă tradiţională de determinare a stabilităţii unui
sistem ı̂n buclă ı̂nchisă pe baza comportării locului de transfer al sistemului
ı̂n buclă deschisă.

Figura 6.5.: Sistemul ı̂n buclă ı̂nchisă

Fie sistemul dat ı̂n figura 6.5. Funcţia de transfer ı̂n buclă ı̂nchisă este
H(s)
G(s) = 1+H(s) . Presupunem că H(s) este ireductibilă. Sistemul ı̂n buclă
ı̂nchisa este stabil dacă polii săi sunt ı̂n C− . Evident, polii lui G(s) sunt
zerourile
 lui 1 + H(s). Criteriul lui Nyquist stabileşte numărul zerourilor
Z 1 + H(s) ı̂n semiplanul C+ direct din locul Nyquist al funcţiei H(s).

Criteriul Nyquist. Fie un sistem având funcţia de transfer H(s) şi un


număr n+ de poli n semiplanul drept deschis, i.e., ı̂n C+ . Sistemul rezultat
prin conectarea ı̂n buclă de reacţie negativă este stabil dacă şi numai dacă
conturul ı̂nchis H(s) obţinut când s parcurge conturul Nyquist din figura 6.1
ı̂nconjoară punctul critic (−1, 0) de n+ ori ı̂n sens antiorar.

Observaţie. Dacă H(s) este stabil, i.e., n+ = 0, atunci condiţia necesară şi
suficientă ca sistemul ı̂nchis să fie stabil este ca locul de transfer să lase ı̂n
stânga punctul critic de coordonate (−1, 0) sau acest punct să nu se găsească
ı̂n interiorul caracteristicii trasată cu ambele ramuri pentru ω.
Concluzii similare se pot obţine pe baza locului de transfer al lui H(s) care
rezultă atunci când conturul Nyquist este făcut să coincidă la limită cu axa
imaginară.
Criteriul Nyquist – varianta bazată pe locul de transfer. Sistemul ı̂n
buclă ı̂nchisă este stabil dacă şi numai dacă
ω=+∞ π
∆ arg[1 + H(jω)] = (n0 + 2n+ ) ,

ω=0 2

adică variaţia argumentului vectorului cu originea ı̂n punctul critic (−1+j0) şi
cu vârfurile pe ramurile continue ale locului de transfer, atunci când ω parcurge
ı̂n sens crescător intervalul (0, +∞), este egală cu (q0 + 2n+ ) π2 , unde:
n0 este numărul polilor de pe axa imaginară;
n+ este numărul polilor din C+ , incluzând ordinul de multiplicitate.
114 Semnale şi sisteme. Îndrumar de laborator

6.4. Exerciţii rezolvate


Trasaţi hodografele pentru sistemele date ı̂n continuare şi comentaţi formele
graficelor.

K
Exerciţiul 6.1. H(s) = , K > 0.
s3 +1
Rezolvare.

K K K ω3 K K ω3
H(jω) = = + j ⇒ U (ω) = şi V (ω) = .
1 − jω 3 1 + ω6 1 + ω6 1 + ω6 1 + ω6

Aplicăm două metode definite pe baza tabelului de variaţie şi pe baza deducerii
relaţiei ı̂ntre U şi V şi a curbei descrise ı̂n planul complex.
Metoda 1. Tabelul de variaţie.

1) Intersecţiile cu axele: U (0) = K şi V (0) = 0 ⇒ hodograful taie axa relă ı̂n
punctul (K, 0).

2) Asimptote, limite la capete : U (∞) = 0+ şi V (∞) = 0+ .


5
3) Monotonie: U 0 (ω) = − (1+ω6K ω
6 )2 < 0, (∀) ω > 0 ⇒ U este descrescătoare pe

[0, ∞). (
6 −1 > 0, ω < 1
V 0 (ω) = −3K ω 2 (1+ω6 )2
ω
⇒ V este crescătoare pe [0, 1) şi
≤ 0, ω ≥ 1
descrescătoare pe (1, ∞).

4) Comportarea la ∞: e = 3, ce > 0 ⇒ φ(∞) = − π2 .

5) Tabelul:

ù 0+ 1 4
U(ù) K 0+
K
V(ù) 0 2
0+
V

K
2 K
x x x
ù= 4 ù=0 U
Capitolul 6. Analiza Nyquist 115

K K 2
Metoda 2. U 2 + V 2 = K 1+ω 6 = K U, (∀) ω > 0 ⇔ (U − 2) + V2 =
K2
4 , (∀) ω > 0 ⇒ semicerc cu centrul ı̂n ( K2 , 0) şi rază K
2. Pentru stabilirea
sensului se studiază comportarea la ∞ ca mai sus.

Codul Matlab este dat ı̂n Anexă. Se observă că orice sistem de forma H(s) =
K K
sn +1 , cu n impar, va avea hodograful un semicerc de rază 2 . Dar dacă n este
par? În Anexă, trasăm cu Matlab hodograful sistemului H(s) = snK+1 , pentru
diverse valori ale lui n.
K
Exerciţiul 6.2. H(s) = , K > 0.
s(s + 1)
Rezolvare.
K K ω K −K
H(jω) = ⇒ U (ω) = − =− şi V (ω) = .
jω(1 + jω) ω(1 + ω 2 ) 1 + ω2 ω(1 + ω 2 )

1) Intersecţiile cu axele: graficul nu intersectează axele.

2) Asimptote, limite la capete: U (0) = −K, U (∞) = 0− şi V (0) = −∞, iar
V (∞) = 0− .

3) Monotonie: U 0 (ω) = (1+ω 2K ω


2 )2 > 0, (∀) ω > 0 ⇒ U este crescătoare pe

[0, ∞).
2 +1
V 0 (ω) = K ω23ω
(1+ω 2 )2
, (∀) ω > 0 ⇒ V este strict crescătoare pe (0, ∞).

4) Comportarea la ∞ : e = 2, ce > 0 ⇒ φ(∞) = −π.

5) Tabelul :

ù 0+ 4
U(ù) -K 0-
V(ù) -4 0-

-K ù= 4
U
v
ù=0
116 Semnale şi sisteme. Îndrumar de laborator

Trasăm ı̂n Matlab hodograful sistemului dat pentru diverse valori ale lui
K. Codul se găseşte ı̂n Anexă. Deoarece sistemul conţine un integrator, se
observă plecarea asimptotică a graficului dinspre −∞. În plus, se va vedea cu
ajutorul calculatorului că aceasta este forma hodografului pentru orice sistem
de tipul
K
H(s) = , K > 0,
s(s + 1)...(s + p)
cu excepţia asimptotei verticale la ω = 0+ . Verificaţi analitic cele afirmate
mai sus, pentru pmax = 2.

s2 − 1
Exerciţiul 6.3. H(s) = .
s4 + 4s2 + 4
Rezolvare.
ω2 + 1
H(jω) = − = U (ω) ∈ R.
ω 4 − 4ω 2 + 4
Deoarece V (ω) = 0, hodograful va fi un segment de dreaptă orientat, situat
pe axa reală. Pentru stabilirea sensului este necesară studierea monotoniei lui
U (ω). După calcule destul de laborioase (lăsate exerciţiu cititorului) avem că
U 0 (ω) > 0, (∀) ω > 0 ⇒ U este strict crescătoare pe [0, ∞).

ù 0+ 4
1
U(ù) - 4 0-

- 41 ù= 4 U
ù=0

Observăm că se respectă comportarea de la ∞, φ(∞) = −π. În plus, H(s) =


H(−s) ⇒ H(jω) = H(−jω) = H(jω) = H(jω) ⇒ H(jω) = U (ω) ∈ R.
Pentru orice sistem de acest tip hodograful este un segment (orientat) pe axă
reală.
s+1
Exerciţiul 6.4. H(s) = . Să se găsească frecvenţele pentru care hodo-
s2 + 1
graful taie cercul unitate.
Capitolul 6. Analiza Nyquist 117

1+jω 1 ω 2 2
Rezolvare. H(jω) = 1−ω 2 ⇒ U (ω) = 1−ω 2 , V (ω) = 1−ω 2 ⇒ U (ω) − V (ω) =

U (ω), (∀) ω > 0 ⇔ (U − 21 )2 − V 2 = 14 . Rescriind ecuaţia sub forma:

(U − 12 )2 V2
1 − 1 =1
4 4

putem recunoaşte o hiperbolă ( Ua )2 − ( Vb )2 = 1, cu a = b = 21 . Dreapta


V = (U − 21 ), pentru ω > 0 este asimptotă. Pentru stabilirea sensului pe
hodograf, studiem comportarea la ω = 0: U (0) = 1, V (0) = 0, precum şi pe
cea la ∞ : φ(∞) = − π2 . Deoarece U şi V au discontinuităţi in ω = 1, Matlab
nu trasează corect hodograful cu funcţia nyquist. În Anexă trasăm hodograful
folosind exclusiv definiţia.
Notând hodograful cu H, avem că: H ∩ C(0, 1) = {ω ∈ R | |H(jω)| = 1}.
Afirmaţia este corectă, deoarece este reprezentat vectorul H(jω) ı̂n planul
complex, cu modulul |H(jω)| şi faza φ(ω) = argH(jω). √
Rezolvăm deci ecuaţia |H(jω)| = 1 ⇔ ω = 0, sau ω = 3 adică la aceste √
frecvenţe hodograful taie cercul unitate ı̂n punctele (1, 0), respectiv (− 12 , − 23 ).

ù "1
<1
ù

v
ù=4 ù=0+ U
(1,0)
)

H(

ù=%&
3
v
ù "1
>1
ù

Exerciţiul 6.5. Filtrul trece-tot. Numim filtru trece-tot (all-pass) un sis-


tem cu funcţia de transfer de forma
Qn
(Ti s − 1)
HT (s) = Qi=1
n , Ti ∈ R.
i=1 (Ti s + 1)

a) Arătaţi că |HT (jω)| = 1, (∀) ω ∈ R, Ti ∈ R.


s−a
b) Fie H(s) = , a ∈ R∗ . Trasaţi hodograful.
s+a
Rezolvare. Demonstraţia (trivială) de la punctul a) este lăsată temă cititorului.
Sistemul de la punctul b) este un filtru trece-tot, conform definiţiei de mai
118 Semnale şi sisteme. Îndrumar de laborator

sus, deci ı̂n frecvenţă are modulul 1 pe toată axa reală. Hodograful este
cercul unitate, iar sensul de parcurgere este dat de semnul lui a. Dacă a > 0
atunci sensul este antitrigonometric, iar dacă a < 0 sensul este trigonometric.
Desenăm cu Matlab hodograful, vezi Anexa.

V
a>0

v
1

H(jù) U

v
a<0

Filtru trece-tot cu un singur pol


ù=0
V

v
-K ù= 4
U

FTT cu un integrator suplimentar

K s−1
Exerciţiul 6.6. H(s) = .
s s+1
Rezolvare. Lăsăm ca temă rezolvarea analitică a acestui exerciţiu. Codul
Matlab este dat ı̂n Anexă.
K −τ s
Exerciţiul 6.7. H(s) = e , τ > 0, K > 0.
s
Rezolvare. Acesta este un element integrator cu timp mort. Timpul mort
reprezintă o ı̂ntâziere ı̂n răspunsul sistemului, mai precis dacă intrarea a fost
aplicată la momentul t = 0, sistemul ı̂ncepe să răspundă la momentul τ > 0.
Observaţie. Sistemul este infinit dimensional, pentru că ecuaţia lui caracte-
ristică are o infinitate de soluţii. Acest fapt se va reflecta şi in răspunsul ı̂n
frecvenţă. Timpul mort afectează faza sistemului.
Capitolul 6. Analiza Nyquist 119

-K
H(jù
)
U
v

ù=0+

Figura 6.6.: Sistem cu timp mort

Evaluăm succesiv:
K −jωτ K
H(jω) = e = (cos ωτ − j sin ωτ ),
jω jω

sin ωτ cos ωτ
U (ω) = −K , iar V (ω) = −K .
ω ω
Deoarece U şi V au forme complicate, procedăm altfel. Hodograful este curba
ce indică evoluţia vectorului H(jω) ı̂n planul complex. Vom studia modulul
şi faza acestuia.

Modulul: |H(jω)| = K −jωτ | = K , descrescător pe (0, ∞) ⇒ vectorul ı̂şi


ω |e ω
micşorează modulul cu cât ω creşte. Evident pentru ω = ∞, modulul devine 0.

Faza: φ(ω) = −ωτ − π2 ⇒ φ(0) = − π2 şi φ(∞) = −∞ ⇒ vectorul se roteşte


in sensul acelor de ceas de o infinitate de ori. Acest comportament ne sugereză
forma unei spirale. Pentru o rigurozitate crescută a construcţiei graficului mai
este necesar studiul intersecţiei cu axele:

V (ω) = 0 ⇔ sin ωτ = 0 ⇔ ω = , p ∈ Z.
τ
n  o
Aşadar, OV ∩ H = 0, −Kτ cospπpπ : p ∈ Z .
  
sin (2p + 1)π
U (ω) = 0 ⇔ OU ∩ H = −Kτ ,0 : p ∈ Z .
(2p + 1)π

Deoarece timpul mort nu poate fi introdus cu ajutorul Matlab, nu putem


crea sistemul pentru diagrama Nyquist. Vom scrie explicit U şi V ı̂n funcţie
de ω şi vom construi graficul conform definiţiei. Codul este dat ı̂n Anexă.
120 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 6.8. Fie un sistem ı̂n buclă deschisă cu funcţia de transfer:


k
H(s) = ,
s(1 + T1 s)(1 + T2 s)

cu T1 = 1, T2 = 3. Pentru diferite valori ale lui k, trasaţi hodograful şi


răspunsul sistemului ı̂n buclă ı̂nchisă la o intrare treaptă. Explicaţi ce se
ı̂ntâmplă cu stabilitatea sistemului dacă ı̂l mărim pe k.

Rezolvare. Vezi figura 6.7. Codul Matlab este dat ı̂n Anexă. Se observă că,
pentru valori mici ale lui k (0 < k < TT11+T T2 ), hodograful intersectează axa
2

negativă ı̂ntr-un punct relativ ı̂ndepărtat faţă de punctul critic. Pentru k = 1,


sistemul este stabil. Se observă de asemenea că supremumul răspunsului ı̂n
frecvenţă creşte cu k.
Pentru valori mai mari decât 1 ale lui k se va observa că sistemul intră ı̂n
instabilitate. Dacă funcţiei de transfer ı̂i mai adăugăm un zerou, i.e.,

k(1 + Td s)
H(s) = ,
s(1 + T1 s)(1 + T2 s)

sistemul raspunde mult mai repede, iar pentru k putem alege valori dintr-un
interval mult mai mare pentru ca sistemul sa rămână stabil.
Verificaţi că sistemul va fi stabil dacă
T1 + T2
0<k< .
T1 T2 − Td (T1 + T2 )

Zeroul introdus ı̂mbunătăţeşte stabilitatea sistemului. Verificaţi prin simulare


Matlab aceste concluzii.

Exerciţiul 6.9. Funcţia de transfer pe calea directă a unui sistem de reglare


a nivelului lichidului ı̂ntr-o incintă este:
ka ki nkI N
G(s) =
s(Ra Js + ki kb )(As + k0 )

cu următorii parametri: ka = 50; ki = 10; kI = 50; J = 0, 006; kb =


0, 0706; n = 0, 01; Ra = 10. Valorile parametrilor A, N, k0 sunt variabile.
Pantru A = 10 şi k0 = 100 desenaţi diagrama Nyquist a lui G(jω) pentru
ω ∈ (0, +∞) cu N variabil. Găsiţi valoarea maximă a lui N ∈ Z a.ı̂. sistemul
ı̂n buclă ı̂nchisă să fie stabil.

Rezolvare. Vezi figura 6.8.Codul Matlab este dat ı̂n Anexă.


Cu cât valoarea lui N este mai mică (e.g., N = 0.2), cu atât hodogra-
ful se ı̂ndepărtează de punctul critic. Aplicăm criteriul Nyquist: sistemul ı̂n
buclă deschisă este stabil, i.e., n+ = 0; punctul critic nu se găseşte ı̂n interio-
rul hodografului pentru valori mici ale lui N ; prin urmare, sistemul ı̂n buclă
Capitolul 6. Analiza Nyquist 121

Nyquist Diagram

20 k=0.5
Imaginary Axis

−20

−2 −1.8 −1.6 −1.4 −1.2 −1 −0.8 −0.6 −0.4 −0.2 0


Real Axis

Step Response
2
k=0.5
1.5
Amplitude

0.5

0
0 10 20 30 40 50 60 70
Time (sec)
Frequency response
6
k=0.5
Amplitude

0
0 0.5 1 1.5 2 2.5 3 3.5
frequency
Nyquist Diagram

20 k=3.5
Imaginary Axis

−20

−3 −2.5 −2 −1.5 −1 −0.5 0


Real Axis

Step Response
2
k=3.5
1.5
Amplitude

0.5

0
0 2 4 6 8 10 12
Frequency response Time (sec)
6
k=3.5
Amplitude

0
0 0.5 1 1.5 2 2.5 3 3.5
frequency

Figura 6.7.
122 Semnale şi sisteme. Îndrumar de laborator

Nyquist Diagram
2

1
Imaginary Axis

−1

−2
−1 −0.9 −0.8 −0.7 −0.6 −0.5 −0.4 −0.3 −0.2 −0.1 0
Real Axis

Step Response
1

0.8
Amplitude

0.6

0.4

0.2

0
0 2 4 6 8 10 12 14 16 18 20
Time (sec)

Figura 6.8.

ı̂nchisă este stabil. Pentru valori ale lui N ı̂n intervalul (0, 1) sistemul atinge
performanţe foarte bune: spre exemplu, suprareglajul este 0. Pentru a vedea
aceste performanţe, in fereastra care afişează răspunsul la o intrare treaptă
daţi click pe butonul drept al mouse-ului şi alegeţi ”Characteristics”.

Exerciţiul 6.10. Se consideră schema bloc din figura 6.9, unde G(s) =
k
(s+4)(s+5) . Aplicând criteriul Nyquist de stabilitate, determinaţi valorile lui
k pentru care sistemul este stabil.

Figura 6.9.

Rezolvare. Vezi Anexa. Pentru k ∈ 11, 55 se obţin cele mai bune performanţe
Capitolul 6. Analiza Nyquist 123

ale sistemului (pentru a le vedea care sunt acestea, ı̂n fereastra care afişează
răspunsul la o intrare treaptă daţi click pe butonul drept al mouse-ului şi
alegeţi ”Characteristics”). Sistemul in buclă ı̂nchisă este stabil, acest lucru
putând fi observat din locul Nyquist.
Exerciţiul 6.11. Desenaţi diagrama Nyquist pentru sistemul din următoarea
figură şi determinaţi valorile lui k pentru care sistemul este stabil.

Rezolvare. Vezi figura 6.10 şi Anexa. Pentru k = 1.5 sistemul este stabil, ı̂nsa
se pot obţine performanţe mult mai bune (suprareglaj mult mai mic) pentru
valori mai mici ale lui k (e.g., k = 0.01).

Nyquist Diagram
1

k=1.5
0.5
Imaginary Axis

−0.5

−1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8
Real Axis

Step Response
0.8

k=1.5
0.6
Amplitude

0.4

0.2

0
0 5 10 15 20 25 30 35 40 45 50
Time (sec)

Figura 6.10.
124 Semnale şi sisteme. Îndrumar de laborator

Exerciţiul 6.12. Determinaţi stabilitatea următoarelor sisteme:


1 1 e−2s
H1 (s) = 2
, p > 0, H2 (s) = 4
, p > 0, H3 (s) = , p > 0.
s (s + p) s (s + p) s+p

Rezolvare. Vezi Anexa. Se observă că pentru valori pozitive ale lui p conform
criteriului Nyquist, sistemul H1 (s) ı̂n buclă ı̂nchisă este instabil (punctul critic
se află ı̂n interiorul hodografului). Pentru sistemul H2 (s) conform criteriului
Nyquist sistemul ı̂n buclă ı̂nchisă este stabil. Pentru H3 (s) sistemul ı̂n buclă
ı̂nchisă este instabil pentru p < 0.4 şi stabil pentru p > 0.4.

6.5. Exerciţii propuse


Exerciţiul 6.13. Prezentăm un instrument de analiză al stabilităţii sistemului
ı̂n buclă ı̂nchisă. Funcţia Matlab nyqlog(H) trasează hodograful pentru siste-
mul ı̂n buclă deschisă H(s), corespunzător conturului Nyquist complet (care
include ı̂nchiderea sferei Riemann ı̂n punctul de la infinit). Codul Matlab al
funcţiei nyqlog(H) se poate găsi ı̂n Anexă şi pe internet, pe File Exchange.
Utilizând funcţiile nyqlog(H), nyquist(H), să se studieze stabilitatea ı̂n
buclă ı̂nchisă pentru sistemele:
2 2 1
H1 (s) = , H2 (s) = , H3 (s) = 2 .
s(s + 2) s(s − 2) s (s + 3)

−120
−120

−60
−60

0 dB
0 dB

+60
+60

Figura 6.11.: Exerciţiul 6.13

1
Exerciţiul 6.14. Fie sistemul P (s) = pentru care se consideră
s2 + 2s + 2
K
compensatorul C(s) = , K > 0.
s
Capitolul 6. Analiza Nyquist 125

a) Trasaţi polii sistemului ı̂n buclă ı̂nchisă pentru K = 1, 4, 10. Ce constataţi?

b) Trasaţi hodograful sistemului pentru diverse valori ale lui K (ţineţi cont şi
de valorile de la punctul 1) şi deduceţi cu ajutorul criteriului lui Nyquist
care este domeniul de valori ale lui K pentru care sistemul este stabil ı̂n
buclă ı̂nchisă.

Exerciţiul 6.15. Considerăm diagrama bloc din figura 6.12, unde H(s) =
2
, iar k este o constantă reală. Cerinţe:
s−3

Figura 6.12.: Sistem de reglare automată

a) Pentru ce valori ale lui k sistemul ı̂n buclă ı̂nchisă este strict stabil? Folosiţi
criteriul Nyquist. Trasaţi hodograful sistemului pe calea directă, i.e., kH(s),
pentru diverse valori ale lui k.

b) Alegeţi o valoare potrivită pentru k (care asigură stabilitatea sistemului ı̂n


buclă). Reprezentaţi grafic răspunsul la treaptă unitară al sistemului ı̂n
buclă. Câte este eroarea staţionară εst ? Dar timpul tranzitoriu tt ?

c) Pentru ce valori ale parametrului k timpul tranzitoriu tt = 1 s? Calculaţi


εst . Verificaţi rezultatele cu Matlab.

d) Pentru ce valori ale parametrului k eroarea staţionară este 0? Calculaţi tt .


Verificaţi rezultatele cu Matlab.

Exerciţiul 6.16. Reluaţi Exerciţiul 6.15 pentru:


1
k(s) = Kp + Ki .
s
Ki
Presupunem că K p
= 1. Acesta este un compensator de tip PI (proporţional–
integral). Justificaţi această denumire. Comparaţi cele două tipuri de com-
pensatoare, P şi PI.

Exerciţiul 6.17. Fie sistemul:


1
H(s) = .
s3 + 5s2 + s
126 Semnale şi sisteme. Îndrumar de laborator

a) Vom folosi un compensator de tip P. Determinaţi, utilizând criteriul lui


Nyquist, valorile lui kp care asigură stabilitatea sistemului ı̂n buclă ı̂nchisă.

b) Calculaţi eroarea staţionară la intrare treaptă unitară pentru un kp potri-


vit. Calculaţi de asemena timpul tranzitoriu şi suprareglajul. Verificaţi
rezultatele ı̂n Matlab.

c) Reluaţi punctele a) şi b) pentru un compensator de tip PI. Comparaţi cele


două compensatare.
Exerciţiul 6.18. Considerăm diagrama bloc din figura 6.13.

Figura 6.13.

Y (s)
a) Calculaţi funcţia de transfer ı̂n buclă ı̂nchisă T (s) := X(s) ı̂n termenii
funcţiilor H(s) şi K(s).
1
b) Fie H(s) = s−2 . Reprezentaţi polii sistemului T (s) pentru K ∈ {0, 1, −1}.

c) Reprezentaţi grafic locul geometric al polilor lui T (s) pentru K > 0, res-
pectiv pentru K < 0. Specificaţi valorile lui K pentru care T (s) este stabil.
Verificaţi ı̂n Matlab rezultatele (spre exemplu, utilizaţi răspunsul indicial).

d) Utilizând criteriul Nyquist, determinaţi valorile lui K pentru care T (s) este
stabil. Verificaţi ı̂n Matlab rezultatele.

ωn2
Exerciţiul 6.19. Fie diagrama bloc din figura 6.12, cu H(s) =
s2 + 2ζωn s + ωn2
şi k o constantă reală.
a) Calculaţi sistemul ı̂n buclă ı̂nchisă. Determinaţi noua frecvenţă naturală
ω̂n şi noul factor de amortizare ζ̂.

b) Reprezentaţi grafic polii sistemului ı̂n buclă ı̂nchisă.

c) Schiţaţi traiectoria polilor sistemului ı̂n buclă ı̂nchisă pentru k ∈ (−∞, +∞).
Pentru ce valori ale lui k este sistemul stabil?

d) Folosiţi criteriul Nyquist pentru a determina valorile lui k care asigură


stabilitatea sistemului ı̂n buclă.
Capitolul 6. Analiza Nyquist 127

e) Verificaţi rezultatele obţinute ı̂n Matlab (pentru o valoare potrivită a lui


k, reprezentaţi răspunsul la treaptă şi diagrama poli–zerouri).

Exerciţiul 6.20. Considerăm diagrama bloc din figura 6.14.

Figura 6.14.

a) Calculaţi ieşirea Y (s) ı̂n termenii X(s) şi W (s).

b) Observaţi că sistemul dat are o ieşire şi două intrări. Prin urmare, H(s)
este o matrice de forma:
 
X(s) W (s)
H(s) = = [H1 (s) H2 (s)] .
Y (s) Y (s)

Calculaţi H(s).

c) Reprezentaţi grafic polii şi zerourile funcţiei H(s). Folosiţi comanda cu-
noscută, pzmap(H).

d) Figuraţi cu Matlab răspunsul sistemului H(s) la intrare treaptă pentru


K1 = 1, K2 = 2 şi α = 2. Puteţi folosi funcţia step(H).

e) Găsiţi valorile parametrilor K1 , K2 , α pentru care H1 (s) şi H2 (s) sunt


simultan stabile. Verificaţi rezultatele utilizând răspunsul la treaptă şi
diagrama poli–zerouri. Indicaţie. Puteţi folosi criteriul Nyquist (analizaţi
riguros problema) şi/sau locul geometric al polilor.
7. Sisteme ı̂n timp discret

7.1. Scopul laboratorului


Scopul lucrării este de a introduce sistemele discrete, liniare şi invariante ı̂n
timp, reprezentate ca funcţii de transfer intrare/ieşire. Se vor obţine şi re-
prezenta grafic răspunsurile ı̂n timp ale sistemelor discrete, evidenţiindu-se
componentele tranzitorii şi permanente ı̂n cazul celor stabile.
Un rol central ı̂l ocupă prezentarea diverselor metode de discretizare a sis-
temelor netede (cu timp continuu) şi compararea rezultatelor obţinute. Se
va sublinia importanţa alegerii unui pas de eşantionare adecvat, mai ales la
implementarea ı̂n timp discret a unor compensatoare sintetizate ı̂n raport cu
specificaţiile impuse de problema de reglare asociată.
Este important de reţinut că majoritatea rezultatelor de la sistemele netede
se regăsesc şi la cazul discret, cu anumite excepţii, care de cele mai multe ori
nu sunt conforme cu intuiţia. Din acest motiv, sistemele discrete necesită o
atenţie sporită şi trebuie să facă obiectul unei analize seprate.

7.2. Eşantionarea semnalelor


Un semnal continual f (t) este eşantionat cu ajutorul unui convertor analogic-
numeric (CAN), care la fiecare interval de eşantionare T extrage - ı̂n formă
binară - valoarea semnalului f (kT ), obţinându-se astfel un semnal (cu timp)
discret:
fk := f (kT ).
1
Se numeşte frecvenţă (sau rată) de eşantionare inversul lui T , ν = . Avem
T
de asemenea:
X∞

f (t) = f (kt) δ(t − kT )
k=0

şi

X ∞
X
L{f ∗ (t)}(s) = f (kt) e−k sT = fk z −k = Z{fk }(z),
k=0 k=0

unde Z este transformata Laplace discretă sau transformata Z. Este de re-


marcat relaţia:
z = esT .

129
130 Semnale şi sisteme. Îndrumar de laborator

Pentru a putea reconstrui un semnal continual dintr-un semnal eşantionat,


este necesar ca rata de eşantionare νs = 1/Ts să fie mai mare decât dublul
componentei de cea mai ı̂naltă frecvenţa ν (de amplitudine semnificativă) a
semnalului continuu:
T
νs > 2ν (Ts < ).
2
νs ωs π
În Teoria Sistemelor, se numeşte frecvenţă Nyquist, iar = este aşa-
2 2 Ts
numita pulsaţie Nyquist.
Operaţiunea inversă, de reconstruire a unui semnal continuu dintr-un semnal
discret, se face cu ajutorul unui convertor numeric–analogic (CNA), precedat
de un extrapolator (element de reţinere). În mod uzual se alege un extrapolator
de ordin zero (zero order hold, zoh), care defineşte:

f (t) = fk , kT ≤ t < (k + 1)T.

Alegerea extrapolatorului este esenţială ı̂n determinarea echivalentului discret


al unui sistem cu timp continuu.

7.3. Modele discrete


În cele mai multe cazuri, sistemele discrete se obţin din discretizarea sistemelor
netede. Utilizând un extrapolator de ordin zero şi un eşantionator ideal (vezi
figura 7.1) se poate deduce echivalentul discret al sistemului:

Figura 7.1.: Discretizarea sistemelor continue

r(s)
H(s) = ,
p(s)
discretizat cu perioada T :
 
−1 H(s)
Hd (z) = (1 − z )Z (z). (7.1)
s
Capitolul 7. Sisteme ı̂n timp discret 131

Funcţia de transfer corespunde reprezentării intrare-ieşire:

y(z) = Hd (z) u(z).

7.4. Alte metode de discretizare


În afara metodei prezentate mai sus, există şi alte metode de discretizare a
sistemelor netede. Ne vom concentra atenţia asupra a două dintre acestea,
ambele implementate ı̂n Matlab.

Metoda de potrivire a polilor şi zerourilor (MPZ)


MPZ se bazează pe transformarea:

z = esT ,

care “mută” planul complex al sistemelor netede ı̂n cel corespunzător sisteme-
lor discrete, aşa cum arată şi formula (7.1). Practic, se procedează astfel:

1) Se transformă polii, respectiv zerourile funcţiei de transfer H(s) conform


relaţiilor pd = epc T , zd = ezc T .

2) Dacă H(s) este o raţională strict proprie se adaugă zerouri suplimentare


ı̂n z = −1 (care corespund zerourilor de la ∞ ale lui H(s)), astfel ı̂ncât
gradul numărătorului şi gradul numitorului lui Hd (z) să fie egale.

3) Se impune condiţia ca amplificarea de joasă frecvenţă a lui Hd (z) să fie


aceeaşi cu amplificarea de joasă frecvenţă a lui H(s).

Metoda trapezelor
Această metodă, numită şi metoda Tustin, constă ı̂n ı̂nlocuirea variabilei s cu
expresia:
2 z−1
s← ,
T z+1
unde T este perioada de eşantionare. Astfel,

Hd (z) = H(s)|s= 2 z−1 . (7.2)


T z+1

Această formulă poate fi văzută ca o aproximaţie raţională a exponenţialei


esT = z,
sT 1 + sT /2
e ≈ = z.
1 − sT /2 s= 2 z−1
T z+1

Formula (7.2) se mai poate deduce efectuând o extrapolare bazată pe metoda


trapezelor, ı̂n aproximarea semnalului continual cu o funcţie liniară ı̂ntre 2
eşantioane consecutive.
132 Semnale şi sisteme. Îndrumar de laborator

7.5. Metodologii de sinteză


Una din metodele standard de implementare a unui compensator discret constă
ı̂n sinteza unui compensator neted C(s) care satisface cerinţele de proiectare
impuse de proces, urmată de discretizarea acestuia, obţinându-se echivalentul
său discret D(z).
Elementul cheie ı̂l constituie aici alegerea perioadei de eşantionare: Ts se
alege (euristic) ωs = 20 ÷ 40 ωB , unde ωB este lărgimea de bandă. Este
evident că performanţele SRA sunt influenţate de valoarea lui Ts , vezi Exerciţii
rezolvate.

7.6. Exerciţii rezolvate


Exerciţiul 7.1. Creaţi ı̂n Matlab sistemul:
z
H(z) = .
z2 − 2z + 1
Rezolvare. Modelele discrete se introduc ı̂n mod similar cu cele netede, numi-
torul şi numărătorul fiind consideraţi ca vectori linie, cu coeficienţi ı̂n ordinea
descrescătoare a puterilor lui z. Există şi posibilitatea de a lucra cu funcţii
de transfer in variabila z −1 , formalism care este specific prelucrării numerice
a semnalelor. Funcţia dată se introduce astfel:
>> sysd = tf([1 0], [1 -2 1], -1)
Al treilea parametru semnaleaza faptul că sistemul este cu timp discret şi
poate fi utilizat pentru a specifica pasul de discretizare.
Exerciţiul 7.2. Calculaţi prin metoda MPZ echivalentul discret al sistemului:
s+a
C(s) = Kc .
s+b
Rezolvare. Aceasta va fi:
z − e−aT
D(z) = Kd ,
z − e−bT
unde Kd trebuie determinat conform pasului 2 al metodei. Folosind teorema
valorii finale pentru cazul continuu, respectiv discret, obţinem:

a 1 − e−aT b 1 − e−aT
Kc = Kd , de unde Kd = Kc .
b 1 − e−bT a 1 − e−bT
Exerciţiul 7.3. Studiem aici eşantionarea unui semnal continuu x(t), folosind
P∞
un tren de impulsuri. Astfel, fie p(t) = δ(t − nTs ), unde Ts este perioada
n=−∞
de eşantionare.
a) Calculaţi xp (t) = p(t)x(t).
Capitolul 7. Sisteme ı̂n timp discret 133

b) Calculaţi transformata Fourier P (jω).

c) Găsiţi o expresie a transformatei Fourier Xp (jω) ı̂n funcţie de transformata


Fourier F(x(t)) = X(jω).

Rezolvare.

a) Folosim identitatea x(t)δ(t − nTs ) = x(nTs )δ(t − nTs ). Obţinem:



X
xp (t) = x(nT )δ(t − nTs ).
n=−∞

Aşadar, xp (t) este un tren de impulsuri, de amplitudini egale cu eşantioanele


lui x(t) la intervale nTs .

b) Se observă cu uşurinţă că p(t) este un semnal periodic, de perioadă Ts .


Prin urmare, există dezvoltarea ı̂n serie Fourier a lui p(t):

X
p(t) = ak ejkωs t ,
k=−∞


unde ωs = Ts este pulsaţia de eşantionare, iar

T
Zs /2 T
Zs /2
1 −jωt 1 1
ak = p(t)e dt = δ(t)e−jωt dt = .
Ts Ts Ts
−Ts /2 −Ts /2


1
ejkωs t . Transformata Fourier o determinăm
P
Obţinem că p(t) = Ts
k=−∞
pornind de la definiţie:
Z∞ ∞
2π X
P (jω) = p(t)e−jωt dt = δ(ω − kωs ).
Ts
−∞ k=−∞

R∞
Pentru a obţine ultima egalitate, am folosit identitatea ejω0 t dt = 2πδ(ω0 ).
−∞

c) Folosim proprietatea de modulaţie a transformatei Fourier:

F {p(t)x(t)} = P (jω) ? X(jω),

unde prin operatorul ? am notat convoluţia. Aşadar,



1 X
Xp (jω) = X (j(ω − kωs )) .
Ts
k=−∞
134 Semnale şi sisteme. Îndrumar de laborator

7.7. Exerciţii propuse


Exerciţiul 7.4. Determinaţi echivalentul discret al sistemelor:

1 s 1
, 2 , ,
s s +4 s+3

presupunând că se foloseşte un extrapolator de ordin zero şi o perioadă de


eşantionare egală cu 1 secundă. Folosiţi funcţia c2d cu opţiunea corespunzătoare
pentru parametrul ’method’.

Exerciţiul 7.5. Considerăm sistemul discret:


z
H(z) = .
z2 − 2z + 1

a) Trasaţi răspunsurile la semnalele discrete de tip impuls şi treapta pentru sis-
temul dat. Apelaţi funcţiile Matlab corespunzătoare, i.e., impulse(sysd),
step(sysd) şi folosiţi apoi pentru vizualizarea răspunsurilor funcţia stem.
Verificaţi acurateţea rezultatelor obţinute prin calcul analitic.

b) Specificaţi ı̂n instrucţiunea de mai sus al treilea parametru ca fiind T1 = 3,


respectiv T2 = 8. Trasaţi răspunsurile la semnal de intrare discret de
tip treaptă. Ce se observă? Cu ajutorul funcţiei d2c() determinaţi cele
două sisteme netede din care rezultă H(z) pentru fiecare din valorile T1 ,
T2 . Calculaţi răspunsurile (ı̂n timp continuu) la intrare treaptă pentru cele
două sisteme şi comparaţi răspunsurile cu cele obţinute pentru sistemele
discrete. Comentaţi rezultatele.

Exerciţiul 7.6. Considerăm sistemul dat ı̂n Exerciţiul 7.2:


s+a
C(s) = Kc .
s+b

a) Folosind funcţia Matlab c2dm cu opţiunea matched pentru parametrul ’me-


thod’, scrieţi o funcţie care să calculeze discretizatul lui C(s) pentru diverse
pulsaţii de discretizare.

b) Aplicaţie numerică: Kc = 10, a = 1, b = 10. Pulsaţii de discretizare: 0.2


rad/sec, 20 rad/sec, respectiv 100 rad/sec. Comparaţi răspunsurile ı̂n timp
ale sistemului neted cu cele ale discretizatului, pentru intări de tip treaptă
(utilizaţi funcţiile step şi dstep).

c) Folosind funcţia Matlab c2dm cu opţiunea tustin pentru parametrul ’me-


thod’, calculaţi discretizatul lui C(s). Comparaţi răspunsurile ı̂n timp (la
treaptă) ale sistemului neted cu cele ale discretizatului şi cu cele de la
punctul anterior.
Capitolul 7. Sisteme ı̂n timp discret 135

Exerciţiul 7.7. Fie sistemul de ordinul I:


10
H(s) = .
s + 10
Comparaţi caracteristicile amplitudine-pulsatie ale sistemului neted, respectiv
ale celor discretizate prin toate metodele de mai sus, pentru pulsaţiile de dis-
cretizare ωs = 20 rad/sec, 100 rad/sec şi respectiv 400 rad/sec. Ce se poate
remarca ı̂n punctele ω2s ? Comparaţi ı̂n plus expresiile analitice ale funcţiilor
de transfer ale modelelor discretizate.
z
Exerciţiul 7.8. Fie sistemul discret G(z) = 2 .
z − 0.22z + 0.15
a) Determinaţi polii sistemului folosind conversia ı̂ntre modelul tf şi cel zpk.
Reprezentaţi grafic - ı̂n planul complex - aceşti poli şi analizaţi stabilitatea
sistemului discret G(z).

b) Reprezentaţi grafic răspunsul tranzitoriu la intrare treaptă discretă.


Notă: se poate calcula mai ı̂ntâi analitic răspunsul permanent cu ajutorul
Teoremei Valorii Finale a transformării Z: dacă există lim y(k) = y(∞),
k7→∞
atunci y(∞) = lim (1 − z −1 )Y (z).
z7→1

Exerciţiul 7.9. Pentru un proces descris de funcţia de transfer


1
P (s) = ,
s(s + 1)

s-a proiectat compensatorul


s+2
C(s) = 70 ,
s + 10
care asigură stabiliatea buclei, reglare şi performanţe impuse.

a) Incercaţi să estimaţi (pe baza răspunsului la treaptă) performanţele de


regim staţionar şi de regim tranzitoriu ale SRA propus.

b) Determinaţi echivalentul discret al compensatorului de mai sus la frecvenţele


de eşantionare de 10, 20 şi respectiv 40 Hz. Comparaţi răspunsurile obţinute
prin implementarea lui C(s) şi a echivalentelor discrete ale acestuia. Ce se
constată?

Exerciţiul 7.10. Considerăm sistemul din figura 7.2. Fie ω0 = π.

a) Reprezentaţi grafic semnalele x(t) = cos ω0 t şi xp (t) = p(t)x(t).

b) Reprezentaţi grafic transformatele Fourier X(jω), P (jω), Xp (jω), pentru


−9π ≤ ω ≤ 9π.
136 Semnale şi sisteme. Îndrumar de laborator

Figura 7.2.

c) Reluaţi punctul b) pentru diferite valori ale lui ω0 . Spre exemplu, alegeţi
ω0 ∈ {2 , 3 , 5}. Pentru ce valori ale lui ω0 este xp (t) identic?

Exerciţiul 7.11. Un sistem discret liniar şi invariant ı̂n timp este descris de
următoarea ecuaţie cu diferenţe:

y[n] − 3y[n − 1] + 2y[n − 2] = u[n].

a) Găsiţi H(z) = YU (z)


(z)
. Reprezentaţi polii şi zerourile sistemului ı̂n planul
complex (pzmap) şi indicaţi regiunea de convergenţă.

b) Determinaţi şi reprezentaţi grafic răspunsul la impuls h[n]. Este sistemul


stabil? Justificaţi răspunsul.

c) Calculaţi şi reprezentaţi grafic y[n], pentru u[n] = 3n 1(t). Utilizaţi funcţia
Matlab filter.

Exerciţiul 7.12. Considerăm sistemul ı̂n timp continuu descris de ecuaţia


diferenţială:
ÿ(t) + 5ẏ(t) + 6y(t) = u(t) + 2u̇(t).

a) Determinaţi funcţia de transfer Hc (s) şi răspunsul la impuls hc (t).

b) Determinaţi funcţia de transfer discretă Hd (z) obţinută din Hc (s) prin


metoda potrivirii polilor şi zerourilor. Indicaţie. Verificaţi că
Ak Ak
→ , ∀Ak , pk ∈ R,
s − pk 1 − epk Ts z −1
unde Ts este perioada de eşantionare.

c) Pentru Ts = 0.01 sec, determinaţi funcţia pondere discretă hd [n], asociată


cu Hd (z).

d) Verificaţi că hd [n] = hc (nT ), ∀n ∈ Z.


A. Programe Matlab pentru exerciţii
rezolvate

A.1. Introducere ı̂n Matlab


Exerciţiul 1.2
subplot( 3, 1, 1 );
x = -pi : 0.01 : pi;
plot( x, sin( x ) );
xlabel(’x’);
ylabel(’sin(x)’);
title(’Graficul functiei sin(x)’);
subplot( 3, 1, 2 );
plot( x, 2 * sin( x ) );
xlabel(’x’);
ylabel(’2*sin(x)’);
title(’Graficul functiei 2*sin(x)’);
subplot( 3, 1, 3 );
plot( x, sin( 2 * x ) );
xlabel(’x’);
ylabel(’sin(2x)’);
title(’Graficul functiei sin(2x)’);

Exerciţiul 1.3
t= -2 * pi : 0.01 : 2 * pi;
treapta = zeros( 1 , length( t ) );
treapta (t>=0) = 1;
% Expresia anterioara inloculieste un ciclu for. Justificati!

subplot( 2, 1, 1 );
plot( t, cos( t ) );
xlabel(’t’);
ylabel(’cos(t)’);
title(’Graficul functiei cos(t)’);

subplot( 2, 1, 2 );
plot( t, treapta .* cos( t ) );

137
138 Semnale şi sisteme. Îndrumar de laborator

xlabel(’t’);
ylabel(’1(t) * cos(t)’);
title(’Graficul functiei 1(t) * cos(t)’);

Exerciţiul 1.4
x = 0:pi/100:2*pi;
y1 = 2*cos(x);
y2 = cos(x);
y3 = 0.5*cos(x);
plot(x,y1,’--’,x,y2,’-’,x,y3,’:’)
xlabel(’0 \leq x \leq 2\pi’)
ylabel(’Functia cosinus’)
legend(’2*cos(x)’’cos(x)’’0.5*cos(x)’)
title(’Exemplu tipic de grafice multiple’)
axis([0 2*pi -3 3])

Exerciţiul 1.5
w = -pi : 0.01 : pi;
x = ( 1 + w .^ 2 ) .^ ( -1 );
y = -w .* x;
plot( x, y );

Exerciţiul 1.6
% trian.m
function [ y ] = trian( t )
if ( t > -1 && t < 1 )
y = 1 - abs( t );
else
y = 0;
end

% trasarea graficelor
t = -10 : 0.01 : 10;

alpha1 = input(’Dati alpha subunitar: ’);


alpha2 = input(’Dati alpha supraunitar: ’);

for i = 1 : length( t )
trian_func1( i ) = trian( t( i ) );
trian_func2( i ) = trian( alpha1 * t( i ) );
trian_func3( i ) = trian( alpha2 * t( i ) );
end
Capitolul A. Programe Matlab pentru exerciţii rezolvate 139

plot( t, trian_func1, t, trian_func2, ’r’, t, trian_func3, ’g’ );


ylim( [ -1 2 ] );
xlabel(’t’);
ylabel(’trian(\alphat)’);
title(’Grafice pentru trian(\alphat)’);
legend( ’trian(t)’,’trian(\alphat), 0 < \alpha < 1’, ...
’trian(\alphat), 1 < \alpha < \infty’, ’Location’, ’SouthWest’ );

Exerciţiul 1.7
t= -1 : 0.01 : 2;
ramp = zeros( 1 , length( t ) ); % umplem vectorul cu zerouri

for i = 1 : length( t )
if t( i ) >= 0
ramp( i ) = t( i ); % punem t pentru t >= 0
end
end

hold on
plot( t, ramp );
plot( t, exp( t ), ’r’ );
plot( t, ramp .* exp( t ), ’g’ );
xlabel(’t’);
ylabel(’f(t)’);
title(’ Graficele functiilor ramp(t), e^t si ramp(t) \cdot e^t’);
legend( ’ramp(t)’, ’e^t’, ’ramp(t) \cdot e^t’,...
’Location’, ’NorthWest’ );
hold off

A.2. Semnale
Exerciţiul 2.1
function y=cont_conv(h,u,N)
% cont_conv.m
%N este vectorul cu numarul de puncte al diviziunii
M=10; %orizontul de timp
l=(2*M)./N ;% lungimea intervalului de esantionare
x=0.1:0.1:M;
for i=1:length(N)
disp(’Numarul de puncte al diviziunii este:’)
140 Semnale şi sisteme. Îndrumar de laborator

N(i)
for t=0.1:0.1:M
y(round(t*10))=0;
j=-M;

while(j<=M)
y(round(t*10))=y(round(t*10))+feval(h,(t-j))*feval(u,j);
j=j+l(i);
end
end
figure;
y=y*l(i);
plot(x,y);
disp(’Apasati orice tasta!’);
pause;
end

function y=discr_conv(h,u,M)
% discr_conv.m
% y este produsul de convolutie dintre h si u.
% M este un vector de intregi,
% cu semnificatia orizontului de timp.
clc;
for i=1:length(M)
disp(’Orizontul de timp este:’)
-M(i)
M(i)
for n=1:M(i)
y(n)=0;
for j=-M(i):M(i)
y(n)=y(n)+feval(h,(n-j))*feval(u,j);
end
end
y
figure;
stem(y);
disp(’Apasati orice tasta!’);
pause;
end

*********Delta.m***********
function f=Delta(n)
if n==0
f=1;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 141

else
f=0;
end

********exp_baza_a.m*********
function f=exp_baza_a(n)
f=0.9^abs(n);

********discr_step.m*********
function f=discr_step(n)
if n<0
f=0;
else
f=1;
end

************exp_neg.m*******
function f=exp_neg(t)
if t>=0
f=exp(-t);
else
f=0;
end

************rect.m***********
function f=rect(t)
if abs(t)<=(1/2)
f=1;
else
f=0;
end

*******Ex1_a.m********
clc;
M=[50 100 150];
discr_conv(@discr_step,@discr_step,M)

********Ex1_b.m*******
clc;
M=[30 100 200];
discr_conv(@exp_baza_a,@exp_baza_a,M)

*******Ex1_c.m*********
clc
142 Semnale şi sisteme. Îndrumar de laborator

M=[30 150 200];


discr_conv(@Delta,@exp_baza_a,M)

*******Ex1_d.m*************
clc;
N=[20 80 350 ];
cont_conv(@rect,@rect,N)

********Ex1_e.m*******
clc;
N=[20 80 350 ];
cont_conv(@exp_neg,@exp_neg,N)
h=tf([1],[1 1]);
figure;
impulse(series(h,h));

Exerciţiul 2.2
clc; clear; close all;

tau = input(’Dati valoarea lui tau:’);


t= -10 : 0.01 : 10;
treapta = zeros(1,length(t)); % umplem vectorul cu zerouri
for i = 1 : length( t )
if t( i ) >= 0
treapta( i ) = 1; % punem 1 pentru t >= 0
end
end

subplot(311);
plot(t, treapta );
ylim([ 0 2 ]);
xlabel(’t’);
ylabel(’1(t)’);
title(’Functia treapta’);

subplot(312);
plot(t + tau, treapta);
ylim([ 0 2 ]);
xlabel(’t’);
ylabel(’1(t-\tau)’);
title(’Functia treapta intarziata cu \tau’);

subplot(313);
Capitolul A. Programe Matlab pentru exerciţii rezolvate 143

plot( t - tau, treapta );


ylim([ 0 2 ]);
xlabel(’t’);
ylabel(’1(t+\tau)’);
title(’Functia treapta devansata cu \tau’);

Exerciţiul 2.3
******d_n.m*****
%functia de la exemplul Exercitiul 3a)
function y=d_n(n,t)
if abs(t)<=1/(2*n)
y=n;
else
y=0;
end

******trian.m**********
%functia de la exemplul Exercitiul 3b)
function y=trian(n,t)
%intoarce trian(nt)
if abs(t)<=1/(n)
y=1-abs(n*t);
else
y=0
end

*******belll.m**************
function f=belll(t)
f=(1/sqrt(2*pi))*exp(-(t^2)/2);

*******Ex3_a.m************
clear all
hold on
for n=1:3:78
l=1/(n*200);% 20 de puncte in intervalul -1/2n, 1/2n
t=-1/(2*n):l:1/(2*n);
for i=1:length(t)
y(i)=d_n(n,t(i));
end
plot(t,y);
end
hold off
144 Semnale şi sisteme. Îndrumar de laborator

*****Ex3_b.m***********
clear all
hold on
for n=1:3:43
l=1/(n*100);
%(2/n)/200 distanta dintre puncte in intervalul -1/n, 1/n
t=-1/(n):l:1/(n);
for i=1:length(t)
y(i)=n*trian(n,t(i));
end
plot(t,y);
end
hold off

*********Ex3_c.m***********
clear all
hold on
for n=1:3:19
t=-5:0.1:5;
for i=1:length(t)
y(i)=n*belll(n*t(i));
end
plot(t,y);
end
hold off

% Solutie alternativa
% ex3.m
clear; clc; close all;

n = 100;
t = -1:1e-3:1;

d1 = zeros(1,length(t));
d1(-1/2/n<=t & t<=1/2/n) = n;
figure(1);
plot(t,d1); grid
ylim([-0.1 n+0.1]);

d2 = zeros(1,length(t));
aux = (-1/n<=t) & (t<=1/n);
d2(aux) = 1-abs(n*t(aux));
Capitolul A. Programe Matlab pentru exerciţii rezolvate 145

figure(2);
plot(t,n*d2); grid

d3 = exp(-(n*t).^2/2)/sqrt(2*pi);
figure(3);
plot(t,n*d3); grid

Exerciţiul 2.4
******belll_1.m***********
function f=belll_1(t)
f=(1/sqrt(2*pi))*exp(-(t^2)/2)*t;

*****belll_2.m**********
function f=belll_2(t)
f=(-1/sqrt(2*pi))*exp(-(t^2)/2)*(1-t^2);

******belll_3.m**********
function f=belll_3(t)
f=(1/sqrt(2*pi))*exp(-(t^2)/2)*(3-t^2)*t;

*******Ex4_a.m************
hold on
for n=1:3:19
t=-5:0.01:5;
for i=1:length(t)
y(i)=n*belll_1(n*t(i));
end
plot(t,y);
end
hold off

*****Ex4_b.m**********

hold on
for n=1:3:80
t=-5:0.01:5;
for i=1:length(t)
y(i)=n^2*belll_2(n*t(i));
end
plot(t,y);
end
hold off
146 Semnale şi sisteme. Îndrumar de laborator

*****Ex4_c.m*********

hold on
for n=1:3:12
t=-5:0.01:5;
for i=1:length(t)
y(i)=n^3*belll_3(n*t(i));
end
plot(t,y);
end
hold off

Exerciţiul 2.5
********Phi.m*******
function y=Phi(t)
if abs(t)<=(1/2)
y=1-4*(t^2);
else
y=0;
end

**********Ex5a.m**********
clc;
%Phi(0)=1
i=1;%numarul de n-uri iterate
for n=2:15:900
M=1/2*n; %orizontul de timp (pe care d_n nu e zero)
N=100;%nr. de puncte al diviziunii
l=2*M/N;
j=-M;
epsilon(i)=0;
while(j<=M)
epsilon(i)=epsilon(i)+d_n(n,j)*Phi(j)-1;
j=j+l;
end
i=i+1;
end
disp(’Evolutia erorii odata cu cresterea lui n:’)
epsilon

*********Ex5b.m****************
clc;
%Phi(0)=1
Capitolul A. Programe Matlab pentru exerciţii rezolvate 147

i=1;%numarul de n-uri iterate


for n=2:15:500

M=1/n; %orizontul de timp (pe care trian nu e zero)


N=100;%nr. de puncte al diviziunii
l=2*M/N;
j=-M;
epsilon(i)=0;
while(j<=M)
epsilon(i)=epsilon(i)+n*trian(n,j)*Phi(j)-1;
j=j+l;
end
i=i+1;
end

disp(’Evolutia erorii odata cu cresterea lui n:’)


epsilon

*********Ex5c.m**************
clc;
%Phi(0)=1
i=1;%numarul de n-uri iterate
for n=2:15:900
M=3/n;
%orizontul de timp sub care se afla graficul lui bell(nt)
N=30;%nr. de puncte al diviziunii
l=2*M/N;
j=-M;
epsilon(i)=0;
while(j<=M)
epsilon(i)=epsilon(i)+n*belll(n*j)*Phi(j)-1;
j=j+l;
end
i=i+1;
end
disp(’Evolutia eroarii odata cu cresterea lui n:’)
epsilon

Exerciţiul 2.6
N=1024; %Numarul de puncte din semnal
T=10; %Lungimea intervalului de esantionare
t=[0:N-1]*T/N; % Axa timpului (normalizata)
%frecventele si amplitudinile semnalului
148 Semnale şi sisteme. Îndrumar de laborator

f1 = 2; a1 = 7;
f2 = 3; a2 = 11;
f3 = 5; a3 = 13;
% Definim semnalul
f = a1*sin(2*pi*f1*t) + a2*sin(2*pi*f2*t) + a3 * sin(2*pi*f3*t);

figure(1)
plot(t,f);
%grid
xlabel(’Timp(s)’);
ylabel(’Amplitudine’);
title(’Semnalul f(t)’);

%Calculul transformatei Fourier folosit FFT


F=fft(f); %coeficientii Fourier
%Amplitudinea transformatei Fourier
%impartirea la N/2 este o conventie a functiei FFT din Matlab
p=abs(F)/(N/2);
p=p(1:N/2); %Ne intereseaza doar frecventele pozitive
%Calculam frecventele in Hz (FFT returneaza frecvente in radiani)
freq=[0:N/2-1]/T;

figure(2)
plot(freq,p);
xlabel(’Time (s)’);
title(’Componentele Fourier ale semnalului f(t)’);
xlim([0 10]);

Exerciţiul 2.7
%semnalul dreptunghiular cu T=1 si T1=1/4
figure(1)
t=-1.5:0.005:1.5;
xcos=cos(2*pi*t);
xpsqw=xcos>0;
plot(t,xpsqw);
xlabel(’Timp(s)’);
ylabel(’Amplitudine’)
title(’Semnal periodic dreptunghiular (T=1)’)
ylim([-0.1 1.1]);

% Coeficientii Fourier in planul complex


figure(2);
k=-15:15;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 149

T=1;
T1=1/4;
ak1=sin(k*2*pi*(T1/T))./(k*pi);
ak1(16)=2*T1/T;
subplot(3,1,1);
stem(k,ak1);
ylabel(’ak’)
title(’Coeficientii seriei Fourier pentru semnalul...
dreptunghiular (T=1, T1=1/4)’)

T1=1/8;
ak2=sin(k*2*pi*(T1/T))./(k*pi);
ak2(16)=2*T1/T;
subplot(3,1,2);
stem(k,ak2);
ylabel(’ak’)
title(’Coeficientii seriei Fourier pentru semnalul...
dreptunghiular (T=1, T1=1/8)’)

T1=1/16;
ak3=sin(k*2*pi*(T1/T))./(k*pi);
ak3(16)=2*T1/T;
subplot(3,1,3);
stem(k,ak3);
xlabel(’k’);
ylabel(’ak’)
title(’Coeficientii seriei Fourier pentru semnalul...
dreptunghiular (T=1, T1=1/16)’)

% Reconstructia pentru M=10


figure(3);set(gcf,’defaultaxesfontsize’,9)
T1=1/4;w0=2*pi/T;
M=10;k=-M:M;
ak=sin(k*2*pi*(T1/T))./(k*pi);
ak(M+1)=2*T1/T; %corectie pentru a0 -> ak(M+1)
x=zeros(1,length(t));
for k=-M:M
x=x+ak(k+M+1)*exp(j*k*w0*t);
end
plot(t,real(x));grid;xlabel(’t’);ylabel(’f(t)’)
title(’Reconstructie din serie Fourier cu 21 de termeni’)

% Reconstructie pentru M=20


figure(4);set(gcf,’defaultaxesfontsize’,9)
150 Semnale şi sisteme. Îndrumar de laborator

M=20;k=-M:M;
ak=sin(k*2*pi*(T1/T))./(k*pi);
ak(M+1)=2*T1/T; %corectie pentru a0 -> ak(M+1)
x=zeros(1,length(t));
for k=-M:M
x=x+ak(k+M+1)*exp(j*k*w0*t);
end
plot(t,real(x));grid;xlabel(’t’);ylabel(’f(t)’)
title(’Reconstructie din serie Fourier cu 41 de termeni’)

% Reconstructie cu M=100
figure(5);set(gcf,’defaultaxesfontsize’,9)
M=100;k=-M:M;
ak=sin(k*2*pi*(T1/T))./(k*pi);
ak(M+1)=2*T1/T; %corectie pentru a0 -> ak(M+1)
x=zeros(1,length(t));
for k=-M:M
x=x+ak(k+M+1)*exp(j*k*w0*t);
end
plot(t,real(x));grid;xlabel(’t’);ylabel(’x(t)’)
title(’Reconstructie din serie Fourier cu 201 de termeni’)

Exerciţiul 2.8
load sunspot.dat
year = sunspot(:,1);
wolfer = sunspot(:,2);
figure(1)
plot(year, wolfer);
title( ’Sunspot Data’ );

Y = fft(wolfer); % Aplicam TF datelor


N = length(Y);
Y(1) = [ ];
power = abs(Y(1:N/2)).^2;
nyquist = 1/2;
freq = (1:N/2)/(N/2)*nyquist;

figure(2)
plot(freq,power), grid on
xlabel(’cycles/year’)
title(’Periodogram’)

T = 1./freq;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 151

figure(3)
plot(T, power)
axis([0 40 0 2e7]), grid on
ylabel(’Power’)
xlabel(’Period(Years/Cycle)’)

Exerciţiul 2.9
function analiza(fisier)

[y, Fs] = wavread(fisier);


% y este semnalul audio, Fs este frecventa de esantionare
t = (1:length(y))/Fs; % timpul

ind = find(t>0.1 & t<0.12);


% intervalul de timp pentru care se afiseaza forma de unda
figure; subplot(1,2,1)
plot(t(ind),y(ind))
axis tight
title([’Forma de unda pentru ’ fisier])

N = 2^12; % numarul de puncte pentru fft


c = fft(y(1:N))/N; % calculul TF
p = 2*abs( c(2:N/2)); % puterea la fiecare frecventa
f = (1:N/2-1)*Fs/N; % frecventa corespunzatoare lui p

subplot(1,2,2)
semilogy(f,p)
axis([0 4000 10^-4 1])
title([’Spectrul de Putere pentru ’ fisier])

function sinteza(file,f,d,p)
% Functia creeaza un fisier audio .wav unde frecventa
% fundamentala si amplitudinea (puterea) armonicelor
% sunt specificate.
%
% fisier numele fisierului .wav
% f frecventa fundamentala in Hz
% d durata in sec
% p vectorul de putere

Fs=22050; nbits=8; % frecventa si bit rate pentru fisierul .wav


152 Semnale şi sisteme. Îndrumar de laborator

t = linspace(1/Fs, d, d*Fs); % timpul


y = zeros(1,Fs*d); % initializarea semnalului
for n=1:length(p);
y = y + p(n)*cos(2*pi*n*f*t); % sinteza semnalului
end
y = .5*y/max(y);
% normalizare; coeficientul ajusteaza volumul
wavwrite( y, Fs, nbits, file)

% Sinteza vocalelor
vocale = ’UOAEI’;
ff=1; mf = .7; f = .3; p = .1; pp = .07;
power = [ ff mf pp 0 0 0 ;...
mf f mf p 0 0 ;...
p p p mf mf p ;...
mf 0 mf 0 0 ff ;...
mf p 0 0 0 p];
power(3,8)=p;
power(5,16) = mf;
for j=1:5
sinteza([’Sinteza-’ vocale(j) ’.wav’], 220, 3, power(j,:))
end

A.3. Sisteme
Exerciţiul 3.2
a)

clear; clc; close all;


n = -10:10;
t = -10:.01:10;

u1d = exp(-n); u2d = n.*cos(pi*n);


y1d = fliplr(u1d); y2d = fliplr(u2d);
u1 = exp(-t); u2 = t.*cos(pi*t);
y1 = u1.*cos(t+1); y2 = u2.*cos(t+1);

figure; subplot(211); stem(n,u1d);


xlabel(’n’);
ylabel(’u_{1d}[n]’)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 153

title(’Raspunsul sistemului \Sigma_1 la u_1[n]’)


subplot(212); stem(n,y1d,’r’);
xlabel(’n’);
ylabel(’y_{1d}[n]’)

figure; subplot(211); stem(n,u2d);


xlabel(’n’);
ylabel(’u_{2d}[n]’)
title(’Raspunsul sistemului \Sigma_1 la u_2[n]’)
subplot(212); stem(n,y2d,’r’);
xlabel(’n’);
ylabel(’y_{2d}[n]’)

figure; subplot(211); plot(t,u1);


xlabel(’t’);
ylabel(’u_{1}(t)’)
title(’Raspunsul sistemului \Sigma_2 la u_1(t)’)
subplot(212); plot(t,y1,’r’);
xlabel(’t’);
ylabel(’y_{1}(t)’)

figure; subplot(211); plot(t,u2);


xlabel(’t’);
ylabel(’u_{2}(t)’)
title(’Raspunsul sistemului \Sigma_2 la u_2(t)’)
subplot(212); plot(t,y2,’r’);
xlabel(’t’);
ylabel(’y_{2}(t)’)

c)
a = 10;
t = linspace(-a,a,2000*a);

% Sistemul 1
u1 = exp(-t/10).*sin(6*t);
u2 = sinc(t);
u = u1+u2;

y1 = (t.^2).*u1;
y2 = (t.^2).*u2;
y = (t.^2).*u;
yp = y1+y2;
154 Semnale şi sisteme. Îndrumar de laborator

figure(1);
plot(t,y,t,yp,’--r’); grid;
title(’Sistemul 1’);
legend(’y(t)=t^2u(t)’,’y(t)=y_1(t)+y_2(t)’);

% Sistemul 2
y1 = u1.^2;
y2 = u2.^2;
y = u.^2;
yp = u1+u2;

figure(2)
plot(t,y,t,yp,’-r’); grid
title(’Sistemul 2’);
legend(’y(t)=u^2(t)’,’y(t)=y_1(t)+y_2(t)’);

Exerciţiul 3.5

clear; close all

Fs = 1000;
t = 0:1/Fs:15;
u = cos(2*t).*sin(30*t);
h = exp(-t);
H = tf(1,[1 1]);

y1 = conv(h,u)/Fs;
y2 = lsim(H,u,t);
y3 = dsolve(’Dy+y=cos(2*t)*sin(30*t)’,’y(0)=0’);

subplot(311);
plot(t,y1(1:length(y2)),’g’); grid
xlabel(’t’); ylabel(’y(t) prin conv’)
title(’Raspuns in timp al circuitului RC prin 3 metode’)

subplot(312);
plot(t,y2,’r’); grid
xlabel(’t’); ylabel(’y(t) prin lsim’)

subplot(313);
ezplot(y3,[0 15]); grid
xlabel(’t’); ylabel(’y(t) prin dsolve’)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 155

A.4. Răspunsul dinamic


Exercitiul 4.1
H_1=tf([1 5],[1 3 2 0])
H_1=zpk([-5],[0 -1 -2],1)
H_2=tf(3,[1 -16 0])

%ca obiect
s=tf(’s’);
H_1=(s+5)/(s*(s+1)*(s+2))
H_2=3/(s^2-16)

Exerciţiul 4.3
%varianta I
function ex1(sigma)
H=tf(1,[1 sigma]);
impulse(H)

%varianta II
figure (1)
hold on
for alfa=4:4:8
H=tf(1,[1 alfa]);
impulse(H);
end
hold off

figure (2)
hold on
for alfa=-8:4:-4
H=tf(1,[1 alfa]);
impulse(H);
end
hold off

Exerciţiul 4.4
t=1:0.01:30;
for T=1:1:21
H=tf([4],[T 1]);
[y,t]=impulse(H,t);
z(T,:)=y’;
end
156 Semnale şi sisteme. Îndrumar de laborator

T=1:1:21;
mesh(t,T,z);

Exerciţiul 4.5

H=tf([1],[7 1])
hold on
impulse(H)
K=1;
T=7;
t=0:0.01:T;
for i=1:length(t);
x(i)=K/T-(K/(T*T))*t(i);
end
plot(t,x,’r’)
hold off
grid

Exerciţiul 4.6

t=1:0.01:30;
for T=1:1:21
H=tf([1],[T 1]);
[y,t]=step(H,t);
z(T,:)=y’;
end T=1:1:21
mesh(t,T,z)

Exerciţiul 4.7

H=tf([6],[5 1])
hold on
step(H)
K=6;
T=5;
t=0:0.01:T;
for i=1:length(t)
x(i)=K/T*t(i);
end
plot(t,x,’r’)
hold off
grid
Capitolul A. Programe Matlab pentru exerciţii rezolvate 157

Exerciţiul 4.8
%luati ca exemplu K=1, T=0.8
function ex6(K,T)
hold on
H=tf(K,[T 1]);
H1=tf(1,[1 0 0]);
impulse(series(H1,H),5)
t=0:0.01:5*T;
for i=1:length(t)
x(i)=-K*T+K*t(i);
end
plot(t,x,’r’) %raspunsul permanent
t=0:0.01:5*T; for i=1:length(t) z(i)=K*T*exp(-t(i)/T); end
plot(t,z,’g’) %raspunsul tranzitoriu
hold off
grid

Exerciţiul 4.9
function ex7(K,T,w)
H=tf([K],[T 1]);
t=0:0.1:10;
u=exp(-w*i*t);
[y,l]=lsim(H,u,t);
plot(t,y)
hold on
y_p=K/sqrt(1+T*T*w*w)*sin(w*t-atan(T*w));
plot(t,y_p,’r’)
hold off

Exerciţiul 4.10
function ex8(p1,p2)
s=tf(’s’);
H=1/((s+p1)*(s+p2))
impulse(H)

ExerciţiIle 4.11, 4.12


function grad2(K,T1,alpha)
s=tf(’s’);
H=K/((T1*s+1)*(alpha*T1*s+1));
H1=K/(alpha*T1*s+1);
H2=K/(T1*s+1)
158 Semnale şi sisteme. Îndrumar de laborator

figure(1)
hold on
impulse(H)
impulse(H1,’r’)
impulse(H2,’g’)
hold off
figure(2)
hold on
step(H)
step(H1,’r’)
step(H2,’g’)
hold off

Exerciţiul 4.13
function ex11(zeta,w_n)
H=tf([w_n*w_n],[1 2*zeta*w_n w_n*w_n]);
figure(1)
[y,t]=impulse(H);
plot(w_n*t,y)
figure(2)
[y,t]=step(H);
plot(w_n*t,y)
figure(3)
t=0:0.1:10;
w=5;
%u=exp(-w*i*t);
u=cos(-w_n*t);
[y,l]=lsim(H,u,t);
plot(t,y)

Exerciţiul 4.14
%luati ca exemplu zeta=0.2 si w_n=3
function ex13(zeta,w_n)
H=tf([w_n*w_n],[1 2*zeta*w_n w_n*w_n]);
step(H)
hold on
k=0:0.1:50;
y=1-exp(-zeta*w_n*k);
plot(k,y,’r’)
k=0:0.1:50;
y=1+exp(-zeta*w_n*k);
plot(k,y,’g’)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 159

Exerciţiul 4.15

clc;
clear all;

%graficul sigma(zeta)
zeta=0:0.002:1;
hold on
for i=1:length(zeta)
sigma=exp((-pi*zeta(i))/(sqrt(1-zeta(i)^2)));
plot(zeta(i),sigma);
end
xlabel(’zeta’);
ylabel(’sigma(zeta)’);
hold off

%graficul w_n*Tt(zeta)
figure;
zeta=0.1:0.002:1;
hold on
for i=1:length(zeta)
Tt=4/zeta(i);
plot(zeta(i),Tt);
end
xlabel(’zeta’);
ylabel(’w_n*Tt(zeta)’);
hold off

%graficul w_n*Tt(zeta)
figure;
zeta=0:0.002:0.96;
hold on
for i=1:length(zeta)
Tt=pi/(sqrt(1-zeta(i)^2));
plot(zeta(i),Tt);
end
xlabel(’zeta’);
ylabel(’w_n*Tt(zeta)’);
hold off

%graficul aproximatiilor lui w_n*Tc


%aproximatie pe intervalul (0.3,0.8)
figure;
160 Semnale şi sisteme. Îndrumar de laborator

zeta=0:0.002:1;
hold on
for i=1:length(zeta)
Tc=2.16*zeta(i)+0.6;
plot(zeta(i),Tc);
end
for i=1:length(zeta)
Tc=1.8;
plot(zeta(i),Tc);
end
xlabel(’zeta’);
ylabel(’w_n*Tc(zeta)’);
hold off

Exerciţiul 4.16

clc;
clear all;

%graficul aproximatiilor lui w_n*Tc


%aproximatie pe intervalul (0.3,0.8)
figure;
zeta=0:0.002:1;
hold on
for i=1:length(zeta)
Tc=2.16*zeta(i)+0.6;
plot(zeta(i),Tc);
end
for i=1:length(zeta)
Tc=1.8;
plot(zeta(i),Tc);
end
xlabel(’zeta’);
ylabel(’w_n*Tc(zeta)’);

%graficul folosind rutina de calcul a lui Tc


k=1
for zeta=0:0.025:1
w_n=1;
num=[1];
Capitolul A. Programe Matlab pentru exerciţii rezolvate 161

den=[1 2*zeta*w_n w_n^2];

Yp=polyval(num,0)/polyval(den,0); % regimul permanent.


H=tf(num,den);
[y,t]=step(H);
n=length(t);
uu=t(n)/n;

%Calculul lui Tc
for i=1:length(t)
if y(i)>=0.1*Yp
t_i=i; break
end
end

for j=i:length(t)
if y(j)>=0.9*Yp
t_f=j; break
end

end

Tc=(t_f-t_i)*uu;
a(k)=zeta;
b(k)=Tc;
k=k+1;

end
plot(a,b,’bp-’);

Exerciţiul 4.17
clc;
clear all;

zeta=0.3; %fixat

%graficul sigma(w_n)
w_n=0.2:0.1:15;
162 Semnale şi sisteme. Îndrumar de laborator

hold on
for i=1:length(w_n)
sigma=exp((-pi*zeta)/(sqrt(1-zeta^2)));
plot(w_n(i),sigma);
end
xlabel(’w_n’);
ylabel(’sigma(w_n)’);
hold off

%graficul Tv(w_n)
figure;
w_n=0.2:0.1:15;
hold on
for i=1:length(w_n)
Tv=pi/w_n(i)*(sqrt(1-zeta^2));
plot(w_n(i),Tv);
end
xlabel(’w_n’);
ylabel(’Tv(w_n)’);
hold off

%graficul Tt(w_n)
figure;
w_n=0.2:0.1:15;
hold on
for i=1:length(w_n)
Tv=4/w_n(i)*zeta;
plot(w_n(i),Tv);
end
xlabel(’w_n’);
ylabel(’Tt(w_n)’);
hold off

%graficul Tc(w_n) folosind aproximatia liniara


figure;
w_n=0.2:0.1:15;
hold on
for i=1:length(w_n)
Tc=(2.16*zeta+0.6)/w_n(i);
plot(w_n(i),Tc);
Capitolul A. Programe Matlab pentru exerciţii rezolvate 163

end
xlabel(’w_n’);
ylabel(’Tc(w_n)’);

%graficul folosind rutina de calcul a lui Tc


k=1
for w_n=0.2:0.5:15.2
zeta=0.2;
num=[1];
den=[1 2*zeta*w_n w_n^2];

Yp=polyval(num,0)/polyval(den,0); % regimul permanent.


H=tf(num,den);
[y,t]=step(H);
n=length(t);
uu=t(n)/n;

%Calculul lui Tc
for i=1:length(t)
if y(i)>=0.1*Yp
t_i=i; break
end
end

for j=i:length(t)
if y(j)>=0.9*Yp
t_f=j; break
end

end

Tc=(t_f-t_i)*uu;
a(k)=w_n;
b(k)=Tc;
k=k+1;

end
plot(a,b,’r:’);
164 Semnale şi sisteme. Îndrumar de laborator

hold off

Exerciţiul 4.18
%Se dau Tc, sigma, Tt ;

clc;
clear all;

Tc=0.6;
Tt=3;
sigma=0.1;

hold on;

w_n=1.8/Tc;
alpha=pi/2:0.01:3*pi/2;
x=w_n*cos(alpha);
y=w_n*sin(alpha);

plot(x,y);

sigma_d=4/Tt;
y=-5:0.01:5;
for i=1:length(y)
plot(-sigma_d, y(i))
end

zeta_=-(log(sigma))/sqrt((pi^2+(log(sigma))^2))

m=tan(pi/2-asin(zeta_));
x=-3.5:0.01:0;
y=m*x;
plot(x,y);

m=-tan(pi/2-asin(zeta_));
y=m*x; plot(x,y);

disp(’Am trasat domeniul specificat prin


cerintele de performanta. Apasati orice tasta.’)
pause;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 165

%Exemplu de poli alesi astfel incat sa ineplineasca cerintele:

plot(-4,1,’r+’);
plot(-4,-1,’r+’);

disp(’Poli alesi in interiorul domeniului, trasati cu rosu.


Apasati orice tasta.’)
pause;

num=[17];
den=[1 8 17];
hold off

figure(2);
H=tf(num, den);
step(H);

disp(’Poli alesi in afara domeniului, trasati cu verde.


Apasati orice tasta.’);
pause;

figure(1);
hold on;
plot(-1,1,’gp’);
plot(-1,-1,’gp’);
hold off;

num=[2];
den=[1 2 2];
hold off

figure(3);
H=tf(num, den);
step(H);

Exerciţiul 4.20
Indicaţie:
H1=tf([0.1 5],[1 0]);
H2=tf([100 100],[1 2 100]);
figure(1)
step(feedback(series(H1,H2),1))
166 Semnale şi sisteme. Îndrumar de laborator

a=roots([1 12 610 500])


figure(2)
hold on; plot(a(1),’+’)
plot(a(2),’r+’)
plot(a(3),’g+’)
hold off
figure(1)
hold on
H3=tf([abs(a(1))*abs(a(1))],[1 -2*real(a(1)) abs(a(1))*abs(a(1))])
step(H3)
hold off

Exerciţiul 4.21
function zerou(zeta,alfa,w_n)
s=tf(’s’);
H=w_n^2*(1+(s/(zeta*w_n*alfa)))/(s^2+2*zeta*w_n*s+w_n^2);
figure(1)
[y,t]=step(H);
plot(w_n*t,y)
figure(2)
[y,t]=impulse(H);
plot(w_n*t,y)

***********************************************************
varianta cu mesh
***********************************************************
function zeroumesh(zeta,w_n)
t=1:0.01:30;
for alfa=1:21
s=tf(’s’);
H=w_n^2*(1+(s/(zeta*w_n*alfa)))/(s^2+2*zeta*w_n*s+w_n^2);
[y,t]=impulse(H,t);
z(alfa,:)=y’;
end
alfa=1:21;
figure(1)
mesh(w_n*t,alfa,z)
t=1:0.01:30;
for alfa=1:21
s=tf(’s’);
H=w_n^2*(1+(s/(zeta*w_n*alfa)))/(s^2+2*zeta*w_n*s+w_n^2);
[y,t]=step(H,t);
z(alfa,:)=y’;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 167

end
alfa=1:21;
figure(2)
mesh(w_n*t,alfa,z)

Exerciţiul 4.22

function pol(zeta,alfa,w_n)
s=tf(’s’);
H=w_n^2/((s^2+2*zeta*w_n*s+w_n^2)*(1+(s/(zeta*w_n*alfa))));
figure(1)
[y,t]=step(H);
plot(w_n*t,y)
figure(2)
[y,t]=impulse(H);
plot(w_n*t,y)
*******************************************************
varianta cu mesh
*******************************************************
function polmesh(zeta,w_n)
t=1:0.01:30;
for alfa=1:10
s=tf(’s’);
H=w_n^2/((s^2+2*zeta*w_n*s+w_n^2)*(1+(s/(zeta*w_n*alfa))));
[y,t]=impulse(H,t);
z(alfa,:)=y’;
end
alfa=1:10;
figure(1)
mesh(w_n*t,alfa,z)
t=1:0.01:30;
for alfa=1:10
s=tf(’s’);
H=w_n^2/((s^2+2*zeta*w_n*s+w_n^2)*(1+(s/(zeta*w_n*alfa))));
[y,t]=step(H,t);
z(alfa,:)=y’;
end
alfa=1:10;
figure(2)
mesh(w_n*t,alfa,z)
168 Semnale şi sisteme. Îndrumar de laborator

A.5. Diagramele Bode


Exerciţiul 5.1
num = [2 1];
den = conv([1 0],[10 1]);
den = conv(den,[1 4 8]);

H = tf(num,den);
hold on;
bodeasym(H,’r’)
bode(H)

Exerciţiul 5.2
num = [10 0 10];
den = conv([1],[0.11]);
den = conv(den,[0.05 1]);

H = tf(num,den)
bode(H)

Exerciţiul 5.3
function ex3(alfa, beta)
num=[alfa 1];
den=[beta 1];
H=tf(num,den)
hold on
bodeasym(H)
bode(H)
% modulul este 1. Graficul fazei se pastreaza.
% Se considera 2 cazuri : alfa<beta, alfa>beta.

Exerciţiul 5.4
function ex4(a)
num = [1 -a];
den = [1 a];
H = tf(num,den)
bode(H)

Exerciţiul 5.8
% element de ordin 2
% parametrizat in functie de zeta in R (Bode)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 169

w=1:0.1:101;
for zeta=-50:50
H=tf(4,[1 4*(zeta-1) 4]);

[mag,phase]=bode(H,w);
mag_dB=20*log10(mag);

for i=1:length(w)
X(51+zeta,i)=mag_dB(1,1,i);
Y(51+zeta,i)=phase(1,1,i);
end
end

zeta=-50:50;
mesh(w,zeta,X)
figure; mesh(w,zeta,Y)

Exerciţiul 5.9
a.

t = linspace(-3,3,1000);
x = 1 + cos(2*pi*t)/2 + cos(4*pi*t) + 2/3*cos(6*pi*t);
plot(t,x); hold on; grid
xlabel(’Timp’);
ylabel(’x(t)’);
title(’Graficul semnalului x(t)’);

b.

om = logspace(-2,2,100);
H = 1./sqrt(om.^2+1);
H = db(H);

semilogx(om,H,’LineWidth’,2); grid
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Modulul H(\omega) (dB)’)
title(’Modulul raspunsului in frecventa’)
axis([.01 100 -40 0]);

Exerciţiul 5.10
a.

om = logspace(-2,2,100);
170 Semnale şi sisteme. Îndrumar de laborator

for RC=1:7
H = 1./sqrt((RC*om).^2+1);
H = db(H);
P = atan(-om*RC);

subplot(121);
semilogx(om,H,’LineWidth’,2); grid; hold on
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Modulul H(\omega) (dB)’)
title(’Modulul raspunsului in frecventa’)

subplot(122);
semilogx(om,360*P/2/pi); grid; hold on
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Faza \phi(\omega) (grade)’)
title(’Argumentul raspunsului in frecventa’)
end

b.

RC = 5;
om = logspace(-3,3,100);
H = RC*om./sqrt((RC*om).^2+1);
H = db(H);
P = atan(1./(RC*om));

subplot(211)
semilogx(om,H,’LineWidth’,2); grid
ylabel(’Modulul H(\omega) (dB)’)
title(’Modulul raspunsului in frecventa’)
axis([.001 1000 -40 10]);

subplot(212)
semilogx(om,360*P/2/pi); grid; hold on
xlabel(’Pulsatia \omega (rad/s)’)
ylabel(’Faza \phi(\omega) (grade)’)
title(’Argumentul raspunsului in frecventa’)

c.

H = tf(1,[0.1 1]);
t = -1:0.001:10;
u = zeros(1,length(t));
e = randn(1,length(t))/30;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 171

u(t>=0)=1;
u = u+e;
lsim(H,u,t); grid

Exerciţiul 5.11
a.

omc = 2;
t = linspace(-15,15,10000);
om = linspace(-5,5,1000);

H = zeros(1,length(om));
H(abs(om)<=omc) = 1;
h = sin(omc*t)./(pi*t);

subplot(212)
plot(t,h); grid
title(’Functia pondere a filtrului trece banda’)
xlabel(’Timp (s)’);
ylabel(’h(t)’);

subplot(211)
plot(om,H); grid
axis([-5 5 -1 2]);
title(’Raspunsul in frecventa’);
xlabel(’\omega (rad/s)’);
ylabel(’H(\omega)’);

b.

om = logspace(-3,3,1000);
P = atan2(2*om,om.^2-1);
semilogx(om,180*P/pi); grid
title(’Faza pentru Filtrul Trece Tot’);
xlabel(’\omega (rad/s)’);
ylabel(’\phi(\omega) (grade)’);

Exerciţiul 5.12
a.

n = -5:5;
h = zeros(1,length(n));
h(n==-1) = 1/3; h(n==0) = 1/3; h(n==1) = 1/3;
172 Semnale şi sisteme. Îndrumar de laborator

om = linspace(-2*pi-1,2*pi+1,1000);
H = 1/3*abs(1+2*cos(om));

figure(1)
subplot(211)
stem(n,h,’fill’); grid
title(’Functia pondere pentru filtrul nerecursiv dat’);
xlabel(’n (esantioane)’);
ylabel(’h[n]’)
subplot(212)
plot(om,H); grid
title(’Raspunsul in frecventa’);
xlabel(’\omega (rad/s)’);
ylabel(’H(e^{j\omega})’);

A.6. Analiza Nyquist


Exerciţiul 6.1
for K=0:10
H=tf([K],[1 0 0 1]);
nyquist(H,{0.1,1000});
hold on;
end

function ex1a(n)
% Trasam hodograful sistemului H(s)=k/(s^n+1)
for K=0:10
H=tf([K],[1 zeros(length(n)-1) 1]);
nyquist(H);
hold on;
end

Exerciţiul 6.2
for K=0:10
H=tf([K],conv([1 0],[1 1]));
nyquist(H,{0.11,10000});
hold on;
end
% Se observa dependenta de K a graficului

function ex3a(pmax)
den=1;
Capitolul A. Programe Matlab pentru exerciţii rezolvate 173

for p=0:pmax
den=conv(den,[1 p]);
end
for K=0:10
hold on;
H=tf([K],den);
nyquist(H);
end
%Se pastreaza dependenta de K.

Exerciţiul 6.4
for w=0:0.001:0.9;
hold on;
u=1/(1-w^2);
v=w/(1-w^2);
plot(u,v)
end
grid on
hold on;

for w=1.1:0.001:10;
hold on;
u=1/(1-w^2);
v=w/(1-w^2);
plot(u,v)
end
title(’Hodograf’)
xlabel(’U’)
ylabel(’V’)

Exerciţiul 6.5
%cazul all-pass.
function ex6(a)
H=tf([1 -a],[1 a]);
nyquist(H)

Exerciţiul 6.6
H1=tf([1],[1 0])
nyquist(H1); hold on;
H2=tf([1 -1],[1 1]);
H=series(H2,H1)
nyquist(H);
174 Semnale şi sisteme. Îndrumar de laborator

H3=tf([1 1],[1 -1]);


Ho=series(H3,H1)
nyquist(Ho)

Exerciţiul 6.7
function ex7(K,tau)
for w=0.1:0.001:10;
hold on;
u=-K*sin(w*tau)/w;
v=-K*cos(w*tau)/w;
plot(u,v)
end
grid on
ylabel(’Axa imaginara’)
xlabel(’Axa reala’)

Exerciţiul 6.8
function prob(k)
s=tf(’s’);
T1=1; T2=3;
H=k/(s*(T1*s+1)*(T2*s+1));
Ho=feedback(H,1);
subplot(3,1,1);
nyquist(H);
subplot(3,1,2);
step(Ho);
subplot(3,1,3);
[G,w]=freqs([k],[3 4 1 1]);
plot(w/pi,abs(G));

Exerciţiul 6.9
function ex69(N)
ka=50; ki=10; kI=50;
J=0.006; kb=0.0706;
n=0.01; Ra=10;
A=10; k0=100;
s=tf(’s’);
G=ka*ki*n*kI*N/(s*(Ra*J*s+ki*kb)*(A*s+k0));
nyquist(G);
figure; step(feedback(G,1),20)
Capitolul A. Programe Matlab pentru exerciţii rezolvate 175

Exerciţiul 6.10
function ex610(k)
s=tf(’s’);
G=k/((s+4)*(s+5));
H1=feedback(G,1);
H2=feedback(G,-1);
Hd=series(H1,H2)
H0=feedback(Hd,-1);
nyquist(Hd)
figure; step(H0,40)

Exerciţiul 6.11
function ex611(k)
s=tf(’s’);
C=k;
P=1/(s^2+2*s+2);
F=1/(s+1);
Hd=P*C;
H0=feedback(Hd,F);
subplot(2,1,1); nyquist(Hd);
subplot(2,1,2); step(H0)

Exerciţiul 6.12
function ex15(p)
s=tf(’s’);
H1=1/(s^2*(s+p));
nyquist(H1);

function ex15(p)
s=tf(’s’);
H2=1/(s^4*(s+p));
nyquist(H2);

function ex15(p)
s=tf(’s’);
H3=tf([1],[1 p],’Inputdelay’,2)
nyquist(H3);

Exerciţiul 6.13
function nyqlog(sys)

% Nyqlog makes a polar plot of the open


176 Semnale şi sisteme. Îndrumar de laborator

% loop transfer function h0(s) with


% |h0(s)| on a dB scale. It supports
% only continuous and monovariable systems.
% Example: >> nyqlog(tf(1,[1 1 1]))

% Trondheim, June 2009


% Trond Andresen <Trond.Andresen@itk.ntnu.no>
% Department of Engineering Cybernetics,
% The Norwegian University of Science and Technology,
% N-7034 Trondheim, NORWAY.

% Checking system order:


[hlp,den]=tfdata(sys,’v’);
k=1;
while (hlp(k) == 0) k=k+1; end
num=(hlp(k:end));
hlp=size(size(den));
if (hlp(2)> 2)
error(’Only monovariable systems allowed in Nyqlog’);
end

% Checking for delay:


dly=get(sys,’ioDelay’);

% Checking that the system is not discrete:


sorz=get(sys,’variable’);
if (sorz ~= ’s’)
error(’Only continuous systems allowed in Nyqlog’);
end

% Charting poles and zeroes, system dimension;


% Sorting poles by Im-value in ascending order:
sysdim=size(den); sysdim=sysdim(2)-1;
if (sysdim == 0)
error(’Denominator order of zero not allowed in Nyqlog’);
end%
numdim=size(num); numdim = numdim(2)-1;
if (numdim > sysdim)
error(’Denominator order must be >= nominator order’);
end
poles=roots(den);
re_poles=real(poles);
% This is used below to check stability of
Capitolul A. Programe Matlab pentru exerciţii rezolvate 177

% the closed-loop system:


openloop_rhp_poles=sum(re_poles > 0);
impoles=imag(poles);
[vhlp,im_ndx]=sort(impoles);
poles(:)=poles(im_ndx(:));
abpoles=abs(poles);
repoles=real(poles);
impoles=imag(poles);
% No. of poles in the origin and on the imaginary axis, if any;
Np_origin=0;
Np_imag=0;
for k=1:sysdim
if (repoles(k) == 0)
if (impoles(k) > 0)
Np_imag = Np_imag+1;
elseif (impoles(k) == 0)
Np_origin = Np_origin+1;
else
end
end
end
if Np_imag impoles=impoles(end+1-Np_imag:end); end
% Sorting zeroes by Im-value in ascending order:
abzeroes=0;
if (numdim)
zeroes=roots(num);
imzeroes=imag(zeroes);
[vhlp,im_ndx]=sort(imzeroes);
zeroes(:)=zeroes(im_ndx(:));
abzeroes=abs(zeroes);
rezeroes=real(zeroes);
imzeroes=imag(zeroes);
end

% Finding smallest distance > 0 to pole or zero


% to decide
% radius for half circles around imaginary poles;
eps=1e-3;
R=eps;
if Np_origin R = eps^(1/Np_origin); end
R0=inf;
if (Np_origin && Np_imag)
R=mindist(0,poles,R0);
if (numdim) R = mindist(0,zeroes,R0); end
178 Semnale şi sisteme. Îndrumar de laborator

end
R0=R;
if Np_imag
for k=1:length(impoles)
R=mindist(impoles(k),poles,R0);
end
end
R0=R;
if (numdim)
for k=1:length(impoles)
R=mindist(impoles(k),zeroes,R0);
end
end
frac=0.01;
if Np_origin frac = (0.01)^(1/Np_origin); end
R=frac*R;

% Calculating a tentative vector s to be used in h0(s):


% Ns = number of points on s. Special measures are
% taken if there is a time delay in sys.
Ns=1000+150*(dly > 0);
wmin= R;
wmax= 1e6*max(cat(1,abpoles,abzeroes));
if (wmax == 0) wmax= R*1e11; end
if (dly) wmax = min(wmax,4*pi/dly); end
w=log(wmin):(log(wmax)-log(wmin))/Ns:log(wmax);
w=exp(w’);
s=j.*w;

% Splicing in possible imaginary zeroes > 0 in s:


n=0;
for k=1:numdim
if (abs(rezeroes(k)) < 1e-12 && imzeroes(k) > R)
n=n+1;
imonlyzeroes(n) = imzeroes(k);
end
end
if (exist(’imonlyzeroes’))
w1=cat(1,w,imonlyzeroes’);
[w1,im_ndx]=sort(w1,1);
s=j.*w1;
end

% Plotting main graph and its mirror image:


Capitolul A. Programe Matlab pentru exerciţii rezolvate 179

s1=s;
spiralfactor=1.5;
spiralfactor=1/spiralfactor;
set(gcf,’Color’,[1 1 1]);
s = scurve(s1,R,spiralfactor, Np_origin, Np_imag,impoles);
%plot(s); hold on;
%break;
%plot([0 1],[R 1]);
s=conj(s);
[zmirr,ncount] = nygraph(sys,s,0);
hold on;
spiralfactor=1/spiralfactor;
s = scurve(s1,R,spiralfactor, Np_origin, Np_imag,impoles);
[zmain,ncount] = nygraph(sys,s,1);

fprintf(1,’Number of poles in RHP of open-loop system: %i\n’,...


openloop_rhp_poles);

% Count net encirclements around the point -1.


% An encirclement is counted as positive if the direction
% is clockwise.
[ncirc,npoles_on_im_axis] = countencirc(zmirr,zmain);
if npoles_on_im_axis > 0
fprintf(1,’%d closed-loop pole(s) on the im-axis.\n’,...
npoles_on_im_axis);
fprintf(1,’Graph goes through the -1 point, so\n’);
fprintf(1,’encirclement counting cannot be done.\n’);
else
fprintf(1,’Number of net encirclements around the -1 point:...
%i\n’,ncirc);
closedloop_rhp_poles=ncirc+openloop_rhp_poles;
fprintf(1,’=>...
Number of poles in RHP of closed-loop system:...
%i\n’,...
closedloop_rhp_poles);
if closedloop_rhp_poles > 0
fprintf(1,’=> Closed-loop-system is unstable\n’);
else
fprintf(1,’and no closed-loop poles on Im-axis\n=>...
Closed-loop-system is asymptotically stable\n’);
end
end
180 Semnale şi sisteme. Îndrumar de laborator

% Plotting background diagram;


circle(0,0.5,’r-’);
circle(0,0.6666666667,’r-.’);
circle(0,0.833333333,’r-.’);
circle(0,1,’r-’);
circle(0,1.16666667,’r-.’);
circle(0,1.33333333,’r-.’);
circle(0,1.5,’r-’);
phase_lines(24,0.5,1.5,’r-.’);
phase_lines(8,0.5,1.5,’r-’);
plot(-1,0,’ko’,’LineWidth’,2.5);
plot([-1.5 1.5],[0 0]); plot([0 0],[-1.5 1.5]);
text(0.03,-0.05,’-120’,’FontSize’,7);
text(0.4141, -0.3331,’-60’,’FontSize’,9);
text(0.8, -0.64,’0 dB’,’FontSize’,8);
text(1.1924, -0.9575,’+60’,’FontSize’,9);

% Plotting directional arrows:


% for xh = [0.8 0.65 0.45 0.25]
for xh = [0.8 0.15]
nmid=round(xh*ncount);
arrow(zmain(nmid+1),zmain(nmid),’b-’);
end
% for xh = [0.75 0.6 0.4 0.2]
for xh = [0.7 0.1]
nmid=round(xh*ncount);
arrow(zmirr(nmid),zmirr(nmid+1),’k-’);
end

% % Contours for |N|= const. may be plotted:


% % for instance [6 3 1 0.5 0.25 0 -0.5 -1 -3 -6]

% nlgrid([6 3]);

scalexy=axis; scalexy(3:4)= 1.01*scalexy(3:4);


axis(scalexy);
axis equal; axis off; axis tight; hold off;

%******************************************
%****** SUB-FUNCTIONS: ********************

function arrow(z2,z1,col)
% dz=0.12*exp(j*angle(z2-z1));
dz=0.11*exp(j*angle(z2-z1));
Capitolul A. Programe Matlab pentru exerciţii rezolvate 181

z_arrow_end1=z2-dz*exp(j*pi/4);
z_arrow_end2=z2-dz*exp(-j*pi/4);
plot([real(z2) real(z_arrow_end1)],...
[imag(z2) imag(z_arrow_end1)],col,’LineWidth’,1.5);
plot([real(z2) real(z_arrow_end2)],...
[imag(z2) imag(z_arrow_end2)],col,’LineWidth’,1.5);

%***********************************************
function circle(zcentre,radius,plotdata)
angles=0:pi/72:2*pi;
circ=zcentre+radius.*(cos(angles)+j.*sin(angles));
plot(circ,plotdata);

%***********************************************
function phase_lines(n,rstart,rend,plotdata)
hold on;
angles=0:2*pi/n:2*pi;
lines=ones(n,2);
for k=1:n
zh = cos(angles(k))+j*sin(angles(k));
lines(k,1)= rstart*zh;
lines(k,2)= rend*zh;
plot(real(lines(k,:)),imag(lines(k,:)),plotdata);
end

%***********************************************

function [s] =...


scurve(s1,R,spiralfactor,Np_origin,Np_imag,impoles)
a=log(spiralfactor)*2/pi;
%R=R/spiralfactor;
% Calculating first arc if pole(s) in the origin:
% If there are one or more pure integrators s is
% made to do a small arc of a log spiral
% into the upper right quadrant from 0 to pi/2.
s=s1;
if Np_origin
fi=0:0.02/Np_origin:1; fi=0.5*pi*fi;
sarc=R*exp((a+j)*fi);
% merging sarc with s:
x1=imag(sarc(end));
k=1;
while (imag(s1(k)) < x1) k=k+1; end
s1=cat(1,sarc.’,s(k:end));
182 Semnale şi sisteme. Îndrumar de laborator

s=s1;
end

% Calculating arcs for possible pole(s) on the im-axis:


% For each such possible pole we generate a vector
% sarc describing a log spiral around the pole
% from -pi/2 to pi/2 into the right half plane.
fi=-1:0.02:1; fi=0.5*pi*fi;
s1=s;
for m = 1:Np_imag
R=R/spiralfactor;
sarc=R*exp((a+j)*fi);
x1=impoles(m)+imag(sarc(1));
k=1;
while (imag(s1(k)) < x1) k=k+1; end
sarc(:)=sarc(:)+ j*impoles(m);
s1=cat(1,s1(1:k-1),sarc.’);
x1=impoles(m)+imag(sarc(end));
k=1;
while (imag(s(k)) < x1) k=k+1; end
s1=cat(1,s1,s(k:end));
end
s=s1;

%***********************************************

function [zplot,ncount] = nygraph(sys,s,plotdata)


% Preparing logarithmic polar plot data:
kmax=size(s); kmax=kmax(1);
for k=1:kmax zh(k)=evalfr(sys,s(k)); end
z=zh.’;
absz = abs(z)+1e-14;
logabs = 20.*log10(absz);

%Avoiding plot continuing for |h0| < -120dB:


% the vector s is then truncated.
for k=1:kmax
if (logabs(k) <= -120) logabs(k) = -120; end
end
ncount=length(logabs);
while (logabs(ncount) <= -120) ncount=ncount-1; end
%From now on all vectors are ncount long; ncount <= size(s).

%Plotting the two conjugate halves of the polar curve;


Capitolul A. Programe Matlab pentru exerciţii rezolvate 183

logabsplot=logabs(1:ncount)./120.+1;
zplot=z(1:ncount).*logabsplot./absz(1:ncount);
if (plotdata)
plot(zplot,’LineWidth’,2.2);
else
plot(zplot,’k--’,’LineWidth’,1.7);
end

% ************************

function [ncirc,npoles_on_im_axis] = countencirc(zmirr,zmain)

% Counts net encirclements around the point -1.


% An encirclement is counted as positive if the direction
% is clockwise. This follows Belanger (1995):
% "Control Engeering", Saunders College Publishing,
% pp 206 - 208.
%
% Bugs fixed and improvements made in Feb. 09:
% The function now also counts poles on the im-axis for the
% closed-loop system, if any. If such poles exist, this
% corresponds to the graph going through -1.
% Encirclement counting is then impossible and is
% disabled.
% Another (small) bug fixed and improvements made in June 09

eps=1e-6;
zmirr(1:end)=zmirr(end:-1:1);
zmirr=zmirr(2:end-1);
zall=[zmirr;zmain;zmirr(1)];
if abs(imag(zall(1))) < eps
zall=[zall;zall(2)];
end
ncirc=0;
npoles_on_im_axis=0;
z3=zall(end);
for k=3:length(zall)
z4=z3;
z1=zall(k);z2=zall(k-1); z3=zall(k-2);
abz1=abs(z1+1);abz2=abs(z2+1); abz3=abs(z3+1);
zre1=real(z1); zre2=real(z2);
% Checking if graph is too close to -1:
dl1= fromline2minusone(z1,z2);
dl2= fromline2minusone(z2,z3);
184 Semnale şi sisteme. Îndrumar de laborator

dl3= fromline2minusone(z3,z4);
closest_now = abz1 > abz2 && abz3 > abz2;
if closest_now && min([dl1 dl2 dl3]) < 1e-5 ...
&& min([abz1 abz2 abz3])< 0.001
npoles_on_im_axis=npoles_on_im_axis+1;
end
% end checking if graph is too close to -1.

% Only checking for Re axis crossings to the left


% of minus 0.9 to avoid unnecessary work:
if zre1 < -0.9
zim1=imag(z1); zim2=imag(z2); zim3=imag(z3);
if zim1*zim2 < 0
% Interpolation to find real z value at crossing:
delta12=...
(real(z1)-real(z2))*abs(imag(z2))/(abs(imag(z1))+abs(imag(z2)));
realcross=real(z2)+delta12;
end
if zim1 > eps && zim2 < -eps
if realcross < -1
ncirc=ncirc+1;% ncirc,z1, z2, z3
end
elseif zim1 < -eps && zim2 > eps
if realcross < -1
ncirc=ncirc-1;% ncirc,z1, z2, z3
end
elseif abs(zim2) < eps && zim1 > 0 && zim3 < 0
if real(z2) < -1
ncirc=ncirc+1;% ncirc,z1, z2, z3
end
elseif abs(zim2) < eps && zim3 > 0 && zim1 < 0
if real(z2) < -1
ncirc=ncirc-1;% % ncirc,z1, z2, z3
end
else
end
end % real(z1) < -0.99
end

% ************************

function [dist] = mindist(point,vector,initdist)


% Calculates the minimum distance from a given complex number
% to a set of other complex numbers:
Capitolul A. Programe Matlab pentru exerciţii rezolvate 185

mdist = initdist;
kmax=length(vector);
for k=1:kmax
d0=abs(vector(k)-point);
if (d0 ~= 0) mdist = min(d0, mdist); end
end
dist=mdist;

% ************************

function nlgrid(absNdB)
% absNdB = [6 3 1 0.5 0.25 0 -0.5 -1 -3 -6]
absNdB = absNdB’;
n=length(absNdB);
absN=10.^(absNdB/20);
radii=1./absN;
nangles=200;
angles=0:pi/nangles:2*pi;
angles=angles’;
for k=1:n
circ=-1.+radii(k).*(cos(angles)+j.*sin(angles));
absc = abs(circ)+1e-14;
logabs = 20.*log10(absc);
for p=1:nangles
if (logabs(p) <= -120) logabs(p) = -120; end
end
logabsplot=logabs./120.+1;
cplot=circ.*logabsplot./absc;
plot(cplot,’k-’,’LineWidth’,0.5);
end

% ********************************

function [distline_to_minus1] = fromline2minusone(z1,z2)


% Calcucates the min. distance from the point -1 to the line z1,z2
v=z2-z1;
v=imag(v)-i*real(v);
v=v/abs(z2-z1);
r=z1+1;
d=dot([real(v) imag(v)],[real(r) imag(r)]’);
distline_to_minus1=abs(d);
% pointonline=-1-distline_to_minus1*v;

% ********************************
Postfaţă
Prezentăm aici principalele referinţe care au stat la baza acestui ı̂ndrumar
de laborator. Încurajăm pe această cale studenţii să caute şi să parcurgă ı̂n
profunzime aceste referinţe, ı̂n limita timpului disponibil şi direct proporţional
cu interesul manifestat pentru această disciplină. De asemenea, propunem
tinerilor cititori să caute şi alte surse de studiu, larg răspândite ı̂n mediul
virtual.
Autorii au ı̂ncercat să ofere studenţilor o pregătire de nivel ı̂nalt. În consecin-
ţă, cursul care a stat la baza acestui ı̂ndrumar este Signals and Systems [1],
predat de cunoscutul profesor Allan Oppenheim de la MIT, ı̂n primăvara lui
2011. Cursul este disponibil online pe platforma ocw.mit.edu. De asemenea,
probleme, aplicaţii şi concepte cheie au fost preluate din cartea [2]. Şi alte cărţi
renumite ı̂n literatura de specialitate (domeniul Automatică) au fost folosite
pentru conceperea acestui ı̂ndrumar: [3, 4, 5, 6].
O parte din exerciţiile Capitolului 1 au fost inspirate de tutorialul Matlab
oficial [7]. Capitolul 2 conţine idei dintr-un ı̂ndrumar de laborator al Univer-
sităţii din California la Berkeley [8]. În Capitolele 3 şi 4 s-au folosit referinţele
[3, 4, 6]. Problemele legate de filtrare şi de răspuns ı̂n frecvenţă al sistemelor
dinamice din Capitolele 5 şi 6 au fost inspirate din [2, 3]. Capitolul 7 conţine
idei şi concepte din [2].
O bună parte din exerciţii sunt originale şi/sau extinderi, provenite din
dorinţa autorilor de a preda conţinutul materiei ı̂ntr-o manieră accesibilă
studenţilor. De asemenea, autorii doresc să mulţumească pe această cale
studenţilor şi colaboratorilor din ultimii 10 ani care au ajutat la concepe-
rea, redactarea şi ı̂mbunătăţirea laboratoarelor de Semnale şi Sisteme, printre
care drd. Cristian Flutur, dr. Tudor Ionescu, dr. Raluca Marinică (Andrei),
dr. Şerban Sabău.
Sperăm ca acest ı̂ndrumar de laborator să fie de real folos ı̂n studiul con-
ceptelor specifice Semnalelor şi Sistemelor, subiect care constituie piatra de
temelie a Automaticii ca ştiinţă, a Ingineriei Electrice ı̂n particular şi a Teoriei
Sistemelor ı̂n general.

187
Bibliografie
[1] Alan V. Oppenheim. RES 6-007. Signals and Systems, Spring 2011. MIT
OpenCourseWare: Massachusetts Institute of Technology, http://ocw.
mit.edu/resources/res-6-007-signals-and-systems-spring-2011.

[2] Alan V. Oppenheim, Alan S. Willsky, and S. Hamid Nawab. Signals and
Systems. Prentice Hall, Inc. Upper Saddle River, 2nd edition, 1996.

[3] Gene F. Franklin, J. David Powell, and Abbas Emami-Naeini. Feedback


Control of Dynamic Systems. Addison Wesley Publishing Company, 3rd
edition, Noiembrie 1993.

[4] Richard C. Dorf and Robert H. Bishop. Modern Control Systems. Prentice
Hall, 11th edition, Iulie 2008.

[5] Joseph DiStefano, Allen Stubberud, and Ivan Williams. Feedback and Con-
trol Systems. Schaum’s Outline Series. McGraw-Hill, 1st edition, 1994.

[6] Edward W. Kamen and Bonnie S. Heck. Fundamentals of Signals and


Systems using the Web and Matlab. Prentice Hall, Inc., 2nd edition, 2000.

[7] The MathWorks Inc. MATLAB R2011a, 2011.

[8] Edward A. Lee and Pravin Varaiya. Labortory Manual to accompany Sig-
nals and Systems. University of California at Berkeley. Addion Wesley,
2003.

189

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