Sunteți pe pagina 1din 4

M.-B.

Radac, UPT, 2020

L3. Proiectarea regulatoarelor optimale după stare cu ajutorul algoritmilor Policy


Iteration (PoIt) și Value Iteration (VI)

Fie procesul condus în timp continuu redat prin schema bloc informațională de mai jos, cu valorile
parametrilor Ra = 4.2 Ω, La = 14.28 mH, ke = km =0.33, J=0.71×10–3 kg·m2, kp=35 V/V.

Fig. 1. Procesul condus. (Preitl et al., 2009)

Cerința 1: Pentru un model discretizat pe stare la o perioadă de eșantionare de 0.01 sec, în condiții de
perturbație nulă, să se calculeze regulatorul liniar după stare optimal (precum și valoarea FC aferente
acestuia) care din orice stare inițială minimizează FC de orizon infinit de timp

J ( x k ) = ∑ x Ti Qx i + u iT Ru i , Q = I 2 , R = 0.1 , folosind algoritmul Policy Iteration în varianta bazată pe
i=k
model. Să se testeze prin simulare acest regulator.

Pași de urmat în vederea soluționării.

1. Pentru PC aferent m.c.c. cunoscut prin H yu (s ) se obține f.d.t. discretizată H yu (z ) pentru Ts = 0.01 sec
folosind metoda r.i.s.t. (cu comanda c2d MATLAB).

2. Pentru H yu (z ) astfel obținut, se obține un model intrare-state-ieșire echivalent utilizând tf2ss din
MATLAB. Vor rezulta matricele MM-ISI de timp discret (ex. [Ad, Bd, Cd, Dd] = tf2ss(num, den)), unde
vectorii coeficienților polinoamelor de la numărătorul și respectiv numitorul f.d.t. H yu (z ) pot fi preluați de
la obiectul de tip f.d.t. de timp discret. Matricele Ad, ..., Dd vor caracteriza modelul pe stare al PC de timp
x k +1 = A d x k + B d u k ,
discret, de forma  .
 yk = C d x k

3. Se verifică faptul că PC este controlabil verificând controlabilitatea perechii ( A d , B d ) folosind funcția


ctrb() din MATLAB. Rangul matricei de controlabilitate trebuie să fie egal cu ordinul PC (=2 pentru
m.c.c.). Dacă PC este controlabil, se trece la pasul următor, altfel problema de proiectare nu are soluție.

4. Se calculează regulatorul optimal după stare K* care verifică


K = arg min J ( x 0 , K ), s.l.
*
x k +1 = A d x k + B d u k , u k = K x k , astfel:
T
K
a) rezolvând de mână în raport cu matricea S (parametrizată S = [a b; c d ] ) ecuația algebrică
matriceală Riccati de forma A dT SA d − S − A Td SB d (R + B Td SB d ) −1 B Td SA d + Q = 0 . Aici, Q și R
sunt matricele de ponderare din enunț.
(
b) cu S calculat anterior rezultă K * = − R + B Td SB d BTd SA d . )−1

c) se verifică soluția calculată de mână cu calculatorul folosind [Kopt,S,E]=dlqr(Ad,Bd,Q,R).


T
Regulatorul optimal u k = K * x k va fi utilizat ca reper (țintă) către care trebuie să conveargă algoritmul
Policy Iteration.
M.-B. Radac, UPT, 2020

5. Se obține vectorul compensator după stare K 0 aferent unui un regulator inițial după stare admisibil
(stabilizant) de forma u k = K T0 x k , alocând polii sistemului închis A d + B d K T0 oriunde în domeniul stabil
aferent discului unitar. Sistemul autonom evoluează conform ecuației de stare x k +1 = ( A d + B d K T0 ) x k .
Pentru aceasta:
a) se aleg doi poli stabili de timp continuu, de exemplu s1 = −10, s 2 = −9 . Acești poli pot fi unii
oarecare atâta timp cât stabilizează sistemul autonom, rolul lor este doar de amorsare a
algoritmului.
b) se calculează polii echivalenți de timp discret z1 = e s1Ts , z 2 = e s2Ts .
c) se parametrizează K 0 = [k 01 , k 02 ]T și se calculează de mână valoarea sa din condiția
det( zI 2 − A d − B d K T0 ) = ( z − z1 )( z − z 2 ) .
d) se verifică soluția calculată de mână cu calculatorul utilizând “K0=place(Ad, Bd, P)”, unde
P = [ z1 , z 2 ]T .

6. La prima iterație a algoritmului Policy Iteration:


a) pe baza regulatorului inițial K 0 se rezolvă de mână ecuația algebrică matriceală
M − Q − K 0 RK T0 − ( A d + B d K T0 )T M ( A d + B d K T0 ) = 0 ,
în raport cu necunoscuta matricea M parametrizată M = [a b; c d ] .
b) se calculează regulatorul îmbunătățit K 1 = −(R + BTd MB d ) −1 B Td M T A d .

7. La o iterație oarecare j = 2, 3,… a algoritmului Policy Iteration:


a) pe baza regulatorului K k −1 se rezolvă ecuația algebrică matriceală
M − Q − K j −1RK Tj−1 − ( A d + B d K Tj −1 ) T M ( A d + B d K Tj −1 ) = 0 ,
în raport cu necunoscuta matricea M parametrizată M = [a b; c d ] .
b) se calculează regulatorul îmbunătățit K j = −( R + B Td MB d ) −1 B Td M T A d .
c) se constată că (după doar câteva iterații) K j converge spre regulatorul optimal K * .
Se alternează câțiva pași a) + b) și se observă evoluția valorii K j . Se recomandă implementarea cu
calculatorul.

