Sei sulla pagina 1di 33

Guida introduttiva a Matlab-Simulink

Ing. Alessandro Pisano


pisano@diee.unica.it

Appunti di SIMULINK a
dic

INDICE

Introduzione Generalit: librerie e blocchi elementari. Esempio introduttivo: costruzione e visualizzazione di un onda sinusoidale Costruzione e visualizzazione di segnali qualunque. Risoluzione di equazioni differenziali lineari a coefficienti costantii Risoluzione di equazioni differenziali lineari a coefficienti non costantii Risoluzione di sistemi di equazioni differenziali lineari a coefficienti costanti Risoluzione di equazioni differenziali non lineari del primo ordine Risoluzione di equazioni differenziali non lineari di ordine qualunque Risoluzione di equazioni differenziali non lineari tempo-varianti di ordine qualunque Simulazione di sistemi dinamici: Es. 1: Massa con attrito composto Es. 2: Motore DC Esercizi propostii con traccia della soluzione

3 3 7 12 13 18 20 22 24 26 28

31

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

Introduzione
Il software Simulink un applicativo che vive allinterno del programma di calcolo Matlab e ne costituisce, in buona sostanza, una potente e intuitiva interfaccia grafica che ne semplifica grandemente limpiego da parte dellutente. Medante Simulink possibile programmare lesecuzione di calcoli in ambiente Matlab in maniera molto pi rapida ed error-free rispetto alla scrittura dei lunghi e complessi m-files che sono necessari, ad esempio, per programmare in Matlab lintegrazione numerica di un sistema di equazioni differenziali di ordine elevato. Mediante gli strumenti visuali disponibili in ambiente Simulink possibile simulare dei sistemi anche molto complessi con uno sforzo da parte dellutente che si limita al tracciamento, su un foglio di lavoro elettronico, di uno schema a blocchi rappresentativo del sistema in esame. Per gli scopi che prefiggiamo in questo corso non necessario discutere approfonditamente le prerogative del software Matlab-Simulink., bens concentreremo lattenzione su alcuni task di interesse (ad esempio visualizzare un segnale, risolvere una equazione differenziale lineare a coefficienti costanti) guidando passo-passo il lettore mediante esempi concreti.

Generalit: librerie e blocchi elementari.


SIMULINK si compone di una serie di librerie che contengono dei blocchi elementari, i quali, opportunamente interconnessi, andranno a realizzare lo schema a blocchi che rappresenta la funzionalit desiderata. Si accede alla lista delle librerie aprendo innanzitutto MATLAB (si veda in Fig. 1 la finestra di avvio di MATLAB) e quindi aprendo SIMULINK. Tale operazione puo esser fatta in due modi: premendo con il mouse il pulsante corrispondente (v. Fig. 1) o digitando simulink nella riga di comando e quindi premendo il tasto invio. In Fig. 2 la finestra di avvio del software SIMULINK (vers.6.0.0.88, release 12)

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

PULSANTE PER APRIRE SIMULINK

FIG. 1

FINESTRA DI AVVIO DI MATLAB

Pulsante New

FIG. 2.

FINESTRA DI AVVIO DI SIMULINK

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

Nella parte destra della finestra in Fig. 2 vediamo la lista delle librerie (Continuous, Discrete, Functions & Tables, Math,, Sources) ognuna delle quali contiene una certa tipologia di componenti base: LIBRERIA Continuous Discrete Functions & Tables Math Nonlinear Signals & Systems Sinks Sources CONTENUTO Componenti lineari a tempo continuo Componenti lineari a tempo discreto Funzionalit programmabili e look-up tables Funzioni matematiche Componenti non lineari Condizionamento di segnali Visualizzatori di segnale Generatori di forme donda

Vediamo pi a fondo il contenuto di alcune librerie

FIG. 3.

LIBRERIE CONTINUOUS (SINISTRA) E MATH (DESTRA)

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

FIG. 4.

LIBRERIE SINKS (SINISTRA) E SOURCES (DESTRA)

