Sunteți pe pagina 1din 8

SEMINARII 6-7

STABILIZAREA SISTEMELOR DINAMICE LINIARE


PRIN REACŢIE DUPĂ STARE

1. Reacţia după stare


Se consideră un proces tehnologic descris de modelul de stare:
 x  Ax  Bu n m p
 , x   ,u   , y   (1)
 y  Cx  Du
Automatizarea procesului constă în construirea unui sistem decizional adecvat,
genererator al comenzilor u(t) care produc o anumită evoluţie a sistemului. Această
evoluţie se defineşte în sensul obţinerii unor traiectorii temporale ale ieşirilor
tehnologice (reglate), exprimate prin vectorul y(t), căt mai apropiate de traiectoriile
impuse tehnologic prin vectorul referinţă v(t). Pentru procesele reprezentate în forma
intrare - stare - ieşire (modelul(1)), cel mai simplu algoritm decizional constă în
utilizarea unei reacţii proporţionale după starea sistemului. Legea de reglare, de tipul
reacţie după stare, este de forma:
p mxn mxp
u   Kx  Mv , v   , K   ,M   (2)
Structura sistemului automat obţinut este reprezentată în figura 1.

v + u x’=Ax+Bu y
M y=Cx+Du
r r r
_
r x
H
r
Regulator Proces reglat

Figura 1
Înlocuind (2) în (1) se obţine modelul de stare al sistemului automat:
 x  ( A  BK ) x  BMv
 (3)
 y  (C  DK ) x  DMv
Se observă ca utilizarea reacţiei după stare permite modificarea localizării valorilor
proprii ale sistemului (valorile proprii asociate matricii de evoluţie, A, a procesului
reglat sunt translate în poziţiile determinate de valorile proprii asociate matricii de
evoluţie A-BK a sistemului automat). Acest lucru este benefic în cazul în care
procesul reglat este instabil sau în cazul în care acesta este stabil dar configuraţia
spectrului matricii A este nefavorabilă, implicând o evoluţie neconvenabilă în regim
tranzitoriu.
Alocarea completă a valorilor proprii ale sistemului automat este posibilă numai în
situaţia în care procesul este complet controlabil. Deducerea matricii K se realizează
prin rezolvarea ecuaţiei de alocare:

 
n
det( sI n  ( A  BK ))   s  i . (4)
i 1
unde i sunt valorile proprii alocate sistemului automat. Alegerea acestora se face, în
general, impunând sistemului automat o comportare echivalentă cu cea a unui sistem
de ordinul II, caracterizată de un răspuns indicial cu o anumită suprareglare  şi un
anumit timp de răspuns tr:
1 / 2
    
2
 1, 2   n  i n 2 
1   , 1    1 +   , n 
4
  ln(0.01)   tr  . (5)
 
 3,...,n  5 n
În cazul în care m=1, ecuaţia (4) se reduce la un sistem de n ecuaţii (obţinute prin
identificarea coeficienţilor polinomiali ai celor doi termeni) cu n necunoscute
(elementele matricii K). Pentru m>1 există o (m-1)n nedeterminare a sistemului de
ecuaţii (se pot alege mai multe soluţii K, toate producând acelaşi efect de alocare a
valorilor proprii).
Pentru m=1, în cazul în care ordinul n al sistemului este ridicat, soluţia ecuaţiei de
alocare (4) poate fi determinată prin aplicarea următorului algoritm:
- se calculează matricea de controlabilitate a stării şi se determină wn ca fiind ultima
linie a inversei matricii de controlabilitate;
- se determină matricea transformării de stare care aduce sistemul reglat la forma
canonică controlabilă:
 wn 
 w A 
P n  (6)
 ... 
 n 1 
 wn A 
- se calculează polinomul caracteristic al sistemului reglat şi polinomul valorilor
proprii alocate:
( s )  det( sI n  A)  s n   n 1 s n 1  ...   1 s   0 (7)

 0 ( s )   s   i   s n  a n 1 s n 1  ...  a1 s  a 0 .
