+ All Categories
Home > Documents > Introducere in Matlab

Introducere in Matlab

Date post: 28-Oct-2015
Category:
Upload: engineer86
View: 39 times
Download: 2 times
Share this document with a friend
Description:
ok
12
1 Notiuni generale privind pachetul de programe Matlab - Simulink Matlab (MATrix LABoratory) este un pachet de programe de inalta performanta dedicat calcului numeric si reprezentarilor grafice in domeniul stiintei si ingineriei. Matlab este un limbaj destinat operarii cu matrice dreptunghiulare de numere reale sau complexe. Calitatile si puterea acestui limbaj provin din implementarea functiilor de baza in operarea cu matrice. Alaturi de instructiunile si functiile interne ale limbajului, utilizatorul are posibilitatea sa-si defineasca propriile functii care sunt rezidente pe hard-disk, in fisiere cu extensia .m. Astfel apar grupate in toolbox-uri pentru: analiza si proiectarea sistemelor automate de control; proiectarea si simularea retelelor neurale; logica fuzzy; procesarea imaginilor si a semnalelor; optimizarea liniara si neliniara; rezolvarea ecuatiilor diferentiale; proiectarea sistemelor neliniare; simularea in timp real; calcul statistic; sinteza si identificarea sistemelor etc. Interpretorul Matlab are posibilitatea sa execute programe create in exteriorul sau cu un editor, sau interactiv fiecare instructiune introdusa. Este dotat cu un browser “Help” care permite descrierea sintaxei instructiunilor la cerere. Prin caracteristicile sale, limbajul Matlab este foarte adecvat studiului sistemelor dinamice liniare si a structurilor de reglare automata a acestora. Pentru aceasta se utilizeaza toolobox-ul Control System. Acest toolbox contine o biblioteca de functii specifice pentru analiza si proiectarea sistemelor de conducere. Sistemele pot fi considerate atat ca sisteme continue, cat si ca sisteme discrete. Sunt posibile conversii intre diferitele reprezentari. Analiza comportarii sistemelor modelate in Matlab este posibila pe baza raspunsului in timp, in frecventa sau a calculului locului radacinilor. Principalele facilitati de calcul oferite de Control System Toolbox sunt urmatoarele: constructia modelelor sistemelor dinamice liniare, invariante in timp cu o intrare si o iesire, utilizand diversele functii din Control System Toolbox. Sunt posibile diversele reprezentari de modele: functia de tranfer, reprezentare de stare, reprezentare poli-zerouri; conversii intre diversele reprezentari; constructia modelelor sistemelor cu mai multe intrari si mai multe iesiri;
Transcript
Page 1: Introducere in Matlab

1

Notiuni generale privind pachetul de programe Matlab -

Simulink Matlab (MATrix LABoratory) este un pachet de programe de inalta performanta dedicat calcului numeric si reprezentarilor grafice in domeniul stiintei si ingineriei. Matlab este un limbaj destinat operarii cu matrice dreptunghiulare de numere reale sau complexe. Calitatile si puterea acestui limbaj provin din implementarea functiilor de baza in operarea cu matrice. Alaturi de instructiunile si functiile interne ale limbajului, utilizatorul are posibilitatea sa-si defineasca propriile functii care sunt rezidente pe hard-disk, in fisiere cu extensia .m. Astfel apar grupate in toolbox-uri pentru: analiza si proiectarea sistemelor automate de control; proiectarea si simularea retelelor neurale; logica fuzzy; procesarea imaginilor si a semnalelor; optimizarea liniara si neliniara; rezolvarea ecuatiilor diferentiale; proiectarea sistemelor neliniare; simularea in timp real; calcul statistic; sinteza si identificarea sistemelor etc. Interpretorul Matlab are posibilitatea sa execute programe create in exteriorul sau cu un editor, sau interactiv fiecare instructiune introdusa. Este dotat cu un browser “Help” care permite descrierea sintaxei instructiunilor la cerere. Prin caracteristicile sale, limbajul Matlab este foarte adecvat studiului sistemelor dinamice liniare si a structurilor de reglare automata a acestora. Pentru aceasta se utilizeaza toolobox-ul Control System. Acest toolbox contine o biblioteca de functii specifice pentru analiza si proiectarea sistemelor de conducere. Sistemele pot fi considerate atat ca sisteme continue, cat si ca sisteme discrete. Sunt posibile conversii intre diferitele reprezentari. Analiza comportarii sistemelor modelate in Matlab este posibila pe baza raspunsului in timp, in frecventa sau a calculului locului radacinilor. Principalele facilitati de calcul oferite de Control System Toolbox sunt urmatoarele:

