CORSO DI LAUREA IN INGEGNERIA GESTIONALE
Politecnico di Milano
Per il corso di
FONDAMENTI DI AUTOMATICA
Silvia Strada
INTRODUZIONE A SIMULINK
Simulink
45
3 How Simulink W orks
3-2
What Is SimulinkSimulink is a software package that enables you to model, simulate, and analyze systems whose outputs change over time. Such systems are often referred to as dynamic systems. Simulink can be used to explore the behavior of a wide range of real-world dynamic systems, including electrical circuits, shock absorbers, braking systems, and many other electrical, mechanical, and thermodynamic systems.
Simulating a dynamic system is a two-step process with Simulink. First, you create a graphical model of the system to be simulated, using Simulink’s model editor. The model depicts the time-dependent mathematical relationships among the system’s inputs, states, and outputs (see “Modeling Dynamic Systems” on page 3-3). Then, you use Simulink to simulate the behavior of the system over a specified time span. Simulink uses information that you entered into the model to perform the simulation (see “Simulating Dynamic Systems” on page 3-9).
Simulink
46
Simulink si basa sull’utilizzo di blocchi predefinitiI blocchi rappresentano sistemi dinamici elementari che vengono simulati da Simulink.
L’uscita di un blocco è una funzione del tempo,dell’insieme degli stati e dell’insieme degli ingressi.
La specifica funzione dipende dal tipo del blocco.
ux y
STATIUSCITEINGRESSI
Un blocco contiene uno o piùtra i seguenti oggetti:
★ un insieme di ingressi (inputs)★ un insieme di stati (states)★ un insieme di uscite (outputs)
To start and stop the simulation, use the "Start/Stop"selection in the "Simulation" pull-down menu
Bouncing Ball Model(Double click on the "?" for more info)
1s
xo
Velocity
1s
Position
Double clickhere for
Simulink Help
?
[15]
IC
-9.81
Gravity
-0.8
Elasticity
Output Function y = fo(t, x, u)
Simulink
47
I blocchi di Simulink possono avere uno statoIl valore dello stato è funzione, oltre che degli ingressi, dei valori precedenti dello stato.
I blocchi con lo stato hanno memoria.
L’insieme degli stati evolve nel tempo e la sua evoluzione è una funzione del tempo,dell’insieme degli stati e dell’insieme degli ingressi.
La specifica funzione dipende dal tipo del blocco.
In un sistema a stato continuol’evoluzione è descritta attraverso equazioni differenziali
Derivative Function x = fd(t, x, u)
!x(t) = u(t)y(t) = x(t) y(t) = k · u(t)
Esempio di blocco con stato Esempio di blocco senza statoBLOCCO INTEGRATORE BLOCCO GUADAGNO
1s
Integrator
1
Gain
1s
Integrator
1
Gain
Simulink
48
Altre caratteristiche di Simulink
★ possibilità di modificare i parametri di un blocco durante l’esecuzione della simulazione (in questo modo si possono verificare, in tempo reale, diversi comportamenti del sistema
★ possibilità di rappresentare sistemi complessi come unione di più sottosistemi
★ possibilità di definire nuovi blocchi il cui funzionamento è regolato da uno specifico codice Matlab (M-file)
2
Out2
1
Out1
1/s 1/s
Scope
Mux
1
Mu
1 - u*u
Fcn
x2
x2
x1
x1
Simulink
49
Simulink simula il comportamento del sistema rappresentatoLa simulazione di un sistema dinamico consiste nella determinazione,
sulla base delle informazioni fornite dal modello,degli stati e delle uscite del sistema, al variare del tempo.
La simulazione si realizza in due fasi:
★ fase di inizializzazione del modello
★ fase di esecuzione del modello
Durante la fase di esecuzione vengono risolte – per via numerica (attraverso opportuni “risolutori continui”) – le
equazioni differenziali che descrivono l’evoluzione dello stato
Durante la fase di inizializzazione vengono analizzati i blocchi e definito l’intervallo di discretizzazione ad uso del risolutore di
equazioni differenziali ordinarie
U Y
U Y
Scope
Merge
NOT
Esempi
51
Risoluzione di equazioni
5/9
Gain1
9/5
Gain
64.4
Fahrenheit OUT
76
Fahrenheit IN
32
Constant1
32
Constant
24.44
Celsius OUT
18
Celsius IN
TC =59
·!TF ! 32
"
TF =95
· TC + 32
Libreria “Continuous”
54
DERIVAZIONE A TEMPO CONTINUO DEL SEGNALE IN INGRESSO
INTEGRAZIONE A TEMPO CONTINUO DEL SEGNALE IN INGRESSO
SISTEMA LINEARE A TEMPO CONTINUO DESCRITTO DA EQUAZIONI DI STATO
SISTEMA LINEARE A TEMPO CONTINUO DESCRITTO DA FUNZIONI DI TRASFERIMENTO
APPLICAZIONE DI UN RITARDO (ESTERNO) AL SEGNALE IN INGRESSO
APPLICAZIONE DI UN RITARDO (FISSO) AL SEGNALE IN INGRESSO
SISTEMA LINEARE A TEMPO CONTINUO DESCRITTO DA ZERI, POLI E GUADAGNO
Libreria “Discrete”
55
SISTEMA LINEARE A TEMPO DISCRETO DESCRITTO DA FUNZIONI DI TRASFERIMENTO
SISTEMA LINEARE A TEMPO DISCRETO DESCRITTO DA ZERI, POLI E GUADAGNO
SISTEMA LINEARE A TEMPO DISCRETO DESCRITTO DA EQUAZIONI DI STATO
INTEGRAZIONE A TEMPO DISCRETO DEL SEGNALE IN INGRESSO
RICOSTRUTTORE DI ORDINE ZERO DEL SEGNALE IN INGRESSO
RICOSTRUTTORE DI ORDINE UNO DEL SEGNALE IN INGRESSO
CAMPIONATORE DEL SEGNALE IN INGRESSO
Libreria “Functions & Tables”
56
FUNZIONE DI MATLAB DA APPLICARE AL SEGNALE IN INGRESSO
GENERICA FUNZIONE DA APPLICARE AL SEGNALE IN INGRESSO
FUNZIONE DEFINITA DALL’UTENTE IN LINGUAGGIO C DA APPLICARE AL SEGNALE IN INGRESSO
Libreria “Math”
57
VALORE ASSOLUTO
MODULO E FASE DI UN NUMERO COMPLESSO
PARTE REALE E PARTE IMMAGINARIA DI UN NUMERO COMPLESSO
GUADAGNO (MOLTIPLICATORE)
OPERATORE LOGICO (AND, OR, NAND, NOR, XOR, NOT)
NUMERO COMPLESSO GENERATO DA MODULO E FASE
FUNZIONE MATEMATICA (EXP, LOG, SQRT, POW, ...)
GUADAGNO MATRICIALE (MOLTIPLICATORE RIGHE x COLONNE)
Libreria “Math”
58
VALORE MINIMO O MASSIMO NEL VETTORE IN INGRESSO
PRODOTTO SCALARE O MATRICIALE (RIGHE x COLONNE)
NUMERO COMPLESSO GENERATO DA PARTE REALE E PARTE IMMAGINARIA
OPERATORE RELAZIONALE (==, ~=, <, <=, >=, >)
FUNZIONE DI ARROTONDAMENTO (FLOOR, CEIL, ROUND, FIX)
FUNZIONE SEGNO
GUADAGNO VARIABILE
SOMMATORE ALGEBRICO
FUNZIONE TRIGONOMETRICA (SIN, COS, TAN, ...)
Libreria “Nonlinear”
59
RESTITUISCE 0 PER VALORI DEL SEGNALE IN INGRESSO ALL’INTERNO DELLA “DEAD-ZONE”
SWITCH MANUALE ATTIVABILE CON IL DOPPIO CLICK SUL BLOCCO
QUANTIZZATORE DEL SEGNALE IN INGRESSO
RESTITUISCE DUE VALORI PREDEFINITI TENENDO CONTO DELL’EFFETTO “ISTERESI”
LIMITATORE DEL SEGNALE IN INGRESSO TRA DUE VALORI SPECIFICI
SWITCH AUTOMATICO SULLA BASE DI UN PARAMETRO IN INGRESSO
Libreria “Signals & Systems”
60
SCOMPONE UN VETTORE DI SEGNALI IN PIU’ SEGNALI SEPARATI (DEMULTIPLEXER)
UNISCE PIU’ SEGNALI SEPARATI IN UN UNICO VETTORE DI SEGNALI (MULTIPLEXER)
Libreria “Sinks”
61
DISPLAY NUMERICO
PORTA DI USCITA DI UN SOTTOSISTEMA
DISPLAY GRAFICO
TERMINA LA SIMULAZIONE QUANDO RICEVE IN INGRESSO UN VALORE NON NULLO
TERMINATORE DI SEGNALI DA UTILIZZARE PER PORTE NON CONNESSE
USCITA SU FILE “MAT” (FILE STRUTTURATO PER RIGHE)
USCITA SU UNA VARIABILE DI MATLAB
DISPLAY GRAFICO
Libreria “Sources”
62
RUMORE BIANCO NEL DOMINIO S
ONDA SINUSOIDALE CON FREQUENZA VARIABILE NEL TEMPO
TEMPO CORRENTE DELLA SIMULAZIONE
COSTANTE (SCALARE O MATRICIALE)
TEMPO (DIGITALE) CORRENTE DELLA SIMULAZIONE
VALORI FORNITI DA UNA VARIABILE DI MATLAB
VALORI FORNITI DA UN FILE “MAT” (STRUTTURATO PER RIGHE)
SEGNALE FITTIZIO DA UTILIZZARE PER PORTE NON CONNESSE
Libreria “Sources”
63
PORTA DI INGRESSO DI UN SOTTOSISTEMA
GENERATORE DI IMPULSI
RAMPA
GENERATORE DI NUMERI CASUALI SECONDO UNA DISTRIBUZIONE GAUSSIANA
GENERATORE DI SEQUENZE RIPETITIVE
GENERATORE DI SEGNALI (AD ES., ONDA QUADRA, ONDA A DENTE DI SEGA)
GENERATORE DI SEGNALI SINUSOIDALI
STEP
GENERATORE DI NUMERI CASUALI SECONDO UNA DISTRIBUZIONE UNIFORME
Libreria “Subsystems”
64
SOTTOSISTEMA ITERATIVO (CICLO “FOR”)
SOTTOSISTEMA DECISIONALE (STRUTTURA “IF-THEN-ELSE”)
GENERICO SOTTOSISTEMA
SOTTOSISTEMA DECISIONALE (STRUTTURA “SWITCH-CASE”)
SOTTOSISTEMA ITERATIVO (STRUTTURA “WHILE-DO”)
Libreria “Control System Toolbox”
65
SISTEMA LINEARE TEMPO INVARIANTE (A TEMPO CONTINUO O A TEMPO DISCRETO) DEFINIBILE ATTRAVERSO FUNZIONI DI TRASFERIMENTO, SPAZIO DEGLI STATI, O ZERO-POLI-GUADAGNO
Sottosistemi
66
E’ possibile ridurre la complessità del sistema raggruppando i blocchi in sottosistemi
I sottosistemi presentano diversi vantaggi:
★ riducono il numero di blocchi visualizzati nella finestra contenente il modello
★ consentono di raggruppare i blocchi che hanno uno stesso significato funzionale
★ consentono di stabilire una dipendenza gerarchica tra i blocchi di un certo modello (i blocchi interni ad un sottosistema sono su un layer inferiore rispetto a quelli del sistema principale)
E’ possibile definire un sottosistema:
★ utilizzando il blocco “Subsystem” della libreria “Subsystems”
★ selezionando i blocchi che formeranno il sottosistema e cliccando su “Create Subsystem” del menù “Edit”
Sottosistemi
67
Fahrenheit IN Celsius OUT
Subsystem F to C
Celsius IN Fahrenheit OUT
Subsystem C to F
64.4
Fahrenheit OUT
76
Fahrenheit IN
24.44
Celsius OUT
18
Celsius IN
1
Celsius OUT
5/9
Gain
32
Constant
1
Fahrenheit IN
1
Fahrenheit OUT
9/5
Gain
32
Constant
1
Celsius IN
Consigli per la Creazione di Modelli
68
★ Utilizzare blocchi gerarchici
I modelli complessi traggono numerosi benefici dall’impostazione del modello sulla base di sottosistemi gerarchici dedicati ad una particolare attività nel modello. In questo modo si rende facilmente interpretabile il “top-level” che deve dare un’immediata comprensione del funzionamento del sistema.
★ Rendere chiari i modelli
Modelli ben organizzati e documentati sono di più facile lettura e comprensione. Etichettare sempre i blocchi in modo da rendere chiaro il loro significato e i segnali in ingresso / uscita. Inoltre, è bene aggiungere, nel modello, annotazioni testuali che descrivono più profondamente il funzionamento del sistema.
★ Utilizzare efficientemente le librerie
E’ importante organizzare i sottosistemi più utilizzati in una libreria al fine di rendere più efficiente la creazione di modelli simili.
Inoltre, è fondamentale la regola di progettare prima su carta il modello e poi implementare la soluzione scelta al calcolatore
Esempi
69
5/9
Gain1
9/5
Gain Fahrenheit OUT
Fahrenheit IN
32
Constant1
32
Constant
Celsius OUT
Celsius IN
Simulazione
73
Simulink è un simulatoredi sistemi dinamici a tempo continuo o a tempo discreto
Simulink fornisce il comportamento nel tempodel sistema modellato
La simulazione si basa sulla risoluzione (numerica) di equazioni differenziali o di equazioni alle differenze finite
Avvio della SimulazioneMenù “Simulation” ➠ “Simulation Parameters”(per definire i parametri della simulazione)
Simulazione
74
★ Tempo di simulazione
Impostare l’inizio e la fine della simulazione (da non confondere con il tempo di effettiva esecuzione della simulazione)
★ Risolutore
Scegliere il risolutore tra risolutori continui a passo fisso, risolutori continui a passo variabile e risolutori discreti a passo fisso (ricordarsi che la simulazione si basa sull’esecuzione di equazioni differenziali o alle differenze finite)
★ Opzioni sull’uscita
E’ possibile rendere più dettagliata la soluzione attraverso il “refine factor” (un refine factor = 2 raddoppia i punti di uscita)
Simulazione
75
★ Caricamento da variabili Matlab
Attraverso questa opzione è possibile utilizzare come dati in ingresso variabili Matlab precedentemente definite
★ Salvataggio su variabili Matlab
Attraverso questa opzione è possibile salvare i risultati della simulazione in variabili Matlab
★ Opzioni di salvataggio
E’ possibile specificare la struttura delle variabili Matlab utilizzate per il salavataggio dei dati
Risultato della Simulazione
77
Lo scopo principale della simulazione èottenere le “traiettorie di uscita”, ovvero il comportamento nel
tempo dei segnali di uscita presenti nel sistema modellato
Le traiettorie di uscita possono essere visualizzate in tre modi differenti:
★ utilizzando i display grafici “Scope” o “XY Graph”
★ scrivendo i valori dei segnali di uscita in variabili di uscita e poi utilizzando Matlab per la visualizzazione dei segnali
★ utilizzando il blocco “To Workspace” e poi utilizzando Matlab per la visualizzazione dei segnali
1
OutXY Graph
simout
To WorkspaceScope
1
OutXY Graph
simout
To WorkspaceScope
1
OutXY Graph
simout
To WorkspaceScope
1
OutXY Graph
simout
To WorkspaceScope
Risultato della Simulazione
78
XY Graph1
s+1
Transfer Fcn1
1
s+1
Transfer Fcn
Step1
Step Scope
Clock
XY Graph1
s+1
Transfer Fcn1
1
s+1
Transfer Fcn
Step1
Step Scope
Clock