La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

MATLAB INTRODUZIONE A MATLAB POLITECNICO DI MILANO Facoltà di Ingegneria Dipartimento di Elettronica e Informazione Corso di Automatica BITTANTI Prof.

Presentazioni simili


Presentazione sul tema: "MATLAB INTRODUZIONE A MATLAB POLITECNICO DI MILANO Facoltà di Ingegneria Dipartimento di Elettronica e Informazione Corso di Automatica BITTANTI Prof."— Transcript della presentazione:

1 MATLAB INTRODUZIONE A MATLAB POLITECNICO DI MILANO Facoltà di Ingegneria Dipartimento di Elettronica e Informazione Corso di Automatica BITTANTI Prof. Sergio BITTANTI Corso di Automatica BITTANTI Prof. Sergio BITTANTI

2 Corso di Automatica - Introduzione a MATLAB ORGANIZZAZIONE DELLA PRESENTAZIONE INTRODUZIONE A MATLAB DEFINIZIONE DI VARIABILI, MATRICI E VETTORI FUNZIONI ELEMENTARI PER SCALARI E MATRICI POLINOMI VISUALIZZAZIONE DI GRAFICI NOTE GENERALI SU MATLAB (help, istruzione di ambiente...) ALCUNE ISTRUZIONI PER APPLICAZIONI DI CONTROLLO UN ESEMPIO CONCLUSIVO

3 Corso di Automatica - Introduzione a MATLAB INTRODUZIONE A MATLAB MATLAB (MATrix LABoratory) è un linguaggio di programmazione per applicazioni scientifiche (elaborazione numerica dei segnali, progetto di simulatori, sintesi di sistemi di controllo, ecc.) MATLAB è un interprete di comandi. I comandi possono essere forniti interattivamente o contenuti in files su disco (M-files) Comprende un vasto set di funzioni predefinite e numerose librerie (toolbox) per svariate applicazioni Le potenzialità di MATLAB possono essere facilmente estese (è semplice creare nuovi toolbox) E' possibile convertire un programma MATLAB in codice C e C++ in modo automatico

4 Corso di Automatica - Introduzione a MATLAB VARIABILI E ESPRESSIONI All'avvio di MATLAB appare il prompt "»" Vi sono due tipi di istruzioni: –assegnamenti » variabile = espressione –valutazione di espressioni » espressione La valutazione di un'espressione genera una matrice che viene assegnata alla variabile indicata. Quando nell'istruzione non si specifica la variabile a cui assegnare il risultato, la valutazione dell'espressione viene assegnata alla variabile di sistema ans. Se unespressione non termina con ; il risultato della sua valutazione viene mostrato anche sullo schermo.

5 Corso di Automatica - Introduzione a MATLAB VARIABILI E ESPRESSIONI Esempio: In MATLAB le variabili non devono essere dichiarate. La dichiarazione coincide con il primo assegnamento. MATLAB è case-sensitive » 8+2 ans = 10 » a = 5*ans a = 50 » b = 6+a; » b b = 56

6 Corso di Automatica - Introduzione a MATLAB DEFINIZIONE DI MATRICI Una matrice può essere definita con la sintassi seguente: –uno spazio o una virgola delimitano gli elementi di un stessa riga –un punto e virgola o un cambio di riga indicano la fine di una riga Sono presenti funzioni predefinite per la generazione di particolari matrici: –zeros(n,m)matrice di zeri –ones(n,m)matrice di uni –eye(n,m)matrice identità –rand(n,m)matrice di numeri casuali –diag([a11, a22, a33,..., aNN])matrice diagonale » A = [7 8; 8.9 7; 9 8] A = » B = [ ] B =

7 Corso di Automatica - Introduzione a MATLAB Per accedere agli elementi di una matrice: –A(n,m)estrae lelemento (n,m) della matrice A –A(n,:)estrae ln-esima riga della matrice A –A(:,m)estrae lm-esima colonna della matrice A DEFINIZIONE DI MATRICI » A = [7 8; 8.9 7; 9 8] A = » A(1,2) ans = 8 » A(2,:) ans = » A(:,1) ans =

8 Corso di Automatica - Introduzione a MATLAB DEFINIZIONE DI VETTORI Un vettore può essere creato con la stessa sintassi utilizzata per le matrici oppure con le istruzioni: –a : [step :] bcrea un vettore riga di estremi a e b. Il parametro opzionale step indica lintervallo tra ciascun elemento del vettore –linspace(a,b,N)crea un vettore riga di estremi a e b, costituito da N punti equispaziati » x = 1:6 x = » x = 0.5:0.1:0.9 x = » x = linspace(-1,1,4) x =

