Sunteți pe pagina 1din 9

CAPITOLUL 1 INTRODUCERE N MATLAB

1.1 Prezentarea mediului MATLAB


MATLAB (MATrix LABoratory) este un program interactiv, dezvoltat de firma Math Works Inc., fiind destinat, n special, prelucrrii numerice a datelor furnizate sub form vectorial sau matriceal. MATLAB integreaz calculul numeric cu vizualizarea rezultatelor i programarea, ntr-un mediu flexibil i deschis dezvoltrilor ulterioare. MATLAB este destinat n mod particular prelucrrii numerice (sau digitale) a semnalelor, modelrii, simulrii i proiectrii sistemelor numerice complexe, precum i dezvoltrii de algoritmi de prelucrare a seriilor de date, imaginilor sau cmpurilor multidimensionale de date. Structura mediului MATLAB este ilustrat n fig. 1.1. Subsistemele de prelucrare (Toolbox-urile) extind funciile MATLAB-ului i realizeaz operaiuni dedicate unor domenii specifice de prelucrare numeric, cum ar fi: prelucrarea imaginilor, optimizarea, statistica, identificarea sau controlul sistemelor, studiul reelelor neurale, a sistemelor fuzzy etc. SIMULINK este un mediu interactiv pentru modelarea i simularea sistemelor dinamice liniare, neliniare, n timp continuu, n timp discret sau a unor structuri hibride, compuse din subsisteme analogice i digitale. SIMULINK permite modelarea sistemelor dinamice cu ajutorul unor ecuaii matematice, a unor blocuri funcionale predefinite sau a unor blocuri definite de utilizator. MATLAB este un sistem interactiv, al crui element de baz este o matrice care nu necesit o dimensionare explicit. Aceasta ajut n rezolvarea a numeroase probleme de calcul tehnic, n special pentru cele bazate pe formalismul matriceal (i vectorial), permind scrierea programelor ntr-un limbaj scalar. MATLAB-ul a evoluat n ultimul timp, mai ales prin utilizarea sa n mediul universitar, ca instrument educaional pentru cursuri de matematic, inginerie i tiin. n egal msur, MATLAB-ul se dovedete deosebit de eficient n cercetarea tiinific i dezvoltarea tehnologic n mediul industrial.
1

Extensii MATLAB
MATLAB Compiler MATLAB C Math. Library Control System Communications Financial Frequency Domain System Identification Fuzzy Logic Higher-Order Spectral Analysis Image Processing LMI Control Model Predictive Control y-Analysis and Synthesis NAG-Foundation Neural Network Optimization Partial Differential Equation QFT Control Design Robust Control Signal Processing Spline Statistics Symbolic Math System Identification Wavelet

Toolbox-uri

MATLAB

Simulink

Extensii SIMULINK
Simulink Accelerator Real-Time Workshop State Flow DSP Fixed Point Nonlinear Control Design Communications

Blocksets

Fig. 1.1

1.2 Principalele comenzi i funcii MATLAB 1.2.1 Comenzi generale


who listeaz variabilele existente n spaiul de lucru whos listeaz variabilele mpreun cu informaii despre ele what listeaz fiierele dintr-un director cu extensiile .M, .MAT, .MEX size precizeaz dimensiunile variabilelor (de tip matrice) length precizeaz dimensiunile vectorilor help documentaie on-line privind comenzile MATLAB exit, quit comenzi de prsire a programului MATLAB
2

1.2.2 Comenzi de lucru cu discul


dir, chdir, delete comenzi similare cu cele specifice load, save, type sistemului de operare DOS pack compacteaz spaiul de lucru

1.2.3 Operatori aritmetici


+, -, *, /, ^ - operatori aritmetici uzuali . folosit naintea unui operator aritmetic , - operator hermitian . operator de transpunere

1.2.4 Operatori relaionali i logici


<, <=, >, >= - operatori relaionali uzuali == - operatorul de egalitate ~= - operatorul de inegalitate & - operatorul SI logic | - operatorul SAU logic ~ - operatorul NU logic

1.2.5 Caractere speciale


= - operatorul de atribuire , - separator (de argumente de funcii) [] folosite pentru formarea vectorilor i matricelor () folosite n expresii aritmetice : - folosite n indexarea variabilelor ; - indic sfrit de linie sau suprimarea tipririi ... indic continuarea unei comenzi pe linia urmtoare % - indic un comentariu

1.2.6 Variabile speciale i constante


