Sunteți pe pagina 1din 19

127

Capitolul 9
Controlabilitate. Lege de comand dup stare
Coninut
Scopul capitolului ............................................................................................................. 127
1. Controlabilitate ........................................................................................................... 127
2. Alocabilitate ................................................................................................................ 127
3. Lege de comand dup stare ..................................................................................... 128
3.1. Etapele algoritmului Ackermann ............................................................. 129
Aplicaii rezolvate ............................................................................................................. 130
Aplicaie cerute ........................................................................................................ 144
Funcii Matlab utile ................................................................................................. 145

Scopul capitolului

n lucrare se prezint modul de aplicare a unei legi de comand n scopul stabilizrii
sistemelor instabile i a mbuntirii performanelor sistemului rezultant. Pentru calculul
legii de comand sunt necesare cunoaterea (msurarea) mrimilor de stare ale sistemului i
considerarea mrimii de comand u, astfel nct aceasta s corespund cu cea trimis ctre
proces. De asemenea, este necesar construirea modelului procesului astfel nct s
corespund cu bun aproximaie procesului real, fapt ce presupune o nelegere i
interpretarea ct mai corecte.
1. Controlabilitate
Def: Un sistem este controlabil dac pentru orice stare x dat, exist o comand u care face
ca ( ) x t x = pornind dintr-o stare iniial 0
0
= x .
Teorem (testarea controlabilittii): Fiind dat un sistem (A,B,C), acesta este controlabil
dac rang[R]=n, unde n este dimensiunea sistemului (a matricei A).
[ ] B A B A B A B R
n
=
1 2
L - matricea de controlabilitate
Teorema (criteriul Popov): O pereche (A,B) este controlabil dac i numai dac:
[ ] ( ) A n AB I rang = , .
2. Alocabilitate
Def.: O pereche (A,B) se numete alocabil dac pentru orice mulime complex
simetric exist o matrice de reacie dup stare
m n
K

R , astfel nct:
( ) = K B A
Teorem: Un sistem este alocabil dac i numai dac este controlabil.
Capitolul 9
128

3. Lege de comand dup stare
Toate metodele de proiectare n spaiul strilor se bazeaz pe principiul legii de comand
dup stare. Prin aplicarea unei legi de comand dup stare se poate obine att stabilizarea
sistemelor (dac erau iniial instabile) ct i mbuntirea performanelor sistemului
rezultant prin alegerea valorilor proprii corespunztoare ale acestuia. Operaia de stabilizare
implic de fapt impunerea valorilor proprii ale sistemului global n domeniul de stabilitate,
adic: ( ) =
K
A (unde { }
n
= ..., , ,
2 1
este mulimea valorilor proprii impuse,
dorite).
Astfel, se va construi o legea de comand dup stare cu aciune asupra mrimilor de stare
ale sistemului, ca o dependena de forma:
x K u = (9.1)
unde:
m n
K

R este matricea de reacie dup
stare,
x starea sistemului
n
x R ,
u matricea de comand a sistemului
m
u R K
( ) C , B , A
n
R x
Fig. 9. 1 Lege de comand dup stare
Ecuaiile sistemului n cazul general :

=
=
+ =
x K u
x C y
u B x A x&
crora li s-a aplicat relaia (9.1)
conduc la un sistem rezultant descris de relaiile:

( )
( )
( )
( )
( ) ( )

=
=

D
C

0
0
x K B A
x e
t x
x C y
u K B A x
t
t K B A
&

Note:
1) Se determin matricea legii de comand K astfel nct spectrul matricei echivalente s fie
identic cu mulimea valorilor proprii impuse, ( ) = K B A .
2) Pentru cazul particular SISO, m=1 => x k u
T
= ,
n
k

1
R , sistemul rezultant este:

( )

=
=
x c y
u k b A x
T
T
&