9 Corso di Automatica - Introduzione a MATLAB FUNZIONI ELEMENTARI PER SCALARI Gli operatori aritmetici presenti in MATLAB sono: + (somma), - (differenza), * (prodotto), / (quoziente), ^ (elevamento a potenza) Funzioni matematiche elementari: –absvalore assoluto di un numero complesso –anglefase di un numero complesso –conjcomplesso coniugato –expesponenziale in base e –real, imagparte reale e parte immaginaria di un numero complesso –log, log10logaritmo naturale ed in base 10 –sqrtradice quadrata Funzioni trigonometriche –sin, cosseno, coseno –tantangente –asin, acosarco seno, arco coseno –atanarco tangente Le variabili i e j sono predefinite uguali alla radice quadrata di -1

10 Corso di Automatica - Introduzione a MATLAB FUNZIONI ELEMENTARI PER SCALARI Altre costanti predefinite: –pipigreco –Infinfinito –NaNNot a Number (generata da 0/0, o Inf/Inf)

11 Corso di Automatica - Introduzione a MATLAB FUNZIONI ELEMENTARI PER MATRICI Gli operatori elementari sono: +, -, *, /, \,.*,./,.^ –L'operazione di somma o di sottrazione è definita tra matrici aventi le stesse dimensioni. Se uno dei due operandi è uno scalare, esso viene sommato o sottratto a tutti gli elementi della matrice. –X = B/A è la soluzione dell'equazione X*A = B –X = A\ B è la soluzione dell'equazione A*X = B –.*,./ e.^ effettuano le corrispondenti operazioni sui singoli elementi delle matrici coinvolte. Le funzioni matematiche elementari e trigonometriche, quando applicate alle matrici, si riferiscono ai singoli elementi della matrice Principali operazioni matriciali: –Matrice trasposta A' –Matrice inversa inv(A)

12 Corso di Automatica - Introduzione a MATLAB FUNZIONI ELEMENTARI PER MATRICI –Determinante det(A) –Autovalorieig(A) –Polinomio caratteristicopoly(A) –Rangorank(A) –Dimensionisize(A)

13 Corso di Automatica - Introduzione a MATLAB POLINOMI Un polinomio è rappresentato da un vettore riga che ne contiene i coefficienti in ordine decrescente delle potenze del polinomio medesimo Il polinomio 3s 3 + 2s + 8 si rappresenta come: Per ottenere gli zeri di un polinomio: Per valutare un polinomio in un punto: » polyval(pol, 1) ans = 13 » roots(pol) ans = i i » pol = [ ] pol =

14 Corso di Automatica - Introduzione a MATLAB VISUALIZZAZIONE GRAFICI La funzione plot produce grafici bidimensionali e può essere chiamata con diverse modalità E' possibile rappresentare sullo stesso grafico più curve, impostare una griglia, impostare delle etichette per gli assi, ecc... Esempio: Altre funzioni che consentono la visualizzazione di grafici 2-D, sono: –logloggrafico logaritmico in x e y –semilogxgrafico logaritmico in x e lineare in y –semilogygrafico logaritmico in y e lineare in x » Tempo = [-30:0.1:30]; » Tau = -5; » y = exp(Tempo/Tau); » z =300*sin(Tempo*pi/4); » plot(Tempo,y) » plot(Tempo,y,'r',Tempo,z,'y'),grid,title('ESERCIZIO') » plot(Tempo,y,'r',Tempo,z,'y:'),grid,title('ESERCIZIO')

15 Corso di Automatica - Introduzione a MATLAB VISUALIZZAZIONE GRAFICI –bargrafico a barre –stairsgrafico a scala –meshgrafico 3D Altre funzioni di utilità sono –title, xlabel, ylabel, grid –axis, hold, clf, shg, subplot

16 Corso di Automatica - Introduzione a MATLAB ALCUNE ISTRUZIONI DI USO COMUNE helprichiama lhelp in linea –help comandovisualizza lhelp relativo al comando indicato who/whoselencano le variabili in uso direlenca i files contenuti nel direttorio corrente clearallelimina tutte le variabili della sessione corrente –clear var1 var2elimina le variabili var1 e var2

