34
Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati. 1 Introduzione al MATLAB Control System Toolbox Il Control System Toolbox (CST) è un pacchetto aggiuntivo del software di calcolo MATLAB, orientato all’analisi delle prestazioni e alla progettazione dei sistemi di controllo automatico. Questa dispensa costituisce una introduzione all’utilizzo dei comandi di base del CST. In particolare, esso consente di definire modelli lineari e tempoinvarianti (LTI). Nel seguito tratteremo unicamente modelli tempocontinui, anche se il CST è in grado di trattare sistemi tempodiscreti. Per una conoscenza più approfondita del toolbox si rimanda ai manuali di riferimento del software ed a testi specifici. Un modello LTI tempocontinuo si individua nel CST tramite diverse forme possibili. Tra queste, per sistemi SISO segnaliamo la funzione di trasferimento, la rappresentazione per mezzo di zeri e poli, la rappresentazione in fratti semplici e la rappresentazione in spazio di stato. 1. Modelli in Matlab di un sistema lineare con funzioni di trasferimento Poiché il software di calcolo MATLAB è basato sull’elemento fondamentale matrice, le funzioni di trasferimento sono evidentemente definite come il rapporto di due polinomi, ossia di due vettori (e quindi due matrici con una sola riga) individuati dai coefficienti dei termini di diverso grado, rispettivamente del numeratore e del denominatore. Data per esempio la funzione di trasferimento: 6 s 11 s 6 s 6 s 3 s 5 s 2 ) s ( G 2 3 2 3 + + + + + + = , essa si definisce in MATLAB attraverso i due vettori contenenti i coefficienti del numeratore e del denominatore: » num=[2 5 3 6]; » den=[1 6 11 6]; Determiniamo nel seguito lo stesso modello prima attraverso gli zeri e poli e quindi con i fratti semplici. Le funzioni MATLAB corrispondenti sono ‘tf2zp’ e ‘residue’, così come quelle che realizzano il passaggio inverso sono ‘zp2tf’ e la stessa ‘residue’. » [z,p,k]=tf2zp(num,den) z = -2.3965 -0.0518 + 1.1177i -0.0518 - 1.1177i p =

Control System Toolbox

Embed Size (px)

Citation preview

Page 1: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

1

Introduzione al MATLAB Control System Toolbox Il Control System Toolbox (CST) è un pacchetto aggiuntivo del software di calcolo MATLAB, orientato all’analisi delle prestazioni e alla progettazione dei sistemi di controllo automatico. Questa dispensa costituisce una introduzione all’utilizzo dei comandi di base del CST. In particolare, esso consente di definire modelli lineari e tempoinvarianti (LTI). Nel seguito tratteremo unicamente modelli tempocontinui, anche se il CST è in grado di trattare sistemi tempodiscreti. Per una conoscenza più approfondita del toolbox si rimanda ai manuali di riferimento del software ed a testi specifici. Un modello LTI tempocontinuo si individua nel CST tramite diverse forme possibili. Tra queste, per sistemi SISO segnaliamo la funzione di trasferimento, la rappresentazione per mezzo di zeri e poli, la rappresentazione in fratti semplici e la rappresentazione in spazio di stato. 1. Modelli in Matlab di un sistema lineare con funzioni di trasferimento Poiché il software di calcolo MATLAB è basato sull’elemento fondamentale matrice, le funzioni di trasferimento sono evidentemente definite come il rapporto di due polinomi, ossia di due vettori (e quindi due matrici con una sola riga) individuati dai coefficienti dei termini di diverso grado, rispettivamente del numeratore e del denominatore. Data per esempio la funzione di trasferimento:

6s11s6s6s3s5s2)s(G 23

23

++++++

= ,

essa si definisce in MATLAB attraverso i due vettori contenenti i coefficienti del numeratore e del denominatore: » num=[2 5 3 6]; » den=[1 6 11 6]; Determiniamo nel seguito lo stesso modello prima attraverso gli zeri e poli e quindi con i fratti semplici. Le funzioni MATLAB corrispondenti sono ‘tf2zp’ e ‘residue’, così come quelle che realizzano il passaggio inverso sono ‘zp2tf’ e la stessa ‘residue’. » [z,p,k]=tf2zp(num,den) z = -2.3965 -0.0518 + 1.1177i -0.0518 - 1.1177i p =

Page 2: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

2

-3.0000 -2.0000 -1.0000 k = 2 » [R,P,K]=residue(num,den) R = -6.0000 -4.0000 3.0000 P = -3.0000 -2.0000 -1.0000 K = 2 In pratica, la funzione ‘residue’ restituisce nel vettore R i residui, nel vettore P i corrispondenti poli, e nel guadagno K il quoziente della divisione tra numeratore e denominatore, che come è noto è non nullo, quando la funzione di trasferimento è non strettamente propria (numeratore e denominatore hanno lo stesso grado se la funzione di trasferimento è propria). Quindi la funzione di trasferimento in esame vale in definitiva:

2( 2.3965)( 0.0518 1.1177 )( 0.0518 1.1177 ) 6 4 3( ) 2( 1)( 2)( 3) 3 2 1

s s j s jG ss s s s s s

+ + − + + − −= = + + +

+ + + + + +.

Antitrasformando secondo Laplace si calcola dunque la risposta all’impulso del sistema, che vale

)t(2)t(1)e3e4e6()t(g tt2t3 δ++−−= −−− . Un possibile modo per visualizzare graficamente tale risposta (a meno del termine impulsivo, che è nullo dopo l’istante t=0) consiste quindi nell’uso della funzione ‘residue’ e della funzione ‘plot’ (figura 1). » t=0:0.1:10; » g=R(1,1)*exp(P(1,1)*t)+R(2,1)*exp(P(2,1)*t)+R(3,1)*exp(P(3,1)*t) » plot(t,g), grid, title(‘Risposta all’’impulso’)

Page 3: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

3

In realtà, esiste una opportuna funzione MATLAB del Control System Toolbox, detta ‘impulse’, che assolve al compito di calcolare e visualizzare la risposta all’impulso di un sistema, nota la sua funzione di trasferimento. Ne vediamo l’uso nel paragrafo successivo di questa dispensa.

La funzione di trasferimento del sistema si può anche rappresentare visivamente con la procedura ‘printsys’. » printsys(num,den,'s') num/den = 2 s^3 + 5 s^2 + 3 s + 6 ----------------------- s^3 + 6 s^2 + 11 s + 6 Un’altra procedura utile è ‘pzmap’, che mappa nel piano di Gauss gli zeri (o) e i poli (x) del sistema, come in figura 2. » pzmap(num,den) » axis([-4 0.5 -2 2]) » grid » title('Mappa poli-zeri del sistema')

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

-6

-5

-4

-3

-2

-1

0

1Risposta all'impulso

Figura 1. Risposta all’impulso del sistema.

Page 4: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

4

2. Analisi in Matlab della risposta nel tempo di sistemi del primo ordine o con una costante di tempo dominante Prendiamo in considerazione quattro diverse funzioni di trasferimento e analizziamone le corrispondenti risposte all’impulso e al gradino, rispettivamente attraverso le funzioni del CST ‘impulse’ e ‘step’. Definiamo prima una funzione di trasferimento G1(s) del primo ordine priva di zeri come segue. » num1=[1]; » den1=[1 1]; » printsys(num1,den1,'s') num/den = 1 ----- s + 1 Aggiungiamo ora un polo reale in –10, lontano da quello in –1, definendo una nuova funzione di trasferimento G2(s) del secondo ordine priva di zeri come segue. » num2=[10]; » den2=[1 11 10]; » printsys(num2,den2,'s')

-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Real Axis

Imag

Axi

s

Mappa poli-zeri del sistema

Figura 2. Uso della procedura ‘pzmap’.

Page 5: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

5

num/den = 10 --------------- s^2 + 11 s + 10 Vediamo cosa accade aggiungendo uno zero invece che un polo, ottenendo G3(s). » num3=[10 1]; » den3=[1 1]; » printsys(num3,den3,'s') num/den = 10 s + 1 -------- s + 1 Infine, spostiamo il polo da –1 a –5, definendo così G4(s). » num4=[5]; » den4=[1 5]; » printsys(num4,den4,'s') num/den = 5 ----- s + 5 Tracciamo ora tutte le risposte all’impulso corrispondenti alle funzioni di trasferimento precedentemente definite in un unico grafico (figura 3). » impulse(num1,den1), hold on, impulse (num2,den2) » impulse (num3,den3), impulse(num4,den4) » title(‘Risposte all’’impulso’)

Page 6: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

6

Si vede dalla figura 3 come le risposte all’impulso dei primi due sistemi siano quasi coincidenti, poiché G2(s) ha infatti in più rispetto a G1(s) un polo dominato in –10, a parte il valore iniziale differente. Nel terzo sistema G3(s) cambia il valore iniziale della risposta all’impulso a causa della presenza dello zero, inoltre il residuo aumenta notevolmente, passando da 1 a -9, per cui la risposta si appiattisce più lentamente. Infine, nel quarto sistema G4(s) la risposta all’impulso è più rapida, poiché il polo dominante è spostato da –1 a –5. Verifichiamolo calcolando i coefficienti dello sviluppo in fratti semplici delle funzioni di trasferimento. >> [r1,p1,k1]=residue(num1,den1) r1 = 1 p1 = -1 k1 = []

Time (sec.)

Am

plitu

de

Risposte all'impulso

0 1 2 3 4 5 6-10

-5

0

5From: U(1)

To:

Y(1

)

Figura 3. Confronto delle risposte all’impulso dei sistemi.

Page 7: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

7

>> [r2,p2,k2]=residue(num2,den2) r2 = -1.1111 1.1111 p2 = -10 -1 k2 = [] » [r3,p3,k3]=residue(num3,den3) r3 = -9 p3 = -1 k3 = 10 >> [r4,p4,k4]=residue(num4,den4) r4 = 5 p4 = -5 k4 = [] Analogamente si possono confrontare le risposte a gradino dei sistemi (figura 4).

Page 8: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

8

» step(num1,den1), hold on » step (num2,den2) » step (num3,den3) » step(num4,den4) » title(‘Risposte al gradino’) Si nota ancora che le risposte al gradino dei primi due sistemi sono quasi coincidenti. Nel terzo sistema cambia il valore iniziale della risposta al gradino a causa della presenza dello zero; inoltre il residuo aumenta notevolmente, passando da -1 a 9, per cui la risposta si appiattisce più lentamente rispetto al primo sistema. Infine, nel quarto sistema la risposta al gradino è più rapida di quella del primo sistema, poiché il polo dominante è posizionato non più in –1 ma in –5. Verifichiamolo calcolando i coefficienti dello sviluppo in fratti semplici della trasformata di Laplace della riposta al gradino, ottenuta dividendo per s la generica funzione di trasferimento. » [R11,P11,K11]=residue(num1,conv(den1,[1 0])) R11 = -1 1 P11 =

Time (sec.)

Am

plitu

de

Risposte al gradino

0 1 2 3 4 5 60

1

2

3

4

5

6

7

8

9

10From: U(1)

To:

Y(1

)

Figura 4. Confronto delle risposte al gradino dei sistemi.

Page 9: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

9

-1 0 K11 = [] » [R31,P31,K31]=residue(num3,conv(den3,[1 0])) R31 = 9 1 P31 = -1 0 K31 = [] Osservando le risposte al gradino in figura 4, per esempio utilizzando il bottone ‘zoom’ posto in alto al centro della finestra che riporta la figura delle risposte al gradino in modo da osservare delle zone circoscritte, si può determinare il tempo di assestamento del sistema, e verificare che dopo tre o quattro costanti di tempo le risposte si assestano. Vediamo ora come si può usare la stessa funzione ‘step’ per determinare la risposta alla rampa lineare (ed eventualmente per segnali canonici di ordine superiore). La trasformata di Laplace della risposta alla rampa vale infatti

s1)s(G

s1

s)s(G

s1)s(G)s(Y *2 ⋅=⋅==

dunque la risposta alla rampa è anche determinabile come risposta al gradino del sistema con funzione di trasferimento G*(s) definita come segue. Vediamo per esempio la risposta alla rampa del primo sistema (figura 5). » numstar1=num1; » denstar1=conv(den1,[1 0]); » step(numstar1,denstar1) » title(‘Risposta alla rampa’)

Page 10: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

10

Calcoliamo ora per esercizio i coefficienti dello sviluppo in fratti semplici della seconda funzione di trasferimento utilizzando la funzione ‘residue’ e confrontiamo (figura 6) la risposta all’impulso ottenuta con il comando ‘impulse’ con quella calcolata attraverso i residui. >> [r2,p2,k2]=residue(num2,den2) r2 = -1.1111 1.1111 p2 = -10 -1 k2 = [] » t=0:0.1:10; » g2=r2(1)*exp(p2(1)*t)+r2(2)*exp(p2(2)*t); » impulse(num2,den2,’b’),hold on, plot(t,g2,’r’)

Time (sec.)

Am

plitu

de

Risposta alla rampa

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

9

10From: U(1)

To:

Y(1

)

Figura 5. Risposta alla rampa di un sistema del primo ordine.

Page 11: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

11

Impulse Response

Time (sec)

Am

plitu

de

0 1 2 3 4 5 60

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

La figura 6 mostra come la risposta all’impulso ottenuta con il comando ‘impulse’ e quella calcolata con il comando ‘residue’ sono identiche. In altre parole si ha:

2 210 1.1111 1.1111G (s)

s 10 s 1s 11s 10−

= = ++ ++ +

e quindi la risposta all’impulso vale:

( )10t t2g (t) 1.1111e 1.1111e 1(t)− −= − + .

Vediamo ora come calcolare con la funzione ‘residue’ la risposta a un generico segnale di cui è nota la trasformata di Laplace, ad esempio ad un segnale sinusoidale del tipo:

x(t) sin(t)= ossia 21X(s)

s 1=

+.

È sufficiente definire una funzione di trasferimento fittizia che rappresenta la trasformata di Laplace del segnale: Y(s) G(s) X(s)= ⋅ attraverso il comando ‘conv’. Con la funzione ‘residue’ e quindi con il comando ‘plot’ è così possibile determinare la risposta a detto segnale del sistema considerato (figura 7). >> n=[1];

Figura 6. Confronto della risposta all’impulso ottenuta con il comando ‘impulse’ e della risposta all’impulso calcolata con il comando ‘residue’.

Page 12: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

12

>> d=[1 0 1] d = 1 0 1 >> num=conv(num2,n); >> den=conv(den2,d); >> [r,p,k]=residue(num,den) r = -0.0110 0.5556 -0.2723 - 0.2228i -0.2723 + 0.2228i p = -10.0000 -1.0000 0.0000 + 1.0000i 0.0000 - 1.0000i k = [] >> t=0:0.1:10; >> x=sin(t); >> y=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t)+r(4)*exp(p(4)*t); >> plot(t,y),hold on, plot(t,x,'r')

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