n
(8)
i 1
- se determină matricea K a legii de reacţie după stare conform:
~
K  KP (9)
unde:
K  a 0   0 a1  1 ... a n 1   n 1 
~
(10)
Pentru sistemele de stare incomplet controlabilă este posibilă doar o alocare parţială
a valorilor proprii ale sistemului automat, fiind modificate (prin utilizarea legii de
reglare (2)) numai valorile proprii asociate subsistemului complet controlabil.
Zerourile de decuplare la intrare ale procesului (valorile proprii ale subsistemului
necontrolabil) sunt invariante în raport cu legea de reglare după stare transferându-se
ca atare sistemului automat.
În ceea ce priveşte calculul matricii M, aceasta se va determina din considerentul
obţinerii unei valori impuse pentru factorul static de amplificare al sistemului
automat, G0(0).
G 0 (0)  C(BK  A) 1 BM (11)
Deoarece, în majoritatea situaţiilor, se doreşte ca ieşirea (mărimea reglată) să egaleze
în regim staţionar valoarea (constantă) a referinţei impuse, factorul static de
amplificare al buclei automate se impune de valoare unitară; în contextul în care
numărul variabilelor de intrare este identic cu numărul variabilelor de ieşire (m=p),
relaţia (11), cu G0(0)=In, devine:
M  (C(BK  A) 1 B) 1 (12)

2. Utilizarea funcţiilor MATLAB pentru sinteza reacţiei după


stare
Pentru sinteza matricii K se poate folosi comanda MATLAB:
>>K=acker(A,B,vp0)
unde vp0 este un vector având ca elemente valorile proprii alocate sistemului
automat.
De asemenea, pentru procesele monovariabile, se poate folosi algoritmul menţionat
în capitolul anterior constând în utilizarea următoarelor comenzi:
- pentru calculul matricii transformării de stare:
>>CO=ctrb(A,B);ICO=inv(CO);wn=ICO(n,:);P=[ wn; wn*A; wn*A^2;..; wn*A^(n-
1)]
unde CO, respectiv ICO sunt matricea de controlabilitate şi inversa acesteia
(obtenabilă numai în cazul în care procesul este de stare complet controlabilă).
- pentru determinarea vectorilor coeficienţilor polinomiali asociaţi polinoamelor
caracteristice (s) şi 0(s):
>>d=poly(A)
>>d0=poly(vp0)
- pentru sinteza matricii K:
>>kt=d0-d;kt=kt(2:length(kt));kt=rot90(rot90(kt));K=kt*P;
În fine, o a treia metodă - cea analitică, se poate utiliza pentru determinarea matricii
K (metoda presupune rezolvarea sistemului de ecuaţii derivat din identificarea
coeficienţilor polinomiali corespunzând termenilor relaţiei (4)).
Matricea M se determină cu ajutorul relaţiei de calcul (12) folosind operaţii uzuale
de calcul matricial.

3. Exerciţii rezolvate; probleme propuse


Exerciţiul 1
Se consideră un pod rulant alcătuit dintr-un cărucior mobil de care este suspendat,
prin intermediul unui cablu, o anumită sarcină. Schema funcţional constructivă a
podului rulant este prezentată în figura 2. Pentru simplitatea analizei acestui sistem
se presupune că toate mişcările au loc în planul figurii; de asemenea se neglijează
frecările din sistem şi se presupune că masa sarcinii, respectiv lungimea cablului sunt
constante. Mărimea reglată (de ieşire) este poziţia/deplasarea orizontală a
încărcăturii. Această deplasare este produsă de mişcarea căruciorului sub influenţa
forţei de tracţiune F. La rândul ei această forţă este generată de către un motor de
curent continuu (nefigurat), comandat de tensiunea u aplicată înfăşurării rotorice, ce
dezvoltă un anumit cuplu transmis roţii motoare a căruciorului prin intermediul unui
reductor mecanic.
m F


z
x
T

w=y M

