Presentazione di...

112
MATLAB

Transcript of Presentazione di...

MATLAB

• MATLAB (MATrix LABoratory) è un linguaggio di

programmazione per applicazioni scientifiche (elaborazione

numerica dei segnali, progetto di simulatori, sintesi di

sistemi di controllo, ecc.)

• MATLAB è un interprete di comandi. I comandi possono

essere forniti interattivamente o contenuti in files su disco

(M-files)

• Comprende un vasto set di funzioni predefinite e numerose

librerie (toolbox) per svariate applicazioni

• Le potenzialità di MATLAB possono essere facilmente

estese (è semplice creare nuovi toolbox)

• E' possibile convertire un programma MATLAB in codice C

e C++ in modo automatico

Come appare Matlab ?

Matlab come Calcolatrice

Definizione Variabili

Workspace • Tutte le variabile definite o calcolate vengono tenute

automaticamente in memoria e posso essere richiamate

successivamente.

Lettura e scrittura dati su FILE

Help

Help “topic”

ALCUNE ISTRUZIONI DI USO COMUNE

• >>help richiama l’help in linea

– help comando visualizza l’help relativo al comando indicato

• >>who/whos elencano le variabili in uso

• >> dir elenca i files contenuti nella directory

corrente

• >>clear all elimina tutte le variabili della sessione

corrente

• >>clear var1 var2 elimina le variabili var1 e var2 dal

workspace

VETTORI

Vettore Colonna

Vettori

Vettori

Vettori

Funzioni Standard e costanti

Funzioni Standard e costanti

Funzioni con argomenti Vettoriali

Polinomi

Polinomi

Polinomi

Prodotto tra Polinomi

M-FILE

Programma

in M-file

Programmazione in MATLAB

Funzioni

Esempio di funzione che calcola statistica

A line at the top of a function M-file contains the syntax definition. The

name of a function, as defined in the first line of the M-file, should be the

same as the name of the file without the .m extension.

Matrici

Matrici

Matrici

Matrici

WildCard

Estrazione Sottomatrice

La Grafica Matlab

Alcuni parametri dei Grafici

Salvataggio figura su file

-3 -2 -1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

-4 -3 -2 -1 0 1 2 3 40

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

-3 -2 -1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

-3 -2 -1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

-2

-1

0

1

2

-2

-1

0

1

2-0.5

0

0.5

-2

-1

0

1

2

-2

-1

0

1

2-0.5

0

0.5

Control System Toolbox

Da TF a State Space

Da TF a State Space

3 2

160( )

12 300 100

sG s

s s s

>>sys=tf(2,[1 2 2],’InputDelay’,0.5);

0.5

2 2

2

2 2

seG s

s s

Se il modello presenta un ritardo finito, questo può essere

incluso nel modo seguente:

DIAGRAMMI DI BODE

Altra Modalità

1 2

1 2 3

( )* ( )

1 ( )* ( )* ( )

G s G sW s

G s G s G s

Cancellazioni

1( )G s

2 ( )G s

3( )G s

3 ( )aG s

0 5 10 15 20 25 30-1.5

-1

-0.5

0

0.5

1

1.5

Response to Initial Conditions

Time (sec)

Am

plit

ude

Risposta Libera

Risposta Forzata

Risposta Forzata

0 1 2 3 4 5 6 7 8 9 10-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Linear Simulation Results

Time (sec)

Am

plit

ude

Risposta Completa

0 5 10 15-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Linear Simulation Results

Time (sec)

Am

plit

ude

Nel caso in cui si voglia valutare la risposa al GRADINO

0 1 2 3 4 5 6 7 8 9 100

0.2

0.4

0.6

0.8

1

1.2

1.4

Step Response

Time (sec)

Am

plit

ude

2

2

2 2G s

s s

Step Response

Time (sec)

Am

plit

ude

0 1 2 3 4 5 6 7 8 9 100

0.2

0.4

0.6

0.8

1

1.2

1.4

System: sys

Peak amplitude: 1.04

Overshoot (%): 4.31

At time (sec): 3.1

E’ possibile visualizzare le caratteristiche principali della

risposta al gradino

0 1 2 3 4 5 6-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Impulse Response

Time (sec)

Am

plit

ude

Nel caso in cui si voglia valutare la risposa all’IMPULSO

Il sistema Lineare può essere assegnato in uno delle 2

forme possibili:

•sys=tf(num,den);

•sys=zpk([zeri],[poli]);

DIAGRAMMI DI BODE

Si stabilisce decide l’intervallo di frequenze per il quale si vuole disegnare

