ORGANIZZAZIONE DELLA PRESENTAZIONE

Slides:



Advertisements
Presentazioni simili
Laboratorio di Matematica Applicata Parte 3
Advertisements

Dipartimento di Matematica
Metodi numerici in Matlab
UNITÀ A2 JAVA: LE BASI DEL LINGUAGGIO Approfondimenti.
Capitolo 8 Sistemi lineari.
Autovalori e autovettori
MATLAB Cristina Campi
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
MATLAB Stefano Gagliardo
Introduzione a Matlab. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente specializzate.
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Algebra delle Matrici.
Esercitazione MATLAB (13/5)
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Matlab Annalisa Massini Matlab.
Matlab Annalisa Massini Matlab.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
Analisi armonica Esercitazione.
MATLAB. Annalisa Pascarella
MATLAB. Annalisa Pascarella
MATLAB.
Introduzione a Matlab Gabriella Puppo. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente.
Algebra lineare G. Puppo.
Metodi FEM per problemi ellittici
Interpolazione polinomiale
FEM -2 Gabriella Puppo.
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Creazione di matrici Delimititatore di riga Delimititatore di matrice
STIMA DELLO SPETTRO Noi considereremo esempi:
Introduzione all’algebra lineare
Studente Claudia Puzzo
Marco Panella MATLAB Marco Panella
Algebra matriciale e linguaggio matriciale in MATLAB
1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a
1a-2a lezione di laboratorio
Introduzione ai fogli elettronici: EXCEL
Organizzazione della Presentazione
INTRODUZIONE A MATLAB.
MATRICI classe 3 A inf (a.s ).
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Lezione 3 Vettori e Matrici.
Diagrammi 2D e 3D Funzioni di ordine superiore
Laboratorio di Informatica
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Lezione 2 Scalari e stringhe.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Elementi di Matlab e di Mathematica
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Gli argomenti di questa lezione sono:
Lezione 1: Introduzione all’uso di Matlab
Lezione 2 Matlab: Control System Toolbox
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Strumenti per il calcolo numerico Matlab/Octave Marco D. Santambrogio – Ver. aggiornata.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
FENOMENI OSCILLATORI Prof.ssa Silvia Martini
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.
Parte 5 Sommario Uso routine di calcolo predefinite di Matlab –Risoluzione equazioni non lineariRisoluzione equazioni non lineari –Ricerca minimo di una.
Dipartimento di Elettronica e Informazione
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