Sei sulla pagina 1di 34

Ing. M.

Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Introduzione al MATLAB Control System Toolbox


Il Control System Toolbox (CST) un pacchetto aggiuntivo del software di calcolo MATLAB, orientato allanalisi delle prestazioni e alla progettazione dei sistemi di controllo automatico. Questa dispensa costituisce una introduzione allutilizzo 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 sullelemento 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: G (s ) = 2s 3 + 5s 2 + 3s + 6 , s 3 + 6s 2 + 11s + 6

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 =

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

-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: G ( s) = 2( s + 2.3965)( s + 0.0518 1.1177 j )( s + 0.0518 + 1.1177 j ) 6 4 3 = + + +2. ( s + 1)( s + 2)( s + 3) s + 3 s + 2 s +1

Antitrasformando secondo Laplace si calcola dunque la risposta allimpulso del sistema, che vale g( t ) = ( 6e 3t 4e 2 t + 3e t )1( t ) + 2 ( t ) . Un possibile modo per visualizzare graficamente tale risposta (a meno del termine impulsivo, che nullo dopo listante t=0) consiste quindi nelluso 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 allimpulso)
Copyright 2006 Mariagrazia Dotoli. Lautore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e lautore siano esplicitamente riconosciuti e citati.

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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

-1

-2

-3

-4

-5

-6

-7

10

Figura 1. Risposta allimpulso del sistema.

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 Unaltra 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')

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Mappa poli-zeri del sistema

1.5

0.5 Imag Axis

-0.5

-1

-1.5

-2 -4

-3.5

-3

-2.5

-2

-1.5 Real Axis

-1

-0.5

0.5

Figura 2. Uso della procedura pzmap.

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 allimpulso 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')
Copyright 2006 Mariagrazia Dotoli. Lautore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e lautore siano esplicitamente riconosciuti e citati.

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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 allimpulso 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 allimpulso)

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Risposte all'impulso
From: U(1) 5

Amplitude

To: Y(1) -5 -10 0

Time (sec.)

Figura 3. Confronto delle risposte allimpulso dei sistemi.

Si vede dalla figura 3 come le risposte allimpulso 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 allimpulso 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 allimpulso 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 = []

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

>> [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).

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Risposte al gradino
From: U(1) 10

Amplitude

To: Y(1)

Time (sec.)

Figura 4. Confronto delle risposte al gradino dei sistemi.

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 =

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

-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

Y (s ) = G (s )

1 1 G (s ) 1 = = G * (s ) 2 s s s s

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)

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

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Risposta alla rampa


From: U(1) 10

Amplitude

To: Y(1)

10

Time (sec.)

Figura 5. Risposta alla rampa di un sistema del primo ordine. 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 allimpulso 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)

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

10

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

0.8 0.7 0.6 0.5 Amplitude

Impulse Response

0.4 0.3 0.2 0.1

3 Time (sec)

Figura 6. Confronto della risposta allimpulso ottenuta con il comando impulse e della risposta allimpulso calcolata con il comando residue. La figura 6 mostra come la risposta allimpulso ottenuta con il comando impulse e quella calcolata con il comando residue sono identiche. In altre parole si ha:

G 2 (s) =

10 s 2 + 11s + 10

1.1111 1.1111 + s + 10 s +1

e quindi la risposta allimpulso vale:

g 2 (t) = 1.1111e10t + 1.1111e t 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 X(s) =

1 s +1
2

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];
Copyright 2006 Mariagrazia Dotoli. Lautore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e lautore siano esplicitamente riconosciuti e citati.

11

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

>> 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')


1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5

10

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

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

12

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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 lordine del sistema pari o approssimabile allunit). 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 =

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

13

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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 -1.00e+000 + 3.00e+000i -1.00e+000 - 3.00e+000i damp(den2) Eigenvalue -1.00e+000 + 5.00e+000i -1.00e+000 - 5.00e+000i damp(den3) Eigenvalue -4.00e+000 + 3.00e+000i -4.00e+000 - 3.00e+000i damp(den4) Eigenvalue Damping Freq. (rad/s) 3.16e+000 3.16e+000 Damping 8.00e-001 8.00e-001 Freq. (rad/s) 5.00e+000 5.00e+000 Damping 1.96e-001 1.96e-001 Freq. (rad/s) 5.10e+000 5.10e+000

