MATLAB E SIMULINK - · PDF file2 3 Caratteristiche generali dell’ambiente di lavoro...

24
SIMULINK Model-Based and System-Based Design 2 MATLAB E SIMULINK MATLAB SIMULINK Real Time Workshop Blocksets (elaborazione numerica dei segnali (DSP),Telecomunicazioni, sistemi di potenza etc..) StateFlow Altri prodotti:

Transcript of MATLAB E SIMULINK - · PDF file2 3 Caratteristiche generali dell’ambiente di lavoro...

1

SIMULINK

Model-Based and System-BasedDesign

2

MATLAB E SIMULINKMATLAB

SIMULINK

Real TimeWorkshop

Blocksets (elaborazione numerica dei segnali (DSP),Telecomunicazioni, sistemi di potenza etc..)

StateFlowAltri prodotti:

2

3

Caratteristiche generali dell’ambiente di lavoro Simulink

Simulink è un ambiente per la modellizzazione, l’analisi, e la simulazione di sistemi dinamici.Supporta la simulazione di sistemi lineari, e/o non lineari, che operano con segnali continui e/o discreti di tipo tempo continuo e/o tempo discreto.Simulink fornisce una interfaccia grafica che consente di definire e di costruire il modello mediante il suo diagramma a blocchi. I blocchi vengono trasportati e spostati sul piano di lavoro mediante il mouse.Simulink include un elevato numero di librerie che contengono molti blocchi predefiniti in grado di svolgere operazioni (più o meno elementari) sui segnali.Simulink consente di costruire modelli gerarchici.Simulink si integra completamente con MATLAB.

4

Per utilizzare SIMULINK occorre far partire prima MATLAB. Si può:

1) Digitare simulink al prompt di MATLAB:>> simulink <invio>

2) oppure cliccare sull’icona di simulink nella barra degli strumenti di MATLAB

Starting Simulink

3

5

Simulink Library Browser

Questa è la schermata iniziale su

piattaforma Windows

Nuovomodello

Apri modellogià esistente

(Finestra delle librerie)

6

Finestra di lavoro

Nuovo modello

Operazioni di Base con SimulinkCreazione di un nuovo modelloModifica di un modello già esistentePossibilità di inserire i comandi sulla Command Window di MATLAB

4

7

Caratteristiche della finestra in cui viene creato il modello

Fai partire lasimulazione

Area diLavoro

Mostrale libreriedi Simulink

Toolbar

Status bar

8

a) Si copiano i blocchi (sottosistemi) necessari per creare ilmodello di calcolo desiderato all’interno dell’area di lavoro

b) Si connettono graficamente i singoli blocchi con archi orientati

d) Si fa partire la simulazione e si analizzano i risultati

Blocchi specificicreati dall’utente

Blocchi disponibili nellenumerose librerie di Simulink

L’operazione di copiatura viene effettuata trascinando ilblocco desiderato dalla libreria nell’area di lavoro con il mouse

La creazione dell’arco che unisce un blocco ad un altro viene effettuata con il mouse

c) Si impostano i parametri del simulatore

Creare un Modello Simulink

5

9

Libreria blocchi

non lineariLibrerie diSimulink

Libreria dellesorgenti

Generatore diimpulsi

Elenco delle librerie di Simulink

10

Esempio di creazione di un semplice modello con Simulink

Problema: si desidera • visualizzare un segnale (una funzione) sinusoidale con

assegnato periodo• si vuole calcolare e visualizzare contemporaneamente anche il

segnale (la funzione) ottenuto integrando il segnale sinusoidale generato.

Soluzione del problema con SimulinkRicerca dei blocchi di interesse all’interno delle librerie di SimulinkTrasporto dei blocchi nell’area di lavoroConnessione dei singoli blocchi all’interno dell’area di lavoroImpostazione dei parametri di simulazione (es. Periodo della sinusoide, istante di partenza e di fine della simulazione etc..) Visualizzazione dei risultati e analisi

6

11

Sorgente di segnale sinusoidalea) Per selezionare il blocco cliccare sopra

con il mouseb) Trascinare il blocco nell’area di lavoro

Estrazione dei blocchi necessari dalle librerie Simulink

12

(MUX) Prende due (o più) segnali e limette su una sola

linea di uscita

(Scope) visualizza l’andamentodei segnali nel tempo – blocco di tipo “sink” (pozzo)

