Documente Academic
Documente Profesional
Documente Cultură
1. Scopul lucrarii
2. Noțiuni teoretice
2.1. GNU Octave / MATLAB
Numele Matlab este o prescurtare a cuvintelor “matrix laboratory”. Aceasta deoarece,
inițial programul a fost destinat pentru calculul cu matrici. Limbajul a evoluat si a devenit un
standard în universități când este vorba de cursuri introductive sau avansate de matematică sau
inginerie. Funcțiile specifice unui anumit domeniu sunt grupate în colecții de funcții sau
“toolboxes”.
MATLAB (MATrix LABoratory) este un pachet de programe de înalta performanță
dedicat calculului numeric și a reprezentărilor grafice. SIMULINK-ul este parte integrantă a
acestui pachet soft. Simulink permite modelarea, simularea și analiza dinamică a sistemelor.
GNU Octave reprezintă o alternativă la popularul mediu de programare MATLAB.
Sintaxele celor două programe sunt în mare parte identice, iar formatul fișierelor salvate este
același (fișiere cu extensia .m). Avantajul GNU Octave este că acesta este oferit în mod gratuit
sub licență publică. Un neajuns al acestui program este lipsa unui echivalent pentru Simulink.
>> x = [1 2 3]
x=
1 2 3
>>y = [4 5 6]
y=
4 5 6
>> y(1)
ans =
4
şi se repetă pentru y(2) şi y(3). Matlab foloseşte numerele întregi la indexul serie. Primul
element este y(1), al doilea este y(2), etc. zero, sau numerele negative nu sunt premise la index
serie.
3. Definirea matricilor
>> A = [1 2 3
456
7 8 9];
Se multiplica matricea A cu x transpus definit anterior:
>> A*x'
ans =
14
32
50
De exemplu o matrice cu zero de dimensiune 3 rânduri şi 6 coloane poate fi definită ca:
>> zeros(3,6)
ans =
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Primul număr, 3, indică the numărul de rânduri, al doilea număr, 6, este numărul de
coloane. Acesta poate fi realizat o dată:
>> ones(3,6)
ans =
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
4. Definirea vectorilor largi
>> x = cos(0.1*pi*(0:99));
>> x = [1:1:50];
al doilea rand indică creşterea de la1 la 50. Când creşterea este un "1", este necesara doar
specificatia primului şi ultimului număr al seriei:
>> x = [1:50];
Se poate de asemena specifica ce rand de valori ale lui x sunt definite:
5. Realizarea graficelor
Se folosesc comenzile:
>> plot(time,x)
>> xlabel('time (msec)')
>> ylabel('x(t)')
>> stem(time,x)
>> xlabel('time (msec)')
>> ylabel('x(t)')
Selectând comanda File, din meniul principal, se obţine un submeniu ca cel din figura
1.2 New determina deschiderea unui alt submeniu cu opţiunile “Model” sau “Library”. Pentru
deschiderea unei sesiuni de lucru – materializată printr-o nouă pagină goală - se selectează
varianta “Model”. Prin selectarea unei pictograme din posibilităţile oferite de meniul principal,
se deschide o nouă fereastră ce conţine “biblioteca” standard a subsistemului accesat. Din
fereastra dată se poate copia în pagina de lucru modelele de lucru necesare. În figura 1.4 se
prezintă pagina de lucru în care s-au copiat modelele: blocul pentru mărime constantă, un
instrument de vizualizare şi un generator de semnal.
Fiecare bloc este copiat în fişierul de lucru cu parametrii iniţiali. Prin execuţia unui dublu
– clic pe pictograma este posibilă modificarea parametrilor la valoarea dorită. După modificările
de rigoare se închide fereastra de dialog prin butonul aferent OK.
Semnul “>” de pe “Signal Generator” are semnificaţia portului de ieşire iar de pe blocul
“Scope” semnificaţia portului de intrare. Conectarea celor două blocuri se realizează prin
utilizarea butonului stâng, apăsat al mouse-lui între semnele celor două blocuri. Prin deschiderea
blocului Scope este pusă în evidenţă reprezentarea grafică a ecranului unui osciloscop printr-o
fereastră care poate fi poziţionată într-o zonă a monitorului. După conectarea blocurilor există
posibilitatea lansării simulării. În acest sens se stabileşte tehnica de integrare şi valoarea
parametrilor de simulare. Se utilizează în acest scop submeniul Simulation / Simulation
parameters. Simularea devine efectivă prin lansarea comenzii Start din cadrul aceleeaşi opţiuni
ale meniului principal.
2.4. Interpretorul de comenzi
Fereastra principală a programului permite accesul direct la interpretorul de comenzi. Acesta
este un instrument care execută o secvență de cod linie cu linie. Secvența de cod poate fi
introdusă direct de la tastatură, iar după fiecare linie se apasă tasta Enter sau poate fi scrisă
într-un fișier de tip text, care se salvează cu extensia “.M” si se execută prin simpla scriere a
numelui fișierului. Limbajul Matlab respectă principiile programării structurale, astfel că
există o foarte mare asemănare între sintaxa si structurile sale cu cea a limbajului C.
pi #constanta pi
e #constanta e
Dacă pentru vectorii de dimensiuni reduse nu este nicio problemă ca elementele lor să
fie definite individual, pentru vectorii lungi cu zeci sau sute de elemente această definiție nu
mai este practică. Pentru aceștia există următorul mod de definire:
Numărul implicit de elemente dintr-un vector astfel definit este 100. Prin urmare, dacă
se dorește definirea unui vector cu 100 de elemente, este suficient să se menționeze doar primul
și ultimul element din vector.
saveas(gcf,'Grafic.png')
Graficul salvat este prezentat mai jos (Figura 1.6). Locația implicită de salvare a graficelor este
C:\Users\Nume_utilizator. Graficele pot fi salvate ca .png, .jpg, .gif și .pdf.
Dacă dorim să reprezentăm mai multe curbe pe același grafic trebuie să ne folosim de
funcția hold on, care menține deschisă fereastra deja existentă cu graficul.
t=[0:0.1:10]; #definire vector timp
x=sin(t); #definirea functiei x(t)
y=cos(t); #definirea functiei x(t)
plot(t,x) #generarea unui grafic al functiei x(t)
title('Reprezentare grafica')
xlabel('Timp (s)')
ylabel('f(t)')
legend({'sin(t)','cos(t)'},'fontsize',14,'location','southwest')
Un alt tip de grafic, potrivit pentru reprezentarea datelor discrete, poate fi generat prin
comanda stem(x).
Titlul graficului, textele axelor și legenda se definesc în același mod pentru graficele
stem(x), ca pentru cele plot (x).
𝑑2𝑈 𝑑𝑈
𝐿𝐶 𝑑𝑡 2𝐶 + 𝑅𝐶 𝑑𝑡𝐶 + 𝑈𝐶 = 𝑈𝑖 𝑡 ; 𝑢𝐶 0 = 𝑂
- Se detrmina expresia functiei de transfer:
𝑅
𝑈0 (𝑝) 𝑅 𝑝𝑅𝐶 𝑝
𝐿
𝐻 𝑝 = = 1 = 𝑝 2 𝐿𝐶+𝑝𝑅𝐶 +1 = 𝑅 1
𝑈𝑖 (𝑝) 𝑅+𝑝𝐿 + 𝑝 2 +𝑝 +
𝑝𝐶 𝐿 𝐿𝐶
1. Notiuni teoretice
Matematic un sistem discret este decris printr-un operator S
ca în figura de mai jos, unde xn
se numeşte semnal de intrare (excitaţie), iar yn este semnalul de ieşire (rǎspuns) yn S xn :
xn yn
S
L1 x1 n 2 x2 n 1 Lx1 n 2 Lx2 n, 1 , 2 , x1 n, x2 n
N M
y n a k y n k bk x n k sau
k 1 k 0
N M a' k 1, pt. k 0
a' k y n k bk x n k cu
k 0 k 0 a' k a k , pt. k 1, , N
b) nerecursiv, descris de ecuatia:
L
y n b k x n k
k 0
Aceste ecuatii poarta denumirea de ecuatii cu diferente finite si sunt echivalente cu ecuatiile
diferentiale folosite pentru caracterizarea sistemelor continue. Dupa forma functiei pondere sistemele
discrete pot fi:
1. cu raspuns finit la impulsul unitate - RFI;
2. cu raspuns infinit la impulsul unitate - RII
Observatii:
a) Convolutia este o metodã de aflare a rãspunsului sistemului discret SLIT la secventa de intrare
x(n) cand se cunoaste functia pondere a sistemului.
2. Raspunsul in frecventa al sistemelor discrete SLIT
Raspunsul in frecventa al sistemelor discrete SLIT, H(ej), se poate defini in trei moduri:
Raspunsul in frecventa ca TFDt a functiei pondere
j
H(e ) h(n) e j n , cu h(n) - functia pondere
n
Raspunsul in frecventa ca factor de transfer al secventei
e j n de la intrarea sistemului la iesire.
Daca la intrarea sistemului se aplica semnalul armonic e j n , atunci iesirea sistemului y(n) este:
y(n) = H(e j ) e j n ,
unde frecventa armonica a semnalului de intrare.
Calculul raspunsul sistemului cu transformata Z
Aplicand transformata Z ecuatiei cu diferente finite a sistemului discret (vezi Lucrarea 1),
rezulta:
M
Y z k 0
bk z k
H z
X z N
a k z k
k 0
Relatia (5.6) caracterizeaza raspunsul sistemului in planul Z. X(z) si Y(z) sunt transformatele Z
ale intrarii respectiv iesirii sistemului. H(z) este functia de transfer a sistemului discret si este data de o
expresie rationala de forma B(z)/A(z) unde B(z) si A(z) sunt polinoame in z -1. Radacinile polinomului
B(z) sunt zerourile lui H(z), iar radacinile lui A(z) reprezinta polii acestuia. Deci functia de transfer a
sistemului este determinata daca se cunosc coeficientii {a0 , a1,... , a N , b0 , b1 ,...,bn } sau,
corespunzator, polii si zerourile.
4. Aplicatii
4.1 Se considera un sistem discret, liniar, avand raspunsurile yk[n] pentru excitatiile xk[n] cu k=1, 2, 3,
prezentate in tabelul de mai jos. Sa se determine si sa se reprezinte grafic raspunsul y4[n] al sistemului la
excitatia x4[n].
n -1 0 1 2 3 4
x1[n] 0 1 2 3 0 0
x2[n] 0 3 2 1 1 0
x3[n] 0 0 3 2 -1 0
x4[n] 0 10 2 2 5 0
n -1 0 1 2 3 4
y1[n] 1 5 3 -1 0 -2
y2[n] 0 -1 1 2 -3 5
y3[n] 0 -2 3 5 1 -2
y4[n] 1 -2 12 ? ? ?
Indicatie: Excitatia x4[n] trebuie exprimata ca o combinatie liniara a semanlelor x1[n], x2[n],
x3[n], adica:
x4[n]= a *x1[n]+b* x2[n]+c* x3[n].
Dand lui n valorile {0, 1, 2} se obtine sistemul liniar urmator:
a 3b 10
2a 2b 3c 2
3a b 2c 2
Matricial acest sistem poate fi scris: AX=B
Utilizand linia de comanda in Matlab sistemul se rezolva
4.2 Se considera un sistem discret, liniar, avand raspunsurile yk[n] pentru excitatiile xk[n] cu k=1, 2, 3,
prezentate in tabelul de mai jos. Pentru n=3 verificati compatibilitatea sistemului si apoi sa se determine
si sa se reprezinte grafic raspunsul y4[n] al sistemului la excitatia x4[n].
n -1 0 1 2 3 4
x1[n] 1 1 2 3 0 0
x2[n] 0 2 3 1 1 0
x3[n] 1 0 2 2 -1 0
x4[n] 0 1 3 4 5 0
n -1 0 1 2 3 4
y1[n] 0 1 2 3 0 0
y2[n] 0 2 -1 1 0 1
y3[n] 0 2 1 2 1 0
y4[n] 0 1 2 0 -1 1