Vous êtes sur la page 1sur 11

Politecnico di Bari

Facolt di Ingegneria

Dispensa per il Corso di


Controlli Automatici II

Stima asintotica dello stato con MATLAB e Simulink

Ing. Mariagrazia Dotoli

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

Stima asintotica dello stato con MATLAB e Simulink

1. Caso in studio: definizione


Nel seguito facciamo riferimento ad un sistema idraulico composto da tre serbatoi comunicanti con
due portate di ingresso q1 e q3 (c.f.r. le dispense Studio di un Sistema MISO Idraulico con
MATLAB e Simulink, Retroazione di stato per sistemi MIMO con MATLAB), del quale
consideriamo il modello linearizzato, intorno ad un punto di equilibrio, che del tipo:
h = Ah + Bu
y = Ch + Du
dove h=[h1 h2 h3]T il vettore di stato costituito dai battenti dei serbatoi e u=[u1 u2]T=[q1 q3]T il
vettore degli ingressi. Si ha:
f1

h 1
f
A= 2
h1
f
3
h1

f1
h 1
f 2
h 2
f 3
h 2

f1

h 1
a
0
a

f 2

a
= a 2a

h 3
0
a
(
a
b
)

f 3

h 3 0

f1
u
1
f
B= 2
u 1
f
3
u 1

f1
1
u 2
S
f 2
= 0

u 2

0
f 3

u 2 0

0
0
1

C = [1 0 0]
D[0]
ossia luscita data dallaltezza del liquido nel terzo serbatoio.
Si vuole retroazionare lo stato del sistema, in modo da allocare i poli del sistema in anello chiuso in
posizioni desiderate, nellipotesi che lo stato non sia accessibile Si tratta quindi di costruire una
stima dello stato mediante un observer, per poi retroazionare lo stato stimato, ossia moltiplicarlo per
il guadagno matriciale di retroazione di stato.
2. Analisi del caso in studio, sintesi del controllore e dellobserver
Analizziamo il sistema e sintetizziamo il controllore e un observer di ordine pieno per mezzo di una
procedura Matlab che chiamiamo serbobs.m e elenchiamo di seguito. Il file contiene i commenti ad
2

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

ogni comando, preceduti dal simbolo %. Si noti che vengono sintetizzati tre diversi controllori, uno
mediante pole allocation con autovalori reali, uno con autovalori complessi ed un terzo mediante
tecniche di controllo ottimo. Per questultimo vengono riportati valori alternativi delle matrici peso
Q ed R di cui funzione lindice da minimizzare.
% Procedura Matlab serbobs.m per la retroazione dello
% stato stimato di un sistema idraulico
% Reinizializzazione del Matlab workspace
clear all
% Chiusura delle finestre grafiche eventualmente aperte
close all
% Assegnazione dei valori numerici delle variabili,
% con unit di misura del sistema internazionale (SI)
R=5.5;
r=0.25;
S=pi*R^2;
s=pi*r^2;
g=9.81;
q10=0.91;
q30=0.645;
H=4;
% Condizioni iniziali dello stato e dello stato stimato
h1i=11;
h2i=9;
h3i=6;
hi=[h1i h2i h3i]
hhati=[h1i+1 h2i-1 h3i+2]
% Calcolo dei valori di equilibrio dei battenti
h30=H+1/2/g*((q10+q30)/s)^2;
h20=h30+1/2/g*(q10/s)^2;
h10=h20+1/2/g*(q10/s)^2;
% Calcolo dei parametri del sistema linearizzato
a=s^2*g/S/q10;
b=s^2*g/S/(q10+q30);
% Definizione del sistema in forma di stato attraverso le matrici
% A, B, C, D, tali che
% xdot=Ax+Bu
% y=Cx+Du
% con x vettore di stato, xdot derivata del vettore di stato, y(t) uscita
A=[-a a 0;a -2*a a; 0 a -(a+b)]
B=[1/S 0; 0 0 ; 0 1/S]
C=[0 0 1]
D=[0 0]
% Dimensione dello spazio degli stati e di quello degli ingressi
n=size(A,1);
m=size(B,2);
% Calcolo del polinomio caratteristico
aa=poly(A)
% Controllo della completa controllabilit
Mc=ctrb(A,B)
rMc=rank(Mc)
if rMc ~= 3
'Non e'' possibile stabilizzare il sistema'
end
% Allocazione degli autovalori in anello chiuso reali
lambda1=[-0.00039 -0.01 -0.01]
% Calcolo della matrice di retroazione di stato K=Q
% con l'so dell'algoritmo Matlab 'place'
K1=place(A,B,lambda1)
% Entit dello sforzo di controllo richiesto con la soluzione fornita da 'place'
norm(K1)
3

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

