Dipartimento di Elettronica e Informazione

Slides:



Advertisements
Presentazioni simili
Dipartimento di Matematica
Advertisements

UNITÀ A2 JAVA: LE BASI DEL LINGUAGGIO Approfondimenti.
MATLAB Cristina Campi
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB.
MATLAB Stefano Gagliardo
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Matlab Annalisa Massini Matlab.
Matlab Annalisa Massini Matlab.
MATLAB. Annalisa Pascarella
MATLAB. Annalisa Pascarella
MATLAB.
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
ORGANIZZAZIONE DELLA PRESENTAZIONE
Organizzazione della Presentazione
INTRODUZIONE A MATLAB.
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
INTRODUZIONE A MATLAB Corso di Segnali e Sistemi a.a. 2010/2011.
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
1 Grandezze scalari e vettoriali Grandezze scalari: sono completamente definite da un numero esempi: massa, lunghezza, tempo. Grandezze vettoriali: sono.
I Polinomi Prof.ssa A.Comis.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
INTRODUZIONE A MATLAB/OCTAVE MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
1 Simulazione Numerica dei Fenomeni di Trasporto Necessità di introduzione dei tensori  11  12  13  23  21  22 Vogliamo descrivere in un modo che.
NUMERI ed ERRORI MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
RISPOSTA ALL'ECCITAZIONE ARMONICA - SISTEMA NON SMORZATO Forza impressa equaz. del moto: rapporto di frequenza per La risposta è la sovrapposizione di.
x : variabile indipendente
Unità A2 Java: le basi del linguaggio
Definizione di logaritmo
Introduzione al linguaggio C
Le equazioni di II°Grado
x : variabile indipendente
La procedura da applicare è la seguente:
Controlli Automatici - A.A. 2003/2004
IL CONCETTO DI ALGORITMO
Richiami di Algebra Matriciale
Corso di Segnali e Sistemi
ELEMENTI DI DINAMICA DELLE STRUTTURE
x : variabile indipendente
MATRICI (ARRAY) IN MATLAB/OCTAVE
Equazioni differenziali
ELEMENTI DI GRAFICA IN MATLAB/OCTAVE
realizzato dal prof.Conti Riccardo
Richiami di Algebra Matriciale
Informatica per Scienze Geologiche LT a.a
Analisi di Immagini e Dati Biologici
ing. vincenzo lippiello
Rappresentazione dei Numeri
Informatica per Scienze Geologiche LT a.a
ing. vincenzo lippiello
Impariamo a conoscere le Matrici
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
Matrici Definizioni Matrici Rettangolari Quadrate 02/01/2019
Le espressioni algebriche letterali
Dalle potenze ai numeri binari
Informatica per Scienze Geologiche LT a.a
LA RETTA.
Diagrammi Di Bode Prof. Laura Giarré
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Unità A2 Java: le basi del linguaggio
Fogli di Calcolo Elettronici
Matrici e determinanti
Richiami di Algebra Matriciale
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Docente: Sabato Bufano
Transcript della presentazione:

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

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 Corso di Automatica - Introduzione a MATLAB

Corso di Automatica - 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 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 un’espressione non termina con “;” il risultato della sua valutazione viene mostrato anche sullo schermo. 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 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 = 7.0000 8.0000 8.9000 7.0000 9.0000 8.0000 » B = [1 2 3 4 5 6] B = 1 2 3 4 5 6 Corso di Automatica - Introduzione a MATLAB

DEFINIZIONE DI MATRICI Per accedere agli elementi di una matrice: A(n,m) estrae l’elemento (n,m) della matrice A A(n,:) estrae l’n-esima riga della matrice A A(:,m) estrae l’m-esima colonna della matrice A » A = [7 8; 8.9 7; 9 8] A = 7.0000 8.0000 8.9000 7.0000 9.0000 8.0000 » A(1,2) ans = 8 » A(2,:) ans = 8.9000 7.0000 » A(:,1) 7.0000 8.9000 9.0000 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 :] b crea un vettore riga di estremi a e b. Il parametro opzionale step indica l’intervallo 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 = 1 2 3 4 5 6 » x = 0.5:0.1:0.9 0.5000 0.6000 0.7000 0.8000 0.9000 » x = linspace(-1,1,4) -1.0000 -0.3333 0.3333 1.0000 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: abs valore assoluto di un numero complesso angle fase di un numero complesso conj complesso coniugato exp esponenziale in base e real, imag parte reale e parte immaginaria di un numero complesso log, log10 logaritmo naturale ed in base 10 sqrt radice quadrata Funzioni trigonometriche sin, cos seno, coseno tan tangente asin, acos arco seno, arco coseno atan arco tangente Le variabili i e j sono predefinite uguali alla radice quadrata di -1 Corso di Automatica - Introduzione a MATLAB

FUNZIONI ELEMENTARI PER SCALARI Altre costanti predefinite: pi pigreco Inf infinito NaN Not a Number (generata da 0/0, o Inf/Inf) 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) Corso di Automatica - Introduzione a MATLAB

FUNZIONI ELEMENTARI PER MATRICI Determinante det(A) Autovalori eig(A) Polinomio caratteristico poly(A) Rango rank(A) Dimensioni size(A) Corso di Automatica - Introduzione a MATLAB

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 3s3 + 2s + 8 si rappresenta come: Per ottenere gli zeri di un polinomio: Per valutare un polinomio in un punto: » pol = [3 0 2 8] pol = 3 0 2 8 » roots(pol) ans = 0.6136 + 1.3403i 0.6136 - 1.3403i -1.2273 » polyval(pol, 1) ans = 13 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: loglog grafico logaritmico in x e y semilogx grafico logaritmico in x e lineare in y semilogy grafico 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') Corso di Automatica - Introduzione a MATLAB

VISUALIZZAZIONE GRAFICI bar grafico a barre stairs grafico a scala mesh grafico 3D Altre funzioni di utilità sono title, xlabel, ylabel, grid axis, hold, clf, shg, subplot Corso di Automatica - Introduzione a MATLAB

ALCUNE ISTRUZIONI DI USO COMUNE help richiama l’help in linea help comando visualizza l’help relativo al comando indicato who/whos elencano le variabili in uso dir elenca i files contenuti nel direttorio corrente clear all elimina tutte le variabili della sessione corrente clear var1 var2 elimina le variabili var1 e var2 Corso di Automatica - Introduzione a MATLAB

ALCUNE ISTRUZIONI PER APPLICAZIONI DI CONTROLLO impulse (num, den, t) calcola la risposta all’impulso 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 all’ingresso 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 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 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’) Corso di Automatica - Introduzione a MATLAB

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 L’equazione che lega la forza u(t) applicata alla massa M e la posizione y(t) della massa M è Ke u M Kv y Corso di Automatica - Introduzione a MATLAB

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 all’impulso del sistema Corso di Automatica - Introduzione a MATLAB

ESEMPIO - Implementazione MATLAB » % Definizione della funzione di trasferimento » num = 1; den = [10 0.05 0.1]; » » % 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 all’impulso 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’) Corso di Automatica - Introduzione a MATLAB

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

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

ESEMPIO - Risposta all’impulso Corso di Automatica - Introduzione a MATLAB