� constructia modelelor sistemelor dinamice liniare, invariante in timp cu o intrare si o iesire, utilizand diversele functii din Control System Toolbox. Sunt posibile diversele reprezentari de modele: functia de tranfer, reprezentare de stare, reprezentare poli-zerouri;

� conversii intre diversele reprezentari; � constructia modelelor sistemelor cu mai multe intrari si mai multe iesiri;

Page 2: Introducere in Matlab

2

� reprezentarea sistemelor discrete, conversii analog-discret si invers, introducerea intarzierilor in modelul dinamic al procesului;

� conexiuni intre diverse sisteme.

Introducere in Matlab

1. 1 Prezentare generală Mediul MATLAB este un software performant şi cuprinzător destinat

calculelor tehnice, având o interfaŃă prietenoasă cu utilizatorul. El oferă inginerilor, cercetătorilor şi tehnicienilor un sistem unitar şi interactiv, care include calcule numerice şi vizualizări grafice, prin aceasta sprijinind creativitatea şi creşterea productivităŃii. Pachetul de produse MATLAB reprezintă un instrument puternic de cercetare, analiză şi proiectare, de elaborare şi testare rapidă a soluŃiilor propuse şi de rezolvare a celor mai dificile şi complexe probleme tehnice. Poate fi considerat un limbaj de programare adaptat pentru probleme ştiinŃifice, graŃie funcŃiilor sale specializate, în care instrucŃiunile sunt interpretate linie cu linie. Interesant este faptul că posedă capacităŃi grafice pentru prezentarea rezultatelor sau pentru crearea aplicaŃiilor.

MATLAB-ul înglobează analiza numerică, calculul vectorial, calculul matriceal, procesarea semnalelor şi realizarea graficelor într-un mediu uşor de utilizat, în care problemele şi soluŃiile sunt exprimate aşa cum sunt ele scrise matematic, fără a utiliza programarea tradiŃională.

MATLAB-ul este un sistem interactiv care permite rezolvarea multor probleme numerice într-un timp mult mai scurt decât cel necesar scrierii unui program într-un limbaj de programare ca Fortran, Basic sau C.

MATLAB-ul este folosit atât în cercetare cât şi în industrie pentru rezolvarea unor probleme practice de inginerie şi de matematică. Programul a evoluat de-a lungul timpului, prin contribuŃiile mai multor utilizatori şi are numeroase domenii de aplicare. Astfel, acesta dispune de o serie de soluŃii specifice pentru diferite aplicaŃii, aşa-numitele toolboxes, biblioteci de funcŃii standard (fişiere M), care extind mediul MATLAB cu scopul de a rezolva clase particulare de probleme. Dintre domeniile în care sunt utile aceste toolboxuri fac parte: teoria reglării automate, statistica şi prelucrarea semnalelor, proiectarea sistemelor de reglare, simularea sistemelor dinamice, identificarea sistemelor, reŃele neuronale, etc.

Câteva dintre aceste biblioteci de funcŃii, alături de domeniile de aplicaŃii specifice, sunt enumerate în continuare:

Page 3: Introducere in Matlab

3

• Signal Processing Toolbox – procesare de semnal; • System Identification Toolbox – identificarea sistemelor; • Control System Toolbox – sisteme de control; • Robust Control Toolbox – control robust; • Optimization Toolbox – optimizare; • Neural Network Toolbox – reŃele neurale; • Symbolic Math Toolbox – matematică simbolistică; • Fuzzy Logic Toolbox – logică fuzzy.

Acest mediu de programare dispune de o notaŃie simplistă - nu există o sintaxă complicată de comenzi, care să trebuiască să fie învăŃată cu greutate. Aceasta favorizează concentrarea directă pe problemele respective şi nu pe aspectele tehnice privind programarea. Prin biblioteca matematică cuprinzătoare a MATLAB-ului, sunt puse la dispoziŃia utilizatorului peste 500 de funcŃii matematice, statistice, ştiinŃifice şi tehnice.

MATLAB-ul oferă o viteză mare de calcul, deoarece codificarea sa în C a fost atent optimizată, ciclurile interne principale fiind prelucrate în limbaj de asamblare. De aceea MATLAB are avantaje importante, atât faŃă de alte pachete software interactive pentru aplicaŃii matematice, cât şi faŃă de subprogramele C şi Fortran corespunzătoare.