Figura 7. Risposta ad un segnale sinusoidale calcolata con il comando ‘residue’.

Page 13: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

13

3. Analisi in Matlab della risposta nel tempo di sistemi del secondo ordine Nel paragrafo precedente abbiamo analizzato sistemi con un solo polo dominante, quindi del primo ordine (gli eventuali poli lontani sono trascurabili, per cui l’ordine del sistema è pari o approssimabile all’unità). Prendiamo ora in considerazione quattro diverse funzioni di trasferimento, G1(s), G2(s), G3(s) e G4(s), tutte del secondo ordine con poli complessi e coniugati, e analizziamone le corrispondenti risposte al gradino. » num1=[10]; » den1=[1 2 10]; » printsys(num1,den1,'s') num/den = 10 -------------- s^2 + 2 s + 10 » num2=26; » den2=[1 2 26]; » printsys(num2,den2,'s') num/den = 26 -------------- s^2 + 2 s + 26 » num3=[25]; » den3=[1 8 25]; » printsys(num3,den3,'s') num/den = 25 -------------- s^2 + 8 s + 25 » num4=[5 10]; » den4=[1 2 10]; » printsys(num4,den4,'s') num/den =

Page 14: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

14

5 s + 10 -------------- s^2 + 2 s + 10 Per ogni coppia di poli determiniamo il coefficiente di smorzamento e la pulsazione naturale per mezzo della funzione ‘damp’. » damp(den1) Eigenvalue Damping Freq. (rad/s) -1.00e+000 + 3.00e+000i 3.16e-001 3.16e+000 -1.00e+000 - 3.00e+000i 3.16e-001 3.16e+000 » damp(den2) Eigenvalue Damping Freq. (rad/s) -1.00e+000 + 5.00e+000i 1.96e-001 5.10e+000 -1.00e+000 - 5.00e+000i 1.96e-001 5.10e+000 » damp(den3) Eigenvalue Damping Freq. (rad/s) -4.00e+000 + 3.00e+000i 8.00e-001 5.00e+000 -4.00e+000 - 3.00e+000i 8.00e-001 5.00e+000 » damp(den4) Eigenvalue Damping Freq. (rad/s) -1.00e+000 + 3.00e+000i 3.16e-001 3.16e+000 -1.00e+000 - 3.00e+000i 3.16e-001 3.16e+000 Vediamo ora come valutare la risposta al gradino scegliendo il vettore dei tempi e nel contempo memorizzando quello delle ordinate (figura 8). » t=0:0.01:6; » y1=step(num1,den1,t); » y2=step(num2,den2,t); » y3=step(num3,den3,t); » y4=step(num4,den4,t); » plot(t,y1,'-',t,y2,'-.',t,y3,'--',t,y4,':'),grid » legend('Sistema 1','Sistema 2','Sistema 3','Sistema 4') » title('Risposte al gradino')