Esegue l’operazione di integrazione sul segnale in ingresso (input port) e

restituisce l’integrale del segnale di ingresso segnale sulla porta in uscita

(output port)

Blocchi posti sul piano di lavoro

7

13

Si posiziona il cursore delmouse su una porta

di un blocco di interesse.Il cursore cambia forma.

Si tiene premuto il pulsantesinistro del mouse e si sposta

Il cursore verso la porta di ingresso del blocco successivo.

Si rilascia il bottone delmouse e si ottiene la linea

di connessione mostrata in figura.

Su questa linea di connessione tra i due blocchi viaggia il segnale

Connessione dei singoli blocchi

14

Si posiziona il puntatoredel mouse sulla linea

di connessione dalla qualesi intende prelevare il segnale

Si tiene premuto il tasto<CTRL>, si spinge il pulsante del mouse e si trasporta il puntatore del mouse sulla

porta di ingresso del blocco desiderato

Si rilascia il tasto <CTRL>e il tasto del mouse e si

ottiene la linea di connessionedesiderata.

Prelievo di un segnale su una linea di connessione

8

15

Una volta terminate le connessioni si ottiene lo schema in figura.

Completamento delle connessioni

16Per ora si usano i valori preimpostati di tutti i blocchi

(es. il blocco che genera la sinusoide.)

Istante di inizio e durata

della simulazione

Impostazione dei parametri della simulazione

Caratteristiche del risolutore

di ODE

Opzioni sulla variabile d’uscita

9

17

Il blocco visualizzatore (scope) consente di

visualizzare contemporaneamente entrambi i segnali in

uscita dal blocco multiplatore (MUX)

Visualizzazione e analisi dei risultati ottenuti

18

I blocchi possono operare con segnali campionati reali o complessi

All’inizio della simulazione Simulink analizza i tipi di dati con i quali i singoli blocchi lavoreranno e verifica se tutti i blocchi supportano

il tipo di dati dei segnali posti al loro ingresso.I segnali in ingresso e in uscita da un blocco

possono essere scalari e/o vettoriali

Descrizione più dettagliata di alcune funzioni di Simulink - 1

10

19

a) Spostamento di un blocco all’interno dell’area di lavoro: si seleziona il blocco con il mouse e lo si “trascina” nella posizione deisderata – Simulink provvederà ad aggiustare le connessioni.

b) Duplicazione di un blocco all’interno dell’area di lavoro: selezionare il blocco desiderato – usare la combinazione di tasti <CRTL>+<C>. Spostare il blocco duplicato nella posizione desiderata.

c) Cancellazione di un blocco nell’area di lavoro: selezionare il blocco e premere il tasto <DEL>.

d) Rotazione di un blocco:

Editing sui singoli blocchi – 1

20

e) Ridimensionamento di un blocco: si seleziona il blocco con il mouse e si posiziona il puntatore del mouse su uno dei vertici contrassegnati del blocco. Si sposta il cursore del mouse tenendo il tasto premuto. La dimensione del blocco cambia. Rilasciando il pulsante del mouse si fissa la dimensione desiderata.

f) Cambiamento del nome di un blocco: si clicca con il mouse sul campo relativo al nome del blocco. Si seleziona tutto il nome del blocco e si scrive il nuovo nome.

I sistemi creati possono essere salvati in un file e riutilizzati successivamente

Editing sui singoli blocchi – 2

11

21

Esempio: generatore di segnale sinusoidale

Selezionando il blocco con il mouse e cliccando due volte consecutive si entra nella finestra dei parametri (maschera) delblocco.

Impostazione dei parametri di simulazione di un blocco

22

Esempio: visualizzatore

Zoom nelle direzioni x e y

Zoom nella direzione x

Zoom nella direzione y

Autoscala

Proprietà

Impostazione dei parametri di simulazione di un blocco

12

23

Esempio: saturazione

Impostazione dei parametri di simulazione di un blocco

24

Esempio: generazione di numeri casuali

Impostazione dei parametri di simulazione di un blocco

13

25

Esempio: blocco addizionatore

Impostazione dei parametri di simulazione di un blocco

26

Si consideri il semplice sistema in figura

Memorizza il segnale di uscita in una

variabile disponibile in MATLAB.

Seleziono con il mouse questo sottoinsieme di blocchi

Simulink sostituisce l’insieme dei due blocchi con un solo blocco

simoutTo Workspace

simout

