CORSO BASE DI MATLAB-SIMULINK Con la collaborazione di Nicola Conenna e Studenti Democratici 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 AMORE A PRIMA VISTA 1984 Jack,Cleve e Steve fondano Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 3 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 4 Interfaccia grafica Matlab Command Window Finestra comandi per immettere comandi e visualizzare risultati numerici Workspace Finestra variabili: visualizza tutte le variabili in uso Command History Cronologia comandi Current Folder Cartella di lavoro: Contiene tutti i file della cartella di lavoro selezionata Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 5 Interfaccia grafica Matlab Finestra comandi Finestra variabili Cronologia comandi Cartella di lavoro Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 6 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 Test e Controllo Real Time 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 7 Come avviare Simulink Library Browser Avvio tramite icona Avvio tramite comando testuale Avvio tramite menù Start Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 8 Interfaccia grafica Simulink Nuovo modello Libreria Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 9 Comandi utili >> Indica che il programma può ricevere un comando who Permette di visualizzare tutte le variabili whos Permette di visualizzare tutte le variabili specificando nome, dimensione, classe ecc… clear b Cancella la variabile selezionata del workspace: ad esempio la variabile b clear all Cancella tutte le variabili presenti nel workspace close (‘1’) Chiude la figura scelta ad esempio la 1 close all Chiude tutte le figure aperte Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 10 Comandi utili : ; help plot Si utlizza per gli intervalli es. m:n (da m a n) 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 Permette di visualizzare le informazioni relative ad un comando specifico. Nell’esempio il comando plot ↑ Richiama i comandi precedentemente inseriti a+↑ Richiama i comandi precedentemente inseriti con iniziale ‘a’ Variabile temporanea, memorizza l’ultimo valore calcolato Attenzione!! Matlab è case sensitive ans Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 11 Operazioni con scalari Utilizzare Matlab come calcolatrice SOMMA >> 6+9 DIFFERENZA >> 5-12 DIVISIONE >> 25/98 MOLTIPLICAZIONE >> 6*6 ans = ans = ans = ans = RADICE QUADRATA >> sqrt(2) ans = 15 -7 0.2551 36 1.4142 RADICE CUBICA >> 8^(1/3) ELEVAMENTO A POTENZA >> 25^6 OPERAZIONE CON ; >> 5+3; >> ans OPERAZIONE CON NUMERI COMPLESSI 5i+(3+2i) ans = ans = ans = ans = 2 244140625 8 Dipartimento di ingegneria Elettrica e dell’Informazione 3.0000 + 7.0000i Dario De Santis 12 Operazioni con scalari Alcuni operatori Logaritmi log log10 log2 exp e cos sin tan cotan acotan acos asin atan Logaritmo naturale Logaritmo in base 10 Logaritmo in base 2 Esponenziali Esempio 2*exp(3) è uguale a 2*e^3 e(costante di Nepero) Esempio 2e6 è uguale a 2*10^6 (2000000) Funzioni trigonometriche coseno(in radianti) cosd coseno(in gradi) seno (in radianti) sind seno(in gradi) tangente(in radianti) tand tangente(in gradi) tangente(in radianti) cotand tangente(in gradi) inv. tangente(in radianti) acotand inv. tangente(in gradi) inv. coseno(in radianti) acosd inv. coseno(in gradi) inv. seno(in radianti) asind inv. seno(in gradi) inv. tangente(in radianti) atand inv. tangente(in gradi) Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 13 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=[]; Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 14 Utilizzo del Workspace Creazione della singola variabile(scalare, vettore, matrice, ecc.) Salvataggio della singola variabile sul computer Salvataggio dell’intero Workspace Apertura della singola variabile salvata sul computer Apertura dell’intero Workspace salvato sul computer Importazioni variabili Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 15 Nuova Variabile Utilizzo del Workspace Importa i dati Elimina i dati Apre la variabile selezionata (Variable Editor) Salva i dati Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 16 Operazioni con vettori - Creazione di un vettore >> Z=[5 0 6 9 ]; >> Z Z= 5 0 6 9 >> D=[0:0.01:5]; >> D=[0:5]; >> D D= 0 1 2 3 4 5 - Conoscere la dimensione del vettore Z >> size(Z) ans = 1 4 - Conoscere il numero di elementi del vettore Z >>length(Z) ans = 4 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 17 Operazioni con vettori - Conoscere il valore max del vettore Z >> max(Z) ans = 9 - Conoscere il valore minimo del vettore Z >> min(Z) ans = 0 - Conoscere il valore della media aritmetica del vettore Z >> mean(Z) ans = 5 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 18 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 -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 Dipartimento di ingegneria Elettrica e dell’Informazione 1 1 Dario De Santis 19 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 20 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 21 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 22 Operazioni con vettori -Prodotto scalare tra due vettori >> a=[10 -2]; >> b=[8 5]; >> c=dot(a,b) c= 70 >> c=a*b' c= 70 -Prodotto vettoriale >> a=[1 5 6 ]; >> b=[1 -5 8 ]; >> cross(a,b) ans = 70 -2 -10 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 23 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 24 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 25 GRAFICI - PLOT DEL VETTORE y >> x=[0:0.01:2*pi]; >> y=sin(x); >> plot(y); L’asse x riporta il numero di punti di y uguale al numero di punti di x - PLOT DEI VETTORI x,y >> plot(x,y); L’asse x riporta i valori di x corrispondenti a y, ovvero riporta i radianti Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 26 GRAFICI 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 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. >> 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 attivare la legenda e nominarla è sufficiente il comando legend+nome(senza apici). Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 27 GRAFICI 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. Per la legenda è possibile specificare i nomi delle tracce separate dallo spazio. >> 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 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 28 GRAFICI - BAR >> q=[-5:0.5:5]; >> bar(q); - STEM >> q=[-5:0.5:5]; >> stem(q); Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 29 GRAFICI -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. Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 30 GRAFICI -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. Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 31 GRAFICI sin(x) Dipartimento di ingegneria Elettrica e dell’Informazione cos(x) Dario De Santis 32 GRAFICI -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) Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 33 GRAFICI sin(x) cos(x) bar(q) stem(q) Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 34 GRAFICI -Grafici mediante Workspace Selezione grafico sulla/sulle variabile/variabili selezionate Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis 35
© Copyright 2024 Paperzz