Exemplu.
Se considera sistemul descris de urmatoarele ecuatii de stare:
Sa se determine functia de transfer a sistemului: G(s)=Y(s)/U(s).
A=[0 1 0;0 0 1;-1 -2 -3];B=[10;0;0];
C=[1 0 0];D=[0];
[n,m]=sstf(A,B,C,D,1)
[n,m]=ss2tf(A,B,C,D,1)
n =
m =
printsys(n,m)
num/den =
10 s^2 + 30 s + 20
s^3 + 3 s^2 + 2 s + 1
De asemenea, [z,p] = ss2tf(A, B, C, D, 1) converteste ecuatia de stare n functia de transfer sub forma factorizata(pune īn evidenta polii si zerourile functiei de transfer).
[z,p]=ss2zp(A,B,C,D,1)
z =
p =
-0.3376 + 0.5623i
-0.3376 - 0.5623i
Unul din motivele diagonalizarii matricii A, presupun nd ca avem valori proprii distincte, este ca acestea sunt toate localizate pe diagonala principala. Rezulta deci ca matricea de tranzitie a starilor este de asemenea diagonala, cu elementele de pe diagonala .
D ndu-se sistemul liniar , unde A are valori proprii distincte, este de dorit a se gasi matricea nesingulara P astfel nc t aplic nd transformarea:
sa transforme ecuatia de stare de mai sus n forma canonica
cu a dat de matricea diagonala:
=P-1AP si =P-1B
n general, sunt c teva metode de a gasi matricea P. Astfel, matricea P poate fi formata prin utilizarea valorilor proprii ale matricii A.
Exemplu. Fie sistemul descris de ecuatiile de stare:
[P,L]=eig(A); L este matricea valorilor proprii
P este matricea corespunzatoare vectorilor proprii
a=inv(P)*A*P;
b=inv(P)*B;
P =
a =
b =
n ecuatia de stare a unui sistem liniar invariant īn timp:
daca matricea
S=[B AB A2B . . . An-1B]
este nesingulara, atunci exista o transformare nesingulara:
(t)=Px(t) sau x(t)=P-1
care transforma ecuatia de stare de mai sus n forma:
unde:
=PAP-1 si =PB
Matricea P este data de:
unde:
P1=[0 0 . . . 1][B AB AB2 . . . An-1B]-1
Exemplu.
Fisierul ss2phv.m este dezvoltat pentru a ndeplini transformarea de mai sus.
[a,b]=ss2phv(A,B) va returna a si b, reprezentānd matricile ecuatiei de stare, dupa transformarea nesingulara a starii.
A = [0 1 0; 3 0 2;- 12 -7 -6];
B=[-1; 2;3];
[a,b]=ss2phv(A,B)
a =
b =
Solutia ecuatiei de stare liniara, neomogena:
poate fi obtinuta prin abordarea transformatei Laplace:
sX(s) - x(0) = AX(s) + BU(s)
sau:
X(s)=f(s) x(0)+f(s) BU(s)
unde:
F(s)=(sI-A)-1
f(t)=L-1[F(s)
este cunoscuta ca matricea de tranzitie a starilor. Astfel, solutia ecuatiei de stare este:
x(t)=L-1 F s x L-1 F s B U s
Putem, de asemenea, exprima ecuatia de mai sus n functie de f(t) si integrala de convolutie.
Daca A este nesingulara, atunci ecuatia de mai sus poate fi simplificata pentru a da raspunsurile la impuls, treapta si rampa.
Pentru intrare de tip impuls, raspunsul este:
x(t)=f t x f t BK
Pentru intrarea treapta u(t) = K, raspunsul este:
x(t)=f(t) x(0)+A-1[f(t)-I] B K
Pentru intrarea rampa u(t) = Kt, raspunsul este:
x(t)=f(t) x(0)+(A2)-1[f(t)-I-At]B K
F(s) este obtinut din algoritmul Faddeeva, dat de:
F(s)=(sI-A)-1=
unde matricile E sunt:
En-1=I En-1-k =AEn-k+an-kI , k=1,2,3,...,n-1
Fisierul ltstm este dezvoltat pentru a calcula F(s) n concordanta cu algoritmul de mai sus.
Exemplu:
A=[-2 -1; 2 -5];
ltstm(A)
Matricile E, īn ordinea descrescatoare a puterilor lui s sunt:
E =
E =
a =
Deci:
Teorema Cayley-Hamilton stabileste ca daca ecuatia caracteristica a unei matrici patratice A este:
ln a ln-1 an
atunci A satisface ecuatia matriciala:
An+a An-1+. . . +anI=0
Deci, fiecare matrice patratica satisface propria sa ecuatie caracteristica.
Fie:
eAt=K1(t)I+K2(t)A+ . . . +Kn(t)An-1
Se poate arata ca o ecuatie scalara, echivalenta cu ecuatia de mai sus, este satisfacuta c nd A este nlocuit de l, astfel:
unde valorile l sunt valori proprii distincte ale matricii A. Cānd doua valori proprii sunt egale, de exemplu c nd l l , atunci al treilea r nd al matricii de mai sus este nlocuit de:
Fisierul strm.m este dezvoltat baz ndu-se pe metoda Cayley-Hamilton. Aceasta functie evalueaza matricea de tranzitie a starii n forma nchisa. Valorile proprii multiple sunt de multiplicitate 2. Exemplul urmator demonstreaza utilizarea aceste functii.
Exemplu. Sa se determine matricea de tranzitie a starilor pentru sistemul de la exemplul anterior.
A=[-2 -1; 2 -5];
ltstm(A)
f(s) = inv(SI - A) = P / q where,
P = s**(n-1)E(n-1) + S**(n-2)E(n-2) + . . . + E(0)
q = a(n)s**n + a(n-1)s**n-1 + a(1)s + . . . + a(0)
a(i) = coefficients of the characteristic equation q
The E matrices in descending power of s are :
E =
E =
a =
Deci,
Rezultatul este urmatorul:
Procedura practica pentru gasirea raspunsului n timp al unui sistem este utilizarea simularii digitale. Reprezentarea n spatiul starilor ne permite sa simulam un sistem pe calculator.
O prima posibilitate de aflare a solutiilor este utilizarea functiilor ode23 si ode45.
Pentru sistemele liniare continue n timp, documentatia aferenta pentru MATLAB , Control System Toolbox, furnizeaza functiile [y,x] = impulse(A, B, C, D, iu, t) si [y,x] = step(A, B, C, D, iu, t) care obtin raspunsul la impuls si raspunsul la treapta utilizānd ecuatia de stare. Functia [y, x] = lsim[A, B, C, u, t] simuleaza ecuatia de stare cu intrare arbitrara.
Exemplu. Pentru un sistem descris de:
se da:
Se cere sa se determine x(t)si y(t), r(t) fiind intrare de tip treapta.
A=[0 1 0;0 0 1;-6 -11 -6];
B=[1;1;1]; C=[1 1 0]; D=0;
x0=[1 0.5 -0.5]; t=0: .05:4;
u=ones(1, lenght(t)); %genereaza un vector u
[y,x]=lsim(A,B,C,D,u,t,x0);
plot(t,x,t,y)
title('Solutiile ecuatiei de stare')
xlabel('Timp - sec')
text(3.8,1.8,'y'), text(3.8,2.6,'x1'), text(3.8,-0.8,'x2') text(3.8,-1.4,'x3')
Fig. 2.2..Reprezentarea grafica a semnalelor din sistem.
Exemplu.
Pentru sistemul anterior sa se traseze y(t) si x(t), intrarea sistemului fiind r(t)=sin(2pt)
A=[0 1 0;0 0 1;-6 -11 -6];
B=[1;1;1]; C=[1 1 0]; D=0;
x0=[1 0.5 -0.5]; t=0: .05:4;
u=sin(2*pi*t); %genereaza un vector u
[y,x]=lsim(A,B,C,D,u,t,x0);
plot(t,x,t,y)
title('Solutiile ecuatiei de stare')
xlabel('Timp - sec')
text(.1,1.7,'y'), text(.1,1.25,'x1'), text(.1,.55,'x2'), text(.1,-1,'x3')
Fig. 2.3. Evolutia starii sistemului.
Fisierul blkbuild (MATLAB Control System Toolbox) si functia connect convertesc diagrame bloc la modele īn spatiul starilor. Blocurile functiei de transfer sunt numerotate secvential de la 1 la nr. de blocuri. Functia nblocks defineste numarul total de blocuri si bldblock converteste fiecare bloc la o reprezentare īn spatiul starilor nelegata (neconectata).
Expresia [A,B,C,D]=connect(a,b,c,d,q,iu,iy) conecteaza blocurile īn concordanta cu o matrice predefinita q care specifica interconectarile. Primul element al fiecarui rānd al matricei q este numarul blocului. Restul elementelor indica sursa blocurilor ce intra īn sumator. Cānd intrarea īn sumator este negativa numarul blocului este introdus cu semnul minus. Elementele in si iy sunt doi vectori linie, memorānd blocurile de intrare si iesire. Īn final, pentru a obtine functia de transfer globala, [num,den]=ss2tf(A,B,C,D,iu) calculeaza functia de transfer de la intrarea iu.
Exemplu. Sa se determine reprezentarea intrare-stare-iesire a sistemului din figura urmatoare:
Fig.2.4..Schema bloc functionala a sistemului
n1= 1; d1=1; % coeficientii fiecarei functii de transfer ( numaarator si numitor )
n2=.5; d2=1; n3= 4; d3=[1 4]; n4= 1; d4=[1 2]; n5= 1; d5=[1 3]; n6= 2; d6=1; n7= 5; d7=1;
n8= 1; d8=1;
nblocks=8; %numarul de blocuri
blkbuild
q=[1 0 0 0 0 % q=matricea configuratiei
iu = [1]; % intrarea sistemului
iy = [8]; % iesirea sistemului
[A ,B,C,D]=connect(a,b,c,d,q,iu,iy)
%realizeaza conexiunea īntre blocuri si determina %reprezentarea intrare-stare-iesire
[num,den]=ss2tf(A,B,C,D,1)
Deci functia de transfer a sistemului este data de:
Control System Toolbox contine 4 functii care sunt utilizate īn constructia unui model. append combina functionalitatea a doua sisteme īn spatiul starilor formānd un model mai complex. Functiile parallel si series conecteaza doua sisteme īn spatiul starilor īn paralel, respectiv īn serie. Īn final, functia ode genereaza matricile A,B,C,D pentru un sistem de ordin doi.
|