il diagramma di Bode o Nyquist (wmin<w<wmax).

Si definisce un vettore w contenete l’insieme ordinato delle frequenze che

si vogliono graficare con il comando logspace:

ex: 300 punti nell’intevallo :

2 310 10w

w=logspace(-2,3,300)

Calcolo dei residui

3

1.5( 4)

( 2)( 3)( 1)

sG s

s s s

3 51 2 4

2 3( 2) ( 3) ( 1) ( 1) ( 1)

R RR R RG s

s s s s s

Calcolo dei residui

0 1 2 3 4 5 6 7 8

-3

-2

-1

0

1

2

3MODI NATURALI

Time (sec)

Am

plit

ude

2 3

0.18 3 2.8 2.62 2.25

( 2) ( 3) ( 1) ( 1) ( 1)G s

s s s s s

ESEMPIO

(s + 1)

W(s)-----------------------------

s^3 + 6 s^2 + 18 s + 20

I coefficienti del numeratore e denominatore ordinati si

memorizzano su opportuni vettori

>> num =[1 1]; den [ 1 6 18 20];

si genera poi il sistema:

>> sys=tf(num,den);

si specifica l’asse delle frequenze:

ad esempio 300 punti nell’intevallo : w=logspace(-2,2,300)

>>bode(sys,w);

2 210 10w

Frequency (rad/sec)

Ph

ase

(d

eg

); M

ag

nitu

de

(d

B)

Bode Diagrams

-80

-60

-40

-20From: U(1)

10-2

10-1

100

101

102

-200

-150

-100

-50

0

50

To:

Y(1

)

10-2

10-1

100

101

102

-180

-135

-90

-45

0

45

Phase (

deg)

Bode Diagram

Frequency (rad/sec)

-80

-70

-60

-50

-40

-30

-20

System: sys

Peak gain (dB): -22

At frequency (rad/sec): 2.19

Magnitu

de (

dB

)

-60

-40

-20

0

20

40

Magnitu

de (

dB

)

10-1

100

101

-270

-225

-180

-135

-90

Phase (

deg)

Bode Diagram

Gm = -26 dB (at 1 rad/sec) , Pm = -83.4 deg (at 1.52 rad/sec)

Frequency (rad/sec)

MARGINI DI STABILITA’

-60

-40

-20

0

20

40

Magnitude (

dB

)

10-1

100

101

-270

-225

-180

-135

-90

Phase (

deg)

Bode Diagram

Gm = -26 dB (at 1 rad/sec) , Pm = -83.4 deg (at 1.52 rad/sec)

Frequency (rad/sec)

D. BODE D. NYQUIST

-20 -15 -10 -5 0-15

-10

-5

0

5

10

Nyquist Diagram

Real Axis

Imagin

ary

Axis

•Se si dispone dei diagrammi di Bode di G(jw) è conveniente utilizzare questi come ausilio

per il tracciamento del diagramma di Nyquist. A tal fine si sceglie sul diagramma di Bode

un insieme di pulsazioni campione, e, facendo riferimento alla forma polare di G(jw), si

riportano sul piano complesso i valori del modulo e della fase letti dai diagrammi d Bode

•Dal diagramma di Bode al diagramma di NyquisT

0.02( )

(1 /10)(1 / 20)(1 /100)w

w w w

G j

j j j• Esempio

-0.01

-0.005

0 0.005

0.01

0.015

0.02

0.025

-18

-16

-14

-12

-10

-8

-6

-4

-2

0

2 x 10

-3

( )G jw

( )G w

Si fissano alcuni

valori sul

diagramma di

bode e si

riportano nel

piano complesso

in modulo e fase Diagramma di Nyquist Diagramma di

Bode

10 -2

10 -1

10 0

10 1

10 2

-100

-50

0

10 -2

10 -1

10 0

10 1

10 2

-270

-180

-90

0

Mo

du

lo d

B

Fase

-1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-4 dB0 dB -2 dB

20 dB -20 dB

10 dB

6 dB

-10 dB

4 dB2 dB

-6 dB

Nyquist Diagram

Real Axis

Imag

inary

Axi

s

( )( 1)( 2)

Ksys s

s s s

•Il diagramma di Nyquist può essere tracciato utilizzando il comando: nyquist ( ):

lim

10.1667

K

• Nel caso in cui sia stato disegnato un diagramma di Nyquist Il

comanda grid traccia i luoghi a modulo costante a ciclo chiuso M

( )

1 ( )

F jM

F j

w

w

• Analisi nel dominio del tempo tramite codice MATLAB