8. Se va testa regulatorul optimal după stare folosind schema Simulink din Figura 1 de mai jos. Schema
prevede introducerea unei referințe în schema de reglare cu reacție după stare, ce corespunde
x k +1 = A d x k + B d ( rk + K Tj x k ) . În baza ecuației de ieșire y k = C d x k , deoarece sistemul închis rezultat nu
va avea coeficient de transfer unitar de la referință la ieșire în regim staționar constant, se introduce un
( (
factor de corecție eta, utilizat în schema Simulink la valoarea eta = 1 / C d I 2 − A d − B d K Tj )−1
)
Bd .
M.-B. Radac, UPT, 2020

Fig. 1. Testarea regulatorului liniar după stare proiectat cu algoritmul Policy Iteration.

Observație: Schema de reglare după stare nu mai permite introducerea facilă a perturbației originale din
schema bloc informațională, însă o perturbație echivalentă aditivă pe ieșire poate fi utilizată pentru a testa
capacitatea SRA-x de rejecție a perturbației.

Cerința 2: Pentru un model discretizat pe stare la o perioadă de eșantionare de 0.01 sec, în condiții de
perturbație nulă, să se calculeze regulatorul liniar după stare optimal (precum și valoarea FC aferente
acestuia) care din orice stare inițială minimizează FC de orizont infinit de timp

J ( x k ) = ∑ x Ti Qx i + u iT Ru i , Q = I 2 , R = 0.1 , folosind algoritmul Value Iteration (VI) în varianta fără
i=k
model cunoscut al procesului. Să se testeze prin simulare acest regulator.

Pași de urmat în vederea soluționării

1–4. Pașii 1–4 sunt comuni celor de la Cerința 1, care solicită implementarea Policy Iteration.

5. Se consideră o parametrizare liniară corespunzătoare a FC extinse, de forma


Θ (x k , u k ) = ( x
K 2
1, k x 2
2 ,k
2
u x1,k x 2 ,k
k x1,k u k x 2 ,k u k ) ⋅ (θ1 ...θ 6 ) = Φ ( x k , u k )θ . Se notează lungimea L = 6
T T

a vectorului θ al parametrizării. Regulatorul va fi parametrizat de asemenea liniar, de forma u k = K T x k .

6. Se vor genera/culege tranziții de stare, interacționând cu PC. Acestea vor fi de forma ( x (ki ) , u (ki ) , x (ki+)1 ) . În
acest sens, va fi utilizat modelul de tranziție pe stare x k +1 = A d x k + B d u k , ori în cadrul unui program (cod
.m) ori în Simulink (cu bloc de tip discrete state-space). Acest model nu va fi folosit la calculul propriu-zis
al regulatorului după stare cu algoritmul VI.
În acest sens, pot fi utilizate comenzi provenite dintr-o secvență de valori aleatorii {u 0 , u1 ,...} ce
vor genera –pornind dintr-o stare inițială oarecare (aleatorie) x 0 – un lanț de tranziții ale stării de forma
M.-B. Radac, UPT, 2020

x 0 , u 0 , x1 , u1 , x 2 , u 2 , x 3 ,... . Tranzițiile de stare vor fi ( x (k1) , u (k1) , x (k1+)1 ) = ( x 0 , u 0 , x1 ) ,


( x (k2 ) , u (k2 ) , x (k2+)1 ) = ( x1 , u1 , x 2 ),... .

7. Se inițializează un regulator K 0 la orice valoare (de exemplu vectorul paote fi completat cu valoarea 0
sau cu valoarea 1 peste tot, sau cu valori aleatorii). Acest regulator inițial nu trebuie să fie admisibil (spre
deosebire de cazul algoritmului PI). Se inițializează θ K 0 la orice valoare, similar cu K 0 .

8. La o iterație oarecare j a algoritmului VI:


a) Se îmbunătățește estimata FC extinse aferente regulatorului K j −1 de la iterația anterioară,
Kj
rezolvând în raport cu θ în sensul celor mai mici pătrate sistemul supradeterminat de ecuații
 Φ (x , u ) 
T (1) (1)  x (1)T Qx (1) + u (1)T Ru (1) + ΦT (x (1) , u (1) = K T x (1) )θ K j−1 
 k
 K  k
k k k k k +1 k +1 j −1 k +1 
 ... θ j =  ... .
 T (N ) (N )   
 Φ (x k , u k )   x k( N )T Qx (kN ) + u (kN )T Ru (kN ) + ΦT ( x (kN+1) , u (kN+1) = K Tj−1x (kN+1) )θ K j−1 
 
K
Acest sistem de ecuații este de forma Xθ j = Y iar liniile matricei X a coeficienților și respectiv a
vectorului coloană Y al termenilor liberi trebuie calculate pe rând, din tranzițiile de stare și din
K
valorile K j −1 și θ j −1 . Este necesar un număr N de minim L = 6 tranziții de stare pentru ca
sistemul de ecuații să aibă soluție unică. Sistemele supradeterminate se rezolvă cel mai ușor prin
metoda pseudoinversării matriceale, adică θ K j = pinv( X)Y .
T
 K Kj

b) Se calculează regulatorul îmbunătățit pe baza formulei K j = − θ 5 θ6
j

 , utilizând
K  2θ j
2θ 3
Kj 
 3 
Kj
componentele vectorului θ calculat mai sus.

Se alternează câțiva pași a) + b) și se observă evoluția valorii K j . Se recomandă implementarea cu


calculatorul.

9. Se va testa regulatorul optimal după stare K j folosind aceeași schemă Simulink și aceleași considerente
de introducere a referinței (și a factorului de corecție al coeficientului de transfer) utilizate la Pasul 8 al
aplicării algoritmului PI (a se vedea și Fig. 1).

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