SIMULINK Model-Based and System-Based Design MATLAB E SIMULINK MATLAB SIMULINK Altri prodotti: Real Time Workshop StateFlow Blocksets (elaborazione numerica dei segnali (DSP),Telecomunicazioni, sistemi di potenza etc..) 2
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. 3 Starting Simulink 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 4
Simulink Library Browser Nuovo modello Apri modello già esistente Questa è la schermata iniziale su piattaforma Windows (Finestra delle librerie) 5 Operazioni di Base con Simulink Creazione di un nuovo modello Modifica di un modello già esistente Possibilità di inserire i comandi sulla Command Window di MATLAB Nuovo modello Finestra di lavoro 6
Caratteristiche della finestra in cui viene creato il modello Toolbar Area di Lavoro Fai partire la simulazione Mostra le librerie di Simulink Status bar 7 Creare un Modello Simulink a) Si copiano i blocchi (sottosistemi) necessari per creare il modello di calcolo desiderato all interno dell area di lavoro Blocchi specifici creati dall utente Blocchi disponibili nelle numerose librerie di Simulink L operazione di copiatura viene effettuata trascinando il blocco desiderato dalla libreria nell area di lavoro con il mouse b) Si connettono graficamente i singoli blocchi con archi orientati La creazione dell arco che unisce un blocco ad un altro viene effettuata con il mouse c) Si impostano i parametri del simulatore d) Si fa partire la simulazione e si analizzano i risultati 8
Elenco delle librerie di Simulink Libreria blocchi non lineari Librerie di Simulink Libreria delle sorgenti Generatore di impulsi 9 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 Simulink Ricerca dei blocchi di interesse all interno delle librerie di Simulink Trasporto dei blocchi nell area di lavoro Connessione dei singoli blocchi all interno dell area di lavoro Impostazione dei parametri di simulazione (es. Periodo della sinusoide, istante di partenza e di fine della simulazione etc..) Visualizzazione dei risultati e analisi 10
Estrazione dei blocchi necessari dalle librerie Simulink Sorgente di segnale sinusoidale a) Per selezionare il blocco cliccare sopra con il mouse b) Trascinare il blocco nell area di lavoro 11 Blocchi posti sul piano di lavoro (MUX) Prende due (o più) segnali e li mette su una sola linea di uscita (Scope) visualizza l andamento dei 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) 12
Connessione dei singoli blocchi Si posiziona il cursore del mouse su una porta di un blocco di interesse. Il cursore cambia forma. Si tiene premuto il pulsante sinistro del mouse e si sposta Il cursore verso la porta di ingresso del blocco successivo. Si rilascia il bottone del mouse e si ottiene la linea di connessione mostrata in figura. Su questa linea di connessione tra i due blocchi viaggia il segnale 13 Prelievo di un segnale su una linea di connessione Si posiziona il puntatore del mouse sulla linea di connessione dalla quale si 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 connessione desiderata. 14
Completamento delle connessioni Una volta terminate le connessioni si ottiene lo schema in figura. 15 Impostazione dei parametri della simulazione Istante di inizio e durata della simulazione Caratteristiche del risolutore di ODE Opzioni sulla variabile d uscita Per ora si usano i valori preimpostati di tutti i blocchi (es. il blocco che genera la sinusoide.) 16
Visualizzazione e analisi dei risultati ottenuti Il blocco visualizzatore (scope) consente di visualizzare contemporaneamente entrambi i segnali in uscita dal blocco multiplatore (MUX) 17 Descrizione più dettagliata di alcune funzioni di Simulink - 1 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 18
Editing sui singoli blocchi 1 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: 19 Editing sui singoli blocchi 2 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 20
Impostazione dei parametri di simulazione di un blocco Esempio: generatore di segnale sinusoidale Selezionando il blocco con il mouse e cliccando due volte consecutive si entra nella finestra dei parametri (maschera) del blocco. 21 Impostazione dei parametri di simulazione di un blocco Esempio: visualizzatore Zoom nelle direzioni x e y Zoom nella direzione x Zoom nella direzione y Autoscala Proprietà 22
Impostazione dei parametri di simulazione di un blocco Esempio: saturazione 23 Impostazione dei parametri di simulazione di un blocco Esempio: generazione di numeri casuali 24
Impostazione dei parametri di simulazione di un blocco Esempio: blocco addizionatore 25 Creazione di Sottosistemi Si consideri il semplice sistema in figura simout To Workspace 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 In Out Subsystem simout To Workspace 26
Modellizzazione di Equazioni Problema: conversione da gradi Celsius a Fahrenheit 9 L equazione di conversione è T F = TC + 32 5 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 27 Modellizzazione di una Equazione Differenziale -1 Equazione considerata: x ( t) = 2x( t) + u( t) u x x -2x 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. 28
Modellizzazione di una Equazione Differenziale -2 Assumendo che il generatore di segnale produca un segnale u(t) del tipo onda quadra, il segnale x(t) (soluzione della equazione differenziale) visualizzato è come in Figura. 29 Impostazione dei Parametri di una Simulazione - 1 Si entra nella finestra dei parametri di simulazione selezionando nel menu <<Simulation>> la voce <<Parameters>>. 30
Impostazione dei Parametri di una Simulazione - 2 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 31 Impostazione dei parametri di una simulazione - 3 Simulink 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 32
Impostazione dei parametri di una simulazione - 4 E 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 simulazione di errore interrompono la simulazione 33 Modello di programmazione con Simulink Generazione segnali in ingresso Libreria delle sorgenti di segnale Elaborazione Librerie delle funzioni di Simulink Analisi dei risultati in uscita Librerie per la visualizzazione e memorizzazione dei dati di uscita 34
Librerie di SIMULINK 1- Sorgenti di segnale 35 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 to the time value in the same column. 36
Librerie di SIMULINK 2 Visualizzazione dati di uscita 37 Qualche dettaglio sulla visualizzazione e memorizzazione dei dati 38
Librerie di SIMULINK 3 Funzioni di simulink 39 Librerie di SIMULINK 4 Funzioni di simulink 40
Qualche dettaglio sulla libreria delle FUNZIONI di Simulink 41 Librerie di SIMULINK 5 Funzioni di simulink 42
Librerie di SIMULINK 6 Funzioni di simulink 43 Qualche dettaglio sulla libreria delle FUNZIONI di Simulink DEMUX Vettore MUX 44
Esempio: palla che rimbalza 45 Esempio: controllo della temperatura di una casa 46
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: x ( t) = 2x( t) + u( t) x ( t) + sin x( t) = u( t) x ( t) + x( t) = u( t) (vedi lezioni) 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. 47