Se pot efectua diverse calcule numerice cu ajutorul MATLAB-ului, dintre care se amintesc:

� matematică generală: -operaŃii cu matrice şi câmpuri de date; -operatori relaŃionali şi logici; -funcŃii trigonometrice şi alte funcŃii elementare; -aritmetica polinomială;

� algebră liniară şi funcŃii de matrice: -analiza matriceală, logaritmi, exponenŃiale, determinanŃi, inverse; -sisteme de ecuaŃii liniare; -valori proprii, descompuneri după valori singulare; -construirea de matrice; -operaŃii cu matrice;

� analiză de date şi transformări Fourier; � metode numerice neliniare; � programare.

1.2 Structura mediului de programare Programul utilizează diferite tipuri de ferestre pentru introducerea de

comenzi, date şi vizualizarea acestora. Fereastra de comandă (vezi fig. 1) este

Page 4: Introducere in Matlab

4

acea fereastră în care utilizatorul tastează instrucŃiunile şi MATLAB-ul returnează rezultatele (se mai numeşte şi consolă).

Figura 1. Fereastra de comandă a MATLAB-ului În ferestrele grafice (vezi fig. 2), MATLAB-ul trasează graficele cu ajutorul

funcŃiilor predefinite. O serie de alte ferestre grafice sunt disponibile din bibliotecile de funcŃii speciale, cele ale Simulink-ului sau ale altor obiecte predefinite.

Figura 2. Exemplu de fereastră grafică Versiunea 6.5 a MATLAB-ului conŃine un ansamblu format din diferite

ferestre (vezi fig. 3), pentru a vizualiza în acelaşi timp comenzile din consolă,

Page 5: Introducere in Matlab

5

istoricul comenzilor din sesiunea curentă, precum şi din cele anterioare, ca şi fereastra spaŃiului de lucru (Workspace), fereastra care afişează proprietăŃile variabilelor utilizate în sesiunea de lucru curentă.

Figura 3. Fereastra principală a MATLAB-ului În sesiunile de lucru ale pachetului de programe MATLAB, se întâlnesc o

serie de fişiere, descrise în cele ce urmează: � Fişierele cu extensia M sunt fişiere ce conŃin linii de comandă şi pot fi

apelate în consola MATLAB pentru a executa setul de comenzi conŃinute în acestea;

� Fişierele cu extensia P reprezintă versiunea predefinită a fişierelor de tip M;

� Fişierele cu extensia MDL sunt fişiere reprezentând modele Simulink; � Fişierele cu extensia MEX sunt module executabile utilizate în

MATLAB şi create plecând de la surse în C sau Fortran; � Fişierele cu extensia MAT sunt fişierele utilizate pentru importul sau

exportul de date în sau dinspre MATLAB. Componenta Simulink a MATLAB-ului este o extensie grafică a acestuia şi

permite lucrul cu scheme bloc pentru modelarea şi simularea sistemelor. La rândul său, aceasta conŃine o serie de colecŃii de obiecte, grupate după

Page 6: Introducere in Matlab

6

funcŃionalitatea lor în biblioteca Simulink Library. Pentru a deschide această bibliotecă, se apelează din linia de comandă “simulink”. Pentru mai multe detalii despre această aplicaŃie, deschideŃi pagina Programul Simulink.

MATLAB-ul permite crearea de interfeŃe utilizator (GUI) personalizate, prin apelarea funcŃiei “guide” în linia de commandă. Se va deschide o fereastră din care putem alege una dintre mai multe variante.

Există două moduri posibile de funcŃionare: modul interactiv şi modul

executiv. În modul interactiv, MATLAB-ul execută instrucŃiuni care sunt date de către utilizator, iar în modul executiv sunt executate, linie cu linie, programele scris într-un fişier M (sau P) sau într-un fişier executabil de tip MEX.

MATLAB cuprinde o serie de programe specifice de aplicaŃii, aşa-numitele "toolboxes". Acestea reprezintă biblioteci de funcŃii MATLAB care adaptează mediul de lucru pentru diferite probleme şi diverse domenii de utilizare.

Bibliotecile combină avantajele software-urilor gata produse (fabricate) cu productivitatea şi flexibilitatea inerente unui mediu tehnic de calcul. Bibliotecile sunt disponibile pentru toate platformele pe care rulează MATLAB (Unix, Windows).