17 Corso di Automatica - Introduzione a MATLAB ALCUNE ISTRUZIONI PER APPLICAZIONI DI CONTROLLO impulse (num, den, t)calcola la risposta allimpulso del sistema la cui funzione di trasferimento è descritta dai polinomi num e den. t è il vettore che definisce il tempo step (num, den, t)calcola la risposta allo scalino del sistema la cui funzione di trasferimento è descritta dai polinomi num e den. t è il vettore che definisce il tempo lsim (num, den, u, t)calcola la risposta del sistema la cui funzione di trasferimento è descritta dai polinomi num e den allingresso u. t è il vettore che definisce il tempo bode (num, den, w)calcola modulo e fase della funzione di trasferimento descritta dai polinomi num e den in corrispondenza delle pulsazioni specificate dal vettore w bode (num, den)visualizza automaticamente il diagramma di modulo e fase della funzione di trasferimento descritta dai polinomi num e den

18 Corso di Automatica - Introduzione a MATLAB ALCUNE ISTRUZIONI PER APPLICAZIONI DI CONTROLLO nyquist (num, den, w)traccia il diagramma di Nyquist della funzione di trasferimento descritta dai polinomi num e den in corrispondenza delle pulsazioni specificate dal vettore w rlocus (num, den, k)traccia il luogo delle radici della funzione di trasferimento descritta dai polinomi num e den. k rappresenta il vettore dei guadagni rlocus (num, den)traccia il luogo delle radici della funzione di trasferimento descritta dai polinomi num e den utilizzando un vettore dei guadagni determinato automaticamente

19 Corso di Automatica - Introduzione a MATLAB ALCUNE NOTE SUL TRACCIAMENTO DEI DIAGRAMMI DI BODE E NYQUIST Il vettore delle pulsazioni w può essere definito mediante il comando logspace –logspace (wmin, wmax, N)definisce un vettore di pulsazioni tra wmin e wmax costituito da N punti [m, f] = bode (num, den, w) restituisce i vettori del modulo e della fase della funzione di trasferimento in scala lineare. Prima di tracciare il diagramma di Bode il vettore m deve essere quindi convertito in dB. Per il tracciamento dei diagrammi di Bode di modulo e fase in scala semilogaritmica si utilizza la funzione semilogx Esempio » num = [1 2]; den = [1 2 5]; » w = logspace(-1,2,100); » [m,f] = bode(num,den,w); » m = 20*log10(m); » semilogx(w,m),grid, title(Diagramma del modulo), xlabel(w),ylabel(mod) » semilogx(w,f),grid, title(Diagramma della fasa), xlabel(w),ylabel(fase)

20 Corso di Automatica - Introduzione a MATLAB ESEMPIO Si consideri il sistema descritto in figura, in cui la massa M è collegata alla parete da una molla di costante elastica Ke e da uno smorzatore con coefficiente di attrito viscoso Kv Lequazione che lega la forza u(t) applicata alla massa M e la posizione y(t) della massa M è M u Ke Kv y

21 Corso di Automatica - Introduzione a MATLAB ESEMPIO La funzione di trasferimento che lega la forza u allo spostamento y della massa M è quindi Siano M = 10 Kg, Ke = 0,1 N/m, Kv = 0.05 Ns/m Vediamo ora come si possa utilizzare Matlab per ricavare i diagrammi di Bode e Nyquist della funzione di trasferimento, e la risposta allimpulso del sistema

22 Corso di Automatica - Introduzione a MATLAB ESEMPIO - Implementazione MATLAB » % Definizione della funzione di trasferimento » num = 1; den = [ ]; » » % Tracciamento del diagramma di Bode di modulo e fase » w = logspace(-2,0,1000); » [m,f] = bode(num,den,w); » m = 20*log10(m); » semilogx(w,m),grid, title(Diagramma del modulo), xlabel(w),ylabel(mod) » semilogx(w,f),grid, title(Diagramma della fase), xlabel(w),ylabel(fase) » » % Tracciamento del diagramma di Nyquist » nyquist(num,den,w) » » % Tracciamento della risposta allimpulso del sistema » t = 0:0.1:1000; » y = impulse(num,den,t); » plot(t,y),grid, title(Risposta impulsiva del sistema), xlabel(t),ylabel(y)

23 Corso di Automatica - Introduzione a MATLAB ESEMPIO - Diagramma di Bode

24 Corso di Automatica - Introduzione a MATLAB ESEMPIO - Diagramma di Nyquist

25 Corso di Automatica - Introduzione a MATLAB ESEMPIO - Risposta allimpulso


Scaricare ppt "MATLAB INTRODUZIONE A MATLAB POLITECNICO DI MILANO Facoltà di Ingegneria Dipartimento di Elettronica e Informazione Corso di Automatica BITTANTI Prof."

Presentazioni simili


Annunci Google