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