Page 15: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

15

Rispetto al primo sistema, nel secondo i poli hanno uguale parte reale ma parte immaginaria più grande, dunque l’inviluppo non varia (e il tempo di assestamento è confrontabile), mentre la tendenza ad oscillare aumenta, ossia i picchi della risposta sono ravvicinati. Nel terzo sistema, viceversa, la parte immaginaria è invariata e la parte reale è maggiore, dunque l’inviluppo è più veloce (quindi il tempo di assestamento è più piccolo) e la tendenza ad oscillare è uguale, ossia i picchi si ripetono alla stessa distanza. Infine, nel quarto sistema è stato aggiunto uno zero, che lascia invariato l’andamento della risposta ma ne cambia i residui, amplificandoli. Visualizziamo ora gli istanti di entrata nella banda di assestamento al 5%, ossia i tempi di assestamento al 5% dei quattro sistemi. » hold on » yf1=y1(length(y1)); » yb1=(yf1+yf1*0.05)*ones(size(y1)); » yb2=(yf1-yf1*0.05)*ones(size(y1)); » plot(t1,yb1,'m-',t1,yb2,'m-') Utilizzando il bottone di zoom si determinano graficamente dei tempi di assestamento per i quattro sistemi che valgono, nell’ordine, circa 2.5, 2.7, 0.7, 3.7 secondi. Si tratta in tutti i casi di misure coerenti con la formula ricavata approssimando la risposta al gradino con il suo inviluppo esponenziale:

