Sei sulla pagina 1di 53

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Corso di Diagnostica e Misure dei Sistemi Meccanici a.a. 2010-2011

Ing. Carlo Rottenbacher, PhD

Dipartimento di Meccanica Strutturale tel 0382 98 5454 e-mail rottenbacher@unipv.it

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Corso di Diagnostica e Misure dei Sistemi Meccanici


Universit degli studi di Pavia

a.a. 2010-2011

Dip di Meccanica delle Strutture

ORARIO Marted 9.15-13.15 Aula B1

- Relazioni - Iscrizioni allesame


Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

DI COSA CI OCCUPEREMO IN QUESTO CORSO??

Introduzione

a Matlab

Misura e Controllo delle vibrazioni Diagnostica delle macchine Tecniche e strumenti di monitoraggio

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Corso di Diagnostica e Misure dei Sistemi Meccanici


Universit degli studi di Pavia

a.a. 2010-2011

Dip di Meccanica delle Strutture

Introduzione a MATLAB

E uno strumento molto utile.. ..facciamo alcuni esempi


Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Alcuni esempi

Dip di Meccanica delle Strutture

Modello fisico-matematico Progettazione della sperimentazione Acquisizione dati sperimentali Analisi dei dati Confronto col modello (validazione)

Ricerca in campo - biomeccanico - ingranaggi e meccanismi - dinamica delle macchine

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

I lezione (DMSM_1) Introduzione a Matlab

Dip di Meccanica delle Strutture

Per fare tutto questo e molto altro ancora partiamo dallinizio

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

I lezione (DMSM_1) Introduzione a Matlab

Dip di Meccanica delle Strutture

MATLAB = MATrix LABoratory


E un sistema interattivo in cui lunit base dei dati un array (es. vettore = array ad 1 indice, matrice = array a 2 indici), per il quale non richiesto il dimensionamento un interprete di comandi un linguaggio di programmazione Ha una buona potenzialit grafica Versioni per Unix/Linux, Windows, Mac I files scritti in MATLAB sono portabili da una piattaforma allaltra
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

DMSM_1
Universit degli studi di Pavia Dip di Meccanica delle Strutture

I. Introduzione alla programmazione II. Struttura di MATLAB III. Algebra matriciale e linguaggio matriciale in MATLAB IV. Funzioni matematico - statistiche V. Importazione ed esportazione di dati

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

DMSM_1
Universit degli studi di Pavia Dip di Meccanica delle Strutture

I. Introduzione alla programmazione II. Struttura di MATLAB III. Algebra matriciale e linguaggio matriciale in MATLAB IV. Funzioni matematico - statistiche V. Importazione ed esportazione di dati

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

DMSM_1
Universit degli studi di Pavia Dip di Meccanica delle Strutture

VI. M- files: creazione delle funzioni VII. Loop VIII. Espressioni if e relazioni logiche IX. Grafici e funzioni plot X. Funzioni di ottimizzazione di MATLAB

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

DMSM_1
Universit degli studi di Pavia Dip di Meccanica delle Strutture

I. Introduzione alla programmazione

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Ambito di applicazione
Dip di Meccanica delle Strutture

Nellanalisi dei fenomeni fisico-matematico-ingegneristici indispensabile conoscere e saper programmare software che siano in grado di risolvere problematiche di carattere matematico e statistico pi o meno complesse, altrimenti impossibili da trattare per la loro difficolt computazionale

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

La programmazione
Dip di Meccanica delle Strutture

Programmare significa scrivere in un particolare linguaggio un testo in grado di essere letto dal software, che contenga delle istruzioni che il software dovr eseguire al fine di produrre un risultato numerico Per questo motivo la fase di programmazione potrebbe in linea di principio essere eseguita su un qualsiasi editor di testo (es. Word, txt,..), per poi essere letta con il programma prescelto
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Principali software
Universit degli studi di Pavia Dip di Meccanica delle Strutture

MATLAB Mathematica Mathcad MAPLE .. C++ ..

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Fenomeni-dati-variabili
Universit degli studi di Pavia

I fenomeni fisici vengono analizzati soprattutto mediante lo studio di dati, che possono riguardare:

Dip di Meccanica delle Strutture

-) una stessa variabile osservata in momenti diversi campione in serie storica (time series); es. la serie storica giornaliera del livello di un liquido in un serbatoio

-) diverse variabili osservate in uno stesso momento campione in cross section; es. il valore di pi indici di deformazione lungo una sezione per un determinato numero di cicli di vita di un provino

Accoppiamento perno-trapezio Data 28/09/2010

Attrezzatura per le prove di fatica

Intro a Matlab

Carlo Rottenbacher

Importanza dellalgebra matriciale