Ca sistem deschis, MATLAB asigură accesul la codul sursă al bibliotecilor, astfel încât algoritmii şi funcŃiile să poată fi examinate, adaptate şi extinse pentru a corespunde necesităŃilor.

Firma MathWorks oferă numeroase biblioteci, dintre care principalele sunt în următoarele domenii:

� prelucrarea semnalelor (Signal Processing Toolbox); � prelucrarea imaginilor (Image Processing Toolbox); � tehnica reglării automate (Control Systems Toolbox); � reglarea robustă (Robust Control Toolbox); � identificarea sistemelor (System Identification Toolbox); � tehnici de optimizare (Optimization Toolbox); � reŃele neuronale (Neural Network Toolbox); � logica Fuzzy (Fuzzy Logic Toolbox); � statistică (Statistics Toolbox).

Având MATLAB ca bază comună, aceste biblioteci pot fi utilizate cu uşurinŃă împreună. Astfel, metodele de optimizare şi funcŃiile de la reŃele neuronale pot fi folosite în rezolvarea problemelor complexe de prelucrare a semnalelor, iar rezultatele pot fi reprezentate sub forma unui grafic în culori cu trei dimensiuni, toate acestea realizându-se într-un singur mediu unitar.

1.3 Sesiunea de lucru Matlab 1.3.1. Pornirea MATLAB-ului

Activarea ferestrei de comandă MATLAB se poate realiza:

Page 7: Introducere in Matlab

7

- în Unix: într-o fereastră cmdtool, tastaŃi "MATLAB";

- în Windows: daŃi clic pe iconiŃa corespunzătoare de pe desktop sau din meniul de programe. Prompterul de comandă ">>" permite tastarea instrucŃiunilor linie cu linie, fiecare linie fiind executată imediat după apăsarea tastei Enter.

Figura 4. Fereastra de comandă

În fereastra de comandă se tastează instrucŃiunile (for, while, if … else, etc.), se definesc matricele şi vectorii precum şi operaŃiile cu acestea. O linie poate conŃine mai multe instrucŃiuni separate cu virgulă sau punct şi virgulă.

Pentru a obŃine informaŃia ajutătoare referitoare la un anumit subiect, instrucŃiune sau o funcŃie se tastează comanda "help" urmat de un subiect, funcŃie sau instrucŃiune dorită (cu litere mici). În fig. 4 am cerut informaŃii despre funcŃia trigonometrică sinus ("sin").

Sunt folosite totodată şi o serie de funcŃii de control a sistemului de calcul pe care rulează MATLAB-ul:

clock - funcŃie pentru citirea ceasului calculatorului; • cputime - funcŃie pentru determinarea timpului de calcul al

microprocesorului ; • date - funcŃie pentru citirea datei; • etime - funcŃie pentru cronometrarea intervalului de timp între două

evenimente; • tic, toc - funcŃii pentru pornirea şi oprirea unui cronometru.

1.3.2. Variabilele şi spaŃiul de lucru (Workspace-ul). OperaŃii uzuale Tipurile de date utilizate în MATLAB

Cel mai utilizat tip de date este matricea de dimensiune mxn, unde m este numărul liniilor, iar n, numărul coloanelor maricei. De asemenea, mai sunt

Page 8: Introducere in Matlab

8

folosite şi strucuturi de date cum ar fi tablourile, vectorii de date numerice sau de caractere. Definirea variabilelor

În MATLAB nu există instrucŃiuni pentru declararea sau dimensionarea unei variabile. O variabilă nouă se poate defini în moduri diferite, atribuindui-se direct o valoare numerică (singulară, vector, matrice, şir de caractere, etc) sau prin expresia sa matematică. EXEMPLUL 1. Mai jos, este atribuită o valoare reală variabilei ts, lui v îi este atribuit un vector de tip linie cu patru componente, iar lui text, un şir de caractere: >> ts=0.85

ts = 0.8500

>> v=[1 6 3 0] v =

1 6 3 0 >> text='buna'

text = buna

EXEMPLUL 2. PriviŃi următoarea atribuire:

>> x=[-5 sqrt(3) (3+9)*8/9]

x = -5.0000 1.7321 10.6667

Dacă variabila există deja, MATLAB-ul schimbă conŃinutul şi dacă este necesar, realocă mai mult spaŃiu în memorie.

