Sunteți pe pagina 1din 12

Laborator sistemelor automate – an 2

Laborator 1
Introducere in Matlab
A. Scopul lucrării
Familiarizarea studenților cu mediul de programare-simulare MATLAB-
SIMULINK.

B. Considerații teoretice

1. 1 Prezentare generală
Mediul MATLAB este un software performant şi cuprinzător destinat calculelor tehnice,
având o interfaţă prietenoasă cu utilizatorul (www.mathworks.com). 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 (https://matlabacademy.mathworks.com/details/matlab-
onramp/gettingstarted ). 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:
 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;

1
Laborator sistemelor automate – an 2

 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.
Putem efectua diverse calcule numerice cu ajutorul MATLAB-ului, dintre care amintim:
 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 acea fereastră în care utilizatorul
tastează instrucţiunile şi MATLAB-ul returnează rezultatele (se mai numeşte şi consolă).

2
Laborator sistemelor automate – an 2

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ă

3
Laborator sistemelor automate – an 2

MATLAB-ul conţine un ansamblu format din diferite ferestre (vezi fig. 3), pentru a
vizualiza în acelaşi timp comenzile din consolă (Command Window), 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ă,
directorul curent (Current Folder).

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ă (https://www.mathworks.com/help/matlab/files-and-
folders.html?s_tid=CRUX_lftnav ):
 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 SLX (variante mai vechi de Matlab-Simulink -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ă funcţionalitatea lor în biblioteca Simulink

4
Laborator sistemelor automate – an 2

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 î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 (https://www.mathworks.com/help/index.html?s_tid=CRUX_lftnav ):
 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:
- î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.

5
Laborator sistemelor automate – an 2

Figura 4. Fereastra de comandă (Command Window)

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

6
Laborator sistemelor automate – an 2

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

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;

7
Laborator sistemelor automate – an 2

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

8
Laborator sistemelor automate – an 2

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

9
Laborator sistemelor automate – an 2

EXEMPLUL 10. Operaţii de concatenare:

>> x = [4 3 7];
>> y = x.^2;
>> 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".

EXEMPLUL 11. Trasarea graficului unei functii


Se va trasa graficul functiei:
y (t )  10  e ( 60t )  cos(120    t ) cu t  [0, 0,06].

Pentru a trasa graficul functiei de mai sus se introduc urmatoarele comenzi in fereastra
grafic Command Window:

>> t=0:0.01e-3:0.06;
>> y=10*exp(-60*t).*cos(120*pi*t);
>> plot(t,y,'r');grid

Se obtine urmatoarea reprezentarea grafica din figura 6, unde se observa o serie de


instrumente ale editorului grafic din Matlab, cu ajutorul carora se poate edita si personaliza
graficul si anume :
- se poate introduce denumirea abscisei x si a ordonatei y (modifica font, culoare, marime, tip
de font etc.)
- se poate modifica background-ul graficului, tipul si marimea liniei de reprezentare a
graficului
- se poate da un titlu graficului
- se pot introduce sageti cu legende

10
Laborator sistemelor automate – an 2

Graficul poate fi salvat in memorie ca un fisier cu extensia .fig, putand fi transportat


intr-un document word, intr-o prezentare power point sau poate fi editat.

Figura 6. Graficul functiei pentru exemplul 10

Observatii generale privind lucrul cu Matlab


a. Comentarii în Matlab Un comentariu într-un program Matlab are forma: % comentariu
Dacă pe o linie de program apare caracterul %, atunci partea de linie care urmează după acest
caracter va fi omisă de către interpretor. Dacă un comentariu se întinde pe mai multe linii,
fiecare dintre aceste linii trebuie să aibă la început caracterul %.
b. Denumirea fisierelor in Matlab. Numele fisierelor in Matlab nu trebuie sa contina spatii
goale, operatori matematici, caractere alfa numerice. Numele trebuie sa fie continuu, legat
eventual prin underline. Daca nu se respecta aceste reguli fisierele nu pot fi executate, (ele pot
fi insa salvate).
c. Utilizarea aceleiasi versiuni de Matlab. Portarea si rularea fisiereleor realizate intr-o
versiune de Matlab pe alt calculator necesita aceeasi versiune de Matlab. Astfel apar erori.
d. Pagina oficiala a producatorului software este www.mathworks.com
e. Se pot utiliza ca resurse bibliografice orice resurse on-line.

11
Laborator sistemelor automate – an 2

https://matlabacademy.mathworks.com/?s_v1=41665&elqem=3649079_EM_ROW_DIR_22-
01_MOE-CG-ENG#getting-started

https://www.youtube.com/watch?v=8G1iyOpygqU (Matlab tutorial – 7 ore)

https://www.youtube.com/watch?v=vxzR3W2BcRk

C. Chestiuni de studiat

a. Chestiunea 1
Să se calculeze determinantul, inversa, pătratul și valorile proprii ale matricei:
6  n 8  10
A 5 2n 4  n – nr. de ordine din catalog
 12 7 n 
Se va rezolva analitic și se va verifica rezolvarea în Matlab.

Se va rezolva in Matlab cu aceleasi chestiuni ptr matricea:

 1 / n 2 1 1 
 1 n 0 1 
A  n – nr. de ordine din catalog
  0,5 0,5 0  0,5
 
 2 4 0  2n 

b. Chestiunea 2
Să se reprezinte grafic funcția : y(t)=sin(t.n)-cos(3t) pentru t  [0, 2π]. Analog
 1  t 1
pentru y (t )  ln  , cu t  [1, 2π] si y (t )  n- nr. de ordine din
 2t  n  2t  3
catalog

Se vor personaliza graficele celor 3 functii cu ajutorului editorului grafic din


Matlab.

12

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