Universit degli studi di Pavia Dip di Meccanica delle Strutture

In MATLAB indipendentemente dal tipo di dati con cui stiamo lavorando, questi sono raccolti in matrici, sulle quali operiamo per esaminare il fenomeno oggetto di studio Per questo motivo indispensabile conoscere sia lalgebra matriciale sia il linguaggio matriciale che alla base dei principali software di programmazione

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Concentriamo lattenzione su MATLAB


Universit degli studi di Pavia Dip di Meccanica delle Strutture

MATLAB: - interfaccia vicina a Windows - capacit di lavorare congiuntamente con Excel - grande facilit di programmazione - buone capacit computazionali

trade off tra duttilit del software e precisione


computazionale
Intro a Matlab
Data 28/09/2010

Carlo Rottenbacher

DMSM_1
Universit degli studi di Pavia Dip di Meccanica delle Strutture

II. Struttura di MATLAB

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

MATLAB pu venir utilizzato per: Applicazioni matematiche e calcoli numerici Procedure Simulazioni Analisi di dati Grafici ..

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Allapertura di MATLAB ci si trova sulla finestra del command: questo significa che sulla riga in cui lampeggia lindicatore di testo possiamo digitare le operazioni, che verranno immediatamente recepite dal programma ed eseguite premendo INVIO

Command Window

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Quanto scritto nel command durante tutta la sessione di lavoro pu essere ripreso durante la stessa ponendosi su una linea e premendo la freccia in alto; premendo tale tasto in continuazione viene visualizzato quanto digitato precedentemente Quando la finestra di command su cui sono state eseguite le operazioni risulta troppo piena e si vuole cancellarla, si digita clc e si preme INVIO. La cancellazione non preclude lutilizzo della funzione precedente (freccia in alto)

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia

Le operazioni immesse nel command vengono immediatamente eseguite da MATLAB, che fornisce il risultato premendo il tasto INVIO al termine della operazione da eseguire: es. >> 7/5 (INVIO) ans= 1.4000

Dip di Meccanica delle Strutture

Oppure, nella stragrande maggioranza dei casi, abbiamo bisogno di definire delle variabili che rimarranno in memoria in MATLAB per tutta la sessione di lavoro poich vengono da questo immagazzinate in una memoria temporanea: es. >> a=7.5 Da questo momento in poi ad a sar associato il valore 7.5 Quindi se digitiamo >> a*2 ans= 15

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Se digitiamo: >> a=6 ans= 6.0000 dora in poi ad a sar associato il valore 6 e verr riscritto sul valore precedente

ATTENZIONE: CASE SENSITIVE - MATLAB distingue tra lettere maiuscole e lettere minuscole, per cui se avessimo per sbaglio digitato prima >> A*2 il programma risponderebbe ??? Undefined function or variable A
Data 28/09/2010

Non si pu nominare una variabile come pi, cui associato il numero 3.1416
Intro a Matlab Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Se nel command si vuole effettuare una operazione senza che MATLAB ne stampi a video il risultato si pone alla fine della riga un punto e virgola ;. Questo ha senso solo se si sta lavorando con variabili definite, altrimenti rende inutile loperazione. Es. se si digita: >> 1+2; >> MATLAB ha calcolato 1+2 siccome per non coinvolta nessuna variabile non abbiamo visto il risultato delloperazione e non successo nulla, non possiamo usare il risultato in quanto ad esso non associata alcuna variabile utilizzabile nelle righe successive

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Se invece si digita: >>r=3+4; >>r*2 ans= 14 in questo caso si utilizzato (ma non stampato a video) il risultato di 3+4

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Qualora il testo da inserire risultasse troppo lungo per essere visualizzato su una riga, possibile scrivere un testo su pi righe utilizzando uno spazio e i tre punti sulla riga su cui poi si va a capo. Quindi scrivere: >> r=3+4/2-7+9 r= 7 lo stesso di scrivere >> r=3+4/2 -7+9 r= 7 Volendo che MATLAB stampi a video una stringa di lettere (delle parole) e non numeri, ad es. la parola ciao, basta racchiudere la stessa tra apostrofi Es: >> ciao ans= ciao
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Struttura di MATLAB
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Volendo introdurre un testo che non sia invece considerato dal programma lo si deve racchiudere tra % Es. >> 4+2 %ciao% ans= 6 e il programma lo ignora. (Questa funzione risulter molto utile nelledit)

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Command & Edit


Universit degli studi di Pavia Dip di Meccanica delle Strutture

Inconvenienti della scrittura su command: - difficolt di gestire una serie piuttosto lunga di operazioni da far eseguire al computer in successione logica - possono comparire messaggi di errore - il testo della finestra del command non pu essere salvato in un file a parte, se non selezionando il testo, facendo copia e incolla su un edit tipo Word, (ma vengono compresi anche i messaggi di errore o i risultati)

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Command & Edit