Variabilele astfel definite sunt stocate în spaŃiul de lucru şi pot fi folosite în calculele ulterioare. Afişarea unei variabile din spaŃiul de lucru se realizează prin tastarea în linia de comandă a numelui acesteia.

Page 9: Introducere in Matlab

9

Figura 5. InformaŃii despre spaŃiul de lucru (Workspace-ul) EXEMPLUL 3. Exemplu de reapelare a variabilei ts: >> ts ts =

0.8500 Rezultatul unei instrucŃiuni este afişat din start. Dacă se doreşte ca

instrucŃiunea să fie executată fără afişarea rezultatului trebuie adăugat caracterul ";" la sfârşitul liniei. EXEMPLUL 4. Declararea unei variabile (r), fără afişarea valorii acesteia: >> r=3*5/pi; EXEMPLUL 5. Declararea explicită a unei matrice A2x3, de 2 linii şi 3 coloane. >> A=[1 4 7; 3 9 2] A =

1 4 7 3 9 2

Comanda următoare are rolul de a returna elementul de pe prima linie şi a doua coloană al matricei A:

>> A(1,2) ans =

4 OperaŃii cu matrice

Page 10: Introducere in Matlab

10

Fie X şi Y două matrice. OperaŃiile executate în MATLAB sunt ilustrate în cele ce urmează:

1) Adunarea şi scăderea sunt definite în cazul în care matricele au aceeaşi dimensiune.

"A=X+Y;"

"B=X-Y;" 2) ÎnmulŃirea este definită atunci când matricea X are dimensiunea m*n,

iar Y, dimensiunea n*p: "C=X*Y;"

3) ÎmpărŃirea la stânga: "D=X\Y;" este identică cu "inv(X)*Y;".

4) ÎmpărŃirea la dreapta este definită când matricele X şi Y au aceeaşi dimensiune:

"E=X/Y;" este identică cu "X*inv(Y);". 5) "F=X’" calculează în F matricea X transpusă. Acest lucru face ca

pentru o matrice cu dimensiunea n*m să se obŃină o matrice F cu dimensiunea m*n.

EXEMPLUL 6. Calculul determinantului unei matrice A se realizează prin utilizarea funcŃiei det: >> A=[1 3 5; 0 6 2; -1 0.7 4] A = 1.0000 3.0000 5.0000 0 6.0000 2.0000 -1.0000 0.7000 4.0000 >> det(A) ans = 46.6000

EXEMPLUL 7. Ridicarea la putere Xp reprezintă matricea pătratică X, ridicată la puterea p (scalar): >> x = [1 2; 3 4];

>> x^2

ans =

Page 11: Introducere in Matlab

11

7 10 15 22

EXEMPLUL 8. Calculul valorilor proprii ale unei matrice A se realizează prin apelul subrutinei eig, cu matricea trimisă ca parametru de intrare: >> A = [1 2 3; 4 3 4; 7 6 5]; >> eig(A)

ans =

11.6847 -2.0000

-0.6847

OperaŃii element cu element OperaŃiile element cu element ale vectorilor şi matricelor sunt efectuate

adăugând punct "." în faŃa operaŃiilor "*","\", "/" şi "^".

EXEMPLUL 9. OperaŃii element cu element: >> x = [4 3 7 9];

>> y = x.^2

y = 16 9 49 81

>> x.*y

ans = 64 27 343 729

OperaŃia de concatenare

Operatorul […] permite combinarea de matrice sau de vectori între ele în scopul formării unor matrice sau vectori mai mari. EXEMPLUL 10. OperaŃii de concatenare: >> x = [4 3 7];

>> y = x.^2;

Page 12: Introducere in Matlab

12

>> z = [x y] z =

4 3 7 16 9 49 >> z = [x; y]

z = 4 3 7

16 9 49 Ştergerea variabilelor din spaŃiul de lucru

Ştergerea variabilelor din spaŃiul de lucru se execută cu ajutorul următoarelor instrucŃiuni:

� "clear var1 var2" ştergerea var1 şi var2; � "clear(all)" ştergerea tuturor variabilelor.

Pentru închiderea unei sesiuni de lucru se tastează "quit" sau "exit". Terminarea sesiunii de lucru are ca efect pierderea variabilelor din spaŃiul de lucru, asta în cazul în care nu au fost salvate în prealabil într-un fişier cu extensia "mat".


Recommended