Sei sulla pagina 1di 10

Politecnico di Bari

Facolt di Ingegneria
Dispensa per il Corso di
Controlli Automatici I
Uso del software di calcolo Matlab 4.2 per lo studio delle
risposte nel tempo dei sistemi lineari tempoinvarianti
Ing. Mariagrazia Dotoli
2
Uso del software di calcolo Matlab 4.2 per lo studio delle risposte
nel tempo dei sistemi lineari tempoinvarianti
1 Modelli di un sistema lineare tempoinvariante
Un modello di sistema lineare tempo-invariante (LTI) si individua in Matlab con quattro forme
possibili: attraverso la sua funzione di trasferimento, attraverso i suoi zeri e poli, attraverso un suo
modello in spazio di stato e attraverso la sua rappresentazione in fratti semplici. 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 attraverso gli zeri e poli, un modello in spazio di stato e
infine il modello con i fratti semplici. Le funzioni Matlab usate corrispondenti sono tf2zp, tf2ss e
residue, cos come quelle che realizzano il passaggio inverso sono ovviamente zp2tf, ss2tf e la
stessa residue.
[z,p,k]=tf2zp(num,den)
z =
-2.3965
-0.0518 + 1.1177i
-0.0518 - 1.1177i
p =
-3.0000
-2.0000
-1.0000
k =
2
[A,B,C,D]=tf2ss(num,den)
A =
-6 -11 -6
1 0 0
3
0 1 0
B =
1
0
0
C =
-7 -19 -6
D =
2
[R,P,K]=residue(num,den)
R =
-6.0000
-4.0000
3.0000
P =
-3.0000
-2.0000
-1.0000
K =
2
Ricordiamo che la funzione di trasferimento del
sistema si pu 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.
pzmap(num,den),axis([-4 0.5 -2 2]),grid
title('Mappa poli-zeri del sistema')
-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
Im
a
g

A
x
i
s
Mappa poli-zeri del sistema
4
Infine, dallespressione in fratti semplici del sistema, si ha che la funzione di trasferimento vale
2
1 s
3
2 s
4
3 s
6
) s ( G +
+
+
+

+
+

=
e la risposta allimpulso del sistema vale
) t ( 2 ) t ( 1 ) e 3 e 4 e 6 ( ) t ( g
t t 2 t 3
+ + =

per cui un possibile modo per visualizzare graficamente tale risposta consiste nelluso della
funzione residue. 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.
2. Esempio: analisi della risposta nel tempo di sistemi del primo ordine con Matlab
Prendiamo in considerazione quattro diverse funzioni di trasferimento e analizziamone le
corrispondenti risposte allimpulso e al gradino, rispettivamente attraverso le funzioni impulse e
step. I grafici sono riportati alla pagina seguente.
num1=[1];
den1=[1 1];
printsys(num1,den1,'s')
num/den =
1
-----
s + 1
Aggiungiamo ora un polo reale in 10, dominato da quello in 1.
num2=[10];
den2=[1 11 10];
printsys(num2,den2,'s')
num/den =
10
---------------
s^2 + 11 s + 10
Vediamo cosa accade aggiungendo uno zero.
num3=[10 1];
5
den3=[1 1];
printsys(num3,den3,'s')
num/den =
10 s + 1
--------
s + 1
Infine, spostiamo il polo da 1 a 5.
num4=[5];
den4=[1 5];
printsys(num4,den4,'s')
num/den =
5
-----
s + 5
impulse(num1,den1), hold on, impulse (num2,den2)
impulse (num3,den3), impulse(num4,den4)
title(Risposte allimpulso)
Si vede come le risposte allimpulso dei primi due sistemi siano quasi coincidenti, poich G
2
(s) ha
infatti in pi un polo dominato in 10, a parte il valore iniziale differente. Nel terzo sistema 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 tardi. Infine, nel
quarto sistema la risposta allimpulso pi rapida, poich il polo dominante spostato da 1 a 5.
[R3,P3,K3]=residue(num3,den3)
R3 =
-9
P3 =
-1
K3 =
10
Analogamente si possono confrontare le risposte a gradino dei sistemi.
step(num1,den1), hold on, step (num2,den2)
step (num3,den3), step(num4,den4)
Time (sec.)
A
m
p
li
t
u
d
e
Risposte all'impulso
0 1 2 3 4 5 6
-10
-5
0
5
From: U(1)
T
o
:

Y
(
1
)
Time (sec.)
A
m
p
li
t
u
d
e
Risposte al gradino
0 1 2 3 4 5 6
0
1
2
3
4
5
6
7
8
9
10
From: U(1)
T
o
:

Y
(
1
)
6
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 dopo. Infine, nel
quarto sistema la risposta al gradino pi rapida, poich il polo dominante si spostato da 1 a 5.
[R11,P11,K11]=residue(num1,conv(den1,[1 0]))
R11 =
-1
1
P11 =
-1
0
K11 =
[]
[R31,P31,K31]=residue(num3,conv(den3,[1 0]))
R31 =
9
1
P31 =
-1
0
K31 =
[]
Osservando le risposte al gradino, per esempio utilizzando la funzione zoom per 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.
Infine, 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
s
1
) s ( G
s
1
s
) s ( G
s
1
) s ( G ) s ( Y
*
2
= = =
Time (sec.)
A
m
p
li
t
u
d
e
Risposta alla rampa
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
From: U(1)
T
o
:

Y
(
1
)
7
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.
numstar1=num1;
denstar1=conv(den1,[1 0]);
step(numstar1,denstar1)
title(Risposta alla rampa)
3. Esempio: analisi della risposta nel tempo di sistemi del secondo ordine con Matlab
Prendiamo in considerazione quattro diverse funzioni di trasferimento e analizziamone le
corrispondenti risposte al gradino. I grafici sono riportati alla pagina seguente.
num1=[10];
den1=[1 2 10];
printsys(num1,den1,'s')
num/den =
3
--------------
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];
8
den4=[1 2 10];
printsys(num4,den4,'s')
num/den =
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.
t1=0:0.01:6;
t2=0:0.01:6;
t3=0:0.01:6;
t4=0:0.01:6;
[y1,x1]=step(num1,den1,t1);
[y2,x2]=step(num2,den2,t2);
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
Risposte al gradino
Sistema 1
Sistema 2
Sistema 3
Sistema 4
9
[y3,x3]=step(num3,den3,t3);
[y4,x4]=step(num4,den4,t4);
plot(t1,y1,'-',t2,y2,'-.',t3,y3,'--',t4,y4,':'),grid
legend('Sistema 1','Sistema 2','Sistema 3','Sistema 4')
title('Risposte al gradino')
Rispetto al primo sistema, nel secondo i poli hanno uguale parte reale e 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% (i tempi di assestamento
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-')
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:
n
% 5 s
3
t

dove e 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 =
10
1.5163
Mp4=(max(y4)-y4(length(y4)))/(y4(length(y4))-y4(1))*100
Mp4 =
84.9000
4 Bibliografia
R. C. Dorf, R. H. Bishop, Modern Control Systems, settima edizione, 1995, Addison-Wesley.
K. Ogata, Modern Control Engineering, terza edizione, 1997, Prentice Hall.
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.

Potrebbero piacerti anche