Ciascun blocco elementare svolge una particolare funzione. Non scopo di questo manuale discutere in dettaglio tutti i blocchi elementari; ci limiteremo a spiegare il funzionamento dei blocchi che ci serviranno per svolgere i task sui quali ci concentreremo.

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

Esempio introduttivo:

visualizzazione di una sinusoide

Come primo passo si apra una nuova pagina di lavoro cliccando sul pulsante new a sinistra nella finestra di apertura di Simulink (v. Fig. 2). Comparir una finestra denominata Untitled (v. Fig. 5) allinterno della quale si dovr costruire lo schema a blocchi corrispondente alloperazione desiderata. In generale si devono importare nella pagina di lavoro un certo numero di blocchi elementari realizzanti le funzioni richieste che dovranno essere opportunamente interconnessi tra di loro al fine di realizzare il modello di simulazione

FIG. 5

Per visualizzare una sinusoide sono sufficienti due blocchi elementari: un blocco che generi il segnale desiderato ed un blocco che ne permetta la visualizzazione. Il primo blocco lo troveremo nella libreria Sources (blocco Sine Wave), il secondo blocco (blocco Scope), si trova nella libreria Sinks. I blocchi necessari vanno importati nella pagina di lavoro Untitled trascinando con il mouse (drag-and-drop) licona del blocco allinterno della pagina di lavoro. Il risultato di tale procedura mostrato in Fig. 6.
A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

FIG. 6

A questo punto conviene salvare la pagina di lavoro. La scritta Untitled verr sostituita dal nome assegnato al file, che ha suffisso mdl (ad esempio sinusoide.mdl). E altresi conveniente e soprattutto comodo ingrandire la finestra di lavoro e disporre i blocchi nella parte centrale come in Fig. 7.

FIG. 7

FIG. 8

Si deve ora collegare luscita del generatore di funzione Sine Wave con lingresso del blocco di visualizzazione Scope. Per effettuare un collegamento si deve portare la freccia del mouse nel punto di partenza dello stesso, e quindi tracciare il collegamento tenendo premuto il tasto sinistro del mouse e portandosi fino al punto di destinazione. Un
A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

collegamento correttamente eseguito viene indicato come in Fig. 8. Si ispezioni visivamente il collegamento, ed in particolare consigliato verificare sempre la presenza della freccia entrante nel blocco per essere certi di aver eseguito il collegamento in maniera corretta. Devono ora essere impostati i parametri di ampiezza, frequenza e sfasamento che definiscono la particolare sinusoide che si desidera generare. A tal fine necessario fare doppio click sul blocco Sine Wave, e come risultato si apre una finestra di dialogo allinterno della quale vanno impostati i parametri di funzionamento (Fig. 9).

Pulsante Start Simulation

FIG. 9

Impostati i tre parametri desiderati (scrivendo il valore corrispondente nelle caselle di testo etichettate Amplitude, Frequency e Phase) e confermata la scelta con il tasto OK (nella casella sample time si deve lasciare il valore nullo di default) resta da compiere un ultimo passo prima di avviare la simulazione . Si devono impostare la durata (cio lintervallo temporale) della simulazione ed il metodo di integrazione numerica. Tali parametri si impostano selezionado la voce Simulation Parameters dal menu Simulation della finestra di lavoro (Fig. 10). Lintervallo temporale della simulazione si imposta nella casella Stop Time. Per quanto riguarda il metodo di integrazione in questa sede ci limitiamo a segnalare che selezionando le Solver Options ed il Fixed step size come in Fig. 10 si potranno eseguire con successo tutti i task di simulazione previsti nel presente modulo. Quando sono da rappresentare fenomeni rapidamente variabili (ad es. una sinusoide a frequenza
A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

dellordine dei KHz) si dovr ridurre il Fixed Step Size oppure ricorrere a solutori (Solver) differenti. Come ultima operazione, si deve fare doppio click sul blocco Scope, ottenenendo come risultato la comparsa della finestra di visualizzazione in Fig. 11, quindi cliccare sul pulsante Properties (il secondo da destra, affianco al pulsante di stampa) e disselezionare nel men data History la check-box di default Limit data points to last [5000] (v. Fig. 12).

FIG. 10