ans numele implicit al unei variabile sau al unui rezultat eps precizia relativ n virgul mobil pi valoarea = 3.14159... i,j valoarea 1 Inf simbolul pentru infinit NaN Not-a-Number flaps contor al operaiilor n virgul mobil nargin numrul argumentelor de intrare a funciei nargout numrul argumentelor de ieire a funciei
3

1.2.7 Funcii matematice elementare


abs valoarea absolut sqrt rdcina ptrat real partea real a unei variabile complexe imag partea imaginar a unei variabile complexe angle unghiul (faza) unei variabile complexe conj conjugatul unei variabile complexe sign semnul unei variabile rem restul unei mpriri ntregi exp funcia exponenial log funcia logaritm natural log10 funcia logaritm zecimal

1.2.8 Funcii trigonometrice


sin, cos, tan, cot, sec funcii trigonometrice uzuale asin, acos, atan, acot, asec funcii trigonometrice inverse sinh, cosh, tanh, coth, sech funcii hiperbolice asinh, acosh, atanh, acoth, asech funcii hiperbolice inverse

1.2.9 Funcii destinate analizei datelor


max valoarea maxim a unei variabile tablou min valoarea minim mean valoarea medie std deviaia standard sum suma elementelor unei variabile tablou cumsum suma cumulat a elementelor unei variabile cumsqr suma ptratelor elementelor unei variabile prod produsul elementelor unei variabile tablou cumprod produsul cumulat al elementelor unei variabile

1.2.10 Funcii referitoare la polinoame


conv multiplic dou polinoame deconv mparte dou polinoame roots determin rdcinile unui polinom poly construiete un polinom din rdcinile sale polyval evalueaz un polinom residue dezvolt n fracii pariale (o fracie raional)
4

1.2.11 Funcii referitoare la (vectori i) matrice


zeros creeaz o matrice cu elemente nule ones creeaz o matrice cu elemente unitare rand creeaz o matrice cu numere aleatoare distribuite uniform randn creeaz o matrice cu numere aleatoare distribuite normal linspace creeaz un vector cu elemente distribuite liniar logspace creeaz un vector cu elemente distribuite logaritmic det calculeaz valoarea unui determinant norm calculeaz norma unui vector sau matrice inv calculeaz matricea invers eig calculeaz valorile proprii sau vectorul propriu

1.2.12 Funcii de intrare


input permite introducerea datelor de la tastatur ginput permite preluarea datelor n mod grafic, de la mouse sau cursor

1.2.13 Comenzi grafice 1D i 2D


plot deseneaz grafic (n planul xy) subplot deseneaz grafic doar ntr-o poriune a ecranului bar reprezint un grafic cu bare hist reprezint un grafic sub forma unei histograme polar reprezint un grafic n coordonate polare stairs reprezint un grafic n trepte (scar) stem reprezint grafic o secven de date (discrete) semilogx, semilogy reprezint grafic n scar semilogaritmic (pe x, respectiv pe y) loglog reprezint grafic n scar logaritmic pe x i y xlabel, ylabel marcheaz axele de coordonate title scrie un text (explicativ) pe grafic grid traseaz un caroiaj pe un grafic figure creeaz o fereastr grafic close nchide o figur clg terge graficul (de pe ecran) close all nchide toate ferestrele grafice cla terge axele curente clc terge ecranul hold on/off permite/omite afiarea suprapus a graficelor axis creeaz (i indic scara pe) axe
5

1.2.14 Comenzi grafice 3D


mesh deseneaz o suprafa 3D contour reprezint o suprafa prin curbe de nivel

1.2.15 Comenzi de control al programului


if comand de execuie condiionat else, elseif utilizate cu comanda if end termin execuia comenzilor for, while i if for comand de repetarea execuiei de un numr de ori while comand de repetare condiionat break termin execuia unei bucle return comand de ntoarcere dup apelul unei funcii pause comand de ateptare a interveniei utilizatorului.

1.3 Moduri de lucru n MATLAB


Dup lansarea n execuie, programul MATLAB intr n modul de comand, afind prompterul >> i ateptnd introducerea unei comenzi de ctre utilizator. Executarea unei comenzi este urmat, de obicei, fie de crearea unei variabile n spaiul de lucru, fie de afiarea unui mesaj sau desenarea unui grafic. De exemplu, comanda