0 1 2 3 4 5 60

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2Risposte al gradino

Sistema 1Sistema 2Sistema 3Sistema 4

Figura 8. Risposte al gradino per sistemi del secondo ordine.

Page 16: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

16

n%5s

3tδω

dove δ e ωn sono rispettivamente il coefficiente di smorzamento e la pulsazione naturale della coppia di poli complessi e coniugati. Avendo memorizzato i valori delle ordinate yi, si può calcolare per ogni sistema la sovraelongazione percentuale. » Mp1=(max(y1)-y1(length(y1)))/(y1(length(y1))-y1(1))*100 Mp1 = 35.2280 » Mp2=(max(y2)-y2(length(y2)))/(y2(length(y2))-y2(1))*100 Mp2 = 53.3304 » Mp3=(max(y3)-y3(length(y3)))/(y3(length(y3))-y3(1))*100 Mp3 = 1.5163 » Mp4=(max(y4)-y4(length(y4)))/(y4(length(y4))-y4(1))*100 Mp4 = 84.9000 Osserviamo infine cosa accade quando un sistema, ad esempio del secondo ordine, presenta oltre ai poli uno (o più) zeri. Definiamo due sistemi, entrambi con lo stesso denominatore del primo sistema, aventi il primo uno zero nel semipiano sinistro e l’altro uno zero nel semipiano destro. >> num5=[10 10]; >> den5=[1 2 10]; >> printsys(num5,den5,'s') num/den = 10 s + 10 -------------- s^2 + 2 s + 10 >> [z,p,k]=tf2zp(num5,den5)

Page 17: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

17

z = -1 p = -1.0000 + 3.0000i -1.0000 - 3.0000i k = 10 >> num6=[-10 10]; >> den6=[1 2 10]; >> printsys(num6,den6,'s') num/den = -10 s + 10 -------------- s^2 + 2 s + 10 >> [z,p,k]=tf2zp(num6,den6) z = 1 p = -1.0000 + 3.0000i -1.0000 - 3.0000i k = -10 Visualizziamo ora le rispettive risposte al gradino (figura 9) con i seguenti comandi. >> step(num1,den1) >> hold on >> step(num5,den5),step(num6,den6) >> legend('Sistema senza zeri','Sistema con zero a fase minima','Sistema con zero a fase non minima')

Page 18: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

18

Step Response

Time (sec)

Am

plitu

de

0 1 2 3 4 5 6-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

3Sistema senza zeriSistema con zero a fase minimaSistema con zero a fase non minima

Figura 9. Confronto di risposte al gradino di sistemi del secondo ordine con e senza zeri.

Come si vede dalla figura 9, e come è noto dalla teoria, la presenza degli zeri non cambia la forma della risposta al gradino, infatti i modi del sistema sono invariati, mentre cambia il valore di coefficienti dei fratti semplici. Inoltre la presenza di uno zero a fase minima rende il valore della derivata prima della risposta al gradino nell’origine positiva (e precisamente, per un sistema del secondo ordine, pari a τωn

2, dove τ è la costante di tempo dello zero e ωn è la pulsazione naturale dei poli), mentre la presenza di uno zero a fase non minima rende il valore della derivata prima della risposta al gradino nell’origine negativa (ancora pari a τωn

2). In questo caso ωn=3.16 e τ=+1 nel primo caso e τ=-1 nel secondo, quindi le derivate valgono ±3.16. È noto invece che in assenza di zeri la tangente nell’origine alla risposta al gradino è orizzontale. 4. Richiami sulla rappresentazione dei sistemi SISO LTI in forma di stato Nel seguito rivediamo alcune note teoriche sulla rappresentazione dei sistemi SISO in forma di stato. Un generico sistema dinamico SISO (Single Input – Single Output) lineari e tempoinvarianti di ordine n (ossia con equazione differenziale di grado n, ingresso u e uscita y)