Universit degli studi di Pavia Dip di Meccanica delle Strutture

opportuno invece che: il testo contenente le operazioni da far eseguire in successione sia scritto in una finestra di edit di testo, e dopo, tale file venga letto dal command, che fornisca il risultato delle operazioni contenute nel file di testo, che contiene tutte e sole le operazioni

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Edit
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Lopportunit di lavorare sulledit risiede nella possibilit di salvare quanto scritto su un file di estensione .m, che poi in qualsiasi altro momento pu essere recuperato e modificato. Tali files vengono pertanto definiti M-files. Quindi: Per codici che coinvolgono un breve numero di operazioni si pu agire direttamente sul command; Per codici che devono essere salvati per poi essere riutilizzati o per codici che consistono in parecchie operazioni dobbiamo lavorare sulledit

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Ricapitolando, allapertura di MATLAB 3 sono le Dip di Meccanica delle Strutture operazioni possibili: 1. Lavorare direttamente sulla finestra aperta (il command) 2. Aprire un nuovo file di edit File > New > M-file che apre una nuova finestra di edit su cui possiamo lavorare 3. Aprire un file di edit precedentemente creato digitando File > Open > (nomefile oppure nomefile.m) che pesca nella cartella work, cio la cartella, by default, destinata ad accogliere tutti gli m-files personali

Edit

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Salvareinunfile.m