FIG. 11

FIG. 12

FIG. 13

A questo punto tutto pronto per eseguire la simulazione. E sufficiente cliccare il pulsante Start Simulation (Fig. 9) e nella finestra di visualizzazione comparir il segnale generato dal blocco
A. Pisano Guida introduttiva a Matlab-Simulink

10

Appunti di SIMULINK a
dic

Sine Wave (v. Fig. 13: Amplitude=1, Frequency = 1 rad/s, Phase = 0). Se la finestra di visualizzazione fosse stata inavvertitamente chiusa sufficiente fare doppio click sul blocco Scope per riaprirla. Il lettore pu ora visualizzare sinusoidi di diversa ampiezza, frequenza o sfasamento modificando il corrispondente parametro nella finestra di dialogo del blocco Sine Wave. Per generare un segnale armonico (ad es. la somma di due sinusoidi di frequenza diversa) si devono importare un altro blocco Sine Wave ed un blocco che funga da nodo sommatore (Libreria Math, blocco Sum). Lunico parametro che definisce il comportamento del nodo sommatore una stringa di + o (es. +++) in numero pari al numero di nodi desiderati. Per il nostro caso si dovr impostare la stringa ++ ( la stringa di default) che genera due nodi a segno positivo (per fare la differenza tra due segnali il sommatore va invece configurato con la stringa +). Avviando la simulazione con il pulsante Start Simulation si pu vedere nel blocco Scope il segnale armonico costruito.

Pulsante Start Simulation FIG. 14

Esercizio:

Visualizzare il segnale x(t)=sin(t) + 2 sin(2 t) + 3 sin (3 t + ) 2 sin (5 t)

A. Pisano Guida introduttiva a Matlab-Simulink

11

Appunti di SIMULINK a
dic

Costruzione e visualizzazione di una generica funzione del tempo


Per generare segnali non sinusoidali, sono disponibili diversi blocchi speciali. Descriviamone alcuni BLOCCO Constant Step Ramp Random signal SEGNALE GENERATO Segnale costante Segnale a gradino Rampa Segnale casuale

Per generare funzioni comunque complesse (ad es. s(t)=sin(t) + e-t + t log (t+1)) si pu utilizzare la seguente configurazione:

FIG. 15

Il blocco Clock sta nella libreria Sources e fornisce in uscita la variabile temporale t. Il blocco Fcn sta nella libreria Functions & Tables e permette di scrivere una espressione matematica che viene applicata alla quantit in ingresso al blocco. Nello scrivere lespressione il segnale di ingresso si deve sempre indicare con la lettera u (si noti come in Fig. 15 il contenuto della stringa definisca proprio la funzione desiderata s(t) con la lettera u al posto di t). Avviando la simulazione (pulsante Start) e facendo doppio click sul blocco Scope si pu visualizzare landamento del segnale generato. Si ricordi di impostare correttamente i Simulation Parameters e le Scope properties ( v. Fig. 10 e Fig. 12).

A. Pisano Guida introduttiva a Matlab-Simulink

12

Appunti di SIMULINK a
dic

Soluzione di equazioni differenziali lineari a coefficienti costanti


Chiariamo innanzitutto che in ambito Simulink per soluzione di un equzione differenziale intendiamo semplicemente la visualizzazione della soluzione in un blocco di tipo Scope. Anche stavolta procediamo sviluppando un esempio pratico: ESEMPIO Si visualizzi nei primi 15 secondi la soluzione y(t) dellequazione differenziale lineare del terzo ordine

3 y ''' + 2 y '' + 3 y ' + 6 y = 3 + cos(2 t )


con condizioni iniziali

(1)

y(0) = 1

y ' (0) = 2

y '' (0) = 3

(2)

La procedura sistematica: 1. Riscrivere lequazione in forma esplicita (cio isolando a sinistra delluguale la derivata di ordine pi elevato)

1 2 y ''' = 1 + cos(2 t ) y '' y ' 2 y 3 3


2.

(3)

Collocare nella pagina di lavoro vuota un numero di blocchi Integrator (dalla libreria Continuous) pari allordine dellequazione differenziale (in questo caso sono 3) e collegarli tra loro in cascata come in Fig. 16

