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 s > 0 n F( s) (ove F(s) è la funzione di trasferimento del sistema) è sufficiente applicare il comando dcgain a SYS*s n. Esempio:» s=tf( s )» F=1/(s^2*(s+2)) % sistema di tipo due» K=dcgain(s^2*F) 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) METHOD è la stringa che indica il metodo di discretizzazione. METHOD può essere: zoh : con inserimento di un filtro di tenuta di ordine zero tustin : approssimazione bilineare prewarp : approssimazione bilineare con pre-compensazione in frequenza matched : corrispondenza zero-poli foh : con inserimento di un filtro di tenuta di ordine uno 14