Dac perechea ( ) b A, este controlabil, se poate gsi o lege de comand care s impun
(aloce) dup dorin valorile proprii ale matricei sistemului ( )
T
bk A .
Se va utiliza notaia: ( ) = , , b A aloc k
T
pentru a desemna o procedur care conduce la
obinerea unui vector
T
k = ] ... [
2 1 n
k k k , astfel nct spectrul matricei ( )
T
bk A s fie
Controlabilitate. Lege de comand dup stare
129

exact { }
n
= ..., , ,
2 1
. Mulimea este format din elemente reale sau complex
conjugate.
u

y

( ) C B , A ,

n
k
1
k
2
k
_
_
. . .
M
1
x
2
x
n
x
_

Fig. 9.2 Legea de comand dup stare pentru cazul m=1
Calculul vectorului
T
k , respectiv al
matricei K, de reacie
se poate face
aplicnd un algoritm
destinat alocrii
valorilor proprii, cel
mai utilizat fiind
algoritmul
Ackermann.
3.1. Etapele algoritmului Ackermann
Exemplificare pentru cazul particular SISO, n care: b B ,
T
k k iar matricea de
reacie dup stare este urmtoarea:
( ) A q k
d
T T
= (9.2.1)
Varianta de implementare rapid:
( ) ( )
0 1
1
1
... + + + + = =

A A A q A q k
n
n
n T
d
T T
(9.2.2)
Pas I: Stabilirea mrimilor de intrare: A, b, } ..., , , {
n 2 1
=
Pas II: Verificarea controlabilitii sistemului:
o se construiete matricea de controlabilitate: [ ] b A b A b R
n
=
1
L
o se verific dac sistemul este controlabil, adic dac determinantul matricei
R este nenul, n acest caz, rangul matricei R este egal cu n dimensiunea
sistemului. Doar dac sistemul este controlabil se trece la etapa urmtoare, altfel
algoritmul se oprete nefiind posibil determinarea unei legi de comand dup
stare.
Pas III:
a) Construirea polinomului caracteristic dorit, ( )
d
utiliznd elementele mulimii :
( ) ( ) ( ) ( )
0 1
1
1 2 1
... + + + + = =

n
n
n
n d
L
unde
0 1 1 n


, ,..., sunt coeficienii polinomului caracteristic dorit pentru sistemul
rezultant.
Capitolul 9
130

