Lucidi aggiuntivi su MATLAB - LaDiSpe

Transcript

Lucidi aggiuntivi su MATLAB - LaDiSpe
Introduzione a MATLAB
Principali comandi MATLAB utili per il corso di
Controlli Automatici
(01AKS e 02FSQ)
Politecnico di Torino
Sistema in catena chiusa
] Il comando feedback genera il sistema LTI SYS con
funzione F1 sul ramo diretto e funzione F2 sul ramo in
retroazione.
» SYS=feedback(F1,F2)
¾ La retroazione è negativa di default; per applicare una retroazione
positiva utilizzare il seguente comando:
» SYS= feedback(F1,F2,+1)
1
Guadagno stazionario 1
] Il comando dcgain calcola il “guadagno in continua” g
del sistema LTI SYS, definito come il guadagno della sua
funzione di trasferimento per s=0.
» g=dcgain(SYS)
¾ Se SYS è un vettore di sistemi LTI, dcgain(SYS) restituisce un
vettore di guadagni:
» SYS=[SYS1 SYS2]
» g=dcgain(SYS)
2
Guadagno stazionario 2
] Per calcolare il guadagno stazionario K di un generico
sistema di tipo n, definito come
lim s n F ( s )
s − >0
(ove F(s) è la funzione di trasferimento del sistema) è
sufficiente applicare il comando dcgain a SYS*sn.
] Esempio:
» s=tf(‘s’)
» F=1/(s^2*(s+2))
» K=dcgain(s^2*F)
% sistema di tipo due
3
Diagrammi di Bode 1
] Il comando bode traccia i diagrammi di Bode del
sistema LTI SYS. L’intervallo di frequenze e il numero di
punti sono scelti automaticamente:
» bode(SYS)
] Per tracciare i diagrammi di Bode del sistema SYS
nell’intervallo di frequenze comprese fra wmin e wmax,
si utilizza il seguente comando:
» bode(SYS,{wmin,wmax})
4
Diagrammi di Bode 2
] Per tracciare i diagrammi di Bode rispetto ad un vettore
W di frequenze (definito in precedenza) si utilizza il
seguente comando:
» bode(SYS,W)
¾ Per generare il vettore utilizzare il comando logspace.
] E’ possibile tracciare sullo stesso grafico i diagrammi di
Bode di più sistemi:
» bode(SYS1,SYS2,...,W)
¾ Il vettore W di frequenze è opzionale.
¾ E’ possibile specificare il colore dei vari grafici:
» bode(sys1,'r',sys2,'y--',sys3,'gx')
5
Diagrammi di Bode 3
] Per ottenere modulo MAG e fase PHASE della funzione di
trasferimento di un sistema LTI SYS alla frequenza W (o in un
intervallo di frequenze, definito dal vettore W) si utilizza il
seguente comando:
» [MAG,PHASE]=bode(SYS,W);
¾ Non vengono tracciati i diagrammi.
¾ La fase è espressa in gradi.
¾ Per ottenere il modulo in dB:
» MAGdB=20*log10(MAG)
¾ La frequenza o il vettore di frequenze W è opzionale; se omesso,
modulo e fase vengono calcolati su un intervallo di frequenze e per un
numero di punti scelti automaticamente.
6
Diagramma di Nyquist 1
] Il comando nyquist traccia il diagramma di Nyquist del
sistema LTI SYS. L’intervallo di frequenze e il numero di
punti sono scelti automaticamente:
» nyquist(SYS)
] Per tracciare il diagramma di Nyquist del sistema SYS
nell’intervallo di frequenze comprese fra wmin e wmax,
si utilizza il seguente comando:
» nyquist(SYS,{wmin,wmax})
7
Diagramma di Nyquist 2
] Per tracciare il diagramma di Nyquist rispetto ad un
vettore W di frequenze (definito in precedenza) si
utilizza il seguente comando:
» nyquist(SYS,W)
¾ Per generare il vettore utilizzare il comando logspace.
] E’ possibile tracciare sullo stesso grafico i diagrammi di
Nyquist di più sistemi:
» nyquist(SYS1,SYS2,...,W)
¾ Il vettore W di frequenze è opzionale.
¾ E’ possibile specificare il colore dei vari grafici:
» nyquist(sys1,'r',sys2,'y--',sys3,'gx')
8
Diagramma di Nyquist 3
] Per ottenere la parte reale RE e la parte immaginaria IM
della funzione di trasferimento di un sistema LTI SYS di
Nyquist alla frequenza W si utilizza il seguente comando:
» [RE,IM]=nyquist(SYS,W);
¾ Non viene tracciato il diagramma.
9
Diagramma di Nichols 1
] Il comando nichols traccia il diagramma di Nichols del
sistema LTI SYS. L’intervallo di frequenze e il numero di
punti sono scelti automaticamente:
» nichols(SYS)
] Per tracciare il diagramma di Nichols del sistema SYS
nell’intervallo di frequenze comprese fra wmin e wmax,
si utilizza il seguente comando:
» nichols(SYS,{wmin,wmax})
10
Diagramma di Nichols 2
] Per tracciare il diagramma di Nichols rispetto ad un
vettore W di frequenze (definito in precedenza) si
utilizza il seguente comando:
» nichols(SYS,W)
¾ Per generare il vettore utilizzare il comando logspace.
] E’ possibile tracciare sullo stesso grafico i diagrammi di
Nichols di più sistemi:
» nichols(SYS1,SYS2,...,W)
¾ Il vettore W di frequenze è opzionale.
¾ E’ possibile specificare il colore dei vari grafici:
» nichols(sys1,'r',sys2,'y--',sys3,'gx')
11
Diagramma e carta di Nichols
] Per ottenere modulo MAG e fase PHASE della funzione
di trasferimento di un sistema LTI SYS alla frequenza W
si può utilizzare il seguente comando:
» [MAG,PHASE]=nichols(SYS,W)
¾ Non viene tracciato il grafico del diagramma.
] Per tracciare la carta di Nichols, su cui sovrapporre il
diagramma di Nichols, si utilizza il comando ngrid
» ngrid
» nichols(SYS)
¾ Utilizzando questa sequenza di comandi, il diagramma di Nichols viene
automaticamente sovrapposto alla carta di Nichols.
12
Margine di guadagno e di fase
] Il comando margin traccia il diagramma di Bode del
sistema LTI SYS, indicando il margine di guadagno ed il
margine di fase con una linea verticale:
» margin(SYS)
¾ I valori dei margini di stabilità sono riportati sopra il diagramma
insieme ai valori delle pulsazioni alle quali sono calcolati.
] I valori del margine di guadagno Gm e della relativa
pulsazione Wcg a cui viene calcolato, del margine di fase
PM e della relativa pulsazione Wcp possono essere
salvati nelle corrispondenti variabili con il comando:
» [Gm,Pm,Wcg,Wcp] = margin (SYS)
13
Discretizzazione
] Il comando c2d converte il sistema LTI a tempo continuo
SYSC in un sistema a tempo discreto SYSD con tempo di
campionamento TS:
» SYSD=c2d(SYSC,TS,METHOD)
9 METHOD è la stringa che indica il metodo di discretizzazione.
METHOD può essere:
9 ‘zoh’: con inserimento di un filtro di tenuta di ordine zero
9 ‘tustin’: approssimazione bilineare
9 ‘prewarp’: approssimazione bilineare con pre-compensazione in
frequenza
9 ‘matched’: corrispondenza zero-poli
9 ‘foh’: con inserimento di un filtro di tenuta di ordine uno
14