Mg
Figura 2
a) Sã se construiascã modelul intrare - stare - ieşire al sistemului. Se vor folosi
urmãtoarele date numerice: masa cãruciorului m=1000 kg, masa sarcinii M=1000 kg,
lungimea cablului l=3 m, acceleraţia gravitaţionalã g=10 m/s2. De asemenea se va
considera cã dinamicã ansamblului motor - reductor este de ordinul întâi, avãnd
constanta de timp T1=1 s, respectiv factorul de amplificare k=10 N/V.
b) Sã se simuleze comportarea podului rulant în situaţia în care tensiunea de
alimentare a indusului motorului de angrenare suferã variaţia în timp descrisã de:
100 V t  [ 0,2 )
u( t )  
 0 V t  [ 2,5]
c) Să se proiecteze legea de reglare de tip reacţie după stare care asigură o deplasare
fără oscilaţii a sarcinii în plan orizontal şi o poziţionare precisă a acesteia.
d) Să se simuleze comportarea sistemului automat în situaţia în care se impune o
traiectorie de referinţă de forma v(t)=3(t).

a) Pentru modelarea podului rulant se utilizează ecuaţiile de bilanţ ale forţelor


corespunzând următoarelor mişcări:
- mişcarea căruciorului:
mx  F  T sin 
- mişcarea sarcinii în plan orizontal:
Mw   T sin 
- mişcarea sarcinii în plan vertical:
Mz  Mg  T cos 
unde T reprezintă valoarea tensiunii în cablu.
Descrierea mişcării sarcinii suspendate este mult mai comodă de realizat în
coordonate polare (utilizând poziţia unghiulară  în care se găseşte cablul de
susţinere în raport cu verticala). Pentru această se explicitează poziţiile sarcinii
suspendate în plan orizontal, w, respectiv pe verticală, z, în funcţie de poziţia
unghiulară :
w  x  l sin , z  l cos 
Utilizând aceste relaţii geometrice şi eliminând variabila T se obţin următoarele
ecuaţii ce descriu mişcarea podului rulant:
mx  Mx  Ml cos   Ml 2 sin   F
Mx cos   Ml  Mg sin   0
2
În cazul unghiurilor  mici se pot face aproximaţiile sin    , cos   1, &  0 ,
obţinându-se:
(m  M ) x  Ml  F
x  l  g  0
y  w  x  l
La aceste ecuaţii se adaugă ecuaţia ce descrie dinamica ansamblului motor -
reductor:
1 k
F   F  u
T1 T1
Conform acestor ecuaţii se obţine reprezentarea intrare - stare - ieşire, ce utilizează
vectorul de stare x 
x 1 x 2 x 3 x4
T
5  
 x x&  & F 
T

 x1  0 1 0 0 0   x1   0 
  
 x 2  0 0 Mg m 0 1 m   x 2   0 
 x 3   0 0 0 1 0   x 3    0 u
      
 x 4  0 0  g (1  M m) l 0  1 (ml )  x 4   0 
 x  0 0  1 T1   x 5  k T1 
 5  0 0

  x1 
 x 
  2
 y  1 0 l 0 0 x 3 
  
 x4 
 x5 
  
respectiv:
 x1  0 1 0 0 0   x1   0 
   3 x   0 
 x 2  0 0 10 0 10  2   
 x 3   0 0 0 1 0   x 3    0 u
   3    
 x 4  0 0  20 / 3 0  10 / 3  x 4   0 
 x  0  1   x 5  10
 5  0 0 0

  x1 
 x 
  2
 y  1 0 3 0 0 x 3 
  
 x4 
  x5 
 

b) Sistemul se defineşte în MATLAB sub forma setului de variabile:


» a=[0,1,0,0,0;0,0,10,0,0.001;0,0,0,1,0;0,0,-20/3,0,-0.001/3;0,0,0,0,1];
» b=[0;0;0;0;10];c=[1,0,3,0,0];d=[0];
şi are valorile proprii:
» vp=eig(a) (rezultat  1   2  0,  3, 4  i2.582,  5  1 )
Valoarea proprie 0 este de multiplicitate algebrică 2 şi multiplicitate geometrică 1 -
calculată cu:
» 5-rank(0*eye(5)-a))
În consecinţa podul rulant este instabil.
Pentru simularea răspunsului liber al sistemului se procedează astfel:
- funcţie de valorile proprii se alege timpul de simulare:
» t=0:0.1:5
- se defineşte evoluţia în timp a comenzii:
» u=[100*ones(20,1);zeros(31,1)];
- se realizează simularea răspunsului forţat al stemului:
» [y,x]=lsim(a,b,c,d,u,t);
obţinându-se evoluţiile stărilor şi ieşirii din figura 3
8 0.08

7 0.06

6 0.04

5 0.02

4 0

3 -0.02

2 -0.04

1 -0.06

0 -0.08
0 2 4 6 8 10 0 2 4 6 8 10

a) evoluţia stărilor x1,x2 (mişcarea căruciorului) b) evoluţia sţarilor x3,x4


(rotaţia pendulului)
900
9
800
8
700
7
600
6
500
5
400
4
300
3
200
2
100 1

0 0
0 2 4 6 8 10 0 2 4 6 8 10

c) evoluţia stării x5 (forţa de tracţiune)


d) evoluţia ieşirii (poziţia orizontală a sărcinii)
Figura 3
Se observă că datorită instabilitătii sistemului se produce o deplasare orizontală
necontrolată, continuă, a sarcinii chiar dacă alimentarea motorului a fost întreruptă;
suplimentar se produc oscilaţii ale corpului suspendat în jurul verticalei. Această
comportare instabilă este cauzată de neglijarea frecărilor din sistem. În prezenţa
acestor frecări sistemul devine stabil dar deplasarea sarcinii prin comenzi manuale
(regimuri de accelerare, turaţie constantă, respectiv frânare ale motorului) se
realizează cu dificultate; de asemenea nu pot fi eliminate oscilaţiile sarcinii faţa de
verticală.
c) Pentru stabilizarea sistemului se va utiliza reacţia după stare, de forma (2), în care
matricile K şi M sunt calculate astfel încât sistemul automat să aibă polii -1 (de
multiplicitate 5) şi o amplificare unitară în regim staţionar. Alocarea acestor valori
proprii reale pentru sistemul automat se face din considerentul obţinerii unor
regimuri tranzitorii fără suprareglare, cu un timp de răspuns suficient de mic şi fără
o solicitare excesivă a mărimii de comandă (constanta de timp a motorului se
păstrează la valoarea 1s).
-în prealabil se testează controlabilitatea procesului:
» co=ctrb(a,b);rank(co) (rezultat: 5 - sistemul este complet controlabil)
-se defineşte vectorul valorilor proprii alocate:
» vp0=[-1;-1;-1;-1;-1]
- se construieşte matricea transformării de stare:
» ico=inv(co);wn=ico(5,:);P=[ wn; wn*a; wn*a^2; wn*a^3; wn*a^4];
- se definesc polinomul caracteristic al procesului şi polinomul caracteristic dorit al
sistemului automat:
» d=poly(a);d0=poly(vp0);
- se calculează matricea K:
» kt=d0-d;kt=kt(2:length(kt));kt=rot90(rot90(kt));K=kt*P;
obţinându-se K=[30 150 7090 -550 0.4]
Un rezultat similar se poate determina cu ajutorul comenzii:
» K=acker(a,b,vp0)
-se calculează matricea M:
» M=inv(c*inv(b*K-a)*b) (rezultat M=30)
Pentru simularea sistemului automat se folosesc comenzile:
» t=0:0.1:15;v=,3*ones(length(t),1);
» [y,x]=lsim(a-b*K,b*M,c,0,v,t);
Evoluţiile stărilor respectiv ieşirii sistemului automat sunt reprezentate în figura 4.
Suplimentar este reprezentată grafic şi evoluţia comenzii, evoluţie determinată cu:
» u=M*v-(K*x')';
3 0.02

2.5
0.01

2
0

1.5

-0.01
1

-0.02
0.5

0 -0.03
0 5 10 15 0 5 10 15

a) evoluţia stărilor x1,x2 (mişcarea căruciorului)


