1
Academia de Studii Economice Bucureşti
Facultatea de Cibernetică, Statistică, Informatică si Economie
Matematică
PROIECT
CIBERNETICA ECONOMICA
Tema proiectului:
REGLAREA ŞI POZIŢIONAREA POLILOR
Gr. 1090
Secţia economie-matematică
-2005-
PROIECT. Reglarea si pozitionarea polilor.
Functii importante: place, acker, impulse, reg.
PLACE = Tehnica de pozitionare a polilor.
K= PLACE (A, B, P) calculează o matrice de stare, K astfel ca valorile
proprii de A– B*K sunt acele specificate în vectorul P. Nici o valoare
proprie nu ar trebui sa aiba o multiplicitate mai mare decat cea a
numărului de intrări.
[K, PREC, MESSAGE] = PLACE(A, B, P)
returneaza PREC, o estimatie a apropierii valorilor proprii de A-B*K
care sa se potriveasca cu locatiile specificate P. (PREC masoara
acuratetea numarului zecimal, prin numarul de zecimale, in bucla
actuala a polilor). Daca vreun pol diferit de 0 contine o eroare mai
mare de 10%, fata de locatia dorita, se da un MESSAGE ce contine un
mesaj de avertizare.
ACKER = pozitionare a polilor folosind formula lui
Ackermann(spor de selectie).
K = ACKER(A, B, P)
calculeaza matricea inversa de spor, K astfel incat, sistemul de
intrari:
x = Ax + Bu
ce are legea inversa: u = -K*x , acest sistem sa aiba poli apropiati ,
la valori specificate in vectorul P.
de exemplu: P = eig (A-B*K)
Nota: Acest algoritm foloseste formula lui
Ackermann. Aceasta metoda NU ESTE fiabila (de incredere) din punct de
vedere numeric; ea incepe sa se destrame rapid pentru problemele cu
ordin mai mare de 10, sau pentru sisteme controlabile slabe (slab
controlabile). Un mesaj de avertizare este afisat daca polii fara
zerouri (diferiti de zero) sunt calculati cu o eroare mai mare de 10%
fata de locatia dorita, specificata in P.
IMPULSE
IMPULSE(SYS) deseneaza raspunsul impuls al modelelor
LTI, tip SYS, (aceste modele fiind create fie cu TF, ZPK, sau SS).
Pentru modelele multi-input, comenzile impulse independente, sunt
aplicate fiecarui canal de input. Perioada de timp si numarul de puncte
sunt alese in mod automat. Pentru sistemele continue cu feedthrough
direct, pulsul infinit la t=0, nu este luat in seama (este ignorat).
IMPULSE(SYS, TFINAL) simuleaza impulsul raspuns de
la momentul t=0 la momentul t = TFINAL. Pentru sistemele cu timp
discret, la care nu se specifica momentul final, TFINAL este
interpretat ca numar de selectii.
IMPULSE (SYS1, SYS2, ..., T) deseneaza raspunsul
modelelor multiplu LTI
SYS 1, SYS2, ... pe un singur grafic. Vectorul timp (T) este optional.
Se pot specifica de exemplu, culoarea, tipul de linie, si markerul
pentru fiecare sistem in parte.
Ex: impulse (sys1, `r`, sys2, `y--`, sys3, `gx`).
[Y,T] = IMPULSE (SYS)
returneaza output-ul Y si vectorul timp T folosit in simulare. Nici un
grafic nu e desenat pe ecran. Daca SYS are NY output-uri si NU
inputuri, si in plus, LT=lungimea (T), Y este o matrice de marimea [LT
NY NU] unde Y( : , : , j ) ne da raspunsul canalului j de input.
[Y, T, X] = IMPULSE (SYS, ...)
returneaza traiectoria X care este un masiv LT * NX * NU ,daca SYS are
NX stari.
REG
RSYS = REG (SYS, K, L)
produce un rezultat bazat pe observatii (RSYS), pentru sistemul
(dinamic liniar) SYS, presupunand ca toate intrarile sistemului sunt
controlabile si toate iesirile sunt observabile (masurabile). Matricile
K si L specifica feed-back ul liniar, respectiv castigurile
observabile. Pentru sistemul:
x` = Ax + Bu
y = Cx + Du
Rezultatul este:
x_e = [A–BK–LC+LDK] x_e + Ly
u = -K x_e
Acest rezultat ar trebui conectat cu sistemul
folosind un feed-back pozitiv. REG se poate folosi in mod similar chiar
daca este aplicat unui sistem cu timp discret.
1
RSYS = REG(SYS, K, L, SENSORS, KNOWN, CONTROLS) se ocupa cu mai
multe probleme reglatorii;
- inputurile sistemului sunt: u (controlabile), Ud
(intrari cunoscute) si w (inputuri stocastice;
- doar un subset din iesiri (y) sunt masurabile
Subseturile I/O y, Ud si u sunt specificate prin vectorii de index
SENSORS, KNOWN, respectiv CONTROLS. Rezultatul RSYS foloseste [Ud;y] ca
input pentru a genera comenzile u.
Se pot folosi tehnici de plasare a polilor pentru a
afla K si L,
sau se pot folosi castigurile LQ si Kalman care sunt date de LQR/DLQR
si KALMAN.
Alte functii ce au legatura cu REG:
1. LQR (Linear –Quadratic Regulator) pentru sisteme
cu timp continuu.
[K, S, E] = LQR(A, B, Q, R, N) calculeaza matricea
K, astfel incat legea de feed-back liniar:
u = –Kx
minimizeaza functia de cost.
J = Integrala {x’Qx + u’Ru + 2*x’Nu} dt
subiect al dinamicii liniare x`=Ax +Bu.
Matricea N = 0, daca ea este omisa.
SA + A’S – (SB+N)R-1(B’S+N’) + Q = 0
E = EIG (A–B*K)
unde: S este solutia ecuatiei Riccati;
E calculeaza valoarile proprii.
2. DLQR (Linear-Quadratic Regulator design) pentru
sisteme cu timp discret.
[K, S, E] = DLQR(A, B, Q, R, N) calculeaza matricea
K de optim,
astfel incat legea de feed-back: u[n] = –Kx[n] minimizeaza
functia de
cost.
J = Sum {x’Qx + u’Ru + 2*x’Nu}
subiect al dinamicii liniare x[n+1] = Ax[n] + Bu[n]
A’SA – S – (A’SB+N)(R+B’SB)-1(B’SA+N’) + Q = 0
E = EIG(A-B*K)
3. ESTIM (Estimator)
EST = ESTIM(SYS, L) returneaza un estimator EST,
folosind output-ul
L, si sistemul dinamic SYS, presupunand ca toate inputurile din SYS
sunt stocastice si toate output-urile sunt masurabile.
Pentru un sistem continuu,
SYS: x`= Ax +Bw
y = Cx +Dw
rezulta estimatorul:
x_e`= [A–LC]x_e + Ly
!y_e! = !C! x_e
!x_e! ! I !
genereaza estimarile x_e si y_e ale lui x, respectiv y. Estim
actioneaza similar si aplicat sistemelor cu timp discret.
EST = ESTIM(SYS, L, SENSORS, KNOWN)
se ocupa cu sisteme ceva mai generale SYS, care pot avea intrari atat
deterministe, cat si stocastice, si iesiri atat masurabile cat si
nemasurabile. Vectorii index SENSORS si KNOWN specifica output-urile y
care sunt masurabile, respectiv inputurile u, care sunt cunoscute.
Estimatorul rezultat EST foloseste [u;y] ca intrari, pentru a produce
estimarile [y_e; x_e].
Se pot folosi tehnici de pozitionare a polilor (PLACE) pentru a crea
observatorul L, sau functia Kalman.
4. KALMAN. Estimatorul Kalman discret sau continuu.
[KEST, L, P] = KALMAN (SYS, Qn, Rn, Nn)
returneaza un estimator Kalman KEST, pentru modele continue sau
discrete, cu sistemul dinamic SYS. Pentru un model continuu:
x`= Ax + Bu + Gw –> ecuatia de
dinamica a variabilelor de stare
y = Cx + Du + Hw + v –> relatiile de iesire
cu inputuri cunoscute u, eroare proceduala w, eroare de masurare v, si
covariantele:
E{ww’} = Qn, E{vv’} = Rn, E{wv’} =
Nn.
Estimatorul KEST are inputul [u;y] si genereaza
estimarile optime y_e, x_e ale lui y, respectiv x, astfel:
x_e` = Ax_e + Bu + L(y – Cx_e – Du)
!y_e! = !C! x_e + !D! u
!x_e!
!I!
!O!
Sistemul dinamic SYS contine datele modelului (A, [B
G], C, [D H]),
si Nn, care poate fi =0. Estimatorul Kalman KEST este cu timp continuu,
atunci cand SYS este continuu, altfel, cu timp discret. Se returneaza
si eroarea de covarianta P. In cazul - timp continuu- cu H=0, P rezolva
ecuatia Riccati.
AP + PA’ – (PC’ +G*N)R-1(CP+N’*G’) + G*Q*G’ = 0
[KEST, L, P] = KALMAN(SYS, Qn, Rn, Nn, SENSORS, KNOWN) se foloseste
pentru sisteme mai generale SYS, unde inputurile stocastice [u,w] sunt
comasate, si nu toate outputurile sunt masurabile. Vectorii index
SENSORS si KNOWN specifica outputurile (y) ale lui SYS care sunt
masurabile, si care inputuri u sunt cunoscute. Toate celelalte inputuri
se presupune ca sunt stocastice.
SS creeaza un sistem dinamic, sau transforma un
model LTI intr-unul dinamic.
SYS = SS(A, B, C, D)
creeaza un model (SS) cu timp continuu, SYS, cu matricile A, B, C, D.
Outputul SYS este un obiect SS. Se poate scrie D=0, pentru a se
reprezenta matricea zero (cu toate elementele=0) de dimensiuni dorite.
SYS = SS(A, B, C, Ts) creeaza un model (SS) cu timp
discret cu
timpul Ts (daca timpul este nedeterminat se poate scrie Ts= -1);
SYS = SS creeaza un obiect SS nedefinit.
SYS = SS(D) specifica o matrice statica D.
*Listei de inputuri i se pot adauga parametrii: 'PropertyName1'
,'PropertyValue1', ...
pentru diferitele proprietati ale modelelor SS (se poate tasta LTIPROPS
pentru detalii). Pentru a transmite proprietatile unui model LTI catre
unul SYS,(dintr-un model LTI existent) se poate folosi sintaxa SYS =
SS(A, B, C, D, REFSYS).
Matricile modelului dinamic:
Se pot creea matrici pentru modelele SS folosind matrici ND pentru A,
B, C, D.
Primele doua dimensiuni ale A, B, C, D determina numarul de stari,
inputuri, si outputuri, iar celelalte dimensiuni specifica marimea
matricii.
De exemplu, daca A, B, C, D sunt matrici 4D si ultimele 2 dimensiuni au
marimile 2 si 5, atunci:
SYS = SS(A, B, C, D)
creeaza o matrice 2–5 a modelelor SS.
SYS(:,:,k,m) = SS(A(:,:,k,m), ..., D(:,:,k,m)),
k=1:2, m=1:5.
Toate modelele SS rezultate din aceste matrici au acelasi numar de
outputuri, inputuri, si stari.
SYS = SS(ZEROS([NY NU S1 ... Sk])) aloca spatiu
pentru o matrice SS
cu NY intrari, NU iesiri, si dimensiunile matricii de [S1 ... Sk].
Transformarea.
SYS = SS(SYS) transforma un model arbitrar LTI intr-unul dinamic;
SYS = SS(SYS, 'min') calculeaza o realizare minima de SYS.
Cele mai ok referate! www.referateok.ro |