n n 1 m m 1n n 1 1 0 m m 1 1 0n n 1 m m 1

d y d y dy d u d u dua a ... a a y b b ... b b udt dtdt dt dt dt

− −

− −− −+ + + + = + + + +

Page 19: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

19

può essere rappresentati oltre che in forma di funzione di trasferimento (avente n poli) anche in forma di stato, nella seguente forma:

( ) 0x Ax Bu, x 0 xy Cx Du= + =

= +

dove ( ) nx t R∈ è chiamato il vettore di stato o lo stato del sistema, x(0) è chiamata la condizione

iniziale del sistema, ( )u t R∈ è chiamato l’ingresso del sistema, e ( )y t R∈ è l’uscita del sistema. Le quattro matrici A, B, C e D sono costanti, reali, di dimensioni opportune. Sfruttando il dominio di Laplace possiamo determinare la corrispondente matrice di trasferimento da u a y come segue:

sIX(s) AX(s) BU(s)Y(s) CX(s) DU(s)

= += +

dove U(s) e Y(s) sono le trasformate di Laplace di u(t) e di y(t) con condizione iniziale nulla, cioè x(0)=0. Raccogliendo otteniamo

(sI A)X(s) BU(s)Y(s) CX(s) DU(s)

− == +

1X(s) (sI A) BU(s)

Y(s) CX(s) DU(s)

−= −= +

e sostituendo nell’equazione di uscita

( )1Y(s) C(sI A) B D U(s)−= − +

ricaviamo l’espressione della funzione di trasferimento

1G(s) C(sI A) B D−= − + . Lo stesso sistema lineare può essere scritto in una forma matriciale più compatta:

x A B x=

y C D u⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

.

Page 20: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

20

Diversi sono i metodi per determinare il modello in forma di stato di un sistema SISO a partire dalla equazione differenziale del sistema:

n n 1 n n 1n 1 1 0 n n 1 1 0n n 1 n n 1

d y d y dy d u d u dua ... a a y b b ... b b udt dtdt dt dt dt

− −

− −− −+ + + + = + + + +

o, equivalentemente, dalla sua funzione di trasferimento:

n n 1n n 1 1 0n n 1

n 1 1 0

b s b s ... b s bG(s)s a s ... a s a

−−

−−

+ + + +=

+ + + +

dove si è assunto, senza perdere di generalità, che la funzione di trasferimento abbia un numero di zeri e poli uguali (se così non fosse, un certo numero dei primi monomi a numeratore nella funzione di trasferimento sarebbe nullo) e che an=1 (se così non fosse, basterebbe determinare dei nuovi coefficienti ai e bi semplicemente effettuando la divisione per an nella equazione differenziale e nella funzione di trasferimento). Vediamo nel seguito la determinazione della forma di stato di un sistema SISO a partire dalla sua equazione differenziale (realizzazione) utilizzando la cosiddetta forma canonica di osservazione. Trasformando secondo Laplace con condizioni iniziali nulle l’equazione differenziale che rappresenta il sistema si ha:

n n 1n 1 1 0

n n 1n n 1 1 0

s Y(s) a s Y(s) ... a sY(s) a Y(s)

b s U(s) b s U(s) ... b sU(s) b U(s)

−−

−−

+ + + + =

= + + + +

ossia

( )( ) ( )

n n n 1 n 1n n 1 n 1

1 1 0 0

s Y(s) b s U(s) b s U(s) a s Y(s)

... b sU(s) a sY(s) b U(s) a Y(s)

− −− −= + − +

+ + − + −

da cui

( ) ( )

( ) ( )

n n 1 n 1 n 2 n 22

1 1 0 0n 1 n

1 1Y(s) b U(s) b U(s) a Y(s) b U(s) a Y(s)s s

1 1... b U(s) a Y(s) b U(s) a Y(s)s s

− − − −

= + − + − +

+ + − + −

che può essere riscritta nella forma

Page 21: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

21

( )

n 2 n 2

n n 1 n 11 1 0 0

b U(s) a Y(s) ...1 1Y(s) b U(s) b U(s) a Y(s) 1 1b U(s) a Y(s) b U(s) a Y(s) ...s s

s s

− −

− −

− + +⎛ ⎞⎛ ⎞⎜ ⎟⎜ ⎟= + − + ⎛ ⎞⎜ ⎟⎜ ⎟+ − + −⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠⎝ ⎠⎝ ⎠

In base a tale espressione, con la scelta:

1 0 0

2 1 1 1

n 1 n 2 n 2 n 2

n n 1 n 1 n 1

sX (s) b U(s) a Y(s)sX (s) b U(s) a Y(s) X (s)...sX (s) b U(s) a Y(s) X (s)sX (s) b U(s) a Y(s) X (s)

− − − −

− − −

= −= − +

= − += − +

sostituendo tali equazioni nella precedente si ottiene dopo una serie di semplificazioni:

n nY(s) b U(s) X (s)= + e utilizzando tale relazione nelle n precedenti le equazioni che rappresentano il sistema diventano le seguenti:

1 0 0 n 0 n

2 1 1 n 1 n 1

n 1 n 2 n 2 n n 2 n n 2

n n 1 n 1 n n 1 n n 1

sX (s) b U(s) a b U(s) a X (s)sX (s) b U(s) a b U(s) a X (s) X (s)...sX (s) b U(s) a b U(s) a X (s) X (s)sX (s) b U(s) a b U(s) a X (s) X (s)