b) evoluţia sţarilor x3,x4 (rotaţia pendulului)
500

400

300 3

200 2.5

100
2

0
u 1.5

-100
1

-200
0.5

-300
0 5 10 15 0
0 5 10 15

c) evoluţia stării x5 (forţa de tracţiune) d) evoluţia ieşirii (poziţia orizontală a


sărcinii)
Figura 4
Se observă din evoluţiile variabilelor de stare că reacţia după stare are un efect de
stabilizare. Mai mult regimul tranzitoriu al ieşirii către poziţia impusă prin mărimea
de referinţă respectă cerinţa de obţinere a unei evoluţii aperiodice, cu suprareglare
nulă. Pentru obţinerea aestei comportării, mărimea de comandă suferă următoarele
variaţii: o valoare iniţială mare (aproximativ 100V) pentru dezvoltarea unui cuplu de
pornire suficient de mare, un regim oscilant pozitiv ce determină deplasarea
orizontală accelerată a podului rulant cu o tendinţa de compensare a oscilaţiilor
verticale ale corpului suspendat, respectiv un regim final de frânare dinamică
(tensiunea de alimentare şi implicit cuplul motor de valori negative) pentru a produce
oprirea podului rulant în poziţia prescrisă.
În fine trebuie menţionat că legea de reglare utilizează pentru calculul comenzii
valorile măsurate ale variabilelor de stare (deplasare liniară, viteză liniară, deplasare
unghiulară, viteză unghiulară, respectiv forţă). Acest lucru presupune utilizarea unor
traductoare de măsură adecvate. In problema de faţă se presupune că aceste
traductoare sunt disponibile şi realizează, fiecare dintre ele, un transfer proporţional
unitar.

Exerciţiul 2
Se consideră sistemul:
 3 0 0 1

 x   5 1 3  x  0u
 

  0 0  2 0
 y  0 1 0x
a) Să se determine o lege de reglare după stare care stabilizează sistemul şi asigură
pentru sistemul automat următoarele performanţe:   5%, tr  6 s, G0(0)=1.
c) Să se simuleze răspunsul indicial al sistemului automat.
a) Se definesc ca variabile MATLAB matricile sistemului:
» a=[3,0,0;-5,1,3;0,0,-2];b=[1;0;0];c=[0,1,0];d=0;
Valorile proprii ale procesului sunt:
» vp=eig(a) (rezultat 1  1, 2  3, 3  2 )
Conform rezultatului obţinut sistemul este instabil intern.
Matricea de controlabilitate este de rang 2 - calculat cu comanda:
» rank(ctrb(a,b))
ceea ce înseamnă că sistemul este parţial controlabil. Subsistemul controlabil (şi
observabil) care realizează efectiv transferul intrare - ieşire este:
» [a1,b1,c1,d1]=minreal(a,b,c,d)
având valorile proprii:
» vp1=eig(a1) (rezultat 1  1, 2  3 )
Rezultă că zeroul de decuplare la intrare al procesului, care nu poate fi influenţat ca
valoare de către reacţia după stare, transferându-se ca zerou de decuplare sistemului
automat, este  3  2 . În aceste circumstanţe, dată fiind poziţia acestui zerou de
decuplare în interiorul domeniului de stabilitate, reacţia după stare poate produce
stabilizarea sistemului prin realocarea celorlalte valori proprii (instabile). Se observă
de asemenea că modelul matematic al procesului este prezentat în forma canonică
controlabilă starea x3 fiind starea necontrolabilă.
Utilizând o matrice K de forma K=[k1 k2 k3] matricea de evoluţie a sistemului
automat devine:
3  k1  k 2  k3 
A  BK    5 1 3 
 0 0  2 
şi are polinomul caracteristic:
 
 0 ( s )  det( sI 3  ( A  BK ))  s  2  s 2  (k1  4) s  (3  k1  5k 2 )  ( s  2) 0 ( s )
