35
CORSO BASE DI MATLAB-SIMULINK Con la collaborazione di Nicola Conenna e Studenti Democratici

CORSO BASE DI MATLAB/SIMULINK - Studenti Democratici · Cosè Simulink? A Che serve? Ambiente grafico per la simulazione multidominio Creazione di modelli matematici tramite schemi

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

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

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

32 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis

sin(x) cos(x)

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)

GRAFICI

35 Dipartimento di ingegneria Elettrica e dell’Informazione Dario De Santis

-Grafici mediante Workspace

Selezione grafico sulla/sulle variabile/variabili selezionate