% Verifica
eig(A-B*K1)
% Allocazione degli autovalori in anello chiuso complessi
lambda2=[-0.002+0.000001*i -0.002-0.000001*i -0.01]
K2=place(A,B,lambda2)
norm(K2)
eig(A-B*K2)
% Retroazione di stato con controllo ottimo
% Q deve essere semidefinita positiva e simmetrica
% R deve essere definita positiva e simmetrica
% Variando Q ed R variano gli autovalori in anello chiuso e varia la
% condizione di regime. Poich il sistema reale, si deve utilizzare un
% controllo ottimo che renda accettabile la posizione degli autovalori,
% cio la rapidit del sistema, nonch il valore di regime
% (in particolare deve essere h3 > 4m = altezza del foro di uscita)
% Si nota poi che gli scostamenti da zero di tutti i battenti sono
% desiderati, in maniera quasi equivalente, dunque si pone q11=q22=q33
% Inoltre gli elementi diagonali qij devono essere negativi, poich
% i battenti devono essere tutti dello stesso segno, ossia positivi
% Valori alternativi
%Q=[1 0 0;0 1 0; 0 0 1]
%ro=1000
%Q=[1 -0.5 -0.5;-0.5 1 -0.5; -0.5 -0.5 1]
%ro=10
%Q=[1 -0.9 -0.1;-0.9 1 -0.1; -0.1 -0.1 1]
%ro=40
Q=[1 -0.8 -0.1;-0.8 1 -0.1; -0.1 -0.1 1]
ro=100
R=ro*eye(2)
[K3,S,lambda3]=lqr(A,B,Q,R)
% Controllo della completa osservabilit
Mo=obsv(A,C)
rMo=rank(Mo)
if rMo ~= 3
'Non e'' possibile sintetizzare un observer asintoticamente stabile'
end
% Scelta degli autovalori dell'observer
lambdao=[-0.005 -0.1 -0.2]
Kd=place(A',C',lambdao)
Beta=Kd'

Eseguiamo la procedura Matlab su descritta e riportiamo i risultati ottenuti nella Matlab Command
Window.
serbobs
hi =
11

hhati =
12
A =
-0.0044
0.0044
0

0.0044
-0.0087
0.0044

0
0.0044
-0.0069
4

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

B =
0.0105
0
0

0
0
0.0105

C =
0

D =

aa =
1.0000

0.0201

0.0001

0.0000

0
0
0.0105

-0.0000
0.0000
0

0
0.0000
-0.0001

-0.0100

-0.0100

Mc =
0.0105
0
0

0.0000
-0.0000
0.0000

rMc =
3
lambda1 =
-0.0004

place: ndigits= 15
K1 =
0.1376
-0.3971

0.3018
0.3018

-0.3971
-0.1056

ans =
0.5850
ans =
-0.0100
-0.0004
-0.0100
lambda2 =
-0.0020 + 0.0000i

-0.0020 - 0.0000i

place: ndigits= 15
5

-0.0100

0.0000
-0.0000
0.0000

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

K2 =
-0.5313
-0.2705
ans =

0.7289
0.2965

-0.1003
-0.0439

0.9925
ans =
-0.0020 + 0.0000i
-0.0020 - 0.0000i
-0.0100
Q =
1.0000
-0.8000
-0.1000

-0.8000
1.0000
-0.1000

-0.1000
-0.1000
1.0000

0.0141
0.0022

0.0023
0.0058

0.0022
0.0111

134.0111
22.0084
20.4903

22.0084
95.4832
55.0739

20.4903
55.0739
105.9352

0
0.0044
-0.0001

1.0000
-0.0069
0.0001

ro =
100
R =
100
0

0
100

K3 =

S =

lambda3 =
-0.0137
-0.0059
-0.0007
Mo =
0
0
0.0000
rMo =
3
6

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

lambdao =
-0.0050

-0.1000

-0.2000

place: ndigits= 15
Kd =
0.9005

4.0405

0.2849

Beta =
0.9005
4.0405
0.2849

Figura 1. Stima e controllo in retroazione di stato di un sistema idraulico con Simulink.