FIG. 16

A. Pisano Guida introduttiva a Matlab-Simulink

13

Appunti di SIMULINK a
dic

Importare un nodo sommatore e 3 blocchi Gain (dalla libreria Math). Il nodo sommatore si collega al primo degli integratori (quello pi a sinistra). Il blocco Gain moltiplica il segnale di ingresso per il valore impostato nella corrispondente finestra di dialogo che si apre facendo doppio click sul blocco stesso (il guadagno di default unitario).

3.

FIG. 17

Come riportato in Fig. 17, le uscita dei tre integratori sono (da destra verso sinistra) rispettivamente y (il segnale cercato) e le sue derivate prima e seconda, y ed y. Questo in accordo con la funzione eseguita dal blocco, che produce in uscita lintegrale del segnale di ingresso. Nota: Facendo doppio click su un punto della finestra di lavoro ove non si trovano blocchi ivi compare una casella di testo in cui si possono scrivere delle lettere a piacere. Usualmente, come fatto in Fig. 17, si usa questa funzionalit per identificare, vicino alluscita (o allingresso) di un blocco, il nome del Segnale che esce dal (o entra nel) blocco in questione.
Come si ricava facilmente, in ingresso allintegratore pi a sinistra (Integrator 2 in Figura 17) si trover la derivata terza del segnale y. Per simulare lequazione differenziale si dovranno pertanto far confluire nel nodo sommatore tutte le quantit che compaiono a destra delluguale nellequazione (3), che definisce proprio la forma della derivata terza.

Identifichiamo, a destra delluguale nella Eq. (3), quattro diversi contributi: A. la funzione del tempo tra parentesi quadre 14

1 1 + cos (2 t ) 3

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

B. C.

la derivata seconda di y moltiplicata per la derivata prima di y moltiplicata per 1

2 3

D. il segnale y moltiplicato per 2 4. Configurare il sommatore con 4 nodi positivi e renderlo di forma rettangolare anzich circolare (stringa ++++ ed Icon shape=Rectangular nella finestra di dialogo) La funzione del tempo al punto A viene generata con un blocco Clock ed un blocco Fcn (v esempio a pag. 12). I blocchi Gain vengono fatti ruotare di 180 ( sufficiente selezionarli con un singolo click di mouse e premere per due volta la coppia di tasti CTRL + R, R=rotate) e trascinati nel foglio di lavoro fino a disporli come in Figura 18.

FIG. 18

5. Ora bisogna collegare in ingresso ai tre blocchi Gain i segnali y, y ed y per poter costruire i tre contributi ai punti B, C e D. Le uscite dei tre blocchi Gain vanno collegate ai tre ingressi liberi nel nodo sommatore. Dopo aver fatto tutti collegamenti bisogna impostare i guadagni dei tre blocchi Gain in accordo con lequazione (3). Il risultato finale in Fig. 19. E conveniente fare i collegamenti come in Fig. 19 per evitare incroci tra rami (che comunque non provocano nessun corto circuito e sono da evitarsi soltanto per aumentre la chiarezza di rappresentazione).

A. Pisano Guida introduttiva a Matlab-Simulink

15

Appunti di SIMULINK a
dic

FIG. 19

6. Prima di avviare la simulazione bisogna impostare le condizioni iniziali in Eq. (2). Le condizioni iniziali si impostano mediante una finestra di dialogo che si apre facendo doppio click sui blocchi Integratori. Cliccando sullintegratore pi a destra (Integrator) si apre la seguente finestra di dialogo in cui impostre il parametro Initial condition, la condizione inizile del segnale che esce dallo specifico blocco integratore. Poich luscita del blocco in questione il segnale y, in accordo coon lEq. (2) si dovra inserire 1 come Initial Condition (e lasciare i valori di default per le altre impostazioni).

FIG. 20

A. Pisano Guida introduttiva a Matlab-Simulink

16

Appunti di SIMULINK a
dic

