Università di Roma Tor Vergata Corso di Laboratorio di Applicazioni Informatiche L Ambiente di Sviluppo SIMULINK 12, 13 e 15 Novembre 2001 Ing. Franco Mazzenga
MATLAB E SIMULINK MATLAB SIMULINK Altri prodotti: Real Time Workshop StateFlow Blocksets (elaborazione numerica dei segnali (DSP),Telecomunicazioni, sistemi di potenza etc..)
Caratteristiche generali dell ambiente di lavoro Simulink a) Simulink è un ambiente per la modellizzazione, l analisi, e la simulazione di sistemi dinamici. b) 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. c) 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 mouse. d) Simulink include un elevato numero di librerie che contengono molti blocchi predefiniti in grado di svolgere operazioni (più o meno elementari) sui segnali. e) Simulink consente di costruire modelli gerarchici. f) Simulink si integra completamente con MATLAB.
Per utilizzare SIMULINK occorre far partire prima MATLAB Digitare: >>simulink <invio> Nota:>> indica il prompt di MATLAB e non va digitato oppure Nuovo modello Apri modello già esistente Schermata iniziale su piattaforma Windows (Finestra delle librerie)
Operazioni di base con Simulink Creazione di un nuovo modello Modifica di un modello già esistente Possibilità di inserire comandi Simulink all interno di MATLAB Nuovo modello Finestra di lavoro
Caratteristiche della finestra in cui viene creato il modello Toolbar Area di Lavoro Fai partire la simulazione Mostra le librerie di Simulink Status bar
Ingredienti per la creazione di 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
Elenco delle librerie messe a disposizione da Simulink Libreria blocchi non lineari Librerie di Simulink Libreria delle sorgenti Generatore di impulsi
Esempio di creazione di un semplice modello con Simulink Problema: si desidera visualizzare un segnale (una funzione) sinusoidale con assegnato periodo e si vuole calcolare e visualizzare contemporaneamente anche il segnale (la funzione) ottenuto integrando il segnale sinusoidale generato. Soluzione del problema con Simulink a) Ricerca dei blocchi di interesse all interno delle librerie di Simulink b) Trasporto dei blocchi nell area di lavoro c) Connessione dei singoli blocchi all interno dell area di lavoro d) Impostazione dei parametri di simulazione (es. Periodo della sinusoide, istante di partenza e di fine della simulazione etc..) e) Visualizzazione dei risultati e analisi
a) 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
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)
b) 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
b.1) 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.
b.2. Completamento delle connessioni Una volta terminate le connessioni si ottiene lo schema in figura.
c) Impostazione dei parametri del simulatore Tempo di inizio e di fine della simulazione Tempo di fine simulazione Per ora si usano i valori preimpostati di tutti i blocchi (es. il blocco che genera la sinusoide.)
d) Visualizzazione e analisi dei risultati ottenuti Il blocco visualizzatore (scope) consente di visualizzare contemporaneamente i due segnali in uscita dal blocco multiplatore (MUX)
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
Descrizione più dettagliata di alcune funzioni di Simulink 2 Operazioni di editing sui singoli blocchi 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:
Descrizione più dettagliata di alcune funzioni di Simulink 3 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
Descrizione più dettagliata di alcune funzioni di Simulink 4 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 del blocco.
Descrizione più dettagliata di alcune funzioni di Simulink 5 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à
Descrizione più dettagliata di alcune funzioni di Simulink 6 Impostazione dei parametri di simulazione di un blocco Esempio: saturazione
Descrizione più dettagliata di alcune funzioni di Simulink 7 Impostazione dei parametri di simulazione di un blocco Esempio: generazione di numeri casuali
Descrizione più dettagliata di alcune funzioni di Simulink 8 Impostazione dei parametri di simulazione di un blocco Esempio: blocco addizionatore
Creazione di sottosistemi con Simulink 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
Modellizzazione di equazioni con Simulink - 1 Problema: conversione da gradi Celsius a Fahrenheit Equazione di conversione: 9 T F T 5 = C + 32 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
Modellizzazione di equazioni con Simulink 2-1 Problema: modellizzazione di una equazione differenziale 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.
Modellizzazione di equazioni con Simulink 2-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.
Impostazione dei parametri di una simulazione - 1 Si entra nella finestra dei parametri di simulazione selezionando nel menu <<Simulation>> la voce <<Parameters>>.
Impostazione dei parametri di una simulazione - 2 La prima finestra di dialogo riguarda i modi con cui Simulink cerca la soluzione al problema (i SOLUTORI o 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) Il metodo di risoluzione del sistema (solutori a passo fisso o a passo variabile ad esempio) Nota: solutori a passo variabile o a passo fisso
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
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
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
Librerie di SIMULINK 1- Sorgenti di segnale
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.
Librerie di SIMULINK 2 Visualizzazione dati di uscita
Qualche dettaglio sulla visualizzazione e memorizzazione dei dati
Librerie di SIMULINK 3 Funzioni di simulink
Librerie di SIMULINK 4 Funzioni di simulink
Qualche dettaglio sulla libreria delle FUNZIONI di Simulink
Librerie di SIMULINK 5 Funzioni di simulink
Librerie di SIMULINK 6 Funzioni di simulink
Qualche dettaglio sulla libreria delle FUNZIONI di Simulink DEMUX Vettore MUX
Esempio: palla che rimbalza
Esempio: controllo della temperatura di una casa
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.