− − − − −

− − − −

= − −= − − +

= − − += − − +

.

Riordinando si ha:

( )( )

( )( )

1 0 n 0 0 n

2 1 1 n 1 1 n

n 1 n 2 n 2 n n 2 n 2 n

n n 1 n 1 n n 1 n 1 n

sX (s) a X (s) b a b U(s)

sX (s) X (s) a X (s) b a b U(s)...sX (s) X (s) a X (s) b a b U(s)

sX (s) X (s) a X (s) b a b U(s)− − − − −

− − − −

= − + −

= − + −

= − + −

= − + −

o anche

Page 22: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

22

1 1n n 1

2 21 1 2n n 2

n 1 n 1n 2 n 2 n 1n n n 1

n nn 1 n 1 nn n n

sX (s) A X (s) B U(s)sX (s) A X (s) A X (s) B U(s)...sX (s) A X (s) A X (s) B U(s)sX (s) A X (s) A X (s) B U(s)

− − − − − −

− −

= += + +

= + += + +

.

Antitrasformiamo ora secondo Laplace le precedenti n equazioni con condizioni iniziali nulle:

1 1n n 1

2 21 1 2n n 2

n 1 n 1n 2 n 2 n 1n n n 1

n nn 1 n 1 nn n n

x A x B ux A x A x B u...x A x A x B ux A x A x B u

− − − − − −

− −

= += + +

= + += + +

ossia

1 1

2 2

n 1 n 1

n n

x xx x... A ... Bux xx x

− −

⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= +⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦

con

1n 0

21 2n 1

n 1n 2 n 1n n 2

nn 1 nn n 1

0 0 ... 0 0 A 0 0 ... 0 0 aA 0 ... 0 0 A 1 0 ... 0 0 a

A ... ... ... ... ... ... ... ... ... ... ... ...0 0 ... A 0 A 0 0 ... 1 0 a0 0 ... 0 A A 0 0 ... 0 1 a

− − − −

− −

−⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= =⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥−⎣ ⎦ ⎣ ⎦

,

1 0 0 n

2 1 1 n

n 1 n 2 n 2 n

n n 1 n 1 n

B b a bB b a b

B ... ...B b a bB b a b− − −

− −

−⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= =⎢ ⎥ ⎢ ⎥−⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥−⎣ ⎦ ⎣ ⎦

.

Page 23: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

23

Inoltre, antitrasformando l’equazione

n nY(s) b U(s) X (s)= + si ha

n ny x b u= + ovvero

ny Cx Du= + con

[ ]C 0 0 ... 0 0 1= , [ ]nD b= . 5. Modelli in Matlab di un sistema SISO LTI in forma di stato In definitiva un sistema dinamico (SISO) lineare tempoinvariante può essere descritto in forma di variabili di stato mediante quattro matrici A,B,C,D, o in forma di funzione di trasferimento, mediante i due polinomi a numeratore e denominatore. In Matlab è possibile definire tali sistemi a partire da entrambe le rappresentazioni tramite oggetti. In particolare, è possibile definire il sistema in forma di stato attraverso le quattro matrici A,B,C,D o con la funzione ‘ss’ e quindi passare alla rappresentazione in forma di funzione di trasferimento con la funzione ‘ss2tf’ o con la funzione ‘tf’. Analogamente, è possibile definire il sistema in forma di stato attraverso il numeratore n(s) e il denominatore d(s) della funzione di trasferimento o con la funzione ‘tf’ e quindi passare alla rappresentazione in forma di funzione di trasferimento con la funzione ‘tf2ss’ o con la funzione ‘ss’. Consideriamo ora il sistema meccanico rappresentato in figura 10, dove l’ingresso u=F è una forza cui la massa M=1/3 kg è sottoposta, l’uscita y=s è la velocità del sistema e B=1/3 N m-1 s è il coefficiente di attrito. Evidentemente si ha:

Ms(t) Bs(t) F(t)+ = da cui, scegliendo come variabile di stato la velocità, ossia ponendo x(t)=s (t), ricordando che U=F e sostituendo i valori di M e B, si ottiene

1 1x x u3 3

+ =

F(t) M

B

s (t) s(t)

Figura 10. Esempio di

sistema meccanico.

Page 24: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

24

ossia

x x 3u= − + . La precedente equazione costituisce l’equazione di stato del sistema, e accoppiata con l’equazione di uscita

y=x in cui si sceglie di studiare come uscita del sistema proprio la velocità, fornisce il seguente sistema SISO LTI con ingresso u, uscita y e stato x del primo ordine rappresentato in forma di stato

x x 3uy x= − +=

.

Rappresentiamo ora il sistema in forma di stato in Matlab, utilizzando la notazione sistemistica introdotta a partire dalla versione 5 del Matlab. >> A=-1; >> B=3; >> C=1; >> D=0; >> sistema1=ss(A,B,C,D) a = x1 x1 -1 b = u1 x1 3 c = x1 y1 1 d = u1 y1 0 Continuous-time model. >> [num,den]=ss2tf(A,B,C,D) num = 0 3 den = 1 1 >> [n,d]=tfdata(sistema1,'v') n = 0 3

Page 25: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

25

d = 1 1 Infine, si possono riottenere le quattro matrici che definiscono il sistema (l’oggetto chiamato ‘sistema1’) come segue con il comando ‘ssdata’. >> [A,B,C,D]=ssdata(sistema1) A = -1 B = 3 C = 1 D = 0