To WorkspaceSubsystem

In Out

Creazione di Sottosistemi

14

27

Problema: conversione da gradi Celsius a Fahrenheit

L’equazione di conversione è

Copio i blocchi necessari dalle librerie nell’area di

lavoro

Creo le connessioni

Faccio partire la simulazione e osservo i risultati

Nota: il blocco di segnale “rampa” genera (tutti) i valori di temperatura Celsius che deve essere convertita in Faherenheit

3259

+= CF TT

Modellizzazione di Equazioni

28

Equazione considerata:

il generatore di segnale può generare molti tipi di segnale

NOTA: Le condizioni iniziali del sistema vengono specificate impostando opportunamente i parametri all’interno dei singoli blocchi.

x’ x

-2x

u

)()(2)( tutxtx +−=′

Modellizzazione di una Equazione Differenziale -1

15

29

Assumendo che il generatore di segnale produca un segnale u(t) del tipo onda quadra, il segnale x(t) (soluzione della equazionedifferenziale) visualizzato è come in Figura.

Modellizzazione di una Equazione Differenziale -2

30

Si entra nella finestra dei parametri di simulazione selezionando nel menu <<Simulation>> la voce <<Parameters>>.

Impostazione dei Parametri di una Simulazione - 1

16

31

La prima finestra di dialogo riguarda il metodo con cui Simulink cerca la soluzione al problema, ossia i RISOLUTORI (SOLVERS)

In questa finestra si può:a) Impostare il tempo di inizio e di

fine di una simulazione (default: da 0 a 10 s)

b) Scegliere il metodo di risoluzione del sistema (risolutori a passo fisso o a passo variabile ad esempio)

c) Impostare le opzioni su tale metodo di risoluzione

d) Impostare le opzioni sulla variabile di uscita

Impostazione dei Parametri di una Simulazione - 2

32

Impostazione dei parametri di una simulazione - 3Simulink DIALOGA con MATLAB !!!!!

I risultati ottenuti dalla simulazione possono essere memorizzati direttamente come variabili MATLAB (nel WORKSPACE)

Simulink può assumere come condizioni iniziali dello stato del sistema (complessivo) direttamente da variabili MATLAB

17

33

Impostazione dei parametri di una simulazione - 4E’ possibile emettere degli avvisi a seguito di errori e/o

inconsistenze che possono verificarsi durante la simulazione (es. divisione per zero, overflow, sottosistemi non connessi etc...)

Messaggi di due tipi: di avviso – non interrompono la simulazionedi errore – interrompono la simulazione

34

Modello di programmazione con Simulink

Generazione segnali in ingresso

Elaborazione

Analisi dei risultati in uscita

Libreria delle sorgentidi segnale

Librerie delle funzioni di Simulink

Librerie per la visualizzazione e memorizzazione dei dati di

uscita

18

35

Librerie di SIMULINK – 1- Sorgenti di segnale

36

Qualche dettaglio su alcune sorgenti di segnale

Time values A vector of monotonically increasing time values. Output values A vector of output values. Each corresponds tothe time value in the same column.

19

37

Librerie di SIMULINK – 2 – Visualizzazione dati di uscita

38

Qualche dettaglio sulla visualizzazione e memorizzazione dei dati

20

39

Librerie di SIMULINK – 3 – Funzioni di simulink

40

Librerie di SIMULINK – 4 – Funzioni di simulink

21

41

Qualche dettaglio sulla libreria delle FUNZIONI di Simulink

42

Librerie di SIMULINK – 5 – Funzioni di simulink

22

43

Librerie di SIMULINK – 6 – Funzioni di simulink

44

Qualche dettaglio sulla libreria delle FUNZIONI di Simulink

MUX

DEMUX

Vettore

23

45

Esempio: palla che rimbalza

46

Esempio: controllo della temperatura di una casa

24

47

Esercizi

Simulazione di equazioni

a) Implementare i sistemi che realizzano la conversione da gradi Celsius a Fahrenheit e viceversa.

b) Implementare i sistemi che realizzano le seguenti equazioni differenziali:

)()(2)( tutxtx +−=′

)()(sin)( tutxtx =+′′

Graficare l’andamento di x(t) assumendo che u(t) sia:a) un segnale a onda quadra con periodo e ampiezza assegnate.b) un segnale sinusoidale con frequenza e ampiezza assegnate.

(vedi lezioni)

)()()( tutxtx =+′′