Damping 3.16e-001 3.16e-001

Freq. (rad/s) 3.16e+000 3.16e+000

-1.00e+000 + 3.00e+000i -1.00e+000 - 3.00e+000i

3.16e-001 3.16e-001

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')

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

14

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0

Risposte al gradino Sistema 1 Sistema 2 Sistema 3 Sistema 4

Figura 8. Risposte al gradino per sistemi del secondo ordine. Rispetto al primo sistema, nel secondo i poli hanno uguale parte reale ma parte immaginaria pi grande, dunque linviluppo 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 linviluppo 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 landamento 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, nellordine, 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:

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

15

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

t s5%

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 laltro 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)

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

16

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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')

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

17

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

3 2.5 2 1.5 1 Amplitude 0.5 0 -0.5 -1 -1.5 -2 0 1 2

Step Response Sistema senza zeri Sistema con zero a fase minima Sistema con zero a fase non minima

3 Time (sec)

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 nellorigine positiva (e precisamente, per un sistema del secondo ordine, pari a n2, 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 nellorigine negativa (ancora pari a n2). 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 nellorigine 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)

dy dmu d m 1u du an + a n 1 + ... + a1 + a 0 y = b m + b m 1 + ... + b1 + b0u dt dt dt n dt n 1 dt m dt m 1 dn y


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

d n 1y

18

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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

x = Ax + Bu, x ( 0 ) = x 0 y = Cx + Du
dove x ( t ) R
n chiamato il vettore di stato o lo stato del sistema, x(0) chiamata la condizione

iniziale del sistema, u ( t ) R chiamato lingresso del sistema, e y ( t ) R luscita 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) X(s) = (sI A) 1 BU(s) Y(s) = CX(s) + DU(s)
e sostituendo nellequazione di uscita

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


ricaviamo lespressione della funzione di trasferimento

G(s) = C(sI A)1 B + D .


Lo stesso sistema lineare pu essere scritto in una forma matriciale pi compatta:

x A B y = C D

x u .

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

19

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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

dn y dt n

+ a n 1

d n 1y dt n 1

+ ... + a1

dy dn u d n 1u du + a 0 y = bn + b n 1 + ... + b1 + b0u dt dt dt n dt n 1

o, equivalentemente, dalla sua funzione di trasferimento:

b s n + b n 1s n 1 + ... + b1s + b0 G(s) = n s n + a n 1s n 1 + ... + a1s + a 0


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 lequazione differenziale che rappresenta il sistema si ha:

s n Y(s) + a n 1s n 1Y(s) + ... + a1sY(s) + a 0Y(s) = = b n s n U(s) + b n 1s n 1U(s) + ... + b1sU(s) + b0 U(s)
ossia

s n Y(s) = b n s n U(s) + b n 1s n 1U(s) a n 1s n 1Y(s) + +... + ( b1sU(s) a1sY(s) ) + ( b0 U(s) a 0Y(s) )


da cui

Y(s) = b n U(s) +

1 1 ( bn 1U(s) a n 1Y(s) ) + 2 ( bn 2U(s) a n 2Y(s) ) + s s 1 1 +... + ( b1U(s) a1Y(s) ) + n ( b0U(s) a 0Y(s) ) s n 1 s

che pu essere riscritta nella forma

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

20

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

b n 2 U(s) a n 2Y(s) + ... + 1 1 Y(s) = b n U(s) + b n 1U(s) a n 1Y(s) + 1 1 s s + b1U(s) a1Y(s) + ( b0 U(s) a 0Y(s) ) ... s s
In base a tale espressione, con la scelta:

sX1(s) = b0 U(s) a 0Y(s) sX 2 (s) = b1U(s) a1Y(s) + X1(s) ... sX n 1(s) = b n 2 U(s) a n 2Y(s) + X n 2 (s) sX n (s) = b n 1U(s) a n 1Y(s) + X n 1(s)
sostituendo tali equazioni nella precedente si ottiene dopo una serie di semplificazioni:

Y(s) = b n U(s) + X n (s)


e utilizzando tale relazione nelle n precedenti le equazioni che rappresentano il sistema diventano le seguenti:

sX1(s) = b0 U(s) a 0b n U(s) a 0X n (s) sX 2 (s) = b1U(s) a1b n U(s) a1X n (s) + X1(s) ... sX n 1(s) = b n 2 U(s) a n 2b n U(s) a n 2X n (s) + X n 2 (s) sX n (s) = b n 1U(s) a n 1b n U(s) a n 1X n (s) + X n 1(s)
Riordinando si ha: .

sX1(s) = a 0X n (s) + ( b0 a 0b n ) U(s) ...

sX 2 (s) = X1(s) a1X n (s) + ( b1 a1b n ) U(s) sX n 1(s) = X n 2 (s) a n 2X n (s) + ( b n 2 a n 2b n ) U(s) sX n (s) = X n 1(s) a n 1X n (s) + ( b n 1 a n 1b n ) U(s)
o anche

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

21

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

sX1(s) = A1n X n (s) + B1U(s) sX 2 (s) = A 21X1(s) + A 2n X n (s) + B2 U(s)


. ... sX n 1(s) = A n 1n 2X n 2 (s) + A n 1n X n (s) + Bn 1U(s)

sX n (s) = A nn 1X n 1(s) + A nn X n (s) + Bn U(s)


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

x1 = A1n x n + B1u x 2 = A 21x1 + A 2n x n + B2u ... x n 1 = A n 1n 2 x n 2 + A n 1n x n + Bn 1u x n = A nn 1x n 1 + A nn x n + Bn u


ossia

x1 x1 x x 2 2 ... = A ... + Bu x n 1 x n 1 xn xn
con

0 ... 0 0 A 0 ... 0 21 A = ... ... ... ... 0 ... A n 1n 2 0 0 0 ... 0

A1n 0 0 A 2n 1 ... ... = ... 0 A n 1n 0 A nn 1 A nn 0 0

0 ... 0 0 ... 0 0

a 0 ... 0 0 a1 ... ... ... ... , ... 1 0 a n 2 ... 0 1 a n 1 0

B1 b0 a 0b n B b a b 1 1 n 2 . B = ... = ... Bn 1 b n 2 a n 2b n Bn b n 1 a n 1b n
Copyright 2006 Mariagrazia Dotoli. Lautore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e lautore siano esplicitamente riconosciuti e citati.

22

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Inoltre, antitrasformando lequazione

Y(s) = b n U(s) + X n (s)


si ha

y = x n + bn u
ovvero

y = Cx n + Du
con

C = [ 0 0 ... 0 0 1] , D = [ bn ] .
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 lingresso u=F una forza cui la massa M=1/3 kg sottoposta, luscita y= s la velocit del sistema e B=1/3 N m-1 s il coefficiente di attrito. Evidentemente si ha:

s(t) s (t) F(t) M B

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 1 x+ x=u 3 3

Figura 10. Esempio di sistema meccanico.

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

23

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

ossia

x = x + 3u .
La precedente equazione costituisce lequazione di stato del sistema, e accoppiata con lequazione 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 + 3u y=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) x1 -1 u1 3 x1 1

a = x1 b = x1 c = y1 d =

u1 y1 0 Continuous-time model. >> [num,den]=ss2tf(A,B,C,D) num = 0 den = 1 3 1

>> [n,d]=tfdata(sistema1,'v') n = 0 3

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

24

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

d =

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

R1

u(t)=vi(t)

+ _

i(t)

C y(t)=vo(t) R2

Figura 11. Esempio di sistema elettrico. Consideriamo ora il sistema elettrico rappresentato in figura 11, dove lingresso 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 :

1 4 1 + R2 + Y(s) Vo (s) s + 16 sC s 4 G(s) = = = = = . 1 1 4 1 s 2 + 3s + 16 U(s) Vi (s) R + sL + 1 + R + s+ + 1 2 sC 2 4 s 4