Per gli altri integratori procedere di conseguenza impostando le Initial Condition sempre in accordo con le Eq. (2). Si deve ora collegare il blocco Scope. N.B. per effettuare un collegamento a partire da un collegamento preesistente bisogna portarsi con il mouse sul punto in cui si desidera agganciarsi e quindi tracciare con la punta del mouse il percorso desiderato per il collegamento, tenendo premuto il tasto destro del mouse. Non resta che impostare correttamente i Simulation Parameters (N.B. Stop time = 15) e le Scope properties (v. Fig. 10 e Fig. 12) ed avviare la simulazione premendo il pulsante Start. Landamento temporale della soluzione cercata riportato in Fig. 21.

FIG. 21

A. Pisano Guida introduttiva a Matlab-Simulink

17

Appunti di SIMULINK a
dic

Soluzione di equazioni differenziali lineari a coefficienti non costanti


Nelle equazioni differenziali a coefficienti non costanti almeno uno dei coefficienti che moltiplicano le derivate della soluzione y sono delle funzioni del tempo, anzich essere delle costanti come nella Eq. (1). Prendendo spunto dalla procedura adottata per risolvere lequazione 1, vediamo quali modifiche si debbano introdurre per trattare una equazione a coefficienti non costanti come quella dellesempio che segue ESEMPIO Si visualizzi nei primi 15 secondi la soluzione y(t) dellequazione differenziale lineare tempovariante del secondo ordine

y '' + sin (t ) y ' + 4 y = 2


con condizioni iniziali

(4)

y (0 ) = 1

y ' (0) = 1

(5)

Equazione in forma esplicita:

y '' = 2 sin (t ) y ' 4 y

(6)

Come prima, si debbono porre in cascata un certo numero di integratori (stavolta solo 2 perch lequazione (4) di ordine 2) e si deve collegare un sommatore allingresso del primo integratore in maniera analoga a quanto fatto in Fig. 17. La componente

sin (t ) y '

a destra delluguale nellequazione (6) in forma esplicita non

potr pi essere generata mediante un blocco di guadagno (Gain). E possibile utilizzare il blocco Dot Product (dalla libreria Math), un blocco con due ingressi che fornisce in uscita il prodotto degli stessi. Al primo ingresso del blocco Dot Product si dovr mandare il segnale y (prelevato nel punto opportuno dello schema). Al secondo ingresso si dovr invece mandare il guadagno tempovariante sempre generato con i blocchi Clock ed Fcn come spiegato a pag. 12. Avendo completato tutti i collegamenti ne risulter il seguente schema (Eq. (22)

sin(t ) ,

A. Pisano Guida introduttiva a Matlab-Simulink

18

Appunti di SIMULINK a
dic

FIG. 22

Si faccia attenzione alle condizioni iniziali degli integratori, da definirsi in accordo con le Eq. (5)). Nel blocco Fcn inserita la stringa - sin(u).

Per verificre la correttezza dello schema si confronti il grafico ottenuto con il seguente: Grafico della soluzione

FIG. 23

A. Pisano Guida introduttiva a Matlab-Simulink

19

Appunti di SIMULINK a
dic

Soluzione di sistemi di equazioni differenziali lineari a coefficienti costanti

ESEMPIO Si visualizzino nei primi 30 secondi le soluzioni y(t) ed x(t) del seguente sistema di equazioni differenziali lineari

2 y '' + 4 y ' + 6 y + x = 3

(7) (8)

x ' + y ' + 4 x = cos(t )


con le condizioni iniziali

y (0 ) = 1 x (0 ) = 1

y ' (0 ) = 1

(9) (10)

Il sistema costituito dalle equazioni (7)-(8) complessivamente di ordine 3 (lordine totale la somma degli ordini delle singole equazioni). Il punto di partenza sempre la riscrittura del sistema in forma esplicita Sistema in forma esplicita:

x ' = y ' 4 x + cos(t )

1 3 y '' = 2 y ' 3 y x + 2 2

(11) (12)