I valori determinati in precedenza vengono utilizzati dal file Simulink (figura 1) che permette di
simulare levoluzione dinamica del sistema. Per il controllo in retroazione di stato vengono di volta
in volta utilizzate le matrici K1 (poli reali in anello chiuso), K2 (poli complessi in anello chiuso) e
K3 (controllo ottimo). I risultati delle simulazioni vengono riportati in tutti e tre i casi, con
particolare riferimento allo stato, lerrore di stima, lo sforzo di controllo e la portata in uscita al
serbatoio, espressa dallequazione:
q o = s 2g | h 3 H |

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

dove s la sezione del foro di uscita, H laltezza cui esso posizionato, g laccelerazione di
gravit e h3 laltezza del liquido sullultimo serbatoio.

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

18

18
Battente del primo serbatoio
Battente del secondo serbatoio
Battente del terzo serbatoio
16

Portata del liquido in uscita [m3/s]

Altezza del liquido nei serbatoi [m]

16

14

12

10

14

12

10

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 2. Evoluzione dello stato del sistema


per allocazione manuale di poli reali.

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

8
Errore di stima del primo battente
Errore di stima del secondo battente
Errore di stima del terzo battente

Portata di ingresso nel primo serbatoio


Portata di ingresso nel secondo serbatoio
7

Sforzo di controllo [m3/s]

Altezza del liquido [m]

1000

Figura 3. Evoluzione della portata in uscita


per allocazione manuale di poli reali.

-1

-2

-3

500

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 4. Evoluzione dellerrore di stima dello


stato per allocazione manuale di poli reali.

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 5. Evoluzione dello sforzo di controllo


per allocazione manuale di poli reali.

14

9
Battente del primo serbatoio
Battente del secondo serbatoio
Battente del terzo serbatoio

13

8.5

Portata del liquido in uscita [m3/s]

Altezza del liquido nei serbatoi [m]

12

11

10

7.5

8
6.5
7

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 6. Evoluzione dello stato del sistema


per allocazione manuale di poli complessi.

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

Figura 7. Evoluzione della portata in uscita


per allocazione manuale di poli complessi.

5000

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

15
Errore di stima del primo battente
Errore di stima del secondo battente
Errore di stima del terzo battente

Portata di ingresso nel primo serbatoio


Portata di ingresso nel secondo serbatoio

Sforzo di controllo [m3/s]

Altezza del liquido [m]

10
2

-1

-2

-3

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 8. Evoluzione dellerrore di stima dello


stato per allocazione manuale di poli complessi.

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 9. Evoluzione dello sforzo di controllo


per allocazione manuale di poli complessi.

11

6.3
Battente del primo serbatoio
Battente del secondo serbatoio
Battente del terzo serbatoio

6.2

10

Portata del liquido in uscita [m3/s]

Altezza del liquido nei serbatoi [m]

6.1

6
5.9
5.8
5.7
5.6
5.5

6
5.4
5

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5.3

5000

Figura 10. Evoluzione dello stato del sistema


per controllo ottimo: poli reali.

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 11. Evoluzione della portata in uscita


per controllo ottimo: poli reali.

0.9
Errore di stima del primo battente
Errore di stima del secondo battente
Errore di stima del terzo battente

Portata di ingresso nel primo serbatoio


Portata di ingresso nel secondo serbatoio
0.85

0.8

Sforzo di controllo [m3/s]

Altezza del liquido [m]

0.75
2

-1

0.65

0.6

0.55

-2

-3

0.7

0.5

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

0.45

5000

Figura 12. Evoluzione dellerrore di stima dello


stato per controllo ottimo: poli reali.

500

1000

1500

2000

2500
Tempo [s]

3000

3500

4000

4500

5000

Figura 12. Evoluzione dello sforzo di controllo


per controllo ottimo: poli reali.

10

Ing. Mariagrazia Dotoli

Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink

3. Bibliografia
R. C. Dorf, R. H. Bishop, Modern Control Systems, settima edizione, 1995, Addison-Wesley.
M. Dotoli, Studio di un Sistema MISO Idraulico con MATLAB e Simulink, Dispense del corso di
Controlli Automatici II, Prima Facolt di Ingegneria, Politecnico di Bari, 2000.
M. Dotoli, Retroazione di stato per sistemi MIMO con MATLAB, Dispense del corso di Controlli
Automatici II, Prima Facolt di Ingegneria, Politecnico di Bari, 2000.
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.

11

Vous aimerez peut-être aussi