Post on 20-Oct-2018
transcript
• 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
Workspace • Tutte le variabile definite o calcolate vengono tenute
automaticamente in memoria e posso essere richiamate
successivamente.
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
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.
>>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:
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
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)
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
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
( 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
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