Consideriamo ora il sistema elettrico rappresentato in figura 11, dove l’ingresso u=vi è un segnale in tensione. Sia poi R1=0.5 Ω, R2=0.25 Ω, L=0.25 H e C=0.25 F. Si scelga come uscita y=v0 la tensione ai capi della serie R2C. Evidentemente si ha, per la regola del partitore scritta nel dominio della trasformata di Laplace, il sistema SISO LTI con ingresso u e uscita y del secondo ordine rappresentato in forma di funzione di trasferimento come segue :

2o2i 1 2

1 4 1RY(s) V (s) s 16sC s 4G(s) 1 1 1 4 1U(s) V (s) s 3s 16R sL R ssC 2 4 s 4

+ + += = = = =

+ ++ + + + + +.

Rappresentiamo ora in Matlab tale sistema.

R1

C u(t)=vi(t) + _

i(t)

R2

y(t)=vo(t)

L

Figura 11. Esempio di sistema elettrico.

Page 26: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

26

>> num=[1 16] num = 1 16 >> den=[1 3 16] den = 1 3 16 >> sistema2=tf(num,den) Transfer function: s + 16 -------------- s^2 + 3 s + 16 >> [A1,B1,C1,D1]=tf2ss(num,den) A1 = -3 -16 1 0 B1 = 1 0 C1 = 1 16 D1 = 0 >> [A2,B2,C2,D2]=ssdata(sistema2) A2 = -3 -4 4 0 B2 = 2 0 C2 = 0.5000 2.0000 D2 = 0 Si osservi come i comandi ‘tf2ss’ e ‘ssdata’ non forniscano gli stessi risultati, poiché basati su algoritmi diversi: è noto infatti che ad una stessa funzione di trasferimento corrispondono infinite rappresentazioni in forma di stato, a seconda appunto della scelta del vettore di stato.

Page 27: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

27

Infine, si possono riottenere i due vettori che definiscono il sistema (l’oggetto chiamato ‘sistema2’) come segue con il comando ‘tfdata’. >> [n,d]=tfdata(sistema2,'v') n = 0 1 16 d = 1 3 16 Utilizzando un oggetto del tipo sistema è possibile comunque determinare con le funzioni ‘impulse’ e ‘step’ la risposta all’impulso e a gradino di un sistema (figure 12 e 13). >> t1=0:0.1:10; >> t2=0:0.01:4; >> figure(1),impulse(sistema1,t1) >> figure(2),step(sistema2,t2)

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5

2

2.5

3Impulse Response

Time (sec)

Am

plitu

de

Step Response

Time (sec)

Am

plitu

de

0 0.5 1 1.5 2 2.5 3 3.5 40

0.2

0.4

0.6

0.8

1

1.2

1.4

Per studiare la risposta di un generico sistema SISO lineare tempo invariante (ossia la soluzione di una generica equazione differenziale lineare a coefficienti costanti) è comunque possibile usare i comandi ‘linsim’ (figure 14, 15 e 16) e ‘initial’, rispettivamente per determinare e/o rappresentare la risposta forzata e quella libera (figure 17 e 18). Insieme a tali comandi è possibile usare la funzione ‘gensig’, che genera alcuni tra i segnali più usati. >> [u1,t1]=gensig('sin',2*pi); >> lsim(sistema1,u1,t1,0) >> hold on >> plot(t1,u1,'r') >> grid

Figura 12. Uso della funzione ‘impulse’

con un oggetto del tipo sistema.

Figura 13. Uso della funzione ‘step’

con un oggetto del tipo sistema.

Page 28: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

28

0 5 10 15 20 25 30 35

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5Linear Simulation Results

Time (sec)

Am

plitu

de

>> [u2,t2]=gensig('square',1,10); >> figure(2),lsim(sistema2,u2,t2),hold on,plot(t2,u2,'r'),grid

Linear Simulation Results

Time (sec)

Am

plitu

de

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

0.2

0.4

0.6

0.8

1

1.2

1.4

>> t3=0:0.1:5; >> u3=ones(size(t3)); >> figure(3),lsim(sistema1,u3,t3,0.1),hold on >> plot(t3,u3,'r'),grid

Figura 15. Uso delle funzioni ‘lsim’ e gensig (ingresso a onda quadra).

Figura 14. Uso delle funzioni ‘lsim’ e gensig (ingresso sinusoidale).

Page 29: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

29

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

0

0.5

1

1.5

2

2.5

3Linear Simulation Results

Time (sec)

Am

plitu

de

Come si vede, solo nel caso in cui il sistema sia definito in forma di stato è possibile calcolare la risposta a un ingresso con stato iniziale non nullo. Il calcolo della semplice risposta libera (ossia a ingresso nullo) si può anche determinare usando il comando ‘initial’ o, equivalentemente, con il comando lsim avente e ingresso nullo. >> figure(4),initial(sistema1,0.1,t3),grid

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

0

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1Response to Initial Conditions

Time (sec)

Am

plitu

de

>> figure(5),initial(sistema1,0.1,t3),grid >> [Y,T,X] = lsim(sistema1,zeros(size(t3)),t3,0.1); >> hold on >> plot(t3,Y,'.k')

Figura 16. Uso della funzione ‘lsim’ con condizione iniziale.

Figura 17. Uso della funzione ‘initial’.

Page 30: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

30

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1Response to Initial Conditions

Time (sec)

Am

plitu

de

