Upload
others
View
16
Download
0
Embed Size (px)
Citation preview
Cos’è Matlab? A che serve? Nasce come software di calcolo per supporto ai problemi di
algebra lineare e al calcolo numerico
Matrici
Matrix Laboratory
Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 2
Un po’ di storia …… Fine anni ‘70 Prof. Cleve Moler (Matematic and Science Computer) (University of New Mexico) e Steve Bangert
1983 Jack Litter (Electrical Engineer and Science Computer) (MIT and Stanford University ) incontra Cleve Moler alla Standford
1984 Jack,Cleve e Steve fondano
AMORE A PRIMA VISTA
3 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Un po’ di storia …… Matlab diviene con l’aggiunta di librerie e tools uno dei software di calcolo più potenti del mondo usato nell’ambito della ricerca e dell’industria.
Campi di applicazione:
-Robotica -Matematica -Biologia -Biotecnologie -Dispositivi medici e campo farmaceutico -Scienze della terra -Finanza -Difesa e campo aerospaziale -Automazione industriale -Elettronica e semiconduttori -Produzione di energia elettrica -Campo ferroviario, navale ed altri mezzi di trasporto
4 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Interfaccia grafica Matlab
Command Window
Workspace
Command History
Current Folder
Finestra comandi per immettere comandi e visualizzare risultati numerici
Finestra variabili: visualizza tutte le variabili in uso
Cronologia comandi
Cartella di lavoro: Contiene tutti i file della cartella di lavoro selezionata
5 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Interfaccia grafica Matlab Finestra comandi
Finestra variabili
Cronologia comandi
Cartella di lavoro
6 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Cos’è Simulink? A Che serve? Ambiente grafico per la simulazione multidominio
Creazione di modelli matematici tramite schemi a blocchi
Modellazione e simulazione di sistemi dinamici e statici
Completamente integrato con Matlab, questo permette di esportare i risultati delle simulazioni in Matlab per ulteriori
analisi, oppure è possibile utilizzare algoritmi per creare dati di ingresso al modello da simulare
Test e Controllo Real Time
7 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Come avviare Simulink Library Browser
Avvio tramite icona Avvio tramite
comando testuale
Avvio tramite menù Start
8 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Interfaccia grafica Simulink
9 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Libreria
Nuovo modello
Comandi utili
>> Indica che il programma può ricevere un comando
who
close all
close (‘1’)
clear all
clear b
whos
Chiude la figura scelta ad esempio la 1
Permette di visualizzare tutte le variabili
Permette di visualizzare tutte le variabili specificando nome, dimensione, classe ecc…
Cancella la variabile selezionata del workspace: ad esempio la variabile b
Cancella tutte le variabili presenti nel workspace
Chiude tutte le figure aperte
10 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Comandi utili
;
Lo si utilizza alla fine di ogni comando. Se lo si omette non accade nulla. Quando si ha a che fare con le variabili l’omissione restituisce il/i valore/i della variabile
help plot
ans
a+↑
↑
Permette di visualizzare le informazioni relative ad un comando specifico. Nell’esempio il comando plot
Richiama i comandi precedentemente inseriti
Richiama i comandi precedentemente inseriti con iniziale ‘a’
Variabile temporanea, memorizza l’ultimo valore calcolato
Attenzione!! Matlab è case sensitive
11 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
: Si utlizza per gli intervalli es. m:n (da m a n)
Operazioni con scalari Utilizzare Matlab come calcolatrice
SOMMA >> 6+9 ans = 15
DIFFERENZA >> 5-12 ans = -7
DIVISIONE >> 25/98 ans = 0.2551
MOLTIPLICAZIONE >> 6*6 ans = 36
RADICE QUADRATA >> sqrt(2) ans = 1.4142
RADICE CUBICA >> 8^(1/3) ans = 2
ELEVAMENTO A POTENZA >> 25^6 ans = 244140625
OPERAZIONE CON ; >> 5+3; >> ans ans = 8
OPERAZIONE CON NUMERI COMPLESSI 5i+(3+2i) ans = 3.0000 + 7.0000i
12 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con scalari Alcuni operatori
Logaritmi log Logaritmo naturale log10 Logaritmo in base 10 log2 Logaritmo in base 2
Esponenziali exp Esempio 2*exp(3) è uguale a 2*e^3 e(costante di Nepero) e Esempio 2e6 è uguale a 2*10^6 (2000000)
Funzioni trigonometriche cos coseno(in radianti) cosd coseno(in gradi) sin seno (in radianti) sind seno(in gradi) tan tangente(in radianti) tand tangente(in gradi) cotan tangente(in radianti) cotand tangente(in gradi) acotan inv. tangente(in radianti) acotand inv. tangente(in gradi) acos inv. coseno(in radianti) acosd inv. coseno(in gradi) asin inv. seno(in radianti) asind inv. seno(in gradi) atan inv. tangente(in radianti) atand inv. tangente(in gradi)
13 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con scalari Creare e utilizzare variabili
Creazione della variabile h a partire da un espressione algebrica formata dalle variabili a,b,c e d >> a=2; >> b=5; >> c=7; >> d=sqrt(10); >> h=a+(b*(c/(1+d))); >> h h = 10.4089
Creazione della variabile h (scalare,vettore o matrice) senza inizializzarla >> h=[];
14 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Utilizzo del Workspace
Apertura dell’intero Workspace salvato sul computer
Salvataggio della singola variabile sul computer
Apertura della singola variabile salvata sul computer
Salvataggio dell’intero Workspace
Importazioni variabili
Creazione della singola variabile(scalare, vettore, matrice, ecc.)
15 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Utilizzo del Workspace Nuova
Variabile
Importa i dati
Apre la variabile selezionata
(Variable Editor)
Elimina i dati
Salva i dati
16 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori
- Creazione di un vettore
>> Z=[5 0 6 9 ]; >> Z Z = 5 0 6 9
>> size(Z) ans = 1 4
- Conoscere la dimensione del vettore Z
- Conoscere il numero di elementi del vettore Z
>>length(Z) ans = 4
>> D=[0:0.01:5]; >> D=[0:5]; >> D D = 0 1 2 3 4 5
17 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori
- Conoscere il valore max del vettore Z
- Conoscere il valore minimo del vettore Z
>> min(Z) ans = 0
>> max(Z) ans = 9
- Conoscere il valore della media aritmetica del vettore Z
>> mean(Z) ans = 5
18 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori -Creare un vettore b uguale al valore assoluto del vettore m
>> m=[5 -3 6 -20]; >> b=abs(m) b = 5 3 6 20
-Calcolare il valore della somma degli elementi del vettore Z
>> sum(Z) ans = 20
19 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
-Creazione di un vettore di tutti zeri/uno da 5 elementi(1*5)
>> zeros(1,5) ans = 0 0 0 0 0
>> ones(1,5) ans = 1 1 1 1 1
Operazioni con vettori -Creare una vettore L uguale al trasposto del vettore Z
>> Z=[1 5 3 -1] Z = 1 5 3 -1 >> L=Z' L = 1 5 3 -1
-Visualizzare un singolo elemento del vettore Z
>> Z=[1 5 3 -1] Z = 1 5 3 -1 >> Z(2) ans = 5
20 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori -Modificare un singolo elemento del vettore Z
>> Z=[1 5 3 -1] Z = 1 5 3 -1 >> Z(2) ans = 5 >> Z(2)=0; >> Z Z = 1 0 3 -1
-Creare una variabile m uguale al secondo elemento del vettore Z >> Z=[1 5 3 -1] Z = 1 5 3 -1 >> m=Z(2) m = 0
21 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori -Somma tra due vettori
>> a=[1 5 6 -32]; >> b=[7 -5 6 8]; >> a+b ans = 8 0 12 -24
-Somma tra scalare e vettore
>> a=[1 5 6 -4]; >> 1+a ans = 2 6 7 -3
-Prodotto tra uno scalare ed un vettore
>> a=[10 -2]; >> c=5*a c = 50 -10
22 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
-Prodotto vettoriale
Operazioni con vettori
>> a=[1 5 6 ]; >> b=[1 -5 8 ]; >> cross(a,b) ans = 70 -2 -10
-Prodotto scalare tra due vettori
>> a=[10 -2]; >> b=[8 5]; >> c=dot(a,b) c= 70
>> c=a*b' c = 70
23 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori
- Operazioni elemento per elemento
>> a=[10 -2 3]; >> b=[8 5 2]; >> a.*b ans = 80 -10 6
Il punto si utilizza per effettuare operazioni elemento per elemento
>> a=[0 2 3]; >> a^2 Error using ^ Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (.^) instead. >> a.^2 ans = 0 4 9
24 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Operazioni con vettori
- Altri esempi di operazioni con vettori
Seno >> a=[90 0 180 270]; >> sind(a) ans = 1 0 0 -1
Coseno >> a=[25 0 100 -4]; >> sqrt(a) ans = 5.0000 0 10.0000 0 + 2.0000i
25 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
GRAFICI
- PLOT DEL VETTORE y
26 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
>> x=[0:0.01:2*pi]; >> y=sin(x); >> plot(y);
>> plot(x,y);
L’asse x riporta il numero di punti di y uguale al numero di punti di x
L’asse x riporta i valori di x corrispondenti a y, ovvero riporta i radianti
- PLOT DEI VETTORI x,y
GRAFICI
27 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
>> x=[0:0.01:2*pi]; >> y=sin(x); >> plot(x,y,'r'); >> title('Seno di x'); >> xlabel('x [rad.]'); >> ylabel('sin(x)'); >> grid on; >> legend sinx;
Per specificare il titolo e il nome degli assi è possibile usare i comandi title, xlabel ed ylabel. (I nomi vanno indicati tra apici) Mentre per attivare la griglia grid on, per disattivarla grid off.
E’ possibile specificare il colore della traccia, digitando la lettera corrispondente al colore, tra apici. Ad es. ‘r’ per il rosso, ‘g’ per il verde, ecc.
Per attivare la legenda e nominarla è sufficiente il comando legend+nome(senza apici).
GRAFICI
28 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
Per plottare più grandezze è possibile utilizzare una volta il comando plot, specificando i vettori ordinate e ascissa tante volte quante volte sono le grandezze da plottare.
>> x=[0:0.01:2*pi]; >> y=sin(x); >> y1=cos(x); >> plot(x,y,'g',x,y1,'r'); >> title('Seno e Coseno di x'); >> xlabel('x [rad.]'); >> ylabel('sin(x)/cos(x)'); >> grid on >> legend sinx cosx
Per la legenda è possibile specificare i nomi delle tracce separate dallo spazio.
GRAFICI
29 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
- BAR
>> q=[-5:0.5:5]; >> bar(q);
- STEM
>> q=[-5:0.5:5]; >> stem(q);
GRAFICI
30 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
-COMANDO HOLD ON
Per creare più grafici nella stessa figura è possibile utilizzare il comando hold on.
>> x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y); >> hold on; >> y1=cos(x); >> plot(x,y1);
Per disattivare il comando hold on si utilizza il comando hold off.
GRAFICI
31 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
-COMANDO FIGURE
Quando si crea un nuovo grafico il software crea automaticamente una nuova figura nella quale viene plottato il grafico e gli assegna il nome Figure 1.
Se si creano più grafici senza il comando figure(n), Matlab in automatico eliminerà la Figure 1 precedentemente creata e ne creerà un’altra.
Prima di creare un grafico è possibile creare e specificare la figura nella quale realizzare il grafico tramite il comando figure(n). Dove n è il numero della figura che si vuole realizzare.
Dopo aver digitato figure(n), i comandi per creare grafici (plot, subplot, bar, stem, ecc.) agiranno sulla Figure n.
GRAFICI
33 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
-COMANDO SUBPLOT
Con il comando subplot si divide la figura in una matrice di grafici
subplot(i,j,n) (i è l’indice di riga, j è l’indice di colonna,n indica la posizione del grafico all’interno della matrice)
>> x=[0:0.01:2*pi]; >> ys=sin(x); >> yc=cos(x); >> q=[-5:0.5:5];
>> subplot(2,2,1); >> plot(x,ys);
>> subplot(2,2,2); >> plot(x,yc);
>> subplot(2,2,3); >> bar(q);
>> subplot(2,2,4); >> stem(q)
GRAFICI
34 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis
cos(x)
stem(q)
sin(x)
bar(q)