0 10 20 30 40 500

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

Tempo

y(t)

Risposta al gradino

0 10 20 30 40 50-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Tempo

y d(t

)

Risposta al disturbo

Luogo delle radici 1

( 2)( 1)s s

yu

K

( ) 1 ( ) 0ks G s

( )( )

1 ( )cl

kG sW s

kG s

( ) ( ) ( ) 0s D s kN s ( )

( )

n gradoD s

m gradoN s

n m

• (s) al variare di K ha sempre n radici in campo complesso

•Al variare del guadagno K tra 0<k<+ le n radici di (s) partono per K=0 dagli n poli di D(s)

•Per k=, m radici tendono agli gli m zeri di N(s). Le restanti n-m radici vanno all’infinito

• Al variare del guadagno K (reale) da - a + le radici dell’equazione caratteristica (s)

descrivono una curva nel paino complesso S cui si da’ il nome di luogo delle radici.

( ) ( ) ( ) 0i i

n m

s s p k s z

1( ) 1 0

( 1)( 2)s k

s s

2 3 2 0s s k

( 1)( 2) 0s s k

•Esempio 1( )

( 1)( 2)G s

s s

1,2

3 1 4

2

ks

1

( 2)( 1)s s

yu

K

2 1

0.25k

0k 0k

k

k

1.5

( 3)( 2)( 1) 0s s s k

-8 -6 -4 -2 0 2 4-6

-4

-2

0

2

4

6

Root Locus

Real Axis

Imagin

ary

Axis

>>sys=zpk([],[-1 -2 -3],1)

>>rlocus(sys)

1

( 3)( 2)( 1)s s s

yu

K

( )( 1)( 2)

Ksys s

s s s

• Il Luogo delle Radici può essere tracciato utilizzando il comando rlocus():

-6 -5 -4 -3 -2 -1 0 1 2-4

-3

-2

-1

0

1

2

3

4Root Locus

Real Axis

Imag

inary

Axi

s

>> sys=zpk([],[-1 -2 -3],1);

>> k=0:1:100;

>> rlocus(sys,'r.',k)

-7 -6 -5 -4 -3 -2 -1 0 1-4

-3

-2

-1

0

1

2

3

4

Root Locus

Real Axis

Imagin

ary

Axis

-4 -3 -2 -1 0 1 2 3 4-5

-4

-3

-2

-1

0

1

2

3

4

5Root Locus

Real Axis

Imag

inary

Axi

s

( )( 1)( 2)

Ksys s

s s s

•Il Luogo negativo

( )( 1)( 2)

Ksys s

s s s

•Il Luogo delle Radici può essere tracciato utilizzando il comando rlocus():

Il comando grid() disegna i luoghi a

smorzamento COSTANTE del

sistema del 2° ordine

2

2 2( )

2

n

n n

G ss s

w

w w

1p

1 *p

wn 21nw

w n

cos

2

1,2

0 1

1n np j

w w

-6 -5 -4 -3 -2 -1 0 1 2-4

-3

-2

-1

0

1

2

3

4

5 4

0.985

0.64

0.985

0.86

0.34

3

0.86

2

0.76

16

0.160.5

0.16

0.76

0.34

0.94

0.50.64

0.94

Root Locus

Real Axis

Imag

inary

Axi

s

• Con il comando rlocfind(), posizionandosi con il mouse sul plot del luogo delle

radici, è possibile determinare il valore del guadagno K in quel punto del luogo ed il

valore delle radici a ciclo chiuso.

( 10)

( 2)( 1)

s

s s s

yu

K

-10 -8 -6 -4 -2 0 2

-15

-10

-5

0

5

10

Root Locus

Real Axis

Imagin

ary

Axis

( 2)( 1) ( 10) 0s s s sk

-8 -7 -6 -5 -4 -3 -2 -1 0 1 2-4

-3

-2

-1

0

1

2

3

4

Root Locus

Real Axis

Imagin

ary

Axis

( 3)

( 2)

s

s s

yu

K

( 2) ( 3) 0ks s s

1

( 2)( 1)s s s

yu

K

>> sys=zpk([],[0 -2 -3],6)

Zero/pole/gain:

6

-------------

s (s+2) (s+3)

>> sisotool

>>

>>sisotool

Analisi con sisitool

( 1)( 2)

K

s s s

yu

•Analizzare al variare del guadagno K il comportamento del sistema:

-150

-100

-50

0

50

Mag

nitud

e (

dB

)

10-2

10-1

100

101

102

-270

-225

-180

-135

-90

Pha

se

(d

eg

)

Bode Diagram

