Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Facolt di Ingegneria
Controlli Automatici II: Stima asintotica dello stato con MATLAB e Simulink
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
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
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
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
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
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
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 |
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.
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
16
14
12
10
14
12
10
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
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
1000
-1
-2
-3
500
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
14
9
Battente del primo serbatoio
Battente del secondo serbatoio
Battente del terzo serbatoio
13
8.5
12
11
10
7.5
8
6.5
7
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
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
10
2
-1
-2
-3
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
11
6.3
Battente del primo serbatoio
Battente del secondo serbatoio
Battente del terzo serbatoio
6.2
10
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
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
0.9
Errore di stima del primo battente
Errore di stima del secondo battente
Errore di stima del terzo battente
0.8
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
500
1000
1500
2000
2500
Tempo [s]
3000
3500
4000
4500
5000
10
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