6. Interfacce grafiche per lo studio di sistemi dinamici LTI incluse nelle recenti versioni del Matlab Control System Toolbox A partire dalla versione 6 del Matlab è disponibile un tool grafico detto ‘ltiviewer’ che si richiama con la funzione ‘ltiview’. Questo consente di analizzare (ma non salvare) graficamente le più importanti caratteristiche di un sistema di controllo definito come oggetto sistema, quali la risposta al gradino, la risposta all’impulso, i diagrammi di Bode ecc. >> help ltiview LTIVIEW Opens the LTI Viewer GUI. LTIVIEW opens an empty LTI Viewer. The LTI Viewer is an interactive graphical user interface (GUI) for analyzing the time and frequency responses of linear systems and comparing such systems. See LTIMODELS for details on how to model linear systems in the Control System Toolbox. LTIVIEW(SYS1,SYS2,...,SYSN) opens an LTI Viewer containing the step response of the LTI models SYS1,SYS2,...,SYSN. You can specify a distinctive color, line style, and marker for each system, as in sys1 = rss(3,2,2); sys2 = rss(4,2,2); ltiview(sys1,'r-*',sys2,'m--'); LTIVIEW(PLOTTYPE,SYS1,SYS2,...,SYSN) further specifies which responses to plot in the LTI Viewer. PLOTTYPE may be any of the following strings (or a combination thereof): 1) 'step' Step response 2) 'impulse' Impulse response

Figura 18. Confronto delle funzioni ‘initial’ e ‘lsim’ per il calcolo della risposta libera.

Page 31: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

31

3) 'bode' Bode diagram 4) 'bodemag' Bode Magnitude diagram 5) 'nyquist' Nyquist plot 6) 'nichols' Nichols plot 7) 'sigma' Singular value plot 8) 'pzmap' Pole/Zero map 9) 'iopzmap' I/O Pole/Zero map For example, ltiview('step';'bode',sys1,sys2) opens an LTI Viewer showing the step and Bode responses of the LTI models SYS1 and SYS2. LTIVIEW(PLOTTYPE,SYS,EXTRAS) allows you to specify the additional input arguments supported by the various response types. See the HELP text for each response type for more details on the format of these extra arguments. You can also use this syntax to plot the output of LSIM or INITIAL in the LTI Viewer, as in ltiview('lsim',sys1,sys2,u,t,x0) Two additional options are available for manipulating previously opened LTI Viewers: LTIVIEW('clear',VIEWERS) clears the plots and data from the LTI Viewers with handles VIEWERS. LTIVIEW('current',SYS1,SYS2,...,SYSN,VIEWERS) adds the responses of the systems SYS1,SYS2,... to the LTI Viewers with handles VIEWERS. Ad esempio, nel caso del sistema1 l’utilizzo dell’ltiviewer, anche senza opzioni, fornisce per default la risposta al gradino del sistema (figura 19). >> ltiview(sistema1)

Page 32: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

32

Con il tasto destro è possibile selezionare altre caratteristiche, ad esempio la mappa poli zeri del sistema (figura 20).

Figura 19. Risposta al gradino con ltiviewer di un oggetto del tipo sistema.

Figura 20. Mappa poli zeri con ltiviewer di un oggetto del tipo sistema.

Page 33: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

33

Infine, sempre dalla versione 6 del Matlab è disponibile una ulteriore interfaccia grafica per l’analisi dei sistemi di controllo in anello chiuso SISO LTI, detta ‘sisotool’. >> help sisotool SISOTOOL SISO Design Tool. SISOTOOL opens the SISO Design Tool. This Graphical User Interface allows you to design single-input/single-output (SISO) compensators by interacting with the root locus, Bode, and Nichols plots of the open-loop system. To import the plant data into the SISO Tool, select the Import item from the File menu. By default, the loop configuration is r -->[ F ]-->O--->[ C ]--->[ G ]----+---> y - | | +-------[ H ]----------+ SISOTOOL(G) specifies the plant model G to be used in the SISO Tool. Here G is any linear model created with TF, ZPK, or SS. SISOTOOL(G,C) further specifies an initial value for the compensator C. Similarly, SISOTOOL(G,C,H,F) supplies additional models for the sensor H and the prefilter F. SISOTOOL(VIEWS) or SISOTOOL(VIEWS,G,...) specifies the initial configuration of the SISO Tool. VIEWS can be any of the following strings (or combination thereof): 'rlocus' Root locus plot 'bode' Bode diagram of the open-loop response 'nichols' Nichols plot of the open-loop response 'filter' Bode diagram of the prefilter F For example sisotool('nichols','bode') opens a SISO Design Tool showing the Nichols plot and the open-loop Bode Diagram. You can also use an extra argument OPTIONS (structure) to specify any of the following options: OPTIONS.Location Location of C ('forward' for forward path, 'feedback' for return path) OPTIONS.Sign Feedback sign (-1 for negative, +1 for positive) See also LTIVIEW, RLOCUS, BODE, NICHOLS. Ad esempio, nel caso del sistema2 l’utilizzo del sisotool, anche senza opzioni, fornisce per default il luogo delle radici e il diagramma di bode del sistema nell’ipotesi che esso sia chiuso in retroazione unitaria con un compensatore, un prefiltro e un trasduttore sul ramo di retroazione aventi funzione di trasferimento unitaria (figura 21). >> sisotool(sistema2)

Page 34: Control System Toolbox

Ing. M. Dotoli Controlli Automatici NO (9 CFU) Introduzione al MATLAB Control System Toolbox

Copyright © 2006 Mariagrazia Dotoli. L’autore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e l’autore siano esplicitamente riconosciuti e citati.

34

Si rimanda al manuale del Matlab per ulteriori dettagli sui tool grafici ‘ltiview’ e ‘sisotool’. 7. Bibliografia A. Cavallo, R. Setola, F. Vasca, Guida operativa a MATLAB, Simulink e Control Toolbox, 1994, Liguori. H. Saadat, Computational Aids in Control Systems Using MATLAB, 1993, Mc Graw-Hill. M. Tibaldi, Note introduttive a MATLAB e Control System Toolbox, 1993, Progetto Leonardo. N.S. Nise, Control Systems Engineering, seconda edizione, 1995, Benjamin Cummings.

Figura 21. Sisotool con un oggetto del tipo sistema.