Frequency (rad/sec)

( )( 1)( 2)

Ksys s

s s s

•I margine di fase e di ampiezza possono essere calcolati con l’istruzione:

margin():

-150

-100

-50

0

50

Mag

nitud

e (

dB

)

10-2

10-1

100

101

102

-270

-225

-180

-135

-90

Pha

se

(d

eg

)

Bode Diagram

Gm = 15.6 dB (at 1.41 rad/sec) , Pm = 53.4 deg (at 0.446 rad/sec)

Frequency (rad/sec)

( )( 1)( 2)

Ksys s

s s s

• RAPPRESENTAZIONE CARTESIANA o POLARE (Nyquist) di G(jw)

•Diagramma polare della funzione complessa G(jw) = luogo di punti del piano complesso ottenuti al variare di 0<w

•Su questa curva è consuetudine porre delle frecce che indicano il verso di percorrenza per valori

crescenti della pulsazione w.

( )( ) ( ) j G jG j G j e ww w

• RAPPRESENTAZIONE POLARE

•Ricordando che: G(-jw)=G(jw)* è possibile tracciare anche il luogo dei punti G(jw) con w0 sul piano

complesso. Tale curva si ottiene come immagine speculare rispetto all’asse reale del diagramma polare

di G(jw) con w>0 .

•Quindi considereremo sempre il diagramma polare o di Nyquist di G(jw) per -<w con sopra

indicato il verso di percorrenza con delle frecce per valori crescenti della pulsazione w.

( )G jw

Re ( ) Im ( )

Re ( ) Im ( )

G G

G G

j j j

j j j

w w

w w

• SIMMETRIA CONIUGATA *( ) ( )G j G jw w

Im G jw

Re G jw

G jw

arg G jw

( )G jw

Sistema di controllo DIGITALE

completo di Strumentazione

SISTEMI A DATI CAMPIONATI • Nello studio dei sistemi a controllo digitale il sottosistema formato dalla connessione in cascata del

MANTENITORE di ordine ZERO, PROCESSO e CAMPIONATORE può essere modellata adeguatamente per

mezzo di un sistema tempo discreto chiamato sistema a dati campionati.

SISTEMA A SEGNALI CAMPIONATI

*( )G z

• Si può dimostrare che il valore dell’uscita y(t) (nei soli istanti di campionamento) del sistema continuo a

dati campionati può essere calcolata per mezzo di un opportuno sistema tempo discreto.

*( )G z *( )y kT*( )u kT

Funzione di Trasferimento di sistemi a dati campionati (approccio nello spazio

degli stati )

H0(s) G(s)

A,B,C,D

( )u t *( )u t

( )y t

*( )y t

( )ru t

( ) ( ) ( )

( ) ( ) ( )

x t Ax t Bu t

y t Cx t Du t

1( ) ( ) W s C SI A B D

( ) ( )

0( ) ( )t

A t to A t

tox t e x e Bu d

( ) ( )

u t u kT

kT t kT T

Poiché si utilizza uno ZOH Il segnale ur(t) in ingresso al sistema e’ costante a tratti

kT<t<(k+1)T. Si calcola l’uscita del sistema nei soli istanti di campionamento:

0

A AT

TF e G e Bd

Si dimostra che negli istanti di campionamento l’uscita del sistema

TEMPO CONTINUO è identica a quella di un opportuno SISTEMA

TEMPO DISCRETO, caratterizzato dalle seguenti matrici: F, G:

( 1) ( ) ( )

( ) ( ) ( )

x k Fx k Gu k

y k Cx k Du k

0

A AT

TF e G e Bd

Quindi ad ogni sistema continuo (A,B,C,D) è associata una intera

famiglia di sistema a dati campionati. Le matrici F e G sono infatti

funzione del periodo di campionamento T

0 5 10 15 20

0

0.5

1

1.5

Step Response

Time (sec)

Am

plit

ude

Risposta al Gradino di un sistema tempo continuo e del corrispondente

sistema a dati campionati

Zero-Order

Hold1

Zero-Order

Hold

1

5s+1

Transfer Fcn2

1

s +0.4s+12

Transfer Fcn1

1

s +0.4s+12

Transfer Fcn

Step

Floating

Scope1

Floating

Scope

0.4050z+0.3529]

1.0000z -0.9124z+0.6703]2

Discrete

Transfer Fcn

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 5 10 15 20 25 300

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Ingresso Uscita

0 0.5 1 1.5 2 2.5 3 3.5 4 0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

Sistema discreto Sistema continuo

Possibili problemi di intersampling…………………