>>v=0:10
va crea variabila v i va afia elementele acesteia pe ecran. Dac nu se dorete afiarea rezultatelor unei comenzi pe ecran, comanda trebuie urmat de caracterul ; care nu inhib ns i desenarea graficelor. Comenzile introduse anterior pot fi readuse n linia de comand prin folosirea sgeii , iar cele din linia de comand pot fi editate (sau modificate) folosind tastele sau . Analizai i controlul unei linii de comand realizat de tastele marcate cu , home, end, esc, del, backspace sau combinaiile de taste:

ctrl+ , ctrl+ , ctrl + k


n afara modului de lucru n linie de comand, n MATLAB se pot crea: - fiiere de comenzi (Script Files) salvate cu un nume cu extensia .m, - fiiere funcie (Function Files), caracterizate de un nume cu extensia .m, dar care, prin argumentele de intrare/ieire, realizeaz un transfer direcionat de informaii privind variabilele din linia de definiie. Pentru crearea unui fiier de comenzi (Script Files) se selecteaz succesiv din meniul programului: File/New/opiunea M-file.
6

Dac se dorete vizualizarea sau modificarea unui fiier (de comenzi) deja existent, se selecteaz: File/Open M-file ..., dup care se alege fiierul dorit. n urma acestor comenzi se deschide o sesiune de editare cu editorul setat de utilizator din meniul: Edit/View cu opiunea Edit Preference. Dac, de exemplu, se alege editorul NOTEPAD, fiierul n curs de editare va fi denumit de utilizator. Fiierul editat poate fi salvat, selectnd, de exemplu, din meniul editorului NOTEPAD succesiunea de comenzi: File/Save As ..., urmate de numele fiierului (cu extensia .m).

1.4 Exemplu de sesiune de lucru n MATLAB


S analizm efectul execuiei directe a unor comenzi referitoare la operaii simple asupra matricelor. Introducerea (direct) de la tastatur a elementelor unei matrice notat cu A se face cu:

>>A=[1 2 0; 2 5 -1; 4 10 -1]


Comanda a=A(1:3,1) creeaz un vector (coloan) compus din elementele primei coloane a matricei A. Rspunsul va fi:

a= 1 2 4
Calculul sumei elementelor primei coloane din matricea A se face cu una din comenzile:

>>sum(A(1:3,1)) sau sum(A(:,1))


Rspunsul va fi:

ans= 7
Calculul transpusei matricei A rezult din:

>>B=A' B= 1 2 4 2 5 10 0 -1 -1
Extragerea elementelor diagonalei principale din matricea A rezult din:
7

>>diag(A) ans= 1 5 -1
Analizai n continuare efectul urmtoarelor comenzi:

A*B A.*B inv(A) inv(A)*A

eig(A) poly(A) roots(poly(A))

S realizm un fiier de comenzi pentru reprezentarea n domeniile timp discret i frecven discret, n N = 64 puncte, a unui semnal armonic descris de: x[n] = 2 sin (0 n ) + 3 sin (40n ) + 5 sin (70 n ) (1.1) cu 0 = 2 / N . Selectai succesiv: File/New/M-file i editai fiierul de comenzi MATLAB:

N=64; n=0:N-1; x=2*sin(2*pi/N*n)+3*sin(8*pi/N*n)+5*sin(14*pi/N*n); Xm=abs(fft(x))/(N/2); Xp=unwrap(angle(fft(x))); subplot(311);stem(n,x) subplot(312);stem(n,Xm) subplot(313);stem(n,Xp)


nregistrai fiierul de comenzi, de exemplu cu numele test.m, selectnd succesiv File/Save i completnd numele menionat n caseta de dialog. La comanda test, lansat direct sau selectnd File/Run M-file ... test, se vor executa succesiv comenzile MATLAB editate, avnd ca efect reprezentarea grafic a semnalului armonic i a modulului i fazei spectrului su. Spre deosebire de fiierele de comenzi (de tip Script-Files), fiierele de tip funcii conin cuvntul cheie function la nceputul primei linii a fiierului. Un fiier-funcie se deosebete de un fiier de comenzi prin faptul c argumentele sale de intrare/ieire pot fi transferate ntre funcie i spaiul de lucru MATLAB, iar variabilele definite i utilizate doar n interiorul fiierului sunt locale i nu opereaz global n spaiul de lucru MATLAB.
8

Editai i creai o funcie genexp.m, care genereaz o secven exponenial x[n] = a n de lungime finit N. Iat o variant, pe care o putei modifica i completa cu explicaii (de tip comentarii):

function x=genexp(a,n0,N) if(N<=0) error('GENEXP: length not positive') end nn=n0+[1:N]'-1; x=a.^nn; end