Sunteți pe pagina 1din 16

Estimatori de stare.

Proiectarea unui compensator stabilizator

Scop:
•Descrierea a două tipuri de observatoare / estimatoare de
stare: cu predicţie şi redus;

•Prezentarea proiectării compensatorului stabilizator în


cazul celor 2 estimatoare;

Regulatoare Automate
3.4 Estimatori de stare

u y
n
x∈R

^
x1
^ Estimator de
xn stare

Figura 10.1 Estimator / observator de stare

Pentru ca un estimator de stare să funcţioneze corect sunt necesare 3 condiţii:


1. Model procesului să corespundă cu bună aproximaţie procesului real
2. Comanda luată în calcul în estimator să corespundă cu cea trimisă către proces
3. Mărimea de ieşire să fie citită cu precizie
Îndeplinirea primei condiţii depinde doar gradul de cunoaştere al procesului.
Îndeplinirea celei de-a doua condiţii depinde însă şi de modul de implementare a estimatorului.
Îndeplinirea celei de-a treia condiţii depinde de calitatea traductoarelor utilizate.

Regulatoare Automate
3.5 Observabilitate
Pentru a putea estima stările unui sistem, acesta trebuie să fie este observabil.
Un sistem este observabil dacă există un interval de timp finit t in care starea initiala
se poate determina din cunoasterea evolutiei marimii de conanda u(t)si a celei de iesire
y (t ), t ∈ [0, t ]

Testatea observabilitării unui sistem ⎡ C ⎤


⎢ C⋅A ⎥
•se construieşte matricea de observabilitate ⎢ ⎥
Q=⎢ M ⎥
⎢ ⎥
⎢ ⎥
n −1
⎢⎣C ⋅ A ⎥⎦

•dacă rang ( Q ) = n , n- dimensiunea sistemului, sistemul este obeservabil


⎡ cT ⎤
Caz particular al unui sistem cu o singură mărime de ieşire ⎢ T ⎥
⎢ c ⋅ A ⎥
Q = ⎢ M ⎥ ∈ R nxn
⎢ ⎥
⎢ ⎥
⎢c T ⋅ A n −1 ⎥
⎣ ⎦
Regulatoare Automate
Notă: În Matlab, matricea de observabilitate se obţine cu funcţia obsv şi >> A=[1 2 3;1 1 1;1 0 1];
>> cT=[0 0 1];
rangul unei matrici cu funcţia rank. >> Q=obsv(A,cT)
Q=
Notă: Controlabilitatea şi observabilitatea sunt proprietăţi duale. 0 0 1
1 0 1
2 2 4
>> rank(Q)
ans =
3

( )
3.6 Observatorul Luenberger
Observatorul Luenberger este descris de relaţia xˆ ' = Axˆ + bu + lp ⋅ y − c T xˆ
x̂ vectorul mărimilor de stare estimate
lp ∈ R n corecţie proportionala cu eroare dintre iesirea y a sistemului real si cea calculata
pe baza starii estimate yˆ = c T xˆ

Eroarea de estimare e = x − x
Evoluţia erorii de estimare e ' = ( A − lp ⋅ c T )e

⎧⎪ e (A − l p ⋅ c T )⋅ t e , t ∈ R
Soluţia: e(t ) = ⎨ 0
e0 = e(t ) t = 0
( )
- eroarea iniţială
⎪⎩ A − l p ⋅ c T t e0 , t ∈ Z

Regulatoare Automate
Evoluţia erorii este dictată de valorile proprii ale matricei A − lp ⋅ c T
σ( A − lp ⋅ cT ) = σ( A − lp ⋅ cT )T = σ( AT − c ⋅ lp T )

T
Determinarea lp prin aplicarea algoritmului Ackermann cu urmăroarele date de intrare

AT ∈ R nxn , c ∈ R nx1 pe post de perechea (A,b)

Λe = { λ 1 , λ 2 , ..., λ n } – mulţimea valorilor proprii dorite pentru estimator


La ieşire, se obţine: lp T = k T

Observatorul Luenberger se mai numeşte şi observator sau estimator cu predicţie.


Elementul de predicţie se poate remarca mult mai uşor în cazul estimatoarelor cu timp discret

(
xˆi +1 = Axˆi + bu i + lp ⋅ yi − c T xˆi )
adică la pasul curent i, se estimează starea pentru pasul urmăror i+1.

Regulatoare Automate
3.7 Proiectarea compensatorului stabilizator cu observator Luenberger