Rappresentiamo ora in Matlab tale sistema.

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

25

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

>> 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 1 B1 = 1 0 1 0 16 -16 0

C1 = D1 =

>> [A2,B2,C2,D2]=ssdata(sistema2) A2 = -3 4 B2 = 2 0 2.0000 -4 0

C2 = 0.5000 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.

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

26

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Infine, si possono riottenere i due vettori che definiscono il sistema (loggetto chiamato sistema2) come segue con il comando tfdata.
>> [n,d]=tfdata(sistema2,'v') n = d = 0 1 1 3 16 16

Utilizzando un oggetto del tipo sistema possibile comunque determinare con le funzioni impulse e step la risposta allimpulso 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)
3 Impulse Response
1.4 Step Response

2.5

1.2

2 Amplitude
Amplitude 0.8

1.5

0.6

1
0.4

0.5

0.2

5 Time (sec)

10

0.5

1.5

2 Time (sec)

2.5

3.5

Figura 12. Uso della funzione impulse con un oggetto del tipo sistema.

Figura 13. Uso della funzione step con un oggetto del tipo sistema.

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

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

27

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

2.5 2 1.5 1 0.5 Amplitude 0 -0.5 -1 -1.5 -2 -2.5

Linear Simulation Results

10

15

20

25

30

35

Time (sec)

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


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

1.2

Amplitude

0.8

0.6

0.4

0.2

0.5

1.5

2.5 Time (sec)

3.5

4.5

Figura 15. Uso delle funzioni lsim e gensig (ingresso a onda quadra).
>> >> >> >> t3=0:0.1:5; u3=ones(size(t3)); figure(3),lsim(sistema1,u3,t3,0.1),hold on plot(t3,u3,'r'),grid

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

28

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Linear Simulation Results

2.5

2 Amplitude

1.5

0.5

0.5

1.5

2.5 Time (sec)

3.5

4.5

Figura 16. Uso della funzione lsim con condizione iniziale. 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.1 0.09 0.08 0.07 0.06 Amplitude 0.05 0.04 0.03 0.02 0.01 0 Response to Initial Conditions

0.5

1.5

2.5 Time (sec)

3.5

4.5

Figura 17. Uso della funzione initial.


>> >> >> >> 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')

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

29

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

0.1 0.09 0.08 0.07 0.06 Amplitude 0.05 0.04 0.03 0.02 0.01 0

Response to Initial Conditions

0.5

1.5

2.5 Time (sec)

3.5

4.5

Figura 18. Confronto delle funzioni initial e lsim per il calcolo della risposta libera.
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 allimpulso, 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
Copyright 2006 Mariagrazia Dotoli. Lautore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e lautore siano esplicitamente riconosciuti e citati.

30

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

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 previously opened LTI Viewers: LTI are available for manipulating

LTIVIEW('clear',VIEWERS) clears the plots and data from the 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 lutilizzo dellltiviewer, anche senza opzioni, fornisce per default la risposta al gradino del sistema (figura 19).
>> ltiview(sistema1)

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

31

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Figura 19. Risposta al gradino con ltiviewer di un oggetto del tipo sistema. Con il tasto destro possibile selezionare altre caratteristiche, ad esempio la mappa poli zeri del sistema (figura 20).

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

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

32

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Infine, sempre dalla versione 6 del Matlab disponibile una ulteriore interfaccia grafica per lanalisi 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 openloop 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 lutilizzo del sisotool, anche senza opzioni, fornisce per default il luogo delle radici e il diagramma di bode del sistema nellipotesi 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)
Copyright 2006 Mariagrazia Dotoli. Lautore garantisce il permesso per la riproduzione e la distribuzione del presente materiale per i soggetti privati, alla condizione che la fonte originale e lautore siano esplicitamente riconosciuti e citati.

33

Ing. M. Dotoli

Controlli Automatici NO (9 CFU)

Introduzione al MATLAB Control System Toolbox

Figura 21. Sisotool con un oggetto del tipo sistema. 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.

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

34