37
CORSO DI LAUREA IN INGEGNERIA GESTIONALE Politecnico di Milano Per il corso di FONDAMENTI DI AUTOMATICA Silvia Strada INTRODUZIONE A SIMULINK

INTRODUZIONE A SIMULINK - home.deib.polimi.ithome.deib.polimi.it/strada/teaching_files/FondamentiAutomatica_ges... · generatore di sequenze ripetitive generatore di segnali (ad es.,

  • Upload
    vukhue

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

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

Simulink

50

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

Esempi

52

Sistema dinamico a tempo continuo

1

s+1

Transfer Fcn Scope

1

Gain

1

Constant

Librerie

53

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

Esempi

70

ScopeRamp

1s

Integrator

u^2

Fcn

333.3

Display2

100

Display1

19.8

Display

du/dt

Derivative

Esempi

71

-2

x2

-3

x1

x

6

c

5

b

1

a

Scope

MATLABFunction

MATLAB Fcn

f(u)

Fcn

em

Esempi

72

u x' x

-2x

SignalGenerator

Scope

1s

Integrator

-2

Gain

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

Simulazione

76

Altri parametri

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

Risultato della Simulazione

79

>> plot(tempo,uscita)

1

Out

1

s+1

Transfer FcnStep

Risultato della Simulazione

80

>> plot(out_signal.time,out_signal.signals.values)

out_signal

WS_out_signal

1

s+1

Transfer FcnStep