b) Rezolvarea ecuaiei (cu necunoscuta q): [ ] 1 0 ... 0 = R q
T
,
(
(
(

=
1
0
M q R
T
=>
[ ]
n
T
q q q q L
2 1
= => [ ] [ ] 1 0 ... 0
1 2
=

b A b A b A b q
n T
L
Pas IV: Calculul vectorului legii de comand
T
k . Acesta se obine prin aranjare sub form
de produse A q
T
, ...,
n T
A q i apoi prin nmulirea acestora cu coeficientul corespunztor
al polinomului caracteristic dorit.
[ ] L =
T
q
0

[ ] L = A q
T

1

M M
[ ] L =
n T
A q 1
n T k T
n
k
k
T
A q A q k + =

=

1
1
1

Pas V: Verificarea calculelor (opional):
o se calculeaz matricea echivalent a sistemului global: ( )
T
K
bk A A =
o se verific soluiile ecuaiei ( ) 0 det =
K
A I , care trebuie s fie valorile
proprii impuse (mulimea ).

Not n cazul particular n care perechea (A, b) a sistemului comandat este ntr-o form
standard controlabil, pentru determinarea
T
k se poate aplica o relaie simpl, de forma:
[ ] [ ]
0 1 1
1
0
'
1
'
1
... ... =
n n
T
k (9.2)
unde cu 1 ,..., 0 ,
'
= n i
i
s-au notat coeficienii polinomului caracteristic dorit, iar cu
1 ,..., 0 , = n i
i
- coeficienii polinomului caracteristic al sistemului controlat, adic
coeficienii ultimei linii din matricea A, cu semn schimbat.

Aplicaii rezolvate

A.9.1 Un proces cu timp continuu are urmtoarea reprezentare n spaiul strilor:

(

=
(

=
2
2
,
0 1
1 0
b A , [ ] 0 1 =
T
c
Controlabilitate. Lege de comand dup stare
131

Se cere s se calculeze analitic i numeric o lege de comand dup stare care plaseaz
valorile proprii ale sistemului n { } 1 , 1 = .
Soluie:
Calcul analitic
Rezolvare 1. Se aplic algoritmul de alocare (Ackermann) perechii (A,b). Urmnd paii
descrii la paragraful 2.3.1 i cu valorile proprii dorite { } 1 , 1 = se calculeaz vectorul
legii de comand
T
k , astfel:
Pas I: Stabilirea mrimilor de intrare: A, b,
Pas II: Verificarea controlabilitii sistemului:
o Se construiete matricea de controlabilitate:
(

=
2 2
2 2
R
o Se verific dac sistemul este controlabil:
R=[2 2;2 -2]
R =
2 2
2 -2
det(R)
ans =
-8
rang=rank(R)
rang =
2
Deoarece sistemul este controlabil se trece la etapa urmtoare.
Pas III:
2. Construirea polinomului caracteristic dorit, ( )
d
utiliznd elementele mulimii :
s = => ( ) ( )( ) 1 2 1 1
2
+ + = + + = s s s s s
d

Rezolvarea ecuaiei (cu necunoscuta q):
(

=
1
0
q R
T
=>
(

=
(

1
0
2 2
2 2
2
1
q
q
=>
(
(
(

=
(

=
4
1
4
1
2
1
q
q
q
Pas IV: Calculul vectorului legii de comand, utiliznd relaiile:
[ ] 1 4 / 1 4 / 1 =
T
q
[ ] 2 4 / 1 4 / 1 = A q
T

[ ] 1 4 / 1 4 / 1
2
= A q
T

Capitolul 9
132


2
1
2
1
(

=
T
k obinut prin nmulirea cu coeficienii polinomului caracteristic

Calcul utiliznd Matlab
A = [0 1;-1 0];
b = [2; 2];
R = ctrb(A,b)
R =
2 2
2 -2
rang=rank(R)
rang =
2
Lambda = [-1 -1]; % valorile proprii dorite
k = acker(A,b,Lambda) % apelare algoritm Ackermann
k =
0.5000 0.5000
A.9.2. Se cere s construiasc o lege de comand dup stare care plaseaz valorile proprii
ale sistemului: [ ] 0 1 ,
0
100
,
101 1
100 0
=
(

=
(

=
T
c b A , n { } 2 , 1 = .
Soluie: Se aplic algoritmul de alocare (Ackermann) perechii ( ) b , A i cu valorile proprii
dorite { } 2 , 1 . Se calculeaz:
polinomul caracteristic dorit: ( ) = s
d
2 3
2
+ + s s

matricea de controlabilitate:

[ ]
(

= =
100 0
0 100
b A b R =>
(

=
1
0
q R
T
=> [ ] 100 / 1 0 =
T
q

>> R = ctrb(A,b)
R =
100 0
0 100
>> rang=rank(R)
rang =
2
vectorul legii de comand
[ ] 100 / 1 0 =
T
q 2
[ ] 100 / 101 100 / 1 =
T T
A q 3
Controlabilitate. Lege de comand dup stare
133

[ ] 100 / 101 1 100 / 101
2 2
+ =
T T
A q 1
] 98 100 / 98 [ =
T
k

Calcul utiliznd Matlab

>> A=[0 -100;1 -101];
>> b=[100; 0];
>> Lambda =[-1 -2]; % valorile proprii dorite
>> kT=acker(A,b, Lambda) % apelare algoritm Ackermann

kT =
-0.9800 98.0000

A.9.3. Un proces cu timp discret are urmtoarea reprezentare n spaiul strilor:
,
2 / 1
2 / 1
,
1 1
1 0
(

=
(


= b A [ ] 0 1 =
T
c
Se cere s se calculeze analitic i numeric o lege de comand dup stare care plaseaz
valorile proprii ale sistemului n zona de stabilitate dat de mulimea: { } 0 , 0 = .
Soluie: Se calculeaz vectorul legii de comand, urmnd paii algoritmului Ackermann:
Pas I: Stabilirea mrimilor de intrare: A, b,
Pas II: Verificarea controlabilitii sistemului:
o se construiete matricea de controlabilitate: [ ]
(


= =
1 2 / 1
2 / 1 2 / 1
b A b R
o se verific dac sistemul este controlabil:
>> R = [1/2 -1/2; 1/2 1]
R =
0.5000 -0.5000
0.5000 1.0000
>> det(R)
ans =
0.7500
>> rang=rank(R)
rang =
2
Sistemul este controlabil i se poate trece la pasul urmtor.
Pas III:
3. Construirea polinomului caracteristic dorit, ( )
d
utiliznd elementele mulimii :
Sistemul este cu timp discret: z = => ( )
2
z z
d
=
Rezolvarea ecuaiei (cu necunoscuta q):
Capitolul 9
134

(

=
1
0
q R
T
=>
(

=
(

1
0
1 2 / 1
2 / 1 2 / 1
2
1
q
q
=>
(

=
(

=
3 / 2
3 / 2
2
1
q
q
q
Pas IV: Calculul vectorului legii de comand, utiliznd relaiile:
[ ] 0 3 / 2 3 / 2 =
T
q
[ ] 0 3 / 4 3 / 2 = A q
T

( ) [ ] 1 3 / 2 3 / 4
2
= A q
T


3
2
3
4
(

=
T
k

Calcul utiliznd Matlab:
>> A = [0 -1;1 1];
>> b = [1/2;1/2];
>> R = ctrb(A,b);
>> k = acker(A,b,[0 0]) % apelare algoritm Ackermann
k =
1.3333 0.6667

A.9.4. Un proces cu timp continuu are reprezentarea n spaiul strilor:
(

=
(

=
1
0
,
0 1
1 0
b A , [ ] 0 1 =
T
c
Se cere s se calculeze o lege de comand dup stare care plaseaz valorile proprii ale
sistemului n -1, n urmtoarele dou cazuri:
a) aplicnd paii algoritmului Ackermann
b) analitic, utiliznd relaia de calcul 9.3.
Soluia a): Pentru calculul vectorului legii de comand
T
k , prin aplicarea algoritmului
Ackermann, se determin:
polinomul caracteristic dorit: ( ) ( )( ) 1 2 1 1
2
+ + = + + =
d
;
matricea de controlabilitate:
(

=
0 1
1 0
R => ( ) R rang 2 = chiar dimensiunea
sistemului;
soluia ecuaiei:
(

=
1
0
q R
T
=>
(

=
(

1
0
0 1
1 0
2
1
q
q
=> [ ] 0 1 =
T
q ;
vectorul legii de comand
Controlabilitate. Lege de comand dup stare
135

[ ] 0 1 =
T
q 1
[ ] 1 0 = A q
T
2
[ ] 0 1
2
= A q
T
1
] 2 0 [ =
T
k
Soluia b): ntruct n acest caz particular perechea (A, b) a sistemului comandat este n
form standard controlabil, pentru determinarea
T
k se poate aplica o formul simpl de
formula: [ ] [ ] [ ] 2 0 0 1 2 1
. .
= =
3 2 1 3 2 1
existent
tic caracteris
polinom coef
dorit
polinom coef
T
K .
Calcul utiliznd Matlab:
>> A = [0 1; -1 0];
>> b = [0; 1];
>> R = ctrb(A,b)
R =
0 1
1 0
>> rank(R)
ans =
2
>> k = acker(A,b,[-1 -1]) % apelare algoritm Ackermann

k =
0 2
A.9.5. Se cere ca pentru un proces cu timp continuu care are reprezentarea:
(
(
(

=
(
(
(

=
0
0
1
,
0 2 2
0 0 1
0 1 0
b A [ ] 0 0 2 =
T
c
a) s se verifice stabilitatea intern;
b) s se calculeze analitic i numeric o lege de comand dup stare care plaseaz
valorile proprii ale sistemului n -1; S se verifice calculele utiliznd matricea
echivalent a sistemului global, de forma: ( )
T
K
bk A A = .
c) s se simuleze evoluia liber a sistemului original la aplicarea unei comenzii
treapt u=0 i pornind de la strii iniiale date;
d) s se simuleze evoluia sistemului dup aplicarea legii de comand, considernd
strile iniiale date;
Capitolul 9
136

e) s se vizualizeze evoluia n timp a ieirii sistemului original i a celui comandat
dup stare.
Strile iniiale ale sistemului sunt: ( ) ( ) ( ) 1 0 0 0
3 2 1
= = = x x x .
Soluie :
Calcul analitic
a) Se calculeaz valorile proprii ale matricei A, rezolvnd ecuaia ( ) 0 det = A I pentru a
studia stabilitatea intern a sistemului.
0
3 1 2
1 0 0
0 1 0
1 0 0
0 1 0
0 0 1
det =
|
|
|

\
|
(
(
(

(
(
(

=> 0 2 2
3
= + => } , , { 1 1 2
Se observ c sistemul este instabil intern, deoarece valoarea [ ] 0 Re 1 < =
b) Se calculeaz vectorul legii de comand
T
k aplicnd algoritmul Ackermann pentru
perechea ) , ( b A cu valorile proprii dorite { } 1 , 1 , 1 = . Urmnd paii algoritmului
Ackermann se determin:
polinomul caracteristic dorit este: ( ) 1 3 3
2 3
+ + + = s s s s
d
;
matricea de controlabilitate
(
(
(

=
5 2 1
2 1 0
1 0 0
R ;
soluia ecuaiei
(
(
(

=
1
0
0
q R
T
=> 0 , 0 , 1
3 2 1
= = = q q q ;
vectorul legii de comand:
[ ] 1 0 0 1 =
T
q
[ ] 3 0 1 0 = A q
T

[ ] 3 1 0 0
2
= A q
T

[ ] 1 2 1 2
3
= A q
T

[ ] 1 4 3 =
T
k
sau aplicnd n Matlab relaia de calcul (9.2.2), rezult:
Controlabilitate. Lege de comand dup stare
137

[ ][ ] [ ] 1 4 3 3 3 0 0 1
3
2 3
= + + + = I A A A k
T



Calcul utiliznd Matlab
>> A = [0 1 0; 0 0 1; 2 1 -2];
>> b = [0; 0; 1];
>> R = ctrb(A,b);
>> rang = rank(R);
>> Lambda = [-1 -1 -1]; % valorile proprii dorite
>> k = acker(A,b,Lambda) % apelare algoritm Ackermann
k =
3 4 1
Pentru verificarea soluiei obinute se calculeaz matricea echivalent:
T
K
k b A A =
[ ] 1 4 3
1
0
0
2 1 2
1 0 0
0 1 0
A
K

(
(
(

(
(
(

=

>> Ak = A-b*k
Ak =
0 1 0
0 0 1
-1 -3 -3
Se verific dac spectrul matricei Ak este identic cu mulimea valorilor proprii , pentru
care se rezolv ecuaia ( )
K
A I det =0.
( ) 1 3 3
3 3 1
1 0
0 1
A I
2 3
K
+ + + =
+


= det
0 1 3 3
2 3
= + + + => { } 1 1 1 , ,
S-a obinut polinomul caracteristic dorit, respectiv valorile proprii impuse
{ } 1 , 1 , 1 = .
Soluie pentru punctele c) i d):

Simulare Urmtoarea secven editat ntr-un fiier m-file, introduce pentru calcule
funciile Matlab i matricele sistemului:
Capitolul 9
138

A=[0 1 0; 0 0 1; 2 1 -2];
b=[0; 0; 1];
cT=[0 0 1];
d=[0];
% Date de intrare necesare simularii
x_i3=[1 1 1];
C= eye(3);
D=[0;0;0];
%Calculul matricei de controlabilitate
R=ctrb(A,b);
%Verificarea controlabilitatii sistemului
rang=rank(R);
%Vectorul cu valorile proprii dorite
Lambda =[-1 -1 -1];
%Calculul vect. linie k=[k(1) k(2) k(3)]
k=acker(A,b, Lambda)
Fig. 9. 3 Parametri blocului State-
Space
i furnizez rezultatul obinut din calculele anterioare: k = [3 4 1]

Matricele C i D introduse n blocul din figura 9.3, sunt necesare pentru vizualizarea pe
osciloscop a mrimilor de stare ale sistemului.
Schema Simulink de simulare a evoluiei libere a sistemului original a) i a sistemului
rezultant prin aplicarea legii de comand b), este prezentat n figura 9.4.
x1
x3_ori g
x3
x2_ori g
x2
x1_ori g
x1
-K-
k(3)
-K-
k(2)
-K-
k(1)
Sum
Step Input
x' = Ax+Bu
y = Cx+Du
Si stem ori gi nal
x' = Ax+Bu
y = Cx+Du
Si stem comandat
pri n l ege de comanda
dupa stare
Demux
Demux3
Demux
Demux
x2
x3


a)









b)
Fig. 9.4 Schema de simulare a sistemului: original - regim liber (sus) i a celui comandat prin
legea de comand dup stare (jos)

Soluie e) Vectorul mrimilor de ieire este cT=[0 0 1] => y=x3, adic mrimea
de stare x3 este chiar mrimea de ieire a sistemului.
Controlabilitate. Lege de comand dup stare
139

0 5 10
0
0.5
1
1.5
2
2.5
x 10
4
x
1
_
_
o
r
i
g
timp [s]
Marimea de stare x1,
a sistemului original

0 5 10
0
0.5
1
1.5
2
x
1
timp [s]
Marimea de stare x1,
a sist. comandat prin lege de comanda

a) b)
Fig. 9.5 Evoluia mrimi de stare x1, pentru sistemul n regim liber a) i sistemul omandat b)
0 5 10
0
0.5
1
1.5
2
2.5
x 10
4
x
2
_
_
o
r
i
g
timp [s]
Marimea de stare x2,
a sistemului original

0 5 10
-1
-0.5
0
0.5
1
1.5
x
2
timp [s]
Marimea de stare x2,
a sist. comandat prin lege de comanda

a) b)
Fig. 9. ! Evoluia mrimi de stare x", pentru sistemul n regim liber a) i sistemul omandat b)
0 5 10
0
0.5
1
1.5
2
2.5
x 10
4
x
3
_
_
o
r
i
g
timp [s]
Marimea de stare x3,
a sistemului original

0 5 10
-1.5
-1
-0.5
0
0.5
1
x
3
timp [s]
Marimea de stare x3,
a sist. comandat prin lege de comanda

a) b)
Fig. 9. # Evoluia mrimi de stare x$, pentru sistemul n regim liber a) i sistemul omandat b)




A.9.6 Se consider sistemul descris de funcia de transfer: ( )
1
1
2
+
=
s
s H . Se cere:
a) s se studieze stabilitatea sistemului;
b) s se stabilizeze sistemul oscilant descris prin funcia de transfer dat, aplicnd o
lege de comand dup stare care plaseaz toate valorile proprii ale sistemului
rezultant n -1. Calculul se va face utiliznd toate cele 3 metode studiate:
I. aplicnd cei 4 pai ai algoritmului Ackermann
II. apelnd funcia acker din Matlab
III. utiliznd formula (9.3) i pornind de la RSC a sistemului
Capitolul 9
140

c) s se verifice calculele utiliznd matricea echivalent a sistemului global, de
forma: ( )
T
K
bk A A = .
d) s se simuleze evoluia liber a sistemului original pentru o comand u = 0 i
strile iniiale.
e) se va simula evoluia sistemului global prin aplicarea legii de comand calculate la
punctul b).
f) s se aplice cerinele de la punctele a)-d), pentru cazul cnd sistemul descris prin
Error! Reference source not found.) este comandat discret cu pasul de
eantionare T= 3 / . Legea de comand dup stare se va calcula astfel nct s
plaseze valorile proprii ale sistemului rezultant n zona de stabilitate, n
{ } 0 , 0 = .
Strile iniiale ale sistemulului sunt
( ) ( ) 2 0 , 1 0
2 1
= = x x
.
Indicaie pentru cazul b.II): Urmtoarea secven Matlab:
A = [0 1; -1 0]; b = [0; 1];
c = [1 0; 0 1]; d = [0; 0];
x_i= [1 2]; % conditii initiale
% Calculul matricei de controlabilitate
R = ctrb(A,b);
% Verificarea controlabilitatii sistemului
rang = rank(R)
% Vectorul cu valorile proprii dorite
lambda_continuu = [-1 -1];
% Calculul vectorului de reactie k = [k(1) k(2)]
k = acker(A,b, lambda_continuu)








furnizeaz rezultatele:
rang =
2
k =
0 2



Schema de simulare a evoluiei libere a sistemului cu timp continuu, original i a sistemului
rezultat prin aplicarea legii de comand este prezentat n figura 9.8.




a)




b)
Fig. 9. 8 Schema de simulare a sistemului: original - regim liber - a) i a celui comandat prin legea de
comand dup stare - b)
Controlabilitate. Lege de comand dup stare
141

0 5 10
-1
0
1
2
3
x
1
_
_
o
r
i
g
timp [s]
Marimea de stare x1, a sistemului original
0 5 10
-2
-1
0
1
2
x
2
_
_
o
r
i
g
timp [s]
Marimea de stare x2, a sistemului original

Fig. 9. 9 Evoluia mrimilor de stare pentru regimul liber

0 5 10
0
0.5
1
1.5
2
x
1
timp [s]
Marimea de stare x1
a sist. comandat prin lege de comanda
0 5 10
-1
-0.5
0
0.5
1
1.5
2
x
2
timp [s]
Marimea de stare x2,
a sist. comandat prin lege de comanda

Fig. 9. 10 Evoluia mrimilor de stare pentru sistemul comandat

Indicaie pentru cerina e.b.II): Prin discretizarea sistemului se obine:
( )
( ) ( )( ) ( )
( ) 1 2
1
1 cos 2
1 cos 1 1
2
3
2
+
+
=
+
+
=
(

=
z z
z
Tz z
z T
s
s H
z
z
z H
T
Z

Calcul utiliznd Matlab

%---------------------------------------
T = pi/3; % pasul de esantionare
Ad = [0 1; -1 1]; bd = [0; 1];
cd = [0.5 0; 0 0.5]; dd = [0; 0];
x_i= [1 2]; % conditii initiale
% Calculul matricei de controlabilitate
Rd = ctrb(Ad,bd);
% Verificarea controlabilitatii sistemului
rang = rank(Rd)
% Vectorul cu valorile proprii dorite
Lambda_discret = [0 0];
% Calculul vectorului de reactie kd = [kd(1) kd(2)]
Kd = acker(Ad,bd, Lambda_discret)








furnizeaz rezultatele:
rang =
2
kd =
-1 1

Simulare : Schema Simulink de simulare a evoluiei libere a sistemului cu timp discret
original i obinut prin aplicarea legii de comand este prezentat n figura 9.11.
Capitolul 9
142




a)










b)
Fig. 9. 11 Schema de simulare a sistemului discret: original - regim liber - a) i a celui comandat
prin legea de comand dup stare - b)
Mrimea de stare x1_d_orig Mrimea de stare x2_d_orig

timp [s] timp [s]
Fig. 9. 12 Evoluia mrimilor de stare n timp, pentru cazul regimului liber
Mrimea de stare x1_d Mrimea de stare x2_d

timp [s] timp [s]
Fig. 9. 13 Evoluia mrimilor de stare n timp, pentru cazul sistemului comandat prin lege de
comand
Controlabilitate. Lege de comand dup stare
143

A.9.7 Se considera un motor de curent continuu cu urmtoarele date: R = 1, L = 0.5H, k =
0.01Nm/A, F = 0.1Nm/rad/s, J=0.01Kgm
2
. Se va aplica o intrare de tip treapt. Se
urmrete analiza rspunsului sistemului atunci cnd pentru sistemul de reglare este
aplicat o lege de comand dup stare.
Solu ie: Ecuaiile ce descriu funcionarea motorului i modalitate de obinere a modelului
matematic de stare au fost studiate n capitolul 2, la aplicaia A.2.3.2. Considernd
mrimile de stare curentul prin motor i i viteza acestuia, ecuaiile sistemului se pot scrie
matriceal astfel:
U
L
i
J R J k
J k J F
i
dt
d
(

+
(
(

=
(
(


/ 1
0
/ /
/ /

n cazul n care se dorete ca ieirea sistemului s fie viteza: [ ]
(
(

i
y 0 1
%------------------------------------------------------------
% Date initiale al motorului de curent continuu
R = 1; %[ohm] Rezistenta rotorului
L = 0.5; %[H] Inductivitatea rotorului
J = 0.01; %[kgm2] Momentul de inertie al rotorului
k = 0.01; %[Nm/A] Constanta de cuplu
F = 0.1; %[Nms] coef. de frecari vascose
A = [-F/J k/J
-k/L -R/L];
B = [0; 1/L]; C = [1 0]; D = 0;
sist = ss(A,B,C,D);
sist_ordin = order(sist)
sist_rang = rank(ctrb(A,B))
p1 = -5 + 1i;
p2 = -5 - 1i;
Kc = place(A,B,[p1 p2])
%------------------------------------------------------------
Furnizeaza raspunsul:
sist_ordin =
2
sist_rang =
2
Kc =
12.9900 -1.0000
%--------------------------
t = 0:0.01:3;
sist_cl = ss(A-B*Kc,B,C,D);
step(sist_cl,t)
Capitolul 9
144

title(Raspunsul sistemului la intrare treapta, cu lege de comanda dupa stare);grid
0 0.5 1 1.5 2 2.5 3
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
Raspunsul sistemului la intrare trepta cu lege de comanda dupa stare
Time (sec)
A
m
p
l
it
u
d
e

>>Nbar = rscale(sist,Kc)
Nbar =
13.0000
>>t = 0:0.01:10;
>>step(sist_cl*Nbar,t)
>>title('Rasp treapta cu lege de comanda si precompensator'); grid




Aplicaie cerute
1. Se cere ca pentru fiecare sistem dat n continuare:
i)
(
(
(

=
(
(
(

=
2
1
1
,
4 0 0
0 2 0
0 0 1
b A
, [ ] 1 0 1 =
T
c
ii)
(
(
(

=
(
(
(

=
1
0
0
,
2 1 2
1 0 0
0 1 0
b A [ ] 0 1 0 =
T
c
Controlabilitate. Lege de comand dup stare
145

iii) ,
1 0 1
1 1 1
3 2 1
(
(
(

= A
|
|
|

\
|
=
1
0
0
b , [ ] 1 0 0 =
T
c iv)
(
(
(

=
(
(
(

=
0
0
1
,
0 2 2
0 0 1
0 1 0
b A [ ] 1 0 0 =
T
c
a) s se verifice stabilitatea intern;
b) s se stabilizeze sistemul aplicnd o lege de comand dup stare care plaseaz
toate valorile proprii ale sistemului rezultant n -1. Calculul se va face utiliznd
cele 3 metode studiate: prin aplicarea pailor algoritmului Ackermann; prin
apelarea funcia acker din Matlab i utiliznd formula (9.2(9.3) ;
c) s se verifice calculele utiliznd matricea echivalent a sistemului global, de
forma: ( )
T
K
bk A A = ;
d) s se simuleze evoluia liber a sistemului original pentru o comand u = 0 i
considernd strile iniiale ale sistemului;
e) s se simuleze evoluia sistemului global prin aplicarea legii de comand calculate
la punctul b).
Strile iniiale ale sistemului sunt: ( ) ( ) ( ) 1 0 0 0
3 2 1
= = = x x x .

Funcii Matlab utile

Numeric vectorul/matricea de reacie se poate calcula n cazul SISO cu funcia acker(), iar n cazul
general cu place(). Funcia place() folosete un algoritm diferit de cel prezentat anterior, stabil
numeric. Pentru aplicarea algoritmului Ackermann se vor utiliza urmtoarele funcii:
4. acker( ) pentru calculul lui
T
k , prin aplicarea algoritmului Ackermann descris (fr pasul
II de testare a controlabilitii i cel de verificare final), avnd ca parametrii: A, b i
vectorul cu valorile proprii dorite. Vectorul de reacie
T
k este furnizat ca vector linie.
Funcia poate da erori pentru dimensiuni n ale sistemului mai mari de 5.
5. ctrb( ) pentru testarea controlabilitii, prin calculul matricei de controlabilitate.
6. rank( ) n calculul rangului unei matrice.