Se remarcă faptul că elementul k3 al matricii K nu influenţează polinomul
caracteristic al sistemului automat; de asemenea una dintre valorile proprii al
sistemului nou obţinut este -2.
Cele două valori proprii alocate sistemului automat se aleg în conformitate cu
performanţele de regim tranzitoriu impuse utilizându-se relaţiile (5):
» sigma=5;zeta=sqrt(1/(1+(pi/log(0.01*sigma))^2)) (rezultat =0.69)
» tr=6;omega=4/(tr*zeta) (rezultat =0.966)
»i=sqrt(-1);lambda1=-zeta*omega+i*omega*sqrt(1-zeta^2);lambda2=conj(lambda1);
Polinomul de ordinul II ce are ca rădăcini aceste valori proprii este:
2
» vp=[lambda1;lambda2]; d=poly(vp) (rezultat d ( s )  s  1.3333 s  0.9332 )
Ecuaţia de alocare devine în acest caz:
0  ( s )  d ( s )  s  ( k1  4 ) s  ( 3  k1  5k 2 )  s  1.3333 s  0.9332
2 2

Soluţia acestei ecuaţii este: k1=5.3333, k2=-0.6533.


Corespunzător matricea K este:
» K=[5.3333 -0.65333 0]
ultimul element al matricii putând lua orice valoare (pentru simplificarea legii de
reglare s-a considerat k3=0).
Matricea M se calculează cu comanda:
» M=inv(c*inv(b*K-a)*b) (rezultat M=-0.1866)
c) Simularea răspunsului sistemului se realizează utilizând comenzile:
» t=0:0.1:10;
» [y,x]=step(a-b*K,b*M,c,d,1 t);
» u=M*ones(length(t),1)-(K*x')';
Rezultatele sunt specificate în figura 5:
1.2
0.2

0.1 1
0
0.8
-0.1

-0.2
0.6
-0.3

-0.4 0.4

-0.5
0.2
-0.6

-0.7 0
0 2 4 6 8 10 0 2 4 6 8 10

a) evoluţia comenzii b) evoluţia ieşirii


Figura 5
Performanţele obţinute pentru sistemul automat sunt:
» sigma=100*(max(y)-1)/1 (rezultat 5%)
respectiv timpul de răspuns este de aproximativ 4.5 s.
Se remarcă faptul că valoarea proprie -2, ce nu satisface condiţia de îndepărtare faţa
de valorile proprii dominante, nu influenţează performanţele de regim tranzitoriu ale
sistemului automat deeoarece nu se regăseşte în mulţimea polilor sistemului (este
zerou de decuplare).

Problema 1
Fie sistemul dinamic liniar descris prin:
 1 0  1
x    x   u
 2  2  0 
y  1 bx , b
a) să se studieze posibilitatea de a aloca orice set de valori proprii ale sistemului
automat prin utilizarea unei reacţii liniare după stare.
b) este posibilă alocarea valorior proprii {-4,-5} pentru sistemul automat prin
utilizarea unei reacţii liniare după stare?
c) Să se determine legea de reglare după stare care asigură pentru sistemul
automat valorile proprii {1,2} , respectiv {4,4} .

Problema 2
Se consideră sistemul dinamic liniar din figura 6 reprezentând modelul simplificat al
unei instalaţii tehnologice:

U(s) + 1 X3(s) 1 X2(s) a X1(s)=Y(s)


1+sT3 1+sT2 1+sT1
_

Figura 6
a) Folosind drept componente ale stării mărimile x1,x2,x3 să se construiască modelul
intrare - stare - ieşire al sistemului. Se va considera cazul numeric: R=0.5, a=800,
T1=20, T2=5, T3=2.
b) Să se determine legea de reglare după stare care asigură pentru sistemul automat o
amplificare statică unitară şi regimuri tranzitorii cu suprareglare maximă 5%,
respectiv un timp de răspuns de 10 s.
c) Să se simuleze răspunsul indicial al sistemului automat obţinut, precizând şi
evoluţia în timp a comenzii.

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