x = 1 : 0.1 : 2 ; A = [ x ;exp(x) ]; nomefile = fopen ( esponenziale di x.txt' , 'wt'); fprintf ( nomefile , '%6.2g %8.4g\n' , A); fclose (nomefile);

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Caricareunfile.m

nomefile = fopen ( 'esponenziale di x.txt' , 'r'); A = fscanf ( nomefile , '%g %g' , [2 inf] ); A = A'; fclose (nomefile); A
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Edit
Universit degli studi di Pavia

Una volta aperto il file di edit, possiamo su di esso digitare tutte le operazioni che vedremo in seguito (manipolazione di matrici, loop,) Se vogliamo vedere il risultato delle operazioni, dobbiamo far correre, girare il programma premendo nelledit, dopo aver salvato il file: Debug (o Tools) > Run o pi semplicemente premendo il tasto F5. In questo modo otterremo nel command i risultati delle operazioni della finestra di edit, che non verr cos toccata dai risultati Possiamo durante la sessione passare sempre da edit a command e viceversa: sulledit abbiamo il testo delle operazioni, sul command il risultato
Data 28/09/2010

Dip di Meccanica delle Strutture

Intro a Matlab

Carlo Rottenbacher

Edit
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Una volta scritto nelledit un codice completo e volendo salvarlo per averlo a disposizione in futuro, possiamo digitare nelledit: File > Save as che salva il file con estensione .m nella cartella work, dove sar possibile riaprirlo in futuro digitando come detto File > Open >

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Edit
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Il percorso o path nel quale MATLAB legge e salva i files pu essere visto digitando nel command il comando path. Tale percorso pu essere modificato inserendo o eliminando le cartelle nelle quali MATLAB cerca le funzioni e i files digitando File > Set Path

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Cosa sono le librerie o toolbox


Universit degli studi di Pavia Dip di Meccanica delle Strutture

MATLAB consiste di una serie di funzioni di base, ad es. creazione di matrici, funzioni matematiche, attraverso le quali possibile svolgere uninfinit di funzioni Tuttavia sono state create delle librerie apposite, ovvero delle raccolte di funzioni, specifiche per argomento. Ad es. librerie di software specifico file scritti in linguaggio MATLAB , ottimizzazione, simulazione,

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Librerie o toolbox
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Si tratta quindi di raccolte di funzioni che lutilizzatore ha a disposizione immediatamente, essendo gi state create Control System Signal Processing Statistics Neural Networks Fuzzy Logic

Toolbox

Le librerie sono immediatamente utilizzabili nelledit e nel command, e inoltre andando nella directory di MATLAB possiamo aprire i singoli file delle librerie e osservare i codici associati ad ogni funzione

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

HELP ovvero Aiuti nella programmazione

Dip di Meccanica delle Strutture

Il tasto help il principale aiuto nellutilizzo di MATLAB - Digitando nel command help si apre un elenco che costituisce linsieme di librerie presenti in MATLAB. - Digitando help seguito dal nome della libreria scelta otteniamo la serie di funzioni associate alla libreria, con una indicazione della loro utilit. Ad es. se digitiamo help vediamo che la libreria matlab\elmat si occupa di matrici, e digitando help matlab\elmat abbiamo unindicazione di tutte le funzioni presenti in questa libreria
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Aiuti nella programmazione


Universit degli studi di Pavia Dip di Meccanica delle Strutture

Digitando poi help seguito dal nome della funzione otteniamo una descrizione dellutilizzo della funzione stessa es. help mean

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Aiuti nella programmazione


Universit degli studi di Pavia Dip di Meccanica delle Strutture

dice come opera questa funzione che calcola la media, facendo anche un esempio
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Se andiamo a recuperare ed aprire il file mean.m (file associato alla funzione mean) allinterno della directory di MATLAB, vediamo che quanto stampato a video corrisponde alle righe racchiuse tra % presenti allinizio della funzione... (riprenderemo questo discorso pi avanti parlando delle funzioni)

Proviamo..

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Open mean.m
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Creiamo un file .m per calcolare le medie associate agli elementi di una matrice
New M.fle X =[0 1 2 3 4 34568 2 3 4 5 6] Mean(X,1) Mean(X,2)

Salviamo il file col nome provamean.m

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Aiuti nella programmazione


Universit degli studi di Pavia Dip di Meccanica delle Strutture

New M.fle X =[0 1 2 3 4 34568 2 3 4 5 6] Mean(X,1) Mean(X,2)

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Debug

run

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Universit degli studi di Pavia

Dip di Meccanica delle Strutture

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Aiuti nella programmazione


Universit degli studi di Pavia Dip di Meccanica delle Strutture

Un altro comando che permette di visualizzare le funzioni che riguardano lo stesso argomento di una funzione nota lookfor. Ad es. digitando lookfor diag otteniamo tutti i comandi analoghi al comando di estrazione della diagonale principale di una matrice. In MATLAB esiste inoltre una guida che pu essere in ogni momento consultata premendo Help > MATLAB Help

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Aiuti nella programmazione


Universit degli studi di Pavia Dip di Meccanica delle Strutture

Nella creazione di funzioni risulta utilissima la presenza nelledit del Debug Debug = ossia di un meccanismo che permette allutilizzatore di avere i risultati delle operazioni che il programma svolge o meglio sta svolgendo, allinterno di una funzione, controllando che calcoli esattamente ci che si voleva esso facesse Vedremo pi avanti la sua utilit nellabito della creazione di funzioni
Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Altri comandi video


Universit degli studi di Pavia

Digitando nel command

Dip di Meccanica delle Strutture

Who e whos forniscono - il nome delle variabili utilizzate (who) - il nome delle variabili utilizzate + la loro dimensione, cio se matrici, numeri, (whos) Clear - azzera tutte la variabili temporaneamente presenti

Attenzione! mentre clc cancella quanto scritto, clear azzera la memoria temporanea

X,a, r

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

Altri comandi video


Universit degli studi di Pavia

Il comando format gestisce laspetto grafico con il quale vengono visualizzati i risultati. In sintesi possiamo usare nel command format short format long

Dip di Meccanica delle Strutture

short -- format with 5 digits

long -- format with 15 digits


Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

ESEMPIO
Universit degli studi di Pavia Dip di Meccanica delle Strutture

Complessit computazionale del calcolo del determinante con la regola di Laplace e con lalgoritmo di Gauss (det)
Risoluzione di un sistema di n equazioni lineari
(Tempi di calcolo su un calcolatore che effettua un milione di operazioni al secondo (1 Mflop/s))

n 12 13 14 20 30 40 50

Cramer + Laplace 103 minuti 24 ore 15 giorni 1.620.083 anni 2.6 1020 anni 1.1 1036 anni 4.9 1052 anni

Gauss 7.1 104 secondi 8.9 104 secondi 1.1 103 secondi 3.1 103 secondi 9.9 103 secondi 2.3 102 secondi 4.4 102 secondi

Et della terra ~ 4.65 109 Et delluniverso ~ 13 109

Data 28/09/2010

Intro a Matlab

Carlo Rottenbacher

..ripassino..
Universit degli studi di Pavia Dip di Meccanica delle Strutture

In algebra lineare, il determinante una funzione che associa ad ogni matrice quadrata A uno scalare che ne sintetizza alcune propriet algebriche
Inizio dalla riga i-esima dove Ci,j il complemento algebrico della coppia (i,j), cio Ci,j data da ( - 1)i + j per il determinante del minore di ordine n 1 ottenuto dalla matrice A eliminando la riga i-esima e la colonna j-esima.

Sviluppo di Laplace

Il determinante di una matrice triangolare il prodotto degli elementi sulla diagonale

Algoritmo di Gauss

Ax = c A matrice quadrata invertibile X, c vettori


Data 28/09/2010

Regola di Cramer

Intro a Matlab

Carlo Rottenbacher