'
u x = A⋅ x + b ⋅u y
y = cT ⋅ x

^
x ESTIMATOR
-k
DE STARE
Compensator Stabilizator

Schemă de compensare utilizând un observator Luenberger

Regulatoare Automate
• •
• •
• •

|||
u y
PROCES

u Compensator y
stabilizator

Elementele unui compensator stabilizator cu estimator Luenberger

Regulatoare Automate
Ecuaţiile compensatorului stabilizator ( )
⎧⎪ xˆ ' = A − b ⋅ k T − lp ⋅ c T xˆ + lp ⋅ y

⎪⎩u = − k T xˆ
⎡ Ac = A − b ⋅ k T − l ⋅ c T
⎧∧ '
( ) ⎢

T T
⎪x = 1A − b ⋅ k − l ⋅ c ⋅ x + l{ ⋅ y
44 42444 3 ⎢bc = l
⎪ bc ⎢ T T
⎨ Ac
⎢ c c = − k
⎪u = − k T x ⎢y = u
⎪ {
⎩ cc ⎢ c
⎢u c = y

Funcţia de transfer a compensatorului stabilizator

H C (λ) = c cT (λI − Ac ) −1 bc = (− k T ) ⋅ (λ ⋅ I − A + b ⋅ k T + lp ⋅ c T ) −1 ⋅ lp

Sistemul rezultant: ⎡x' ⎤ ⎡ A − b ⋅kT ⎤ ⎡ x⎤


⎢ '⎥ = ⎢ T T
⋅ ⎥
T ⎥ ⎢x
ˆ
x
⎣ ⎦ ⎣ lp ⋅ c A − b ⋅ k − lp ⋅ c ⎦ ⎣ ˆ ⎦

Principiul separării: valorile proprii ale matricei sistemului rezultant reprezintă reuniune
a disjunctă a valorilor proprii impuse prin legea de comandă după stare
şi a valorilor proprii impuse estimatorului. σ( A ) = σ ( A − b ⋅ k T ) ∪
& σ( A − lp ⋅ c T )
R
Regulatoare Automate
3.8. Estimatoare minimale
Estimatoarele minimale numite şi estimatoare reduse pot fi utilizate în cazul proceselor cu o singură
mărime de ieşire, când aceasta este identică cu una din mărimile de stare. În acest caz, se poate
renunţa la estimarea tuturor stărilor, una fiind deja disponibilă, aplicându-se o formă redusă de
estimator cu predicţie care furnizează doar celelalte n -1 mărimi de stare.

Procesele la care o mărime de stare este măsurată la ieşire, pot fi puse sub forma:

⎡ x1 ⎤ ⎡ A 1
⎢ y ⎥ = ⎢ aT
a2 ⎤ ⎡ x 1 ⎤ ⎡b 1 ⎤
⎥ ⋅ ⎢ ⎥ + ⎢ ⎥ ⋅u x1' = A1 ⋅ x1 + a 2 ⋅ y + b1 ⋅ u
⎣ ⎦ ⎣ 1 α⎦ ⎣ y ⎦ ⎣β ⎦
y ' − α ⋅ y − β ⋅ u = a1T ⋅ x1
⎡ x1 ⎤
y = [0 L 1] ⋅ ⎢ ⎥
⎣y⎦
a 2 ⋅ y + b1 ⋅ u este “comanda”

y' − α ⋅ y − β ⋅ u este “ieşirea”.


Ecuaţia unui estimator cu predicţie
xˆ1' = A1 ⋅ xˆ1 + a 2 ⋅ y + b1 ⋅ u + lr ⋅ ( y ' − α ⋅ y ⋅ β ⋅ u − a1T ⋅ xˆ1 )
Evoluţia erorii de estimare: e ' = ( A1 − lr ⋅ a1T ) ⋅ e
Calculul: lr aplicând algoritmul Ackerman perechii ( A1T , a1 )
şi impunând n-1 valori proprii dorite pentru estimator.
Regulatoare Automate
3.9 Proiectarea compensatorului stabilizator cu estimator minimal
⎡ xˆ1 ⎤
Legea de comandă u = − k ⋅ ⎢ ⎥ = − k1T ⋅ xˆ1 − k y ⋅ y
T
[
k T = k1T ky ]
⎣y⎦
Schimbarea de variabile: xˆ1 = w + lr ⋅ y

w ' = ( A1 − lr ⋅ a1T ) w + (b1 − lr ⋅ β)u + ( A1 ⋅ lr − lr ⋅ a1T ⋅ lr + a 2 − lr ⋅ α ) y

u = −k1T ⋅ w − (k1T ⋅ lr + k y ) ⋅ y

Reprezentarea în spaţiul stărilor a unui compensator stabilizator bazat pe un estimator minimal:

⎧⎪ xcr'
= Acr ⋅ xcr + bcr ⋅ u cr
⎨ T
⎪⎩ y cr = ccr ⋅ xcr + d cr ⋅ u cr

xcr = w starea estimatorului minimal

u cr = y intrarea în estimator egală cu ieşirea din procesul controlat

y cr = u ieşirea din estimator egală cu comanda procesului


Regulatoare Automate
T T T
Acr = A1 − b1 ⋅ k1 − lr ⋅ a1 + lr ⋅ β ⋅ k1
bcr = A1 ⋅ lr − lr ⋅ a1T ⋅ lr + a2 − lr ⋅ α − (b1 − lr ⋅ β) ⋅ (k1T ⋅ lr + k y )

ccr = − k1T

d cr = − k1T ⋅ lr − k y

Dacă starea iniţială a procesului este nenulă atunci estimatorul redus trebuie iniţializat cu:

w0 = xˆ10 − lr ⋅ xn 0

Funcţia de transfer a compensatorului stabilizator cu estimator de stare minimal

T
H cr (λ ) = c cr (λI − Acr ) −1 bcr + d cr

Regulatoare Automate
Exemple
Să se construiască un observator de stare Luenberger pentru procesul descris prin funcţia de transfer

H (s ) =
100 Valorile proprii ale observatorului sunt Λ e = {− 1, − 2}
(s + 1)(s + 100)
⎡ 0 1 ⎤ ⎡0 ⎤
Se construieşte o realizare controlabilă a funcţiei de transfer A=⎢ ⎥ , b = ⎢ ⎥, c T = [100 0]
⎣− 100 − 101⎦ ⎣1 ⎦

Fiind un sistem cu timp continuu, ecuaţia observatorului este:



(
xˆ = Axˆ + bu + lp ⋅ y − c T xˆ )
lp se calculează aplicând algoritmul Ackermann perechii ( AT c)
Utilizând Matlab:
>> A=[0 1;-100 -101];
⎡ 0 1 ⎤ ⎡− 98 / 100⎤ ⎡ 98 1 ⎤
A − lp ⋅ c T = ⎢ −
⎥ ⎢ ⎥ ⋅ [100 0 ] = ⎢− 9900 − 101⎥ >> cT=[100 0];
⎣− 100 − 101⎦ ⎣ 98 ⎦ ⎣ ⎦ >> P=[-1 -2];

>> lp=acker(A',cT',P)
Ecuaţia observatorului
lp =
• ⎡ 98 1 ⎤ ⎡− 0.98⎤ ⎡0 ⎤ Column 1 -0.9800
xˆ = ⎢ ⎥ ⋅ ˆ
x + ⎢ 98 ⎥ ⋅ y + ⎢1⎥ ⋅ u
− 9900 − 101 Column 2 98.0000
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
Regulatoare Automate
A = [1 2 3;1 1 1;1 0 1]
b = [0; 0; 1] % vector coloana
cT = [0 0 1] % vector linie
x0 = [1;2;3] % starea initiala %------% Calcul compensator stabilizator cu estimator de stare redus
%--------------------------------------------------------------------------------------% % Definirea elementelor sistemului redus
[num,den] = ss2tf(A,b,cT,0)% funcţia de transfer a procesului A1 = A(1:2,1:2) % primele (n-1)x(n-1) elemente din A
% Calcul lege de comanda dupa stare kT a2 = [A(1,3);A(2,3)] % primele n-1 elemente - ultima coloana A
R = ctrb(A,b); % Matricea de controlabilitate
a1T = [A(3,1) A(3,2)] % primele n-1 elemente - ultima linie A
rangR = rank(R) % Verificare rang R alfa = A(3,3) % ultimul element din A
Pk = [-1 -2 -3] % Val.proprii dorite pt. legea de comandă b1 = b(1:2) % primele n-1 elemente din b
kT = acker(A,b,Pk) % kT=[kT(1) kT(2) kT(3)] beta = b(3) % ultimul element din b
%__________________________________________________% k1T = kT(1:2) % primele n-1 elemente din kT
%___% Calcul compensator stabilizator cu estimator de stare cu predictie ky = kT(3) % ultimul element din kT
Pl = [-4 -5 -6] % Valorile proprii dorite pentru estimator Pr = [-4 -5] % valorile proprii dorite pentru estimatorul
Q = obsv(A,cT); % Matricea de observabilitate
% redus
rangQ = rank(Q) % Verificare rang Q lrT_redus = acker(A1',a1T',Pr) %lrT - vector linie
lpT = acker(A',cT',Pl) %lpT - vector linie lr = lrT_redus'; %lr - vector coloana
lp = lpT'; %lp - vector coloana % Reprezentarea in spatiul starilor a compensatorului cu estimator de stare
% Reprez. în sp. stărilor a compensatorului cu estim. de stare cu predictie redus
Ac = A-b*kT-lp*cT Acr = A1-b1*k1T-lr*a1T+lr*beta*k1T
bc = lp bcr = a2-lr*alfa+A1*lr-lr*a1T*lr-(b1-lr*beta)*(k1T*lr+ky)
cc = -kT ccr = -k1T
% Starea initiala a estimatorului cu predictie este nulă dcr = -k1T*lr-ky
xe0=[0;0;0]; % Starea initiala a estimatorului redus
% Funcţia de transfer a compesatorului cu estimator de stare cu predictie w0 = xe0(1:2)-lr*x0(3);
[num_cp,den_cp] = ss2tf(Ac,bc,cc,0); % Functia de transfer a compesatorului cu estimator de stare redus
% Pentru verificare se calculează funcţia de transfer a sistemului rezultant [num_cr,den_cr] = ss2tf(Acr,bcr,ccr,dcr)
[num_r,den_r] = feedback(num,den,num_cp,den_cp,+1); % Pentru verificare se calculeaza functia de transfer a sistemului rezultant
% Rădăcinile numitorului – trebuie să fie coincidă cu valorile proprii impuse [num_rr,den_rr] = feedback(num,den,num_cr,den_cr,+1);
% pentru legea de comandă şi estimator adică: -1, -2, -3, -4, -5, -6 % Radacinile numitorului – trebuie sa fie coincida cu valorile proprii impuse
roots(den_r) ; % pentru legea de comandă şi estimator adică: -1, -2, -3, -4, -5
roots(den_rr);

Regulatoare Automate
A=
1 2 3
1 1 1 A1 =
1 0 1 1 2
b= 1 1
0 a2 =
0 3
1 1
a1T = 1 0
cT = 0 0 1
alfa = 1
b1 =
Pk = -1 -2 -3 0
kT = 7.0000 10.0000 9.0000 0
Pl = -4 -5 -6 beta = 1
lpT = 112 124 18 k1T = 7.0000 10.0000
Ac = ky = 9
1.0000 2.0000 -109.0000 Pr = -4 -5
1.0000 1.0000 -123.0000 lrT_redus = 11 16
-6.0000 -10.0000 -26.0000 Acr =
bc = 67.0000 112.0000
112 97.0000 161.0000
124 bcr =
18 2620
cc = -7.0000 -10.0000 -9.0000 3772
ccr = -7.0000 -10.0000
Regulatoare Automate dcr = -246
20 20

15 15
A A
10 10

5 5

x2, x2ep
x1, x1ep

0 0
B

-5 -5

-10 -10

-15 -15
B
-20 -20
0 1 2 3 4 5 0 1 2 3 4 5
timp [s] timp [s]

Evoluţia stării x1 şi a estimatei ei Evoluţia stării x2 şi a estimatei ei


cu un observator cu predictie cu un observator cu predictie
3.5
3

B 3
2
2.5
1 B
C 2

r
x2, x2e
0 C
r
x1, x1e

1.5

-1
1

-2
0.5

-3 0
0 1 2 3 4 5
timp [s]
-4
0 1 2 3 4 5
timp [s] Evoluţia stării x2 şi a estimatei ei cu un observator redus
Evoluţia stării x1 şi a estimatei ei
cu un observator redus
Regulatoare Automate
30

20
A
10

p
x3, x3e
0

-10

-20
B

-30
0 1 2 3 4 5
timp [s]
Evoluţia stării x3 şi a estimatei ei cu un observator cu predictie

30

A
20

10 B
r
x, xc , xc

0
p

-10

C
-20

-30
0 1 2 3 4 5
Evoluţia ieşirii: A) estimator cu predicţie, timp [s] B) fără estimator, C) estimator redus
Regulatoare Automate

S-ar putea să vă placă și