Si devono collocare in tutto 3 blocchi Integratori (libreria Continuous) che per non dovranno essere disposti in cascata come in Fig. 16. Gli integratori vanno disposti su 2 righe distinte (perch il sistema in esame si compone di 2 equazioni). Nella prima riga (corrispondente alla equazione (11)) metter due integratori in cascata, nella seconda riga metter il terzo integratore restante (Fig. 24). Analogamente a prima, si collegano due sommatori in ingresso agli integratori pi a sinistra (uno dei sommatori deve avere 4 ingressi, per laltro ne bastano 3). Per concludere lo schema si devono generare tutte le grandezze a destra delluguale nelle equazioni (11) e (12), e tali grandezze devono essere convogliate al nodo sommatore in accordo con le due equazioni. Al solito, la funzione cos(t) generata con i blocchi Clock e Fcn. In Fig. 25 riportato lo schema finale che si deve ottenere (o almeno uno degli schemi possibili).
A. Pisano Guida introduttiva a Matlab-Simulink

20

Appunti di SIMULINK a
dic

FIG. 24

FIG. 25

N.B. I collegamenti sovrapposti in Fig. 25 sono perfettamente leciti. Le connessioni effettive sono identificate da un punto nero che risalta dal collegamento.

A. Pisano Guida introduttiva a Matlab-Simulink

21

Appunti di SIMULINK a
dic

Soluzione di equazioni differenziali non lineari del primo ordine


Analizziamo la soluzione di una equazione differenziale non lineare del prino ordine. Consideriamo per semplicit una equazione autonoma (la variabile tempo non compare esplicitamente)

x(0) = x0

& = f (x ) x

(13)

x0

(14)

In gergo matematico tale problema si chiama Problema di Cauchy ai valori iniziali. Va evidenziato quanto segue: - i grafici che si ottengono con Simulink sono sempre grafici approssimati per due motivi: o unequazione differenziale viene risolta via software impiegando algoritmi automatici di calcolo affetti da un intrinseco errore di approssimazione (lerrore si riduce diminuendo il parametro Fixed step size nei Simulation parameters, v. Fig. 12). o ogni operazione sui numeri reali effettuata da un programma software affetta da un errore di troncamento (o arrotondamento) dovuto al fatto che un calcolatore rappresenta i numeri con una quantit finita di cifre. La risoluzione di un problema di Cauchy in ambiente Simulink estremamente semplice. Lequazione gia data in forma esplicita. E sufficiente un integratore ed un blocco Fcn che realizzi la funzione f(x).

FIG. 26

A. Pisano Guida introduttiva a Matlab-Simulink

22

Appunti di SIMULINK a
dic

Particolarizziamo la Fig. 26 per la specifica equazione

x(0) = 0

& = x + sin(x ) + x cos(x ) x

(15) (16)

In Fig. 27 lo schema finale risultante, ed in Fig. 28 il grafico della soluzione.

FIG. 27

FIG. 28

A. Pisano Guida introduttiva a Matlab-Simulink

23

Appunti di SIMULINK a
dic

Soluzione di equazioni differenziali non lineari di ordine qualunque


Analizziamo ora la soluzione di equazione differenziali non lineari di ordine qualunque in forma esplicita. Consideriamo per semplicit una equazione autonoma (la variabile tempo non compare esplicitamente) e trattiamo inizialmente il caso di una equazione del secondo ordine.

& & = f (x, x &) x


x(0) = x0 ,

(17)

& (0) = x &0 x

&0 x0 , x

(18)

Stavolta servono due integratori (lequazione del secondo ordine) collegati in cascata, un blocco Fcn che dovr realizzare la funzione

&) f (x, x

ed un blocco aggiuntivo che si

chiama Mux (libreria Signals & Systems). Il blocco Mux ha un numero arbitrario di ingressi (il numero di ingressi si imposta dalla corrispondente finestra di dialogo attraverso il parametro intero Number of inputs)

FIG. 29

La funzione del blocco Mux quella di compattare tuti i segnali di ingresso in un vettore ad N componenti (N = Number of Inputs). Lutilit di questo blocco consiste nel fatto che se mando ad un blocco Fcn luscita di un blocco Mux posso scrivere nel blocco Fcn una espressione (funzione) che dipende da tutti gli elementi del vettore in uscita dal Mux. Il primo elemento del vettore sar indicato con u(1), il secondo con u(2) e cos via fino allelemento N-esimo. Facciamo un esempio: ESEMPIO: Risolvere lequazione

& & = x 2 sin( x &) 2x & x


x(0) = 1 ,

(19) (20) 24

& (0) = 3 x

A. Pisano Guida introduttiva a Matlab-Simulink

Appunti di SIMULINK a
dic

Lo schema sar del tipo in Figura 30

FIG. 30

ESERCIZIO: Risolvere lequazione

x(0) = 1 ,

& x sin( x &) 2x & x ( 3) = & x

(21)

& (0) = 3 x

& &(0) = 0 x

(22)

SOLUZIONE: v. Fig. 31.

FIG. 31

A. Pisano Guida introduttiva a Matlab-Simulink

25

Appunti di SIMULINK a
dic

Soluzione di equazioni differenziali non lineari tempo-varianti di ordine qualunque


Analizziamo ora la soluzione di equazione differenziali non lineari e non autonome (tempovarianti) di ordine qualunque in forma esplicita. Trattiamo inizialmente il caso di una equazione del secondo ordine. Lestensione ai sistemi di ordine superiore banale.

& &(t ) = f (x(t ), x & (t ), t ) x

(17)

x(0) = x0 ,

& (0) = x &0 x

&0 x0 , x

(18)

E sufficiente introdurre una semplicissima modifica allo schema in Fig. 30. Se si aggiunge un terzo ingresso al blocco Mux e si applica a tale ingresso luscita del blocco Clock visto in precedenza (vio la variabile tempo) si potr includere nella funzione f (cio nel contenuto del blocco Fcn) anche la variabile tempo, che sar indicata con u(3). Facciamo un esempio: ESEMPIO: Risolvere lequazione

& & = x 2 sin( x & ) cos(2t ) 2 x & x


x(0) = 1 , & (0) = 3 x
Lo schema sar del tipo in Figura 32

(19) (20)

FIG. 32

Si pu verificare che il seguente schema (Fig. (33)) perfettamente equivalente a quello in Fig. 32.

A. Pisano Guida introduttiva a Matlab-Simulink

26

Appunti di SIMULINK a
dic

FIG. 33

A. Pisano Guida introduttiva a Matlab-Simulink

27

Appunti di SIMULINK a
dic

SIMULAZIONE DI SISTEMI DINAMICI


Una volta scritto il modello matematico di un sistema, la simulazione non altro che la risoluzione dellequazione differenziale (o del sistema di equazioni differenziali) definita dal modello. ESERCIZIO 1 Simulare il comportamento di un corpo di massa M=1 [Kg] vincolato a muoversi in una direzione fissa sotto lazione di una forza applicata sinusoidale F(t) = 2*sin(t) [N] e soggetto ad attrito composto (viscoso, statico e di tipo drag) con coefficienti rispettivamente b=0.2 [Ns/m], =0.1 N e =0.05 [N s2/m2]. Il modello pu essere ricavato mediante un semplice bilancio dinamico delle forze agenti ed ha la forma seguente:

& + bx & + sign ( x &) + x &x & = F (t ) M& x


Sostituendo i valori delle costanti e la forza applicata F(t)

(21)

& & + 0 .2 x & + 0.1 sign ( x & ) + 0.05 x &x & = 2 sin (t ) x
Un possibile schema Simulink il seguente

(22)

F(t)

FIG. 34

A. Pisano Guida introduttiva a Matlab-Simulink

28

Appunti di SIMULINK a
dic

Nello schema in Fig. 34 un blocco compare per la prima volta: il blocco Abs (libreria Math) che estrae il valore assoluto di un segnale. Nota: facendo doppio click sui nomi dei blocchi (ad es. Integrator 1) possibile modificarli. Nello schema in Fig. 34 questo stato fatto nei blocchi Gain contenenti i 3 coefficienti di attrito (ribattezzati alfa, gamma e b) e nel blocco di tipo Fcn che genera la forza applicata F. Tale blocco ribattezzato F(t). ESERCIZIO 2
Si consideri il seguente modello matematico, che descrive il funzionamento di un servomotore in corrente continua con eccitazione a magneti permanenti.

di(t ) + kV (t ) dt d (t ) Tem (t ) Tres (t ) = J + b (t ) dt Tem (t ) = kT i(t ) v(t ) = Ri(t ) + L


VARIABILI DEL SISTEMA v(t) Tem(t) i(t) tensione di alimentazione coppia elettromagnetica corrente di fase PARAMETRI ELETTROMECCANICI Kv R L costante di forza contro-elettromotrice resistenza dellavvolgimento induttanza di avvolgimento kT J b costante di coppia momento di inerzia allalbero coefficiente di attrito viscoso (t) Tres(t) velocit angolare coppia resistente

(23)

Si desidera visualizzare landamento della velocit a vuoto (cio con Tres=0) quando si applica una tensione di alimentazione costante di ampiezza 5 V. Costruiremo lo schema Simulink facendo uso di costanti simboliche. Uno dei possibili schemi Simulink per la simulazione del sistema in esame riportato in Fig. 35. Prima di avviare la simulazione bisogna assegnare un valore ai parametri R, L, K_T, K_V, J, b. Questa procedura si compie nella finestra di Matlab scrivendo nella riga di comando le istruzioni di assegnazione (v. Fig. 36)

A. Pisano Guida introduttiva a Matlab-Simulink

29

Appunti di SIMULINK a
dic

FIG. 35

FIG. 36

A. Pisano Guida introduttiva a Matlab-Simulink

30

Appunti di SIMULINK a
dic

ESERCIZI CON TRACCIA DELLA SOLUZIONE


Es.1. Si simuli il sistema caratterizzato dalla seguente equazione differenziale

& &(t ) + 3 y & (t ) + y (t ) y & (t ) y (t ) = u (t ) y

& (0) =0 ed u(t) costituito da unonda quadra di ampiezza unitaria e frequenza con y(0)= y
0.1 Hz. Si determinino i valori massimo e minimo della funzione y(t) e della sua derivata in condizione di regime.

Es.2 .Si simuli il sistema caratterizzato dalla seguente equazione differenziale

& &(t ) + 0.2 y

& (t ) y + 2 y (t ) = u (t ) & (t ) + 0.5 y

con y(0)=1 ed u(t) costituito da unonda a dente di sega di ampiezza pari a 2 e frequenza 0.1 Hz. Si determinino i valori massimo e minimo della funzione y(t) e della sua derivata in condizione di regime.

Es.3 Si simuli il sistema caratterizzato dalla seguente equazione differenziale & &(t ) + y & (t ) + 2 y (t ) + 0.1 y 3 (t ) = u (t ) y con y(0)=1 ed u(t) costituito da unonda quadra di ampiezza unitaria e frequenza 1 Hz. Si determinino i valori massimo e minimo della funzione y(t) e della sua derivata in condizione di regime.

A. Pisano Guida introduttiva a Matlab-Simulink

31

Appunti di SIMULINK a
dic

SOLUZIONE DELLEs. 1

FIG. 37

Il blocco Product (libreria Math) equivalente al blocco Dot Product per la moltiplicazione di segnali scalari. Il blocco Signal generator (Libreria Sources) in gardo di generare diverse forme donda (tra cui un onda quadra come richiesto nellesercizio) selezionabili nella finestra di dialogo dl blocco. I valori limite a regime per luscita y sono 0.77 circa. I valori limite a regime per la sua derivata y sono 0.57 circa.

SOLUZIONE DELLEs. 2

FIG. 38

A. Pisano Guida introduttiva a Matlab-Simulink

32

Appunti di SIMULINK a
dic

I valori limite a regime per luscita y sono

+2.225 e

1.85 2.32

I valori limite a regime per la sua derivata y sono +2.16 e

SOLUZIONE DELLEs. 3

FIG. 39

I valori limite a regime per luscita y sono

0.33 circa.

I valori limite a regime per la sua derivata y sono 0.255 irca.

A. Pisano Guida introduttiva a Matlab-Simulink

33