Laborator Upg

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

Sunteți pe pagina 1din 140

CUPRINS

1. IDENTIFICAREA SISTEMELOR FOLOSIND

PACHETUL DE PROGRAME

MATLAB. OBIECTE I PROCEDURI UTILIZATE DE SUBPACHETUL SYSTEM


IDENTIFICATION TOOLBOX...........................................................................................5
2. SIMULAREA COMPORTRII SISTEMELOR LINIARE DE ORDINUL I
ORDINUL

II

FOLOSIND

PACHETUL

DE

PROGRAME

MATLAB............................................................................................................................17
3. ALGORITMI DE TIPUL FFT (FAST FOURIER TRANSFORM). CALCULUL
FUNCIILOR

DE

CONVOLUIE

COVARIAN

FOLOSIND

FFT...................................................................................................................................27
4. INDICATORI STATISTICI AI MSURRILOR. FUNCII MATLAB PENTRU
CALCULE STATISTICE..................................................................................................35
5.

FILTRAREA

DATELOR

EXPERIMENTALE

AFECTATE

DE

ZGOMOTE........................................................................................................................45
6. ESTIMATORI M. ESTIMATORI DE PARAMETRI ROBUTI................................56
7. INTERPOLAREA I APROXIMAREA DATELOR...................................................63
8. IDENTIFICAREA SISTEMELOR FOLOSIND METODA CELOR MAI MICI
PTRATE. ALGORITMI DE CALCUL.........................................................................70
9. IDENTIFICAREA EXPERIMENTAL A SISTEMELOR DE ORDINUL I I
ORDINUL II......................................................................................................................76
10. METODE DE SUBSPAIU N IDENTIFICAREA SISTEMELOR.........................84
11. TEHNICI DE IDENTIFICARE DINAMIC A PROCESELOR. NOIUNI DE
BAZ

PRIVIND

IDENTIFICAREA

MODELELOR

DINAMICE

ALE

PROCESELOR..................................................................................................................89
12. IDENTIFICAREA EXPERIMENTAL A UNUI SISTEM ALCTUIT DIN DOU
VASE N CASCAD......................................................................................................101
13. IDENTIFICARE DINAMIC PENTRU CONDUCEREA UNUI SISTEM DE
REGLARE A PRESIUNII...............................................................................................111

LUCRAREA 1
IDENTIFICAREA SISTEMELOR FOLOSIND
PACHETUL DE PROGRAME MATLAB.
OBIECTE I PROCEDURI UTILIZATE DE
SUBPACHETUL SYSTEM IDENTIFICATION
TOOLBOX

1. OBIECTIVELE LUCRRII
Familiarizarea cu facilitile i procedurile de identificare oferite de
subpachetul System Identification Toolbox din pachetul de programe
MATLAB. n etapa acoperit de lucrarea prezent se exploreaz
obiectele principale din subpachet asociate cu sistemele dinamice n
reprezentri variate i procedurile ar, arx, armax.

2. BREVIAR TEORETIC
Procedura de identificare experimental a unui sistem se realizeaz
n contextul unei lipse totale a informaiei privitoare la forma
modelului matematic, avnd la dispoziie sistemul a crei dinamic
trebuie modelat. Sistemul este tratat ca black box, pentru care
modelul se va sintetiza din informaiile de tip I/E.
System Identification Toolbox SIT se refer la problema
construirii modelelor matematice ale sistemelor dinamice bazate pe
date experimentale. SIT este alctuit dintr-o colecie de tehnici de baz,
bine nelese i verificate n aplicaii practice.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Identificarea modelelor folosind datele experimentale presupune


decizia factorului uman implicat n cutarea modelelor, ca i
prelucrarea acestor date n scopul furnizrii bazei acestor decizii. De
regul, trebuie s fie parcurse mai multe bucle, revizuind deciziile
anterioare. In acest context, softul interactiv reprezint modalitatea
logic de abordare practic a identificrii sistemelor, fiind totodat i
un mijloc elegant de a compacta noiunile teoretice extensive,
fcndu-le accesibile utilizatorului.
MATLAB este un mediu excelent pentru asemenea calcule interactive,
date fiind conceptul su de workspace, facilitile grafice i modul de
lucru cu datele. SIT este o colecie de fiiere tip .m care implementeaz
cele mai uzuale tehnici parametrice/neparametrice disponibile. Este, de
asemenea, dedicat pentru utilizator, nu numai din punct de vedere al
calculului, ci i al evaluarii modelelor. Pentru automatiti, SIT este de
foarte mare utilitate n problema identificrii sistemelor.
SIT se afla n directorul ident.off al directorului principal MATLAB,
fiierul demonstrativ putnd fi accesat cu comanda iddemo.
O list complet a funciilor pe care subpachetul de identificare le
conine se poate vizualiza, dup o prealabil invocare a platformei
MATLAB, prin comanda
help toolbox/ident
care are ca efect afiarea listei respective cu numele funciilor pe
categorii, nsoite de scurte explicaii n limba englez.
Detaliile asupra funciilor si funcionrii acestor programe se obin prin
comanda help urmat de numele programului/funciei, type, urmat de
numele programului respectiv, sau dbtype urmat de numele
programului i de o pereche de ntregi separaii de : care indic linia
de nceput i linia de sfrit a prii din program afiate pe monitor.
2.1. Obiecte din subpachetul System Identification Toolbox
Prima seciune din lucrare are ca scop familiarizarea cu funciile
MATLAB care creeaz obiecte asociate cu sisteme dinamice diverse
n variatele forme n care acestea se pot prezenta.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Se verific pe rnd i apoi n relaia lor logic funciile din subpachetul


System Identification Toolbox i din alte subpachete cu care
programele de identificare au legtur.
Funcia tf cu dou argumente se studiaz dupa cum urmeaz
num=[1 2];
funciei de
den=[1 2 5];
de

% se iniializeaz coeficienii numrtorului


transfer.
% se iniializeaz coeficienii numitorului funciei

transfer.
sis=tf(num,den) % se genereaz un obiect de tipul tf care conine
informaia structural i parametric a
sistemului
dinamic modelat prin funcia de transfer
afiat.
Rspunsul la comanda ultim (fr caracterul ; la final) este:
transfer function:
s+2
-----------s^2 + 2s +5
Se poate crea astfel un obiect a crui structur se poate citi prin
comanda get(sis),
cu rezultatul n mare parte uor de interpretat:
num = {[0 1 2]}
den = {[1 2 5]}
Variable = s
Ts = 0
Td = 0
InputName = { }
OutputName = { }

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Notes = {}
UserData = []
Aceasta este convenabil n lucrul cu sisteme dinamice, cu structuri i
parametrizri diverse. De exemplu, prin comanda save nume fiier sis
se poate depune n memorie n fiierul nume fiier.mat informaia din
sis care poate fi oricnd recuperat prin comanda load nume fiier sis.
n plus, prin apelurile simple la alte funcii, cum sunt impulse (sis) sau
step(sis) se pot obine rspunsurile sistemului la intrrile tipice impulsul unitar i treapta unitar.
Recuperarea pe buci a informaiei din obiectul cu numele sis, de
tipul tf se obine prin comenzile [a,b] = tfdata (sis) sau [a,b] =
tfdata(sis,v) cu rezultatul depunerii n a i b a numrtorului i
numitorului funciei de transfer inclus n sis, n varianta a doua sub
forma vectorial explicit.
Modificarea unei pri a unui obiect tf se poate face prin intermediul
comenzilor de genul set (sis,numeproprietate,valoare).
Un obiect din categoria tf poate servi ca argument multor altor funcii
cum sunt bode, freqrest, nyquist, ltiview, nichols etc. i se recomand
ncercarea lor i urmrirea efectelor.
Aceeai funcie tf poate crea obiecte asemntoare, dar care se refer la
sisteme discrete in timp. Pentru aceasta se include obligatoriu un al
treilea argument care reprezint intervalul de eantionare:
sisd = tf (num,den,0.1);
Prin invocarea numelui rezultatului sisd se obine coninutul
obiectului, adic forma funciei de transfer i intervalul de discretizare.
Variabila care apare n scrierea simbolic a funciei de transfer este z.
Dac este vorba de modele continue n timp sau discrete n timp, exist
posibilitatea ca funcia s fie scris n alte variabile cum ar fi p pentru
reprezentri continue, z -1 sau q pentru reprezentri discrete.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Un alt gen de obiect de un tip diferit, tipul ss, se refer la modelele


ecuaie-de-stare-ecuaie-de-observare. Secvena care urmeaz duce la
crearea unui obiect de acest tip.
a = [-2 1;1 -3];
b = [1 1] ;
c = [1 0;0 1];
d = [0 0];
sistem=ss (a,b,c,d);
Ultima comand, fr caracterul suprimat al afirii ; expune pe
monitor cele patru matrici care intervin in forma modelului
dx = Ax(t)+Bu(t)
dt
y(t) = Cx(t)+Du(t)

(1.1)

care ia n considerare evoluia strii sistemului n forma continu sau


n forma discret
x(t+t) = Ax(t)+Bu(t)
y(t) = Cx(t)+Du(t)

(1.2)

dac, din nou, se mai adaug funciei ss nc un argument care este


intervalul de eantionare. Se intelege c n varianta din urm timpul nu
poate fi dect multiplu ntreg al intervalului t.
Cu un obiect de acest tip, cum este obiectul sistem, se pot evalua
rspunsurile sistemului la intrri variate, cu aceleai comenzi utilizate
i cu obiectul sis, de un alt tip, de tipul tf.
Matricile se pot recupera pe rnd si separat prin comenzi de genul
al = sistem.a;
Foarte popular printre automatiti este descrierea unui sistem prin
zerourile, polii si amplificarea/amplificrile lui. Pentru aceasta, System

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

10

Identification Toolbox include o funcie zpk destinata crerii de


obiecte de un tip diferit de cele descrise sumar mai devreme.
Sintaxa acestei funcii este sys=zpk(z,p,k) sau sys=zpk(z,p,k,t) din nou
dup cum este vorba de reprezentri continue sau discrete in timp.
Dac sistemul este de tipul o intrare-o ieire (SISO- Single InputSingle Output), atunci zerourile i polii se introduc ca vectori (vectorul
vid uneori!), iar amplificarea ca un scalar.
Dac sistemul este de tip MIMO (Multiple Inputs-multiple Outputs), cu
mai multe intrri i mai multe ieiri, atunci argumentele z i p sunt
matrici celulare cu cte o celul de vectori z[i, j],p[i, j] pentru fiecare
intrare (j)-ieire (i), iar k este o matrice rectangular care conine
amplificrile, de asemenea pentru fiecare canal intrare-ieire.
Exemplu
Comanda
sist=zpk { {[];[2 3]}, {-1;[0 1]},[-5;1]}
este pentru crearea obiectului /sistemului sist cu o intrare i doua ieiri
[ -5/(s+1)
]
[(s-2) (s-3)/s(s+1)]
Deoarece n situaii diferite pot fi necesare modele ale sistemelor n
forme diferite, exist un numr de funcii care permit transformarea
modelelor de un anumit tip n modele de un alt tip.
Astfel:
Cu comenzile ss2tf i tf2ss cu argumente potrivite se pot
converti modelele de tip ecuaie-de-stare ecuaie-de-observare
n modele de tip funcie de transfer i invers.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

11

Cu comenzile zp2tf i tf2zp cu argumente potrivite se pot


converti modelele de tip poli-zerouri i invers.
Cu comenzile ss2zp si zp2ss cu argumente potrivite se pot
converti modelele de tip ecuaie-de-stare ecuaie-de-observare
n modele de tip poli-zerouri i invers.
Comenzile c2d si d2c permit trecerea de la modele/sisteme
continue n timp la modele/sisteme discrete n timp.
Desigur, aici nu se pot da toate detaliile referitoare la funciile din
System Identification Toolbox.. Prin comenzile specifice help se pot
observa i studia mai n amnunt funciile invocate. Exemple simple
tratate cu funciile subpachetului sunt, de asemenea, recomandate.
O alt form n care se stocheaz i se manevreaz structuri i
parametri de modele este forma/obiectul theta.
O comand help theta dezvluie structura acestui obiect care este o
matrice. O matrice theta conine informaii de structur, parametrii
(estimai) pe structura dat i acurateea lor (de asemenea estimat).
Pentru modelele structurilor cu ieiri multiple si cu evidenierea
spaiului strilor exist reprezentarea thss, analog n bun msur cu
modul de reprezentare theta.
Comanda help thss lmurete proprietile matricilor thss i diferenele
dintre cele dou reprezentri din aceeai familie. Nu sunt de ignorat
elementele de datare calendaristic i orar coninute n aceste
reprezentri, utile n identificarea n sens strict a unor rezultate stocate
n aceste forme.
Matricile theta au n vedere structura de model intrare-ieire
polinomial foarte general:
A(q)y(t) = [B(q) / F(q)] u(t-nk) + [C(q) / D(q)] e(t)

(1.3)

cu A, B, C, D si F polinoame n operatorul de ntrziere q, de ordinul


na , n b , n c , n d , d f, respectiv.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

12

Matricile theta sunt create de comenzile poly2th, pem, iv, iv4, arx,
armax, oe, bj, ar, ivar. Ele pot fi transformate n alte reprezentri cu
comenzile trf, zp, th2poly, th2th, th2ss si th2par.
Matricile thss sunt structuri care definesc n general modele liniare n
spaiul strilor.
Sunt folosite de comenzile/funciile pem, th2arx, th2par,th2ss, idsim,
present, thinit, fixpar, unfixpar, th2th, sunt create prin comenzile
ms2th, mf2th, arx, iv4, arx2th i pot fi modificate prin comenzile pem,
thinit, fixpar i unfixpar.
Detalierea coninutului matricilor theta se poate obine cu ajutorul
funciei/comenzii present.
Apelul la comanda help urmat de un nume din list clarific aciunea
fiecrei funcii din cele menionate.
2.2. Proceduri din subpachetul System Identification Toolbox
Forma general a modelelor intrare-ieire pentru sistemele cu ieire
unic este
n

A(q) y (t ) =
i =1

C (q)
B1 (q)
e(t )
u1 (t nk ) +
D(q)
F1 (q)

(1.4)

cu u t intrarea numrului i din cele n u intrri, cu y ieirea, cu A, B t , C, D


i Ft polinoame n operatorul de deplasare q 1 (sau z -1).
Structura general este definit prin ntrzierile n ki i prin ordinele
polinoamelor implicate care coincid cu numrul de poli i de zerouri
ale modelului dinamic de la intrri la ieire i ale modelului
perturbaiilor de la e la y.
Cteva cazuri speciale, particulare, ale modelului de mai sus sunt
urmatoarele:
ARX:
ARMAX:

A(q)y(t) = B(q) u(t-n k )+e(t)


A(q)y(t) = B(q) u(t-n k )+C(q) e(t)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

OE:
BJ:

y(t) = B(q) u(t-n k )+e(t)


F(q)
y(t) =
B(q) u(t-n k )+C(q) e(t) (Box-Jenkins)
F(q)
D(q)

13

(1.5)

Procedura arx este utilizat pentru identificarea sistemelor de tip ARX.


Calculele se fac pe baza unor date (y,u) observate experimental.
Secvena care urmeaz execut un exemplu de identificare pe date
experimentale generate prin simularea unui sistem dinamic de form
cunoscut.
clear
sisc=tf {[1 1],[1 2 5]} % se creeaz un sistem continuu n timp
step (sisc)
% se reprezint grafic rspunsul la treapt
unitar
sisd=c2d (sisc,0.01)
% se convertete sistemul la timp discret
hold on
% pe acelai grafic
step (sisd)
% se reprezint rspunsul la treapt unitara
[y,t]= step (sisd);
% se evalueaz rspunsul la treapt unitar
u1=sign ( randn (size (t) ) ); % se creeaza o intrare binar- aleatoare
[y1,t]=lsim (sisd, u1, t); % se evalueaz rspunsul prin simulare
z=[y1 u1];
% se creeaz matricea cu coloanele y1,u1
thd=arx (z, [2 2 1])
% se aplic procedura de identificare pe z,
pe structura cunoscut [na,nb,nk]=[2 2 1]
e=pe(z,thd);
% se calculeaz erorile de reprezentare
figure
% pe un grafic nou
h2=gcf;
% cu handler-ul h2
set(h2,Position,[150 90 560 420]); % dup poziionarea graficului
plot(t,e)
% se reprezint erorile de modelare
y1=y1+0.0001*randn(size(t)); % se altereaz ieirile observate
z1=[y1 u1];
% se creeaz noua matrice z sub numele de
z1
thd1=arx(z1,[2 2 1])
% se aplic din nou procedura de identificare
e1=pe(z1,thd1);
% se calculeaz erorile de reprezentare
title (Erori de modelare)
ylabel (Date curate)
xlabel (Timp (s) )
subplot(2,1,2)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

plot(t,e1)
ylabel (Date cu erori)
xlabel (Timp (s) )

14

% se reprezint erorile de modelare

Procedura armax este utilizat pentru identificarea sistemelor de tipul


ARMAX. O simpl nlocuire n secvena de mai sus a apelului la
funcia arx prin apelul la funcia armax, nlocuire insotit de
modificarea argumentului relativ la structur, [2 2 0 1] n loc de [ 2 2
1], face secvena utilizabil pentru ilustrarea identificrii unui sistem
ARMAX.
Procedura oe este utilizat pentru identificarea sistemelor modelate
prin relaii de tipul OE. i de data aceasta, o simpl nlocuire n
secvena de mai sus a apelului la funcia arx prin apelul la funcia oe
face secvena utilizabil identificrii unui sistem OE. Dei semnificaia
componentelor vectorului de structur se modific, acesta poate
rmne neschimbat: [2 2 1].
Pentru modele de tipul BJ (Box-Jenkins) este utilizat procedura bj. i
de aceast dat, n secvena de mai sus a apelului la funcia arx prin
apelul la funcia bj face secvena utilizabil pentru ilustrarea
identificrii unui sistem BJ. Vectorul de structur se modific din [2 2
1] in [2 0 0 2 1 ].
Invocarea comenzii help urmat de numele funciei particulare
utilizate lmurete semnificaia vectorului de structur pentru fiecare
caz n parte.
n secvena MATLAB de mai sus apare i funcia/comanda pe. Aceast
comand, n varianta de apelare
e = pe (z, th);
produce diferenele (erorile) dintre datele experimentale z i modelul th
dat n forma theta. O invocare cu o lista mai complet de restituiri
[ e, v, w, a, b, c, d, f] = pe (z, th)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

15

genereaz nu numai erorile de modelare ci i alte informaii asupra


modelului. n a, b, c, d i f sunt depuse polinoamele care apar n forma
general a modelului, iar n ceilali doi vectori cantitile
w=(b/f) u si
v = a [y -w].
O comand/ funcie care poate face tot ce pot face funciile referite mai
devreme este funcia pem, cu urmtoarele posibilitati de apelare:
th=pem (z, thstruc);
th=pem (z, thstruc, index);
i cu alte posibiliti sondabile prin comanda help pem. n aproape
toate cazurile, thstruc este o matrice cu structura modelului i cu o
parametrizare, fie ea si provizorie, n genul celor generate de funcia
poly2th. Se poate ns apela funcia pem i cu thstrc n form
vectorial, simpl
[na nb nc nd nf nk].
Forma de apelare fr index face operaia de identificare cu
iniializarea liber sau inspirat de parametrii din matricea thstruc,
dac aceasta este complet.
Forma cu argumentul index face aceeai operaie, dar numai pentru
parametrii din linia specificat prin acel index. Se nelege c, n acest
din urm caz, matricea thstruc trebuie s fie complet.
n ambele cazuri, introducerea unui ultim argument de tip ir cu
valoarea trace produce afiarea pe monitor a etapelor calculului de
estimare.

3. MODUL DE LUCRU
Dac nu este deja creat, se creeaz un director/folder de lucru.
Se activeaz platforma MATLAB i se introduce comanda

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

16

Cd (calea spre directorul/folderul de lucru)


Se apeleaz funciile care creeaz sisteme cu obiecte de toate
tipurile, continue sau discrete in timp. Se memoreaz sistemele
i apoi se recupereaz, dup o comand intermediar clear ( care
elibereaz memoria din spaiul MATLAB de lucru curent). Se
verific coninutul spaiului de lucru curent cu comenzile who
i/sau whos.
Din imaginaie sau din lucrrile anterioare se creeaz modele de
tipuri variate ale unor sisteme dinamice. Se aplic sistemelor
intrarea impulse sau intrarea step, prin comenzile adecvate
descrise sumar mai sus, si se urmresc rspunsurile sistemelor.
Se exploreaz conversiile posibile ntre diferite forme de modele
i ntre diferite forme sintetice de stocare a caracteristicilor lor.
Se extrag caracteristicile numerice ale rspunsurilor - lista de
valori ale ieirilor i vectorul momentelor la care rspunsurile
sunt observate.
Se creeaz un script dup modelul dat n seciunea Breviar
teoretic. Scriptul va fi executat repetat cu schimbrile semnalate
n acea seciune.
Se exploreaz identificarea n condiii de zgomot variate.
Exemplul dat introduce un zgomot cu abaterea medie ptratic
de 0,0001, coeficientul numeric din linia
y1=y1+0.0001*randn (size (t));
Se modific structura propus i se repet operaia de estimare
de parametri.
Din imaginaie sau din lucrri anterioare se creeaz sisteme
dinamice i modele de structuri diverse. Se introduc n script i
se face succesiv identificarea lor.
Se supun observrii critice n identificare i legtura lor cu
structurile alternative propuse i cu acurateea datelor.

LUCRAREA 2
SIMULAREA COMPORTRII SISTEMELOR
LINIARE DE ORDINUL I I ORDINUL II
FOLOSIND PACHETUL DE PROGRAME
MATLAB

1. OBIECTIVELE LUCRRII
Studiul comportrii sistemelor liniare de ordinul I i ordinul II la
intrri uzuale (treapt, ramp, sinusoid, aleatoare).

2. BREVIAR TEORETIC
Funcia de transfer a sistemului de ordinul I simulat este:
k
H(s)=
,
(2.1)
Ts + 1
iar funcia de transfer a sistemului de ordinul II :
kwn2 ( s + 1)
(2.2)
H(s)= 2
s + 2 wn s + wn2
cu notaiile uzuale: k pentru factorul de amplificare, wn pentru
pulsaia natural, pentru factorul de amortizare . Cazul =0 este
deplin reprezentativ, dar i cazurile cu gradul n s al numrtorului
egal cu unitatea sunt de luat n considerare.
Pentru a realiza o simulare ct mai sugestiv a unui sistem este
necesar a fi precizate cteva elemente cum sunt:
- Orizontul de timp pe care se realizeaz simularea;
- Numrul de puncte n care se cere a fi evaluat rspunsul
sistemului;
- Intervalul de timp ntre dou momente succesive, care coincide
uzual cu un interval de eantionare.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

18

Toate aceste elemente depind de particularitile sistemului (tip,


constantele sistemului) precum i de tipul semnalului aplicat la intrarea
sistemului.
Sistem de ordinul I
O alegere posibil a constantelor este k=2, T=5 s .
Secvena MATLAB
num=2;
% introducerea numrtorului
den=[5 1];
% i a numitorului funciei H(s)
step(num,den); % simularea i reprezentarea grafic a
rspunsului
corespunde cazului n care programul MATLAB alege automat, dup
reguli proprii, elementele de timp. Pentru a putea aduce la vedere
aceste elemente ultima instruciune se execut sub forma:
[y,x,t]=step(num,den); % alegerea elementelor temporale i
simularea.
In continuare
plot(t,y);
length(t);
t(2)-t(1);
t(length(t));

% reprezentarea grafic a rspunsului


% afiarea lungimii vectorului t
% afiarea intervalului dintre dou evaluri
% afiarea orizontului de timp

Forma obinuit a vectorului momentelor t este t=0:p:t max , cu p


distana dintre dou puncte succesive i cu t max orizontul de timp pe
care se face simularea .
Se deduce uor c numrul de elemente ale vectorului t aste de (t max
/p)+1. Timpul pe care se observ simularea pentru un sistem de
ordinul I se ia de obicei de apx. patru ori coeficientul T din expresia
funciei de transfer, pentru a cuprinde i o zon din regimul aproape
staionar.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

19

Iat o secven MATLAB cu alegerea interactiv a vectorului


temporal:
t=0:0.5:25;
% iniializarea vectorului t
y=step(num,den,t); % calcule de simulare
plot(t,y);
% reprezentarea grafic a rspunsului
Intrarea sistemului poate fi i de alte tipuri diferite de forma treapt. n
toate aceste cazuri se utilizeaz funcia MATLAB lsim.
Urmtoarea secven simuleaz sistemul i rspunsul lui la un semnal
ramp:
t=0:0.5:25;
% initializarea vectorului t
u=t;
% realizarea semnalului ramp
y=lsim(num,den,u,t); % calcule de simulare
plot(t,[y u']);
% reprezentarea grafic a intrarii i a
rspunsului
Dac intrarea este sinusoidal, este necesar a se alege pasul de
eantionare mai mic de un sfert din perioada sinusoidei.
Secvena urmatoare de instruciuni simuleaz rspunsul sistemului de
ordinul I la intrarea sinusoidal.
a=1;
per=3;
w=2*pi/per;
t=0:per/16:5*per;

% amplitudinea sinusoidei
% perioada semnalului sinusoidal
% pulsaia (frecvena unghiular)
% iniializarea vectorului temporal

u=a*sin(w*t);
% evaluarea eantioanelor intrrii
y=lsim(num,den,u,t); % calculul de simulare
plot(t,[y u']);
% reprezentarea grafic a intrrii i a
rspunsului
Rspunsul tinde la o sinusoid dup ce depete regimul tranzitoriu.
Pentru o intrare aleatoare, secvena MATLAB corespunztoare este
prezentat n continuare:

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

dt=1;
tm=25;
t=0:dt:tm;
for i=1:length(t)
u(i)=-1+rand(1);
end;
y=lsim(num,den,u,t);
plot(t,[y u']);
rspunsului

20

% intervalul de eantionare
% orizontul de timp pe care se face simularea
% vectorul temporal
% realizarea intrrii aleatoare
% calculul de simualare
% reprezentarea grafic a intrrii i

Sistem de ordinul II
Se propune mai nti scrierea funciilor MATLAB pentru sistemele de
ordinul II urmtoare:
function zvar(k,wn,nrz)
% zvar(k,wn,nrz)
% Calculeaz rspunsul la intrarea treapt unitar al unei familii
% de sisteme de ordinul II cu amplificarea k si pulsaia natural wn,
% la un factor de amortizare variabil ntre 0 i 1, nrz>1 este numrul
% de valori pentru factorul zeta sau numrul graficelor-rspuns
obinute
% Exemplu de apelare a funciei: zvar(1,1,10)
num=k*wn^2;
den=[1 0 wn^2];
% valoarea din den(2) se completeaz mai
tarziu
tmax=20/wn;
% se stabilete durata simulrii
t=0:0.1:tmax;
z=zeros(length(t),nrz); %matricea pentru rspuns
if nrz>1
dz=1/(nrz-1);
% increment pentru zeta
zeta=-dz;
% se iniializeaz zeta
for i=1:nrz
zeta=zeta+dz;
x(i)=zeta;
den(2)=2*zeta*wn;
z(:,i)=step(num,den,t);
end
mesh(t,x,z')
xlabel('Timp')

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

21

ylabel('Factor de amortizare','Position',[-1,0.3,0])
zlabel('Iesire')
title('Raspunsul la intrare treapta unitara pentru factor de
amortizare variabil')
end
function zfix(k,wn,zeta)
% zfix(k,wn,zeta)
% Calculeaz rspunsul la intrare treapta unitar al unui sistem
% de ordinul II cu amplificarea k, pulsaia natural wn, i factorul
% de amortizare zeta cu reprezentare grafic
% Exemplu de apelare a funciei: zfix(1,1,0.2)
num=k*wn^2;
% coeficieni numrtor
den=[1 2*zeta*wn wn^2]; % coeficieni numitor
tmax=20/wn;
% se stabilete durata simulrii
t=0:0.1:tmax;
% vectorul timp al eantionrilor
z=step(num,den,t);
% matricea pentru rspuns
plot(t,z)
xlabel('Timp')
ylabel('Iesire')
sir=num2str(zeta);
sir=strcat('Raspunsul la intrare treapta unitara pentru factorul de
amortizare zeta =',sir);
title('Sir')
hold on
y=[1 1];
x(1)=t(1);
x(2)=tmax;
grid
plot(x,y)
hold off
function isin(k,wn,zeta)
% isin(k,wn,zeta)
% Calculeaz rspunsul la intrri sinusoidale al sistemului de ordin
II
% cu amplitudinea k, pulsaia natural wn, i factorul de amortizare
zeta
% cu reprezentarea grafic i corelarea cu diagrama Bode

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

22

% Exemplu de apelare a funciei: isin(1,1,0.4)


wi=[0.5 1.0 1.5]; % factori de modificare a frecvenei la intrare
dt=0.1/wn;
tmax=500*dt;
t= 0:dt:tmax;
num=k*wn^2;
den=[1 2*zeta*wn^2];
clf
for i=1:3
u=sin(wi(i)*wn*t);
y(:,i)=lsim(num,den,u,t);
end
figure(1)
for i=1:3
subplot(3,1,i)
plot(t,y(:,i))
axis([0,tmax,-5,5])
grid on
if i==3
xlabel('Timp')
end
sir=num2str(wi(i));
sir=strcat('Iesire la w=',sir,'*wn');
ylabel(sir)
end
figure(2)
w=logspace(log10(wn)-1,log10(wn)+1);
m=bode(num,den,w);
clf
loglog(w,m)
grid on
xlabel('Pulsatia w')
ylabel('Amplificare')
title('Diagrama Bode')
set(gcf,'Position',[140 100 560 420])
Reprezentrile grafice obinute ca urmare a rulrii secvenelor de
program exemplificate mai sus sunt prezentate n figura 2.1 i n figura
2.2.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

23

3. MODUL DE LUCRU
Se activeaz platforma MATLAB i se introduc succesiv
secvenele de program menionate mai devreme.
Cerine pentru sistemele de ordinul I
Pentru cazul aplicrii semnalului de tip treapt se modific
lungimea vectorului t de la 20 la cca. 100 puncte, se modific
orizontul de timp meninnd numrul de puncte la 101 puncte; se
ncearc evaluarea coeficienilor k i T pe grafic; se modific cele
dou valori i se observ stabilitatea sistemului.
n fiecare caz se examineaz aspectele legate de reprezentarea
grafic.
Pentru intrarea treapt se ncearc identificarea prin metoda
indicial, se fac aprecieri asupra preciziei.
Pentru intrarea sinusoidal se studiaz regimul tranzitoriu i
tendina spre regimul staionar.
Se recomand studiul atent al funciei de generare a numerelor
aleatoare rand i al comportrii sistemului n cazul utilizrii unei
intrri aleatoare.
Cerine pentru sistemele de ordinul II
Prin apelarea funciei zvar se obine o reprezentare n trei
dimensiuni pe care se poate observa influena factorului de
amortizare asupra formei rspunsului la un salt treapt unitar, al unui
sistem de ordinul II cu poli complex conjugai. Valorile factorului de
amortizare sunt n acest caz subunitare i pozitive;
Prin apelarea repetat a funciei zfix, se obin grafice ale
rspunsului unui sistem de ordinul II pentru valori fixe ale factorului
de amortizare chiar supraunitare sau negative;
n fiecare caz se examineaz aspectele legate de reprezentarea
grafic, aspectele privitoare la stabilitatea sistemului;
Pe graficele pentru valori fixate ale factorului de amortizare se
ncearc identificarea prin metoda indicial, se fac aprecieri asupra
preciziei evalurilor;

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

24

Apelarea funciei isin permite observarea comportrii unui


sistem de ordinul II dac la intrare se aplic o sinusoid de
amplitudine maxim unitar. Se pot face comparaii cu diagrama
Bode;
Se recomand realizarea unui grafic cu toate rspunsurile pe
aceeai diagram pentru facilitarea comparrii amplitudinilor la
ieire n zona staionar (regimul permanent);
Se fac comparaii cu diagrama Bode;
n vederea altor aplicaii, se vor studia funciile din biblioteca
MATLAB utilizate n secvenele de program din lucrare (grid,
logspace, clf, loglog, plot etc. ).
Fig.2.1. Reprezentri grafice pentru sistemele de ordinul I
graficul raspunsului

graficul intrarii si raspunsului la semnal rampa

45

1.8

40

1.6
35

1.4
30

1.2
25

1
20

0.8
0.6

15

0.4

10

0.2

10

15

20

25

30

10

15

20

25

graficul unei intrari aleatoare si a raspunsului

graficul la intrare sinusoidala si raspunsul acesteia


0

1
0.8
0.6
0.4

-0.5

0.2
0
-0.2

-1
Fig.2.2. Reprezentri grafice pentru
sistemele de ordinul II

-0.4
-0.6
-0.8
-1

-1.5

Fi

10

15

10

15

20

25

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Fig.2.2. Reprezentri grafice pentru sistemele de ordinul II

raspunsul la intrare treapta unitara pentru factorul de amortizare zeta=0.2


1.6
1.4
1.2

iesire

1
0.8
0.6
0.4
0.2
0

ies 5
ire
la
w= 0
0.5
*w
n -5
ies 5
ire
la
w= 0
1*
wn
-5
ies 5
ire
la
w= 0
1.5
*w
n -5

10
timp

12

14

16

18

20

raspuns la intrari sinusoidale

10

15

20

25

30

35

40

45

50

10

15

20

25

30

35

40

45

50

10

15

20

25
timp

30

35

40

45

50

25

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Diagrama Bode

10

10

-1

10

-2

10

-1

10

10
pulsatia w

10

26

LUCRAREA 3
ALGORITMI DE TIPUL FFT
(FAST FOURIER TRANSFORM).
CALCULUL FUNCIILOR DE CONVOLUIE I
COVARIAN FOLOSIND FFT

1. OBIECTIVELE LUCRRII
Studiul transformatei Fourier folosind algoritmul FFT implementat
cu pachetul de programe MATLAB. Calculul functiilor de
convolutie si covarianta folosind FFT.

2. BREVIAR TEORETIC
2.1. Algoritmul FFT
Este esenial, pentru nceput, s fie subliniat faptul c algoritmul FFT
pentru calculul transformatei Fourier discrete a unei secvene este
punctul nodal al procesrii semnalelor digitale. El este aplicat n
filtrare, convoluie, calculul rspunsului la frecven, ca i n aplicaii
referitoare la estimarea spectrului de putere.
fft(x) este transformata Fourier discret a vectorului x, calculat cu o
transformat Fourier rapid. Dac X este o matrice, fft(X) este
transfornmata Fourier rapid a fiecrei coloane a lui X.
fft(x,n) este transformata Fourier rapid n n puncte. Dac lungimea lui
x este mai mic dect n, x este completat cu zerouri pn la lungimea
lui n. Dac lungimea lui x este mai mare dect n, secvena x este
trunchiat. Cnd X este matrice, lungimea coloanelor este ajustat n
acelai fel.
ifft(x) este transformata Fourier invers a vectorului x.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

28

Cele dou funcii care urmeaz implementeaz perechea transformata


Fourier transformata Fourier invers dat:
N 1

X(k+1)= x n 1WNkn
n 0
N 1

X(n+1)=

1
N

X k 1WNkn ,

k 0

(3.1)

unde WN e -j2n i N=lungime(x)


Exemplu
FFT a unui vector coloan x, de forma
x=[4 3 7 9 1 0 0 0
se gsete cu
y=fft(x)
i d drept rezultat
y=6.0000
11.4853
-2.0000

fft b, h
fft a, n

-2.7574i
-12.0000i
(3.2)

2.2. Funcii de convoluie i de corelaie


Exist o colecie de funcii disponibile pentru convoluie, deconvoluie
i pentru calculul estimrilor funciilor de corelaie, i anume:
conv funcii de convoluie
deconv funcii de deconvoluie
xcorr funcii de transcorelare
xcov funcii de transcovarian
corrcoef coeficieni de corelaie
cov matrice de covarian

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

29

2.2.1. Convoluie i deconvoluie


Propoziia
c=conv(a,b)
face convoluia vectorilor a i b.
Suma de convoluie este
N 1

c n 1 a k 1 b n k

(3.3)

k 0

unde N este lungimea secvenei maxime.


Operaia

q,r=deconv(b,a)

face deconvoluia vectorului a din vectorul b. Rezultatul este ntors n


vectorul q i restul n vectorul r, astfel nct b=conv(q,a)+r
Dac a,b sunt vectori cu coeficieni polinomiali, convoluia este
echivalent cu multiplicarea celor dou polinoame, iar deconvoluia
este o mprire polinomial.

Fig. 3.1. Fereastra de prezentare n MATLAB a transformatei Fourier


discret

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


Click and drag waveform to change
fundamental frequency and amplitude

Waveform

1
0.5
0
-0.5

Magnitude (dB)

-1

0.2

0.4
0.6
Time (Seconds)

0.8

20

40
60
Frequency (Hertz)

80

100

40
20
0
-20
-40

Click and drag waveform to change


fundamental frequency and amplitude

Waveform

1
0.5
0
-0.5

Magnitude (dB)

-1

0.2

0.4
0.6
Time (Seconds)

0.8

20

40
60
Frequency (Hertz)

80

100

40
20
0
-20
-40

30

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

31

Click and drag waveform to change


fundamental frequency and amplitude

Waveform

1
0.5
0
-0.5

Magnitude (dB)

-1

0.2

0.4
0.6
Time (Seconds)

0.8

20

40
60
Frequency (Hertz)

80

100

40
20
0
-20
-40

Fig.3.2. Fereastra de prezentare in MATLAB a transformatei Fourier


continue

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Waveform

Click and drag waveforms to change frequency and amplitude


1

-1
-1

-0.5

0
Time (Seconds)

0.5

-4

-2
0
2
Frequency (Hertz)

Magnitude

2
1
0
-8

-6

Waveform

Click and drag waveforms to change frequency and amplitude


1

-1
-1

-0.5

0
Time (Seconds)

0.5

-4

-2
0
2
Frequency (Hertz)

Magnitude

2
1
0
-8

-6

3. MODUL DE LUCRU. PROBLEME PROPUSE


Calculul FFT a vectorului coloan v = [9 8 12 4 6 5 5 5].
fprintf(Transformata Fourier a vectorului:)
v=[9 8 12 -4 6 5 5 5]
fprintf(este :)
tfv=fft(v)

32

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

33

Calculul FFT a matricei A=[1 2 3, 4 5 6, 7 8 9],


fprintf(Transformata Fourier a matricei:)
a=[1 2 3 ; 4 5 6 ;7 8 9]
fprintf(este :)
tfa=fft(a)
Calculul FFT invers a matricei B=[6 7 8 9, 4 5 6 8, 1 1 2 3, 4 7 6 7].
fprintf(Transformata Fourier inversa a matricei:)
b=[6 7 8 9 ;4 5 6 8 ;1 1 2 3 ;4 7 6 7]
fprintf(este :)
itfb=ifft(b)
Cu setul de date obinut dintr-un cosinus eantionat cu 10 pai pe
perioad: y=cos(2k/10), interpolai datele cu un pas dublu i verificai
valorile obinute.
Se interpoleaz datele cu o singur variabil utiliznd metoda FFT
(Fast Fourier Transform) cu ajutorul funciei interpft.
Considernd funciile x=5+6t, y=6t i z=5sin(t), se cere calculul
coeficienilor de corelaie Rxy i Rxz, pentru domeniul t [0,5].
.
t=0:1:5;
x=5+6*t;
y=6*t;
z=5*sin(t);
plot(t,x,t,y,t,z);
rxy=corrcoeff(x,y)
rxz=corrcoeff(x,z)
Cu funciile de la punctul precedent, dar cu t de forma
t=3w2+3cos(2 w/3),
calculai coeficienii de corelaie Rxy i Rxz, pentru w [0,25].
Ce concluzii tragei n urma efecturii punctelor de mai sus unde ai
folosit funcia corrcoef ?
Ce dependen exist ntre x i y, dar ntre x i z? Justificai rspunsul.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

34

Pentru matricile de la punctele de mai sus, s se afle matricea de


covarian.
Indicaie : se va folosi funcia cov.
Considernd A = [5 6 2 1] i B = [4 3 2 1] doi vectori care conin
coeficienii a dou polinoame s se fac convoluia i deconvoluia
acestora.
Indicaie : se va folosi funciile conv i deconv.
Folosind funciile de transcorelare i de transcovarian, (xcorr i
respectiv xcov), cu un set de date ales arbitrar, s se interpreteze
rezultatele obinute.

LUCRAREA 4

INDICATORI STATISTICI AI
MSURRILOR. FUNCII MATLAB PENTRU
CALCULE STATISTICE

1. OBIECTIVELE LUCRRII
Studiul funciilor MATLAB pentru calcule statistice. Aplicaii.

2. BREVIAR TEORETIC
Funciile uzuale MATLAB folosite pentru calcule statistice sunt
urmtoarele:
1) cumsum(x,dim) calculeaz suma cumulat a elementelor
vectorului x de dimensiune dim.
Pentru o matrice rezultatul este tot o matrice cu dimensiunile lui x i
conine suma cumulat pentru fiecare coloan.
Exemplu
Pentru X=[1 2 3; 1 2 3],
cumsum(X,1);
are ca rezultat matricea [1 2 3;2 4 6]
iar cumsum(X,2);
are ca rezultat vectorul [1 3 6;1 3 6];

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

36

2) cumprod(x,dim) calculeaz produsul cumulat al elementelor


vectorului x. Pentru x matrice rezultatul este tot o matrice cu
dimensiunile lui x i conine produsul cumulat al fiecrei coloane.
Exemplu
cumprod(x,1)
are ca rezultat matricea [1 2 3; 1 4 9]
cumprod(x,2)
are ca rezultat matricea [1 2 6; 1 2 6].
3) corrcoef(x) calculeaz o matrice pentru coeficieni de corelaie
pentru un vector x, n care fiecare linie a matricei este o observaie, iar
fiecare linie este o variabil.
corrcoef(x,y,) , unde x i y sunt vectori coloan este acelai lucru cu a
scrie corrcoef([x,y]).
Coeficienii de corelaie ai datelor se folosesc pentru a stabili dac
ntre dou seturi de date nregistrate n 2 vectori diferii exist o
dependen liniar.
Exemplu
x=[1 2 3; 2 7 5; 3 5 8]
a=[1 2 3;4 5 6; 7 8 9];
r=corrcoef(x)
are ca rezultat
r=
1.0000 0.5960
0.5960 1.0000
0.9934 0.5000
iar
r=corrcoef(a,x)
are ca rezultat

0.9934
0.5000
1.0000

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

37

r=
1.0000
0.7614

0.7614
1.0000

4) cov(x) dac x este un vector funcia ntoarce variana acestuia.


Dac x este o matrice cu liniile observaii i coloanele variabile aceasta
funcie va returna o matrice de covarian
Exemplu
cov(x) pentru matricea de mai sus va returna
1.0000
1.5000
2.5000

1.5000
6.3333
3.1667

2.5000
3.1667
6.3333

5) diff(x) diferena dintre numerele succesive.


Pentru un vector cu elementele x1 x n diferena este tot un vector
calculat astfel [x2 x1 x n x n-1 ], iar pentru o matrice se face
diferena dintre liniile succesive.
Exemplu
a= [2 4 3 5 1 7];
diff(a) = [2 -1 2 -4 6]
x=[1 2 3; 2 7 5; 3 5 8];
diff(x) = [1 5 2;1 -2 3]
6)n=hist(y) mparte elementele lui y n 10 intervale egale i
returneaz numrul de elemente din fiecare interval. Dac y este o
matrice hist va lucra n josul coloanelor.
Hist() fr argumente produce o histogram, conform exemplelor
prezemtate in figura 4.1 i figura 4.2.
Exemplul 1
Secvena de program
a= [2 4
hist(a)

7]

produce reprezentarea grafic din figura 4.1.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Fig.4.1. Histograma corespunztoare exemplului 1


Exemplul2
Secvena de program
x=[1 2 3; 2 7 5; 3 5 8];
hist(x).
produce histograma din figura 4.2.

Fig.4.2. Histograma corespunztoare exemplului 2

38

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

39

7) max(x), min(x) returneaz valoare maxim, respectiv minim a


componentelor vectorului x.
Dac x este matrice returneaz ntr-un vector maximul/minimul de pe
fiecare coloan.
Exemplu
a= [2 4 3 5 1
min(a)= 1
x=[1 2 3; 2 7 5; 3 5 8];
max(x)=[3 7 8]

7] ;

8) mean(x) returneaz valoarea medie a unui set de date dintr-un


vector x. Dac datele sunt elementele unei matrice, valoarea medie
este coninut de un vector care are elementele valorile medii ale
fiecrei coloane.
Exemplu
a= [2 4 3 5 1 7] ;
x=[1 2 3; 2 7 5; 3 5 8];
mean(a)=3,667
mean(x)=[ 2.0000 4.6667 5.3333]
9) prod(x) calculeaz produsul elementelor unui vector, iar pentru o
matrice rezultatul este un vector care are ca elementele produsul de pe
fiecare coloan a matricei.
Exemplu
a= [2 4 3 5 1
x=[1 2 3; 2 7 5; 3 5 8];
prod(a)=840
prod(x)=[6 70 120]

7];

10)sort(x) sorteaz elementele unui vector sau matrice n ordine


cresctoare (la matrice sortarea se face pe fiecare coloan)
Exemplu
a= [2 4 3 5 1
x=[1 2 3; 2 7 5; 3 5 8];

7] ;

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

sort(a)=[ 1
sort(x)=[ 1

2
2

3 4 5 7]
3; 2 5 5; 3

40

8]

11) std(x) calculeaz abaterea standard.


Exemplu
a= [2 4 3 5 1 7] ;
x=[1 2 3; 2 7 5; 3 5 8];
std(a)= 2.1602
std(x)=[ 1.0000 2.5166 2.5166]
12) sum(x) calculeaz suma elementelor unui vector, iar pentru o
matrice se obine un vector cu elemente ce au valoarea egal cu suma
de pe fiecare coloan.
Exemplu
a= [2 4 3 5 1
x=[1 2 3; 2 7 5; 3 5 8];
sum(a)=22
sum(x)=[6 14 16]

7] ;

13) trapz(x) calculeaz integrala folosind metoda trapezelor lund n


considerare i spaiile.
Exemplu
a= [2 4 3 5 1 7] ;
x=[1 2 3; 2 7 5; 3 5 8];
trapz(a)= 17,5
trapz(x)=[4 10,5 10,5]
14) table1(tab,x0) returneaz un tabel cu interpolarele liniare ale
liniilor din tabelul tab.
Exemplu
a= [2 4 3 ; 5 1 7] ;
r=table1(a,3)= [3 4,333]
15) y=interpft(x,n) returneaz vectorul y cu lungimea n obinut prin
interpolarea lui x prin metoda transformatei Fourier.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

41

Dac x este o matrice interpolarea se face pe fiecare coloan.


Exemplu
a= [2 4 3 ; 5 1 7] ;
y=interpft(a,2)= [2 4 3
5 1 7]
16) polyfit(x,y,n) aproximeaz un set de date cu un polinom P(x) de
gradul n.
Exemplu
a=[2 4 3;5 1 7];
b=[1 4 2; 1 5 7];
polyfit(a,b,3)
ans =[-0.0109 0.5471 -3.3582

7.192]

17) griddata(x,y,z,xi,yi) interpoleaz prin metoda distanei inverse


valoarea unei funcii de dou variabile x, y.

3. MODUL DE LUCRU
3.1. Probleme rezolvate
1. Fie doi vectori x=[-2 -1 0 2 4 ]; y=[-15 -3 2 3 10]; S se aplice o
procedura de regresie liniar celor doi vectori i s se reprezinte grafic
rezultatul obinut.
Rezolvare
x=[-2 -1 0 2 4 ];
y=[-15 -3 2 3 10];
coef=polyfit(x,y,1);
xn=-2:1:4;
y1=polyval(coef,xn)
plot(xn,y1,'r');
coef = 3.4828 -2.6897
y1 =-9.6552 -6.1724 -2.6897
11.2414

0.7931 4.2759

7.7586

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

42

Reprezentarea grafic a dreptei obinute n urma aplicrii procedurii de


regresie liniar este cea din figura 4.3.

Fig.4.3. Regresie liniar


2. Pentru un servomotor cu poziioner s-au obinut datele
experimentale din tabelul urmtor:
P[bar] 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
H[mm] 0
5
12 16 21 27 32 32 32
S se traseze caracteristica static a servomotorului cu poziioner .
Rezolvare
p=[0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
h1=[0 5 12 16 21 27 32 32 32];
table1(p,0.2);
plot(p,h1);
grid on;
ylabel('H[mm]');
xlabel('presiunea [bar]');
title('CARACTERISTICA STATICA A SERVOMOTORULUI
CU POZITIONER');

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

43

Fig.4.4. Caracteristica static a servomotorului cu poziioner


3.2. Probleme propuse
1. S se determine minimul i maximul vectorului V i matricei M,
unde :
V=[1 3 -9 0]
M=[1 2 3; -4 0 9; 13 7 -10]
2 S se sorteze matricele A i B de forma:
A=[1 -2 3; 5 -9 0 ; -10 3 0]
B=[7 2 -5 4 -1; 5 8 1 -6 -4; 2 0 -3 6 9]
3. S se realizeze prin interpolare graficul unei funcii tiind c acesta
conine punctele A(1,1), B(2,3), C(2.5,5), D(4,6), E(6,10).
4. Fie vectorii
x=[-2 -1 0 2 4 ]; y=[-15 -3 2 3 10].
S se aplice o procedur de regresie liniar celor doi vectori.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

5. Fie matricea A, de forma


A=[1 3 2 5; 3 5 7 6; 2 8 5 9; 4 2 1 1].
S se calculeze:
- suma cumulat;
- produsul cumulat;
- produsul i suma elementelor;
- s se sorteze mai nti dup linii i apoi dup coloane.
S se reprezinte grafic histograma corespunztoare.

44

LUCRAREA 5
FILTRAREA DATELOR EXPERIMENTALE
AFECTATE DE ZGOMOTE
1. OBIECTIVELE LUCRRII
Studiul posibilitilor de diminuare a zgomotelor care nsoesc datele
experimentale recoltate n scopul identificrii unui sistem.

2. BREVIAR TEORETIC

Rspuns indicial

Datele experimentale sunt nsoite de cele mai multe ori de zgomote.


Figurile 5.1.si 5.2. ilustreaz rspunsul normalizat al unui sistem liniar
de ordinul I la intrare treapt unitar neafectat, respectiv afectat de
prezena zgomotului.

Timp

Rspuns indicial

Fig. 5.1. Rspunsul normalizat al unui sistem de ordinul I la intrare


treapt unitar, neafectat de zgomote.

Fig. 5.2. Rspunsul normalizat al unui sistem de ordinul I la intrare


treapt unitar, afectat de zgomote.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

46

Pentru identificarea sistemului prin metoda indicial este necesar


evaluarea derivatei ntr-un moment oarecare, n particular n origine, i
apoi intersectarea dreptei tangente la curb cu dreapta y=1. Diferena
absciselor punctului n care se evalueaz derivata i a celui de
intersecie a tangentei cu orizontala regimului staionar este exact
constanta de timp a sistemului. Evaluri ale derivatelor i a funciei
rspuns se cer i pentru alte sisteme de ordine variate. Dac evalurile
pot fi acceptate n cazul datelor puin (sau deloc) afectate de zgomot,
pentru situaiile cnd zgomotul devine important, evalurile pe calea
clasic, n esen o cale grafic, sunt imposibile.
O metod de a netezi curbele experimentale de genul celor prezentate
anterior este filtrarea printr-un filtru trece-jos. Este vizibil faptul c
fenomenul tranzitoriu este relativ lent, aadar este reprezentat de
frecvenele joase ale spectrului, n timp ce fluctuaiile datorate
zgomotului sunt fenomene considerabil mai rapide, legate prin urmare
de frecvene mai ridicate din spectru. Pentru semnale analogice se pot
utiliza filtre trece-jos analogice. Un simplu divizor RC cu ieirea pe
capacitate, de exemplu, este un filtru trece-jos, fr caliti deosebite,
dar este un filtru care atenueaz cu precdere frecvenele nalte.
Datele recoltate uzual sunt date numerice de tip eantioane prelevate
cu o anumit regularitate ale unor funcii definite pe intervale de timp
dense pe axa real a timpului. Exist o varietate de filtre numerice de
tipul trece-jos care pot fi utilizate pentru diminuarea zgomotului.
Filtrele numerice cele mai simple sunt filtrele de mediere. Ieirea unui
astfel de filtru se prezint ca media aritmetic a unui numr de
eantioane succesive

=
y(t )

1 n
x(t i + 1)
n
i =1

(5.1)

Graficele care urmeaz ilustreaz efectul filtrrii prin medierea a trei


sau a cinci valori consecutive.

47

(2)

(1)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

(3)

Timp

(4)

Timp

Timp

Fig.5. 3. Efectul filtrrii prin medierea valorilor


consecutive
Se observ evoluia calitativ a datelor pe msur ce numrul de
eantioane mediate crete: trei pentru figura (3), cinci pentru figura (4).
Datele brute, nefiltrate sunt reprezentate n figura (2). Se reia pentru
ilustrare i graficul (1) cu rspunsul neafectat de zgomot.
Graficele au fost generate cu secvena MATLAB urmtoare:

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

48

% Programul realizeaz filtrarea unui semnal afectat de zgomot


%Sintaxa de apelare este Filtrare(k,a,m)
%k-coeficientul din functia de transfer
%a-timpul de intarziere al sistemului
%m-numarul de date luate in fiecare medie facuta
Function Filtrare(k,a,m)
sis=tf(k,[a,1];
[y,t]=step(sis);
hold on;
z=rand(size(y));
y1=y+(z-5)*.05;
pause;
plot(t,y1);
for j=1:109-m;
s=0;
forI=j:j+m;
s=s+y1(I);
end
y2(j)=1/(m+1)*s;
end
hold off;
pause;
plot(t,y2,g);
pause;
Filtrarea prin mediere nu este singura modalitate de a obine din date
afectate de zgomot, date mai puin marcate de fluctuaiile satistice. Un
efect de filtrare trece-jos are i interpolarea rspunsului din
eantioanele sale prin mijlocirea funciei sinc
x=0
1
sinc(x)= sin(x) x 0

combinat cu o fereastr finit.

(5.2)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

49

Se cunoate faptul c un semnal de band limitat se poate


reconstitui
pe
baza
relaiei:
n

sin
2
W
t

+
2W
n

s (t ) = s

n = 2W
2W t

2W

(5.3)

dac frecvena eantioanelor este cel puin egal cu dublul frecvenei


celei mai mari din spectrul de frecvene al semnalului. Relaia de mai
sus, cunoscut i sub numele de teorema eantionrii, care conine
amintita funcie sinc, este nepractic din cauza sumei infinite pe care o
conine. Se recurge, de aceea, la un numr finit de eantioane ceea ce
se poate interpreta ca privirea eantioanelor printr-o fereastr
rectangular, descris de relaia

1,
w(t ) =
0,


t ,
2 2

(5.4)

n rest

i care este de lrgime finit , definit n jurul originii dar centrat


succesiv pe momente de timp variate, momente n care se urmrete a
fi (re)evaluat semnalul s(t) din eantioanele sale. Relaia de interpolare
se modific dup cum urmeaz
(5.5)
n

W
t

sin
2

+
n
n
2W
s (t ) = s
w t

n
2W

n = 2W
2W t

2
W

i cu toate c valorile extreme ale indicelui dup care


se face
nsumarea au fost meninute aceleai, infinite, nsumarea se face de
fapt pe un numr finit de eantioane, cele cuprinse n fereastr.
Formula de interpolare cu fereastr dat mai sus se utilizeaz i pentru
semnale de band nelimitate (semnalul observat la ieirea unui sistem
cnd la intrarea lui se aplic o variaie treapt este de aceast natur)
cu pierderi de componente din partea superioar a spectrului. De aici
utilul i ateptatul efect de filtrare/diminuare a zgomotelor nsoitoare
ale unui semnal.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

50

Utilizarea ferestrei rectangulare este n toate privinele


echivalent cu filtrarea prin mediere dac eantioanele sunt ponderate
astfel ca suma ponderilor s fie egal cu unitatea. Stabilirea acestor
ponderi se face simplu prin normalizarea eantioanelor unui semnal
cuprinse n fereastr.
Fereastra rectangular nu este singurul tip de fereastr utilizat n
calcule de filtrare. Exist posibilitatea de a alege ntre mai multe tipuri
de ferestre i de a selecta o deschidere anume pentru fereastra reinut
pentru calcule. Sunt date imediat cteva ferestre dintre cele mai
utilizate.
Fereastra Bartlett

x
x <
pentru
1
Bartlett ( x, ) =
(5.6)
0
n rest

Fereastra Blackmann

x
0.42 + 0.50 cos + 0.08 cos 2
Blackmann( x, ) =

0
n rest

x <

(5.7)
Fereastra Gauss
x 2

Gauss( x, , ) = 2
0

x <
(5.8)

n rest
Ferestrele Hann i Hamming, foarte asemntoare, diferite numai
prin parametrul (=0.5, respectiv =0.54)

x
+ (1 )cos
H ( x, , ) =

0

x <

(5.9)

n rest

Fereastra Kaiser cu parametrul ajustabil care controleaz ct de


rapid se apropie de zero laturile ferestrei

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


51
I ( 1 ( x / )2 )
x <
0
(5.10)
Kaiser ( x, , ) =
I 0 ( )

n rest
0

cu I 0 (x) funcia Bessel modificat de ordinul zero.

Fereastra Lanczos, lobul central al funciei sinc extins la un interval


dat

x
sin

x <
Kaiser ( x, , ) =
x

n rest
0

(5.11)

Fereastra Parzen, o aproximare cubic pe poriuni a ferestrei Gauss de


ntindere doi.
(2 + x)3

4 6 x 2 3 x3

Parzen( x, , ) =4 6 x 2 + 3x3

3
(2 x)
0

1 x 0

0 x 1
1 x 2

(5.12)

n rest

Fereastra Welch, descris de relaia (5.13)


x 2
1
Welch( x, , ) = pentru

n rest
0

x <

(5.13)

In figura 5.4. este reprezentat grafic un semnal sinusoidal, iar n


figurile 5.5. i 5.6, acelai semnal sinusoidal filtrat utiliznd, respectiv,
ferestrele Bartlett i Kaiser.
Graficele au fost generate cu urmtoarea secven de program :

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


function grafice(tau,alfa)
t=1;
for x=-tau-1:.1:tau+1;
y(t)=sin(sin(10*x)/7+cos(9.5*x/2)/10)/2;
t=t+1;
end
x=-tau-1:.1:tau+1;
figure
qq=polyfit(x,y,3);
pp=polyval(x,qq);
xx=-tau-1:.001:tau+1;
nnv=spline(x,y,xx);
plot(xx,nnv);
title('Semnal sinusoidal
sin(sin(10*x)/7+cos(9.5*x/2)/10)/2');
hold on;
grid;
t=1;
figure;
for x=-tau-1:.1:tau+1;
if ((x>=-tau)&(x<=tau))
bartlett(t)=1-abs(x)/tau;
else
bartlett(t)=0;
end
t=t+1;
end
x=-tau-1:.1:tau+1;
qq=polyfit(x,bartlett,3);
pp=polyval(x,qq);
xx=-tau-1:.001:tau+1;
nnv=spline(x,bartlett,xx);
plot(xx,nnv,'r');
%title('Fereastra Bartlett');
hold on;
t=1;
yt1=y+bartlett;
qq=polyfit(x,yt1,3);
pp=polyval(x,qq);
xx=-tau-1:.001:tau+1;
nnv=spline(x,yt1,xx);
plot(xx,nnv);
title('Filtrarea cu ajutorul ferestrei Bartlett')
grid;
t=1;
figure;

52

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


for x=-tau-1:.1:tau+1;
if ((x>=-tau)&(x<=tau))
kaiser(t)=besseli(0,x)*(alfa*(1(x/tau)^2)^(1/2)/besseli(0,alfa));
else
kaiser(t)=0;
end
t=t+1;
end
x=-tau-1:.1:tau+1;
qq=polyfit(x,kaiser,3);
pp=polyval(x,qq);
xx=-tau-1:.001:tau+1;
nnv=spline(x,kaiser,xx);
plot(xx,nnv,'r');
hold on;
%title('Fereastra Kaiser');
t=1;
%figure
yt2=y+kaiser;
qq=polyfit(x,yt2,3);
pp=polyval(x,qq);
xx=-tau-1:.001:tau+1;
nnv=spline(x,yt2,xx);
plot(xx,nnv);
title('Filtrarea cu ajutorul ferestrei Kaiser')
grid;

Fig.5.4. Semnal sinusoidal nefiltrat

53

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

54

Fig.5.5. Semnal sinusoidal filtrat cu fereastra Bartlett

Fig.5.6. Semnal sinusoidal filtrat cu fereastra Kaiser


n identificarea prin metoda indicial se utilizeaz derivarea curbei
rspunsului la intrarea treapt. Pentru evaluarea derivatei exist
posibilitatea utilizrii funciei cosc, de forma

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

cos( x) sin( x)

cos c( x) = x
x2
0

pentru

x0

pentru

x=0

55

(5.14)

care este derivata funciei sinc menionat mai devreme. Derivarea


termen cu termen a sumei din teorema eantionrii produce o sum de
funcii cosc cu coeficieni proporionali cu eantioanele semnalului.
Prin utilizarea unor ferestre din cele prezentate mai sus se pot obine
estimri ale derivatei semnalului.

3. MODUL DE LUCRU
Se genereaz o secven de eantioane ale rspunsului indicial al
unui alt sistem liniar de ordinul I i se observ efectul zgomotului i
efectul filtrrii trece-jos prin mediere.
Se elaboreaz programe care definesc funcii capabile s filtreze un
semnal prin mijlocirea celorlalte ferestre din cele prezentate n
Breviar teoretic Blackmann, Gauss, Hann, Hamming, Parzen,
Lanczos. Se observ efectul filtrrii trece-jos realizate.
Se elaboreaz programul de implementare al unui algoritm de calcul
al derivatei cu funcia cosc i fereastr rectangular. Se observ
efectul de filtrare la evaluarea derivatei pe baza datelor-eantioane.
Se evalueaz derivata rspunsului cu funcia cosc i fereastra
rectangular n condiii variate de zgomot.

LUCRAREA 6
ESTIMATORI M. ESTIMATORI DE
PARAMETRI ROBUTI

1. OBIECTIVELE LUCRRII
Studiul comportrii aa-numiilor estimatori M, estimatori de
parametri nrudii cu binecunoscutul estimator bazat pe metoda celor
mai mici ptrate, dar cu robustee mbuntit n prezena erorilor
grosiere prezente n date.

2. BREVIAR TEORETIC
O tehnic robust foarte popular n estimarea de parametri este
tehnica aa-numiilor estimatori M.
Fie r i rezidualul experimental i, adic diferena dintre observaia i i
valoarea dat de un model. Metoda standard a celor mai mici ptrate
ncearc s minimizeze suma ptratelor acestor reziduale i r i 2.
ncercarea poate fi instabil dac n date sunt prezente erorile grosiere
(outliers). Datele cu erori grosiere pot produce un efect att de
important n minimizarea sumei ptratelor nct parametri estimai s
fie grav distorsionai.
Estimatorii M pot reduce efectul erorilor grosiere prin nlocuirea
rezidualelor luate la ptrat din expresia clasic a celor mai mici ptrate
cu o alt funcie de reziduale, i ( r i ), cu o funcie simetric (par)
pozitiv definit, cu un minim unic n origine i cu o cretere mai lent
dect ptratul.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

57

n locul rezolvrii directe a problemei se implementeaz o metod


iterativ a celor mai mici ptrate reponderate dup algoritmul prezentat
n continuare.
Fie p=[p1 pm]T vectorul parametrilor modelului care trebuie
estimai din date experimentale. Produsul unui estimator M care
utilizeaz funcia este vectorul p soluie a ecuaiilor

i (r i ) r i /p j =0,

pentru j=1,2,,m

(6.1)

n care funcia (derivat) (x)=d(x)/dx este numit funcie de


influen.
Prin definirea funciei pondere
( x)
w(x)=
x
ecuaia de mai sus devine

i w(r i ) r i * r i /p j =0

(6.2)

pentru j=1,2,,m
(6.3)

ceea ce este exact sistemul de ecuaii care se obine la rezolvarea


problemei iterative a celor mai mici ptrate reponderate
min i w(r I (k-1)) r i 2

(6.4)

cu indicele superior ataat iteraiei curente. Ponderile trebuie evaluate


dup fiecare iteraie pentru a fi utilizate n iteraia urmtoare.
Funcia de influen (x), dup cum i numele indic, este o msur a
influenei pe care o observaie o are asupra parametrilor estimai.
Pentru cele mai mici ptrate, de exemplu, (x)=x2/2 i funcia de de
influen este (x)x, adic influena unei singure observaii, nu
import care, asupra estimaiei parametrilor crete liniar cu mrimea
erorii, ceea ce reprezint un semn al lipsei de robustee a metodei.
Un estimator este robust dac influena unei singure observaii este
insuficient pentru a produce o deplasare semnificativ n estimaii. Un
estimator M robust trebuie s satisfac un numr de condiii:

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

58

S aib o funcie de influen mrginit;


S asigure unicitatea soluiei. Funcia obiectiv prin minimizarea
creia se obine vectorul de parametri p trebuie s fie unimodal (cu
un singur extrem) ceea ce matematic corespunde unei convexiti a
funciei n variabila p;
Ori de cte ori derivata a doua 2(.)/p2 este singular, funcia
obiectiv trebuie s aib un gradient nenul, (.)/p0, pentru a evita
cutarea prin ntreg spaiul parametrilor.
Cteva dintre funciile uzual utilizate n estimarea de parametri sunt
prezentate n Tabelul 6.1. , cu proprietile:
Estimatorul L 2 (al celor mai mici ptrate) nu este robust din
cauz c funcia de influen nu este mrginit.
Estimatorul L 1 (valoarea absolut) nu este stabil deoarece
funcia =|x| nu este strict convex i derivata a doua n origine
nu este mrginit. O soluie nedeterminat este oricnd posibil.
Estimatorul L1 reduce influena erorilor mari dar acestea au nc
influen din cauz c funcia de influen nu are puncte de
tiere.
Estimatorul L 1 L 2 mprumut de la estimatorul L 1 capacitatea
de a reduce influena erorilor mari i de la estimatorul L 2 ,
proprietatea de a fi convex.
Funciile din L P (ale celor mai mici puteri) alctuiesc o familie
de funcii. Cu =2 se regsete estimatorul L 2 , cu =1 cazul se
reduce la L 1 . Cu ct este mai redus cu att incinta erorilor mari
asupra estmaiilor p este mai lipsit de importan. Se pare c un
moderat asigur un estimator relativ robust, slab perturbat de
erorile grosiere. Investigaiile unor cercettori duc la valori ale
lui n apropiere de valoarea 1,2 sunt ns probleme de calcul:
rezidualele nule fac calculele dificile pentru 1<<2.
Estimatorul Fair are pretitundeni derivate pna la ordinul trei
inclusiv i produce soluii unice. Eficiena asimptotic de 95%
pe distribuii normale standard este atins pentru c=1.345.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

59

Estimatorul bazat pe funcia Hubber, o parabol n apropiere


de origine si liniar dincolo de un prag k pentru valoarea
absolut a variabilei x, atinge eficiena asimptotic de 95%
pentru k=1,345.

Estimatorul este att de eficient nct este recomandat aproape


n toate situaiile. Totui, uneori apar dificulti probabil din
cauza lipsei de stabilitate n valoare a gradientului legat de
discontinuitatea derivatei a doua n punctele x=k

1 pentru x k
d 2 ( x)
=
dx 2
0 pentru x > k

(6.5)

Eficiena asimptotic de 95% pe distibuii normale standard


este atins pentru k=1,2107.
Funcia Cauchy cunoscut i sub numele de funcia lui
Lorentz nu garanteaz soluia unic n problema estimrii. Cu
derivata scztoare, funcia are tendina de a produce soluii
eronate ntr-o manier inobservabil. Constanta regulatoare c se
recomand a avea valoarea 2.3849.
Celelalte funcii au aceleai probleme ca i funcia Cauchy.
Graficele indic o descretere a influenei erorilor mari doar
liniar cu mrimea lor. Funcile German-McClure i Welsh sunt
o ncercare de a reduce si mai mult efectul erorilor grosiere,
funcia Tukey dublu ponderat eliminand chiar punctele strine
(outliers). Eficiena asimptotic a funciei Tukey dublu
ponderat, la 95% pe distribuia standard normal, se obine cu
constanta de acordare c=4.6851 iar pentru funcia Welsh cu
c=2.9846.
Pare a fi dificil a alege o funcie pentru uz generalizat fr a
introduce o doz de arbitrar. Urmnd ideea lui Rey, pentru
problemele de localizare i de regresie cea mai bun alegere este
funcia Lp , care n pofida non-robusteei teoretice, practic se
dovedete cvasi-robust. Sunt ns dificulti de calcul. Urmtoarea
este funcia Fair care produce proceduri de calcul elegant
convergente. Urmeaz apoi funcia lui Hubber, n forma originar

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

60

sau n forma modificat. Toate aceste funcii nu elimin complet


influena erorilor grosiere importante.

Tabelul 6.1.
(x)

Tip
L2

(x)

x
2
|x|

L1

Sgn(x)
x

x2
2( 1 +
1)
2
L2 L1
Lp

Fair
Hubber |x|
k
|x| > k

c2[

Cauchy

GemanMcClure

Welch

x2
1+
2
2
x
1
x
1+
c

sgn(x) x 1
x
x
1+
c

x
x
log( 1 + )]
c
c

x2
2

x
k sgn(x)
k2
2

c2
x2
log 1 +
2
2

x
1+
c

x2
2
1+ x2
c2
1 exp
2

1
x
1

x2
1+
2

kx

w(x)
1

x
1+
c

(1 + x )

(1 + x 2 )2

2 2

x
c

x exp

x
c

exp

x
c

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


Tukey

c2
1
6

x
c

c2
6

x 1
0

x
c

61

x
c

Ultimele patru funcii prezentate nu garanteaz unicitatea soluiei


problemei de estimare dar reduce considerabil sau chia elimin
complet influena erorilor grosiere de amploare. Cum propune
Hubber, n aceste cazuri se pote ncepe cu o funcie convex, se
aduce calculul la convergen i apoi se execut cteva iteraii cu
una din funciile non-convexe pentru a elimina efectele erorilor
foarte mari.

3. MODUL DE LUCRU
Dac nu este deja creat, se creeaz un director/folder de lucru.
Se transfer fiierele specifice lucrrii prezente, date luc.mat,
estimatorm.m, filuc4.m, de pe dischet sau din directorul
corespunztor din reea, n directorul de lucru.
Se activeaz platforma MATLAB i se introduc succesiv
secvenele de program menionate mai sus.
Se reprezint grafic funciile din tabelul cuprins n seciunea
Breviar teoretic i se observ variaia ponderilor, convexitatea
funciilor de influen i alte aspecte legate de eficiena i robusteea
estimatorilor M corespunztori. Un exemplu pentru funcia L2 este
urmtorul:
function [rho,psi,w]=L2(x)
rho=x.^2/2;
psi=x;
w=ones(size(x));
subplot(1,3,1)
plot(x,rho)
axis([-3 3 0 4.5])
title('rho(x)')

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

62

subplot(1,3,2)
plot(x,psi)
axis([-3 3 -3 3])
title('psi(x)')
subplot(1,3,3)
plot(x,w)
axis([-3 3 0 3])
title('w(x)')
Se iniializeaz un vector de valori ale variabilei t
t=-3:0.02:3;
Se apeleaz (repetat)
L2(t);
Se apeleaz help estimatorm pentru a observa condiiile n care
script-ul estimatorm se poate apela i care sunt funciile lui.
Dup selectarea unei funcii se apeleaz script-ul. Se observ
graficele generate i se apreciaz calitile estimatorului dup
criteriile menionate n Breviarul teoretic. Figura ultim din
cele trei (Stabilitate) ilustreaz diferenele modelelor obinute n
situaiile cnd: a) datele au erori normale; b) datele sunt afectate
de erori grave sistematice.
Se cere implementarea software i a celorlalte tipuri de funcii
din cele menionate n Breviarul teoretic, urmat de analiza i
observaiile care se impun.
Vor fi propuse i funcii la libera alegere a studenilor, tot n
condiiile menionate n Breviarul teoretic: convexitate,
mrginire a influenei erorilor mari, garantarea soluiei unice. Se
cere, de asemenea, formularea unor concluzii consecutive
analizei funciilor propuse.

LUCRAREA 7
INTERPOLAREA I APROXIMAREA
DATELOR

1. OBIECTIVELE LUCRRII
Studiul metodelor de aproximare a datelor prin regresie liniar i
polinomial;
Studiul metodelor de interpolare liniar prin metoda
transformatei Fourier.

2. BREVIAR TEORETIC
Se propune urmtoarea strategie de aproximare: mai nti, aproximarea
unui set de date printr-o linie dreapt (regresie liniar), apoi prin
aproximarea printr-un polinom (regresie polinomial).
Pentru ca aproximarea s fie considerat foarte bun, suma ptratelor
distanelor de la fiecare punct la curba aproximat (linie sau polinom)
trebuie s fie minim. Cu aceast condiie ndeplinit, este posibil ca
nici un punct al setului de date s nu se gseasc pe curba aproximant,
ceea ce reprezint diferena fa de interpolare, la care toate punctele
sunt situate pe curb.
2.1.

Regresie liniar

Regresia liniar aproximeaz setul de date printr-o dependen liniar


care minimizeaz suma ptratelor dintre dreapta de aproximare i
punctele date.

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

64

Msura calitii unei aproximri liniare, dat de suma ptratelor


distanelor de la fiecare punct la estimaia liniar, este exprimat prin
sum p= sum ((y-y 1 ).2)

(7.1)

Determinarea parametrilor m i n ai dreptei de aproximare y = mx+n


se face folosind funcia polyfit.
Exemplul 1.
S se aproximeze n sensul CMMP cu o regresie liniar setul de date:
x=[0,1,2,3,4,5]
y=[0,20,60,68,77,100].
Secvena MATLAB care realizeaz aceast aproximare este
prezentat n continuare.
x=[0,1,2,3,4,5];
y=[0,20,60,68,77,100];
coef=polyfit(x,y,1);
m=coef(1);
n=coef(2);
y1=m*x+n;
sump=sum((y-y 1 ).2);
axis([-1,6,-20,120]);
plot(x,y 1 ,x,y,0);
grid on
Interpretai reprezentarea grafic obinut.
2.2.

Regresie polinomial

Regresia polinomial realizeaz aproximarea setului de date printr-un


polinom de forma
N

p(x)= ai x N i =a 0 xN+ a 1 xN
i =0

(7.2)

- 1

+ ...+a N-1 x+a N

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

65

Coeficienii a 0 ,a 1 ,...a N ai polinomului de regresie sunt calculai cu


ajutorul metodei CMMP, ceea ce presupune minimizarea funciei
obiectiv
m

f ob ( A) = [ yi (a0 xiN + a1 xiN 1 + ... + aN )]2

(7.3)

i =1

Algoritmul regresiei polinomiale cuprinde urmtoarele etape:


1. Calculul sumelor n x i i y i ;
Sx1 = m;
m

Sx j = xij 1 , j = 2,...2nmax + 1;
i =1

Sxy1 = yi ;

(7.4)

i =1
m

Sxy j = yi xij 1 , j = 2,..., nmax + 1.


i =1

2. Calculul polinomului de regresie de grad n.


3. Generarea matricii sistemului de ecuaii, a termenului liber i
rezolvarea sistemului de ecuaii liniare
cij = Sxi + j 1 , j = 1,...n + 1, i = 1,..., n + 1;

b j = Sxy j , j = 1,..., n + 1;
CA = B
wni = a j , j = 1,..., n + 1

(7.5)

4. Calculul dispersiei i a abaterii standard


m

s 2 = [ yi (a0 xiN + ... + aN )]2 ;


i =1

= s2 ;

(7.6)

dispn = s 2

5. Testarea gradului polinomului de regresie n vederea validrii


lui
n<n max n=n+1 i salt la 3;
n>n max salt la 6.

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

66

6. Determinarea gradului optim j al polinomului de regresie


min (grad j, j=1,,n max )
j
Dac setul de date are N elemente, toate datele se afl pe curba de
aproximare. Pentru un polinom avnd gradul mai mic dect numrul
de date, aproximarea este cu att mai bun cu ct gradul polinomului
este mai apropiat de numrul de date. Utilizarea unui polinom de
aproximare de grad mai mare dect setul de date poate conduce la erori
de aproximare considerabile.
Determinarea celei mai bune aproximri a unui set de date (x,y) cu un
polinom de ordinul n se face folosind funcia polyfit, cu sintaxa
p=polyfit(x,y,n)
care returneaz coeficienii a i ai polinomului p(x) caracterizat de
proprietatea c prezint, n punctele precizate de vectorul x, valorile
date de vectorul y (n sensul CMMP).
Exemplul 2
Fie polinomul p(x)=x3-6x2+11x-6, peste care este suprapus un zgomot
cu distribuie normal. Aproximai n sensul CMMP datele rezultate cu
un polinom de grad 3. Reprezentai grafic datele cu zgomot i
polinomul aproximant.
Secvena de program MATLAB este
p=[1,-6,11,-6];
x=0:.25:4;
y=polyval(p,x)+rand n(size(x));
c=polyfit(x,y,3);
poli3=polyval(c,x);
plot(x,poli3,x,y,0);
grid on
Obs. Funcia polyval(p,s) evalueaz polinomul definit de vectorul p, al
coeficienilor polinomiali, n punctul s.

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

67

2.3.Interpolarea funciilor de o singur variabil


2.3.1. Interpolarea prin metoda transformatei Fourier
Funcia interpft interpoleaz datele cu o singur variabil utiliznd
metoda FFT i se apeleaz cu sintaxa
y=interpft(x,n)
care returneaz un vector y de lungime n obinut din vectorul x.
Numrul n trebuie s fie mai mare dect numrul de elemente al
vectorului x, iar rezultatul are o periodicitate circular dat de
utilizarea transformatei Fourier.
Exemplul 3
Fie datele obinute dintr-un sinus eantionat cu 8 pai pe perioad
y= sin

2 k
8

(7.7)

Interpolai datele cu un pas dublu i verificai valorile obinute cu


secvena MATLAB.
k=0:7;
x=sin(2*pi*k/8);
yi=interpft(x,16);
k1=0:15;
yr=sin(2*pi*k1/16);
d=max(yi-yr);
Rezultatul obinut este
d=5.5511e-0,16
Diferena maxim ntre valorile interpolate i cele reale este egal cu
ordinul de mrime al celui mai mic numr reprezentabil n calculator
(eroarea de trunchiere).
2.3.2.Interpolarea liniar
Dac se presupune c funcia dintre dou puncte de coordonate (x 1 ,
y 1 ), respectiv (x 2 , y 2 ), poate fi estimat printr-o linie dreapt, atunci

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

68

valoarea funciei n orice punct x dintre cele dou valori se deduce cu


expresia
x x1
f(x)= y1 +
(7.8)
(y y )
x2 x1 2 1
Interpolarea liniar a funciilor de o singur variabil se face cu funcia
tabel care se apeleaz cu sintaxa
y=tabel(nume_tabel,x)
Primul argument al funciei este numele tabelului care conine datele
ce se refer la coordonatele (x i ,y i ). Dac acesta este un fiier pe disc,
atunci nume_fiier trebuie s fie mai nti ncrcat cu funcia load.
Al doilea argument se refer la valorile lui x pentru care se dorete
determinarea valorilor interpolate y.
Datele din prima coloan a tabelului (valorile lui x) trebuie s fie n
ordine cresctoare, iar valorile x trebuie s se gseasc ntre prima i
ultima valoare a primei coloane; n caz contrar, se afieaz un mesaj de
eroare.
Dac tabelul din care se citesc datele conine mai mult de dou
coloane, funcia tabel returneaz un vector linie cu N-1 elemente, unde
N este numrul de coloane ale tabelului. Fiecare valoare returnat este
interpolat din coloana corespunztoare a datelor.
Exemplul 4.
Estimai valorile temperaturii la momentele de timp 2.5 sec i 4.9 sec,
cu datele urmtoare:
0.0C ....................... 0.0 s
20.0C ....................... 1.0 s
60.0C ....................... 2.0 s
68.0C ....................... 3.0 s
77.0C ....................... 4.0 s
110.0C .......................5.0 s

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

69

Se introduc datele ntr-o matrice care are n prima coloan valorile


timpului i n a doua coloan temperaturile corespunztoare:
temp1(:,1)=[0.0,1.0,2.0,3.0,4.0,5.0];
temp1(:,2)=[0.0,20.0,60.0,68.0,77.0,110.0];
Cu instruciunea
y=tabel(temp1,[2.5 4.9])
se obin rezultatele
y=[64.0 107.0]

3. MODUL DE LUCRU. PROBLEME PROPUSE


Dac nu este deja creat, se creeaz un director/folder de lucru.
Se activeaz platforma MATLAB i se introduc secvenele de
program prezentate n exemplele din cuprinsul Breviarului
teoretic, urmrindu-se ndeplinirea cerinelor enunate la fiecare
dintre ele.
Se consider un traductor de debit cu diafragm. Setul de date
experimentale obinute pentru trasarea caracteristicii statice, i
anume mrimea de intrare - debitul volumic - i mrimea de ieire curentul generat de traductor - sunt urmtoarele:
10,14 m3/h.10 mA
8,64 m3/h ....8 mA
7,20 m3/h.6 mA
4,5 m3/h3,5 mA
2 m3/h.2,5 mA
1,5 m3/h.2,2 mA
0,1 m3/h....2 mA

IDENTIFICAREA SISTEMELOR INDRUMAR DE LABORATOR

Se cere aproximarea setului de date printr-un polinom de forma


prezentat n relaia (7.2), pe baza algoritmului de la paragraful 2.2.

70

LUCRAREA 8
IDENTIFICAREA SISTEMELOR FOLOSIND
METODA CELOR MAI MICI PTRATE.
ALGORITMI DE CALCUL

1. OBIECTIVELE LUCRRII
Estimarea parametrilor unui model matematic folosind metoda celor
mai mici ptrate (MCMMP).

2. BREVIAR TEORETIC
n cadrul metodei celor mai mici ptrate (MCMMP), sistemul se
consider descris de urmtoarea ecuaie cu diferene
A(q-1)y(t)=B(q-1)u(t)+e(t)

(8.1)

unde :

u(t)=mrimea de intrare ;
y(t)=mrimea de ieire ;
e(t)=zgomot alb de medie zero i dispersie 2 ;
q-1=operator de ntrziere
Modelul se consider descris de o ecuaie cu diferene, care are aceeai
structur cu ecuaia (8.1)
AT (q-1)y(t)=BT (q-1)u(t)+e(t)
unde :
e(t)=reziduul modelului ;
AT (q-1)=1+a 1T q-1+ a 2T q-2+..+ a naT q-na;
AT (q-1)=1+b 1T q-1+ b 2T q-2+..+ b nbT q-nb.

(8.2)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

71

Se fac urmtoarele notaii:


=[a 1T a naT, b 1T b nbT ]T
(t)=[-y(t-1).. -y(t-na) u(t-1).. u(t-nb)]T ;

(8.3)

cu aceste notaii mrimea de ieire dat de model fiind


y m (t)=T(t)+(t).

(8.4)

Avnd disponibil structura modelului (na,nb), se impune condiia ca


media ptratic a erorii de predicie s fie minim. Estimaia celor mai
mici ptrate a lui , bazat pe n date de definiie, este

( ),

= arg min V

()

T
unde V = y (t ) (t )
i =1

(8.5)

(8.6)

Din condiia de mai sus rezult


T
N

= (t ) (t )
i =1

1 N

(t )y(t ) .

(8.7)

i =1

Cu notaiile :
=[a 1T a naT, b 1T b nbT ]T : parametrii modelului
(t)=[-y(t-1).. -y(t-na) u(t-1).. u(t-nb)]T : vectorul care
conine istoria procesului (intrrile i ieirile anterioare),
ecuaia (8.1) devine
y(t)=T(t)+(t).

(8.8)

Modelul va fi descris printr-o ecuaie de aceeai form


y m (t)=T(t)+(t).

(8.9)

Estimarea parametrilor modelului () presupune n primul rnd


stabilirea gradelor na i nb i apoi determinarea vectorului pe baza
datelor experimetale de intrare-ieire.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

72

De fapt, esena metodei const n a presupune faptul c modelul este


determinist
y m (t)=T(t) ,

(8.10)

situaie n care se calculeaz impunndu-se urmtoarea condiie

1 N
1 N
2
(
y
(
t
)
=

y
(
t
))
arg
min
( y(t ) T (t ) )2 (8.11)
m

N t 1=
Nt1
=
=
arg min

Expresia explicit a lui

se obine din condiia de anulare a

gradientului funciei criteriu

()

V
V = 0 ,

1
= 2
N

t =1

N
= (t ) T (t )
(
)
(
)
(
)
(
)

t
y
t
t
t
=

t =1
t =1
t =1

Dac se noteaz

1 N

(t )y(t ) .

(8.12)

t =1

Y = [ y (1) y ( N )] , T = (1) (N ) ,
T

(t ) y(t ) (t ) = 0

(8.13)

atunci se obine
N

T = (t ) (t )

(8.14)

y (1) N
T Y = (1) (N ) = (t ) y (t )
y (N ) t =1

(8.15)

Y = + .

(8.16)

t =1

Cu aceste notaii estimatorul se poate scrie sub forma

= [ T ] T Y
1

(8.17)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

73

Estimatorul dat prin relaia de mai sus reprezint estimatorul celor mai
mici ptrate care s-a obinut pe baza datelor de intrare u (1),, u (N ) i a
celor de ieire y (1),, y (N ) .
Proprietile estimatorului celor mai mici ptrate
Estimatorul celor mai mici ptrate este un predictor al mrimii de
ieire la momentul t dedus pe baza datelor de ieire pn la momentul
(t-1) (predictor de pas).
y m(t)=T(t),
(t)=[-y(t-1).. -y(t-na) u(t-1).. u(t-nb)]T
deci

(8.18)

y m (t)=y(t/t-1),

de unde rezult c y(t) este determinat pe baza datelor de intrare/ieire


pn la momentul (t-1).
O alt proprietate a estimatorului celor mai mici ptrate se refer la
1 N 2
faptul c eroarea de predicie q (t ) este minim.
N t =1
Aceast afirmaie se justific avnd n vedere relaiile urmtoare

1 N 2
1 N
( y(t ) ym (t ))2
=
q (t )

N t 1=
Nt1
=
1 N
=
arg min ( y(t ) T (t ) )2
N t =1

(8.19)
(8.20)

3. MODUL DE LUCRU
Dac nu este creat, se creeaz directorul de lucru ;
Se activeaz platforma de lucru MATLAB ;
Se consider modelul descris de urmtoarea ecuaie cu diferene
y(t)-1.5y(t-1)+0.7y(t-2)=u(t-1)+0.5u(t-2)+e(t)
Se va utiliza urmtoarea secven de program :

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

74

a=[1 -1.5 0.7];


b=[0 1 0.5];
c=[1];
d=[1];
f=[1];
n1=200;
k=10;
ths=poly2th(a,b,c,d,f);
u=sign(randn(n1,1));
e=randn(n1,1)/k;
ys=idsim([u e],ths);
z=[ys u e]
idplot([ys u]);

unde k este factorul de ponderare al erorii, iar =[ys u e] reprezint o


matrice cu trei coloane ce conine ieirea (ys), intrarea (u) i perturbaia
(e).
Dup execuia secvenei de mai sus, intrarea i ieirea sistemului
vor arta ca n figura 8.1., unde n graficul din partea superioar a fost
reprezentat secvena datelor de ieire, iar n graficul din partea
inferioar secvena datelor de intrare.

Figura 8.1. Reprezentrile grafice ale intrrii i ieirii sistemului


descris de modelul din relaia 8.27.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

75

Se elaboreaz programul care implementeaz etapa de


estimare i se verific obinerea modelului (considernd na=2 i
nb=2) de forma
y(t)-1.496y(t-1)+0.703y(t-2)=0.997u(t-1)+0.523u(t-2)+e(t)
i a unei erori medii de 0.0183.
Se modific structura propus i se repet operaia de
estimare de parametri i de determinare a erorii medii ptratice.
Se verific faptul c prin creterea gradelor polinoamelor
modelului, eroarea medie ptratic nu scade considerabil.

LUCRAREA 9
IDENTIFICAREA EXPERIMENTAL
A SISTEMELOR
DE ORDINUL I I ORDINUL II

1. OBIECTIVELE LUCRRII
Identificarea unor sisteme de diverse ordine de mrime prin
urmrirea evoluiei n timp a ieirii n condiiile aplicrii la intrarea
sistemelor a unor semnale tip: treapt, ramp, sinusoid;

2. BREVIAR TEORETIC
2.1.Sisteme de ordinul nti
Modelul unui sistem de tip continuu, liniar, invariant, monovariabil i
cu parametri concentrai este
.

y (n ) + a n 1 y (n 1) + + a1 y + a 0 y = br u (r ) + b(r 1)u (r 1) + + b1 u + b0 u ,
(9.1)
unde: u= mrime de intrare; y= mrime de ieire.
n regim staionar se obine modelul
(9.2)
a0 y = b0u,
care conduce la obinerea unui rspuns de forma
(9.3)
y = ( b0 / a0 ) u
n ceea ce privete ordinul maxim de derivare al intrrii i al ieirii, se
deosebesc trei cazuri:

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

77

-dac r<n, sistemul este strict propriu;


-dac r=n, sistemul este simplu propriu;
-dac r>n, sistemul este impropriu.
Sistemele de ordinul nti sunt descrise de ecuaia
.

(9.4)
a1 y + a0 y =
b0u,
Rezolvnd aceast ecuaie n domeniul timpului se obine urmtorul
rspuns al sistemului
a /a t
(9.5)
y ( t ) b0u 1 e ( 0 1 )
=

Notnd cu

1 = a / a i cu y = b / a u , se obine urmtoarea
0
1
0
0
0
T

expresie a ieirii:

y=
(t ) y0 1 et /T

(9.6)

unde:
T = constanta de timp a sistemului;
y0 = rspunsul sistemului n regim staionar;
Durata regimului tranzitoriu este Ttr =3T i exprim timpul n care
rspunsul sistemului ajunge la 95% din valoarea rspunsului n regim
staionar.
Pentru sistemele de ordinul nti fr anticipare (ordinul maxim de
derivare al intrarii este zero), se deosebesc urmatoarele cazuri:
a) a0 0, b0 0 , modelul staionar este

y0 = ( b0 / a0 ) u

(9.7)

i exprim sistemul de tip proporional;


b)=
a0 0, b0 0 , sistemul este de tip integrator cu urmtorul model
.

a1 y = b0u ,
avnd rspunsul

(9.8)
t

y ( t ) = ( b0 / a0 ) udt
0

(9.9)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

78

n cazul n care ordinul de derivare al intrrii este 1 i este mai mare


dect ordinul de derivare al ieirii (sistemul este impropriu), se mai
poate deosebi un al treilea caz care este clar idealizat deoarece toate
sistemele fizice sunt sisteme proprii.
c)

a0 0, b0 =
0 , sistemul este de tip derivator, cu modelul
.

a0 y = b1 u ,

(9.10)

care are rspunsul: y = ( b1 / a0 ) ( du / dt )

(9.11)

Funcia de transfer a unui sistem de ordinul nti fr anticipare este

=
H ( s ) b0 / ( a1s + a0 )

(9.12)

Graficele rspunsului n timp ale sistemelor de ordinul nti la diferite


tipuri de intrri: treapt, ramp i sinusoid sunt reprezentate n figura
9.1.
Salt

Rampa

10

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

sin t
0.8
0.6
0.4
0.2
0
-0.2
-0.4

10

-0.6

10

-0.8

10

Fig.9.1. Rspunsuri n timp ale sistemului de ordinul nti la diferite


tipuri de mrimi de intrare: treapt, ramp i sinusoid
Practic, un sistem de ordinul nti se poate obine cu un circuit RC,
reprezentat n figura 9.2.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

79

Fig.9.2.. Circuit RC
Modelul matematic este prezentat n setul (9.13)
U
= Ur +Uc

U r = Ri

.
U
=
=

C
idt
i
CU
1/
c
c

.
U r = RCU c

(9.13)

Ecuaia care descrie sistemul de ordinul nti este


.

RCU c + U c =
U
unde: U c =cderea de tensiune pe condensator;
U r =cderea de tensiune pe rezisten;
U=tensiunea de alimentare a circuitului RC;
I=intensitatea curentului prin circuit;
R=rezisten, C=condensator.

(9.14)

Intrarea sistemului a fost considerat tensiunea de alimentare a


circuitului RC, iar ieirea sistemului a fost considerat tensiunea
msurat la bornele condensatorului C (Uc). Schema bloc a sistemului
de ordinul nti este prezentat n figura 9.3.

Fig. 9.3.. Schema bloc a sistemului de ordinul nti

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

80

2.2 Sisteme de ordinul doi


Sistemele continue de ordinul doi fr anticipare sunt descrise de
ecuaia
..

(9.15)
a2 y + a1 y + a0 y =
b0u ,
Rezolvnd ecuaia n domeniul timpului se obine rspunsul sistemului
(9.16)
yl ( t ) = c1e A / t + c2e B / t + b0u ,
cu c1 si c2 dou constante determinate din condiiile iniiale, iar A, B
soluii ale ecuaiei
.

a2 r 2 + a1 r + a0 =
0

(9.17)

Componenta =
se numete component liber,
yl ( t ) c1e
+ c2e
dependent numai de structura sistemului, neinfluenat de forma de
variaie a intrrii, iar componenta
y f ( t ) = ( b0 / a0 ) u , se numete
A/ t

B/t

component forat, numit astfel deoarece este rezultatul forrii in


forma rspunsului a unei componente de tipul intrrii.
Funcia de transfer a unui sistem de ordinul doi fr anticipare este
(9.18)
H=
( s ) b0 / a2 s 2 + a1s + a0

Graficele rspunsurilor n timp ale sistemelor de ordinul doi la diferite


intrri tip: treapt, ramp, sinusoid sunt prezentate n figura 9.4.
Salt

Rampa

1.4

sin t
1.5

9
8

1.2

7
1
6

0.5

0.8

0.6

4
0
3

0.4
2
0.2

-0.5

10

10

-1

10

Fig.9.4. Graficele rspunsurilor n timp ale sistemelor de ordinul doi la


diferite tipuri de mrimi de intrare: treapt, ramp i sinusoid
Practic, un sistem de ordinul doi se poate obine cu un circuit RLC de
tipul celui din figura 9.5.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

81

Fig.9.5. Circuit RLC


Modelul matematic este

U r = Ri

.
U
=
=
i 2 CU c
1/ C i 2dt
c

..
.

Ul =i1 + i 2 LCU l + L / R U l = L / R U

(9.19)

Se obine astfel un model de forma


(9.20)
LCU l + ( L / R )U l + Ul =
( L / R )U
unde:
U=tensiunea de alimentare a circuitului RLC;
U r =cderea de tensiune pe rezisten;
U c =cderea de tensiune pe condensator;
U l =cderea de tensiune pe bobine;
i=intensitatea curentului prin rezisten;
I1 =intensitatea curentului prin bobine;
I 2 =intensitatea curentului prin condensator;
R=rezisten;
C=condensator;
L=bobin.
Intrarea sistemului a fost considerat tensiunea de alimentare a
circuitului RLC, U, n timp ce ieirea a fost considerat cderea de
tensiune pe bobina L, U1 .
..

Schema bloc a sistemului este reprezentat n figura 9.6.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

82

Fig.9.6. Schema bloc a sistemului de ordinul doi.

3. MODUL DE LUCRU
Schema bloc a montajului utilizat pentru identificarea sistemelor de
diverse ordine de mrime este reprezentat n figura 9.7.

Fig. 9.7. Schema bloc a montajului utilizat pentru identificarea


experimental a sistemelor.
1. Conform schemei din figura 9.7, se interconecteaz blocurile
componente, cu urmtoarele observaii:
se vor respecta regulile de conectare a interfeei la alimentarea
cu 5V (plusul, respectiv masa, de la sursa de alimentare, la firul de
+5V, respectiv de mas, la interfa);
se va conecta cablul paralel de la interfa la portul paralel al
PC-ului;
se va conecta la intrarea interfeei ieirea de la cele dou
sisteme; acestea vor avea la intrare semnalele de tip treapt sau
sinusoid date de versatester.
2. Se lanseaz n execuie programul aferent (IS.EXE, varianta de
DOS, sau IDENT. EXE, varianta de Windows);
3. De la generatorul de semnal versatester tip E0502 se vor emite un
semnal sinusoidal, respectiv dreptunghiular, cu frecvena de 1 Hz;

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

83

4. n urma vizualizarii rezultatelor experimentului, se vor identifica


sistemele analizate;
5. La sfritul lucrrii se vor deconecta elementele componente.
Cu ajutorul generatorului de semnal, studenii vor aplica la intrarea
circuitelor RC si RLC (descrise n partea teoretic), semnale de tip
treapt i sinusoid.
Pentru obinerea unei bune discretizri a semnalului analogic y, s-a
utilizat un convertor analogic-numeric pe 8 bii la ieire. Deoarece
portul paralel are doar 4 bii de intrare a fost necesar utilizarea unui
buffer.
Interfaa proces calculator are la baz un convertor analog-numeric
care face posibil vizualizarea pe monitorul unui calculator a valorilor
ieirii y n timp i a graficelor ieirii y pentru diversele intrri aplicate
la intrarea sistemelor.

LUCRAREA 10
METODE DE SUBSPAIU N
IDENTIFICAREA SISTEMELOR

1. OBIECTIVELE LUCRRII
Identificarea sistemelor prin metode de subspaiu;
Obinerea direct din date experimentale a modelelor cu
evidenierea spaiului strilor, adic sub forma ecuaie de stare
ecuaie de observare.

2. BREVIAR TEORETIC
Metodele de subspaiu sunt n cmpul identificrii sistemelor de
relativ puin timp (1994) i aparin unor cercettori belgieni,
Peter Van Overschee i Bart De Moore. Ele reprezinta o tratare a
problemei identificrii sistemelor concomitent deterministe i
stochastice, etichetata drept revoluionar. Foarte repede, aceast
problem
a fost implementat n pachetul de programe
MATLAB, n subpachetul Toolbox/Ident, sub numele n4sid.
Algoritmic, pe baza unor proiecii ale ieirilor viitoare ale
sistemului pe intrrile trecute i viitoare i pe ieirile
trecute (trecutul i viitorul sunt delimitate de indicele i i
sunt, aadar, noiuni convenionale), problema se trateaz n
maniera prezentat n continuare.
Pasul 1. Determinarea celor dou proiecii Zi i Zi+1
U 0/i-1
U 0/i-1

1
2
3
Zi =Y i/2i-1 U i/2i-1 = Li Li Li U i/2i-1

Y0/i-1
Y0/i-1

(10.1)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


U 0/i

Zi +1 = Yi+1/2i-1 U i+1/2i-1

Y0/ i

85

(10.2)

cu U i Y matrici bloc de intrri i ieiri observate experimental


ntre momentele scrise ca indici.
Pasul 2. Determinarea descompunerii prin valori singulare
U

0
(10.3)
L1i L3i 0/i-1 =
U1 U 2 ) 1 V T
(
Y

0
0

0/i-1
Ordinul sistemului este egal cu numrul de valori singulare nenule

i = U1 1/1 2 i i-1 = U1 1/1 2

(10.4)

Pasul 3. Determinarea soluiei prin metoda celor mai mici


ptrate ( cu 1 i 2 reziduale)
j
n
mi
j
j
p
p
=
n i-1Zi +1 n K11 K12 n i Zi + n n 1 (10.5)
l
Yi / i
l K 21 K 22 mi U i/2i-1 l l 2
Pasul 4. Obinerea matricilor sistemului succesiv, astfel:
4.1. n prima etap A K 11 i C K 12
4.2. Se obin B i D care rezult din A, C, K 12 i K 22 prin
rezolvarea unui sistem de ecuaii liniare.
QS
T
T
SS

1 1 1 1 2
4.3. analog, S T
j 2 1T 2 2T
R S
S

( )

Subsistemul determinist este identificat exact pe msur ce


j, independent de numrul i.
Aproximarea subsistemului stochastic depinde de i i converge pe
msur ce i.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

86

Tot acest algoritm aparent complicat este implementat n funcia


MATLAB cu numele n4sid, sub forma simpl
TH=N4SID(Z)
sau mai complicat

[TH,AO]=N4SID(Z,ORDER,NY,AUXORD,DKX,MAXSIZE,TSMP)
n TH se returneaz modelul cu evidenierea strii sistemului, n
formatul THETA. Funcia nu furnizeaz un model al
covariaiilor.
n matricea Z sunt plasate datele de ieire i de intrare sub forma
unor vectori coloan [y u]. Dac sistemul are mai multe intrri
(n) i mai multe ieiri (p) atunci Z=[y1 y2 ... yp u1 u2 ... un].
Variabila ORDER specific ordinul/ordinele posibil(e) al(e)
modelului (dimensiunea vectorului de stare). Introdus ca vector,
de pild 3:10, ea face ca funcia s genereze un grafic cu
informaii asupra tuturor ordinelor propuse. Prin default
ORDER=1:10. Dac variabila ORDER este introdus ca best,
se alege aceast valoare de default. NY este numrul de ieiri din
matricea de date; prin default NY=1.
AUXORD este un ordin auxiliar care este folosit la selectarea
variabilelor de stare. Prin default ea este 1.2*ORDER+3. Dac
AUXORD este introdus ca un vector linie atunci este reinut
acea valoare care minimizeaz eroarea de predicie.
Variabila DKX este un vector care definete structura DKX=
[D,K,X]. D=1 indic estimarea unui termen direct de la intrare la
ieire, D=0 indic postularea unei ntrzieri de la intrare la ieire.
K=1 impune estimarea unei matrici K, iar K=0 oblig la o matrice
K nul. X=1 indic o estimare a strii iniiale a sistemului, X=0
indic iniierea la zero.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

87

Pentru definirea unei structuri de ntrziere a intrrilor NK, cu


NK(ku) ntrzierea de la intrarea ku la oricare din ieiri se pune
DKX= [D,K,X,NK] cu NK un vector linie de lungime egal cu
numrul intrrilor. Dac se specific NK, atunci valoarea D este
ignorat .
Prin default, DKX=[0,1,1].

3. MODUL DE LUCRU
Dac nu este deja creat, se creeaz un director/folder de lucru.
Se creeaz un sistem dinamic cu una sau mai multe intrri, cu
una sau mai multe ieiri. Secvena urmtoare, utilizat i n alte
lucrri este tipic pentru generarea funciei de transfer pentru unul
din canalele (1,1, de pild) intrare-ieire.
sisc11=tf([1 2],[1 2 5])
sisd11=c2d(sisc,0.01,'zoh')
Ea poate fi utilizat, cu modificri de coeficieni potrivite, i la
generarea altor funcii de transfer, pentru alte canale.
Se aplic sistemului intrri, preferabil sub forma unor secvene
binare aleatoare
u1=sign(randn(size(t)));
i se observ ieirile. Ieirile se corup cu secvene de zgomot alb
sig=0.0001;
y1=y1+sig*randn(size(t));

cu sig la alegere, cu t vectorul de momente echidistante la care se


obsev sistemul, sau cu secvene de zgomot colorat. n acest din
urm caz, zgomotul alb este trecut mai nti printr-un filtru C (q-1 ) .
Se constituie astfel matricea Z de date experimentale.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

88

Se invoc funcia n4sid i se examineaz rezultatele


identificrii pentru structuri uor modificate i pentru erori n date
(sig) de importan mai mare sau mai mic.
Prin utilizarea funciilor MATLAB de conversie a modelelor,
cnd este posibil se revine la forma funcie de transfer i se
compar cu modelul care a generat datele.
Sunt recomandate reprezentrile grafice n acelai spaiu ale
datelor experimentale i ale rspunsurilor calculate cu
modelul/modelele estimate.

LUCRAREA 11

TEHNICI DE IDENTIFICARE DINAMIC A


PROCESELOR.
NOIUNI DE BAZ PRIVIND IDENTIFICAREA
MODELELOR DINAMICE ALE PROCESELOR

1. OBIECTIVELE LUCRRII
Lucrarea prezint principiile de baz ale identificrii modelelor
dinamice ale proceselor i principalele tipuri de algoritmi de adaptare
parametric ce intervin n metodele de identificare recursive.

2. BREVIAR TEORETIC
2.1. Metoda celor mai mici ptrate
n cadrul metodei celor mai mici ptrate (MCMMP), sistemul se
consider descris de urmtoarea ecuaie cu diferene

( )

( )

A=
q 1 y ( t ) B q 1 u ( t ) + e ( t )
unde:
u ( t ) - mrimea de intrare;

y ( t ) - mrimea de ieire;

e ( t ) - zgomotul alb de medie zero i dispersie 2 ;


q 1 - operator de ntrziere.

(11.1)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

90

Modelul se consider descris de o ecuaie cu diferene care are aceeai


structur cu ecuaia de mai sus.

( )

( )

A=
q 1 y ( t ) B q 1 u ( t ) + ( t )

(11.2)

unde:
u ( t ) - mrimea de intrare;

y ( t ) - mrimea de ieire;

( t ) - reziduul modelului;
q 1 - operator de ntrziere;

( )
B ( q ) =1 + b q

A q 1 =1 + a1q 1 + + a na q na

(11.3)

nb
1
+

+
b
q
1
nb

(11.4)

Se fac urmtoarele notaii:

= a1 a na b1 bnb

(11.5)

y t 1 y t na u t 1 u t nb
(t ) =
)
(
) ( )
(

(11.6)

Cu aceste notaii, mrimea de ieire dat de model este

=
ym ( t ) T ( t ) + ( t )

(11.7)

Avnd disponibil structura modelului (na, nb ) se impune condiia ca


media ptratic a erorii de predicie s fie minim. Estimaia celor mai
mici ptrate a lui , bazat pe n date, este prin definiie

()

= arg minV ,

(11.8)

unde

( ) y (t )

=
V

i =1

(t )

Din condiia de mai sus rezult

(11.9)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


1
N
N
T
= ( t ) ( t ) ( t ) y ( t )

91

(11.10)

=
i 1=
i1

In continuare, vor fi enunate cteva rezultate referitoare la existena


inversei matricei
N

V = ( t ) ( t ) ,
T

(11.11)

i =1

i a consistenei estimatorului .
Problema consistenei estimatorului i a existenei inversei matricei de
mai sus este strns corelat cu persistena semnalului de intrare u .
Dac se noteaz
T

= a1 a na b1 bnb - parametrii modelului,


iar cu
y ( t 1) y ( t n ) u ( t 1)u ( t n )
(t ) =
a
b

- vectorul care

conine istoria procesului (intrrile i ieirile anterioare), atunci ecuaia


principal devine

=
y ( t ) T ( t ) + ( t )

(11.12)

Modelul va fi descris printr-o ecuaie de aceeai form

=
ym ( t )
unde

(t ) + (t ) ,

(11.13)

- parametrii estimai, iar

y ( t 1) y t n
(t ) =
a

u ( t 1)u t nb

Estimarea parametrilor modelului

( )

(11.14)

presupune n primul rnd

stabilirea na , nb i apoi determinare vectorului pe baza datelor de


intrare i ieire.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

92

De fapt, esena metodei const n a presupune faptul c modelul este


determinist

ym ( t ) =

(t ) ,

(11.15)

situaie n care se calculeaz impunndu-se urmtoarea condiie


2

2
T
1 N
1 N

=
arg min ( y ( t ) =
ym ( t ) ) arg min y ( t ) ( t )
N t 1=
N t 1

(11.16)

Expresia explicit a lui se obine din condiia de anulare a


gradientului funciei criteriu

()

V
V = 0 ,

2
1 N
y t T t =
2
t
=

( ) ( )
( ) 0
=
N
t =1

(t ) y (t ) = (t ) (t )
T

(11.17)

=t 1 =t 1
1
N
N
T

= ( t ) ( t )

(t ) y (t )

=
t 1 =
t 1

Dac se noteaz cu
(1) ( N ) ,
Y = y (1) y ( N ) , T =

(11.18)

atunci se obine
N

T = ( t ) ( t ) ,
T

(11.19)

t =1

y (1)

=
T Y (1=
) ( N )

y ( N )

Y = + .

(t ) y (t ) ,

t =1

(11.20)
(11.21)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

93

Cu aceste notaii estimatorul se poate scrie sub forma urmtoare


1

= T T Y

(11.22)

Estimatorul dat prin relaia de mai sus reprezint estimatorul celor mai
mici ptrate care s-a obinut pe baza datelor de intrare u (1) ,, u ( N ) i
a celor de ieire y (1) ,, y ( N ) .

2.2. Metoda variabilei instrumentale


Metoda variabilei instrumentale poate fi privit ca o generalizare a
metodei celor mai mici ptrate care furnizeaz numai partea
determinist a modelului.
Fie sistemul descris de urmtoarea ecuaie cu diferene

( )

( )

(11.23)

y (=
t ) T ( t ) + ( t )

(11.24)

A=
q 1 y ( t ) B q 1 u ( t ) + ( t ) ,
sau de ecuaia

unde s-a notat cu


y ( t 1) y ( t n ) u ( t 1)u ( t n )
(t ) =
na
nb

= a1 ana b1 bnb .

(11.25)

Estimaia se poate obine i euristic nmulindu-se relaia (11.25) la


stnga cu ( t )

( t ) y ( t=) ( t ) T ( t ) + ( t ) ( t )
N

y (t )
(t ) =

(t ) T (t ) + (t ) (t )

=t 1 =t 1

=t 1

(11.26)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


1

94

N
N

= ( t ) ( t ) ( t ) y ( t )
=
t 1 =
t 1

n aceast relaie s-a neglijat termenul


1

N
N

T
( t ) ( t ) ( t ) ( t )
=
t 1 =
t 1

(11.27)

Dac i sunt necorelate, atunci termenul de mai sus care s-a


neglijat n relaia respectiv este nesemnificativ, ceea ce nseamn ca
y i respectiv u i sunt necorelate.
Observaie
n cazul acestei estimri s-a presupus structura modelului identic cu
cea a sistemului. Aspectul care intervine n analiza care urmeaz se
refer la faptul c u i sunt necorelate, dar y i sunt corelate
deoarece y = T + , deci se adaug la ieire. Pornind de la
aceast constatare se nmulete relaia care descrie sistemul (a doua
din 11.26) cu z ( t ) format numai din valori ale lui u ( t ) , situaie n care
N

z ( t ) ( t ) se poate neglija deoarece u ( t ) i ( t ) sunt necorelate.

t =1
Cu aceste observaii relaia devine
N

z ( t ) (=
t ) z ( t ) T ( t )
1=
t 1

=t

(11.28)

unde se numete estimaie de variabil instrumental, iar z ( t )


este vector de variabil instrumental care nu are o semnificaie
fizic, constituind doar un instrument de lucru.
Dac se consider dim ( z ) = dim ( ) = na + nb = n , atunci

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


1

N
N
T

=
z (t ) y (t )
z ( t ) ( t )
=
t 1=
t 1

95

(11.29)

n relaia anterioar s-a considerat faptul c exist inversa matricei


N

T
z ( t ) ( t )
t =1

(11.30)

Un vector variabil instrumental frecvent utilizat n conjuncie cu


relaia precedent este i vectorul urmtor

( )

z ( t=) F q 1 u ( t 1)u ( t n )

(11.31)

( )

unde F q 1 este un filtru stabil.


Dac nu exist informaii despre sistem, atunci se consider
F q 1 = 1. Dac sunt disponibile informaii (de exemplu se cunosc
estimaiile iniiale A , B pentru polinoamele A i B ), atunci se poate
alege

( )

( )

( )
F (q )

F q 1 = 1/ A q 1

(11.32)

are o mare importan n ceea ce privete

Introducerea lui

precizia i stabilitatea numeric a algoritmului de identificare.


O transformare liniar a vectorului z ( t ) nu afecteaz estimaia. Pentru
a demonstra aceast afirmaie se consider urmtoarea transformare
liniar i nesingular a lui z ( t )

z ( t )= S z ( t )

unde S este o matrice de dimensiune ( n n ) .


Utilizndu-se transformarea de mai sus, relaia lui devine

(11.33)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


1

96

N
N
N
N

T
T

=
z ( t ) y ( t ) =
z ( t ) ( t )
S z ( t ) ( t ) S z ( t ) y ( t ) =
=
=
t 1=
t 1 =
t 1
t 1

N
N

T
= z ( t ) ( t ) z ( t ) y ( t ) =
=
t 1=
t 1

(11.34)

ceea ce justific faptul c transformarea respectiv nu afecteaz


estimaia.
Pentru a pune n eviden anumite aspecte ale estimatorului de
variabil instrumental se consider transformarea urmtoare

( )
( )

B q 1

u t 1)
A
q 1 (

y ( t 1) z ( t 1)

.
.

.

.
.


.

.
.

B q 1

y ( t na ) z t nb

=
z ( t ) =
S z (t ) =
1 u ( t na ) u ( t 1) u t 1
( )

A q

.
.

u ( t 1)

.
.

.
.

u t nb u t n
b

.

u t nb

( )
( )

(11.35)

( )
( )
unde s-a neglijat reziduul aleator ( t ) , iar A ( q ) i B ( q ) reprezint

n relaia de mai sus s-a considerat A=


q 1 y ( t ) B q 1 u ( t ) + ( t ) ,
1

estimaii iniiale (aproximative) ale prii deterministe a modelului.

( )

( )

Se poate arta faptul c dac A q 1 i B q 1 sunt prime, atunci


mrimea S este nesingular. Utilizndu-se transformarea de mai sus se

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

97

poate afirma c pentru aproximaii bune a prii deterministe


A ; B A; B i pentru un N suficient de mare are loc urmtoarea

relaie
N

z (t ) T (t ) z (t ) zT (t )

(11.36)

=t 1 =t 1

deci matricea care se inverseaz tinde, pe msur ce estimaiilor A , B


se corecteaz, la o matrice simetric, pozitiv definit i mai bine
condiionat dect o matrice nesimetric i indefinit. n acest caz
estimatorul variabil instrumental obinut este mai precis, ceea ce
justific calculele efectuate cu transformarea z ( t )= S z ( t ) .
O problem care se analizeaz n cele ce urmeaz este i consistena
estimatorului de variabil instrumental. Se consider sistemul
stochastic monovariabil (S ) definit prin ecuaia urmtoare

( )

( )

A=
q 1 y ( t ) B q 1 u ( t ) + ( t )

(11.37)

iar modelul descris prin ecuaia

( )

( )

A=
q 1 y ( t ) B q 1 u ( t ) + ( t )
unde

(11.38)

( t ) = H ( q 1 ) e ( t ) , ( t ) = H ( q 1 ) ( t ) ,
e ( t ) - zgomot alb,

( t ) - reziduurile modelului.

( )

( )

Dup cum se tie H q 1 i H q 1 reprezint modelul zgomotului,


iar n cele ce urmeaz se consider de forma urmtoare

( )
H (q ) =
1+ c q

H q 1 =
1 + c1q 1 + cnc q nc
1

+ c nc q nc

(11.39)
(11.40)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

98

Se definete vectorul variabil instrumental de forma

z ( t ) = y ( t 1 nc ) y ( t nc nc ) u ( t 1)u ( t nb )

(11.41)
n aceste condiii estimaia este dat de relaia urmtoare
1

1 N
N

=
+ z ( t ) T ( t ) z ( t ) ( t )
N t 1 =
t 1
=

Termenul

z ( t ) ( t ) 0

t =1

(11.42)

din relaia anterioar tinde la zero daca N

tinde la infinit, deoarece z ( t ) nu mai este corelat cu ( t ) . Aceasta se

justific prin faptul c ( t ) conine eantioane pn la momentul

(t nc ) ,

iar z ( t ) conine eantioanele y ( t 1 nc ) y ( t nc nc )

care nu mai sunt corelate cu ( t i )i =1,n .


c

n cele ce urmeaz se face urmtoarea notaie

n= min ( na na , nb nb , nc nc )

(11.43)

necesar estimrii teoremei de mai jos.


n continuare este prezentat algoritmul metodei
instrumental pentru cazul cnd vectorul z este de forma

) (
) (
)
z ( t 1) z t n
=
( ) u (t 1)u (t n )

z = z ( t 1) z t na

variabilei

z t na 1 z t na nb =

unde

(11.44)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

( )
( )

B q 1
z ( t =
i)
u ( t 1) i = 1, na
A q 1

99

(11.45)

nregistrrile obinute de la proces se presupun cunoscute i se noteaz


.
cu {u ( t ) , y ( t )}
t =1, N

Algoritmul metodei de variabil instrumental


Pas 1: Se determin A i B utiliznd metoda celor mai mici ptrate.
Pas 2: Se iniializeaz contorul i = 1
Pas 3: Se determin estimaia de variabil instrumental

i =

z
t

z t y t

(
)
(
)
t 1=
t 1 ( ) ( )
=

(11.46)

unde
i
i
i == a1i ana
b1i bnb

( )
( )

(11.47)

( ) (
( )

B i 1 q 1
B i 1 q 1
i

i 1 1 u ( t 1) i 1 1 u t na
z =
A
q
A q

u ( t 1)u t nb

(11.48)
y ( t 1) y ( t n ) u ( t 1)u ( t n )
(t ) =
a
b

(11.49)

iar B i 1 , A i 1 reprezint estimaiile obinute pentru valoarea contorului


egal cu ( i 1) .
Pas 4: Se incrementeaz contorul i = i + 1;
Pas 5: Dac M z ( t ) ( t ) impuls , atunci STOP, altfel continu;

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

100

Pas 6: Dac i < M impuls atunci salt la Pas3, altfel STOP.


Dup cum se observ algoritmul se oprete dac este ndeplinit una
din urmtoarele condiii de STOP:

M z ( t ) ( t ) impuls , ceea ce nseamn c vectorul estimatelor

s-a obinut cu o precizie bun;

i < M impuls ceea ce nseamn c dup parcurgerea a unui numr


M impuls de iteraii nu s-a ndeplinit criteriul anterior.

3. Modul de lucru
Dac nu este deja creat, se creeaz un director/folder de lucru.;
Se activeaz platforma de lucru MATLAB;
Se consider modelul descris de urmtoarea ecuaie cu diferene
y(t)-1.5y(t-1)+0.7y(t-2)=u(t-1)+0.5u(t-2)+e(t)

Se elaboreaz programul care implementeaz etapa de estimare din


cadrul algoritmului MCMMP;
Se elaboreaz programul care implementeaz algoritmul metodei
variabilei instrumentale;
Se analizeaz comparativ rezultatele obinute n urma aplicrii
celor dou metode de identificare.

LUCRAREA 12
IDENTIFICAREA EXPERIMENTAL
A UNUI SISTEM ALCTUIT DIN DOU VASE
N CASCAD

1. OBIECTIVELE LUCRRII
Determinarea unui model matematic pe baza unor date experimentale
obinute de la un sistem dinamic. Se au n vedere urmtoarele metode
de identificare: metoda celor mai mici ptrate liniare i neliniare,
metoda verosimilitii maxime i metodele recursive.

2. BREVIAR TEORETIC
Modelul matematic dinamic al procesului de acumulare ntr-un
vas.
Pentru oricare din vasele din figura 12.1, n regim staionar este
valabil relaia
Qi = Qe

(12.1)

unde Q i i Q e sunt debitele lichidului la intrarea, respectiv la ieirea


din vas. Este evident c n acest caz nivelul din vas este constant, H.
, are loc un proces de acumulare a
Pentru cazul n care
lichidului n vas, iar zestrea de lichid a acestuia variaz n timp, astfel
nct se poate scrie succesiv:

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

102

Acumulare=Intrare-Iesire

(12.2)
unde A este aria transversal a vasului.

Fig.12.1. Schema instalaiei experimentale alctuit din dou vase n


cascad
R1 - rotametru, R e - robinet cu servomotor electromagnetic, V1 , V2 vase de acumulare ; C - contact.
Deoarece scurgerea din vas este liber, debitul Q e se poate exprima cu
ajutorul relaiei
(12.3)
unde Ar este aria seciunii minime de trecere prin robinetul instalat pe
calea de evacuare a lichidului, - un coeficient de debit, g -acceleraia
gravitaiei. Rezult ecuaia

(12.4)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

103

care n regim stationar are partea stng nul i n care att nlimea H
ct i debitul Q i se nlocuiesc cu valorile staionare H 0 i Q i0 .
Dezvoltnd funcia
n serie Taylor n jurul punctului H = H 0 i
reinnd numai primii doi termeni ai dezvoltrii rezult

(12.5)

Prin nlocuire n ecuaia diferenial de mai sus se obine

(12.6)
In relaiile ultime s-au notat
abaterile
respectivelor mrimi de la valorile care corespund regimului staionar
i
(12.7)

Ecuaia diferenial n abateri de la regimul staionar este varianta


liniarizat a ecuaiei difereniale generale scrise mai devreme, care este
neliniar. Varianta ultim este valabil numai n apropierea punctului
staionar reprezentat de H 0 si Q i0 .
Modelul matematic dinamic pentru dou vase n cascad
Pentru vasul al doilea din figura 12.1 se poate scrie, de asemenea,
ecuaia diferenial general

(12.8)
i pentru individualizarea cazurilor mrimile pot primi un indice
suplimentar, 1 sau 2, ntocmai cum volumele celor dou vase sunt
notate n figur cu V1 si V2 .
Desigur, Q e1 = Q i2.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

104

Intruct scurgerea din vasul al doilea este, de asemenea, liber, ecuaia


pentru vasul al doilea este

(12.9)
i este o ecuaie neliniar. Un procedeu similar de exprimare liniar a
radicalilor n jurul unor valori de regim staionar H 10 i H 20 conduce la
o ecuaie diferenial liniar n H 2 n care apare i H 1

(12.10)
cu coeficienii c i e care se pot exprima n funcie de geometria
vaselor V1 i V2 i de seciunile de trecere minime ale cilor de
evacuare a lichidului din fiecare vas

(12.11)
Modelul liniarizat al ansamblului celor dou vase este, aadar,

(12.12)
cu coeficienii a i b adaptai corespunztor vasului V1 .
In cazul n care evacuarea lichidului din oricare din vase se face prin
conducte lungi, atunci modelul matematic al vaselor se modific.
Sistemul si modific ordinul deoarece pentru fiecare vas se mai
adaug o ecuaie

(12.13)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

105

care exprim faptul c masa de lichid din conduct are o dinamic


proprie de micare sub combinaia de fore reprezentat de presiunile
diferite de la capetele conductei i de frecarea vscoas a lichidului de
el nsui. Factorul de frecare ntre straturi adiacente de lichid n
micare f este adimensional. Conducta de evacuare are diametrul d i
lungimea l. Ecuaia este de luat n considerare ori de cte ori termenul
al doilea din parantez este important comparativ cu primul termen. O
valoare a factorului de frecare pentru ap, care corespunde vscozitii
ei la temperaturi ambiante uzuale, este f = 2,509.10 -1.
Primul din cele dou vase din instalaia experimental este un sistem
dinamic de ordinul nti. Modelul matematic n varianta lui liniarizat
conduce prin integrarea ecuaiei difereniale-model la urmtorul
rspuns la saltul treapt n debitul Q 1i care alimenteaz vasul
(12.14)
Sistemul de dou vase considerat liniar este de ordinul al doilea.
Variaia cotei n vasul prim rmne aceeai ca n expresia de mai sus.
Variaia cotei n vasul al doilea are expresia general
(12.15)
cu E dependent de B i C, respectiv E = -C/(B - C), ceea ce aduce
expresia ultim la forma
(12.16)
Ambele expresii se refer la rspunsul sistemului la aplicarea unei
modificri treapt a debitului de lichid Q 1i care alimenteaz primul
vas.
Metoda celor mai mici ptrate liniare este utilizat ca metod de
estimare a parametrilor atunci cnd modelul este liniar sau poate fi
liniarizat n raport cu parametrii si. Se disting dou variante ale
acestei metode: fr ponderi sau cu ponderi. In ambele variante se
caut valorile parametrilor modelului cnd se cunosc rezultatele
observrii experimentale a uneia sau mai multor variabile dependente

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

106

(ieiri), n condiii de bun stpnire a variabilelor independente


(intrri) ale sistemului modelat. Acest lucru semnific faptul c
variabilele independente sunt msurate/modificate/meninute cu o
precizie net mai bun dect cele dependente, astfel nct valorile
primelor se pot considera cunoscute aproape exact, pe cnd valorile
celor din urm sunt afectate de erori care nu pot fi trecute cu vederea.
In cazul n care erorile de observare a variabilei (variabilelor)
dependente sunt aceleai pe tot domeniul lor de valori, se aplic
metoda celor mai mici ptrate fr ponderi, ceea ce rezid n
rezolvarea sistemului de ecuaii care rezult din condiiile de minim al
sumei de ptrate

(12.17)
exprimat i ca o sum de termeni reprezentnd diferenele
experiment-model pentru fiecare k = 1, 2, ..., N din cele N
observaii/experiene, dar i n funcie de vectorii observaiilor y o i
valorilor calculate din model y c .
Dac erorile care afecteaz ieirile sunt diferite pe ntinderea
domeniului de valori, se aplic metoda celor mai mici ptrate
ponderate, adic se rezolv sistemul de ecuaii care rezult din
condiiile de minim al sumei de ptrate

(12.18)
cu ponderile q k (k = 1, 2, ..., N) coninute explicit n suma de ptrate
sau n matricea diagonal Q. Ponderile sunt de obicei invers
proporionale cu erorile medii ptratice sau cu dispersiile observaiilor
n punctele de indice k. In ambele cazuri minimizarea sumei S
dependent ptratic de parametrii modelului se reduce la a rezolva un
sistem normal de ecuaii liniare cu necunoscutele tocmai parametrii de
estimat.
Metoda celor mai mici ptrate neliniare este analog celei liniare:
aceleai sume de ptrate trebuie minimizate, de la caz la caz cu sau
fr ponderi (cu ponderi egale). Suma ptratelor este ns o funcie mai
complicat de parametrii de estimat i minimizarea ei necesit

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

107

utilizarea unor metode speciale, de pild metodele de gradient sau alte


metode
nc
mai
rafinate.
Metoda verosimilitii maxime se utilizeaz atunci cnd erorile de
msurare/meninere a variabilelor independente nu mai sunt nici ele
att de lipsite de importan. Valorile parametrilor maximum
verosimile sunt acelea care fac maxim o probabilitate combinat a
diferenelor
model-experiment.
Metodele recursive au la baz metodele de mai sus, dar i altele,
caracteristic fiindu-le utilizarea datelor experimentale pe msura
observrii lor. Aadar, ele pot fi utilizate on-line pentru estimarea
parametrilor modelului asociat unui sistem dinamic dat. Aspectele
teoretice ale estimrii de parametri recursive au fost date, cel puin
pentru metoda celor mai mici ptrate recomandat a se aplica n
lucrarea prezent, la cursul de Identificarea sistemelor.
Prin utilizarea metodelor de estimare enumerate n seciunea
precedent se vor realiza programe de calcul pentru estimarea din
datele experimentale la dispoziie a parametrilor A, B, C i D.
Pentru metoda verosimilitii maxime se presupune c eroarea medie
ptratic de citire a timpului este de 1.5 secunde.
Metoda celor mai mici ptrate se aplic aici n varianta neliniar.
Intr-adevr, suma ptratelor abaterilor pentru sistemul de ordinul unu
reprezentat de primul vas este

(12.19)
fiind o funcie neliniar de parametrii A i B. La fel, pentru nivelul
observat i calculat la diferite momente n vasul al doilea suma
ptratelor diferenelor

(12.20)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

108

este o funcie neliniar n parametri de estimat B, C i D. Cele dou


funcii sunt msuri ale distanei model-experiment i trebuie
minimizate prin stabilirea celor mai potrivite valori ale parametrilor A,
B,
C
i
D.
Minimizarea funciilor obiectiv, cele de mai sus sau altele, se poate
obine
pe
ci
diverse.
Metodele de gradient au n vedere vectorul derivatelor pariale ale
funciei de minimizat numit i gradientul funciei. Evaluarea
gradientului ntr-un punct permite stabilirea direciei n care funcia
scade/crete cel mai rapid. O modificare a variabilelor, n cazul de fa
a parametrilor de estimat, proporional cu valorile derivatelor pariale,
asigur deplasarea pe direcia gradientului. Variaii de semn contrar pe
fiecare direcie component a gradientului, nu foarte importante, fac ca
funcia s scad. Evaluri repetate ale gradientului i deplasarea n
spaiul explorat pe direcia vectorului gradient conduc n cele din urm
la stabilirea coordonatelor unui extrem (minim). Acesta poate fi n
cazul general al funciilor cu mai multe extreme un extrem local.
Localizarea extremului cel mai extrem poate fi uneori problematic.
Reluarea calculelor cu un alt punct de pornire ofer o ans de a atinge
un alt minim, care poate fi cel mai minim ntre minimele funciei.
Sub aspectul rapiditii cu care este localizat un extrem, metodele de
gradient pot fi uneori lente. De aceea s-au pus la punct variante ale
metodelor
de
gradient,
care
fac
cutarea
eficient.
pe categorii de funcii.
Programul recomandat, est.pas, face estimarea de parametri n etape.
Mai nti produce valori pentru parametrii sistemului de ordinul unu
constituit de primul din cele dou vase n cascad. Apoi face acelai
lucru pentru sistemul n ansamblu, meninnd valorile pentru primul
vas constante, aa cum au fost stabilite n prima etap. Aici se mizeaz
pe relativa independen a vasului prim de cel de al doilea, ceea ce este
n bun msur corect. In general, estimarea de parametri trebuie
fcut concomitent prin minimizarea sumei celor dou funcii obiectiv
tratate
aici
separat.
Programul propus utilizeaz metoda celor mai mici ptrate
(neliniare) i metoda verosimilitii maxime. In cazul din urm
pentru primul vas este obtinut i o elips de ncredere, echivalent
intervalului de ncredere din cazul unidimensional, elips care conine

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

109

n interiorul ei toate perechile de valori ale parametrilor la fel de bune


sub aspect statistic ca i valorile centrale, utilizabile aadar n egal
msur n modelul dinamic al sistemului. Nu s-a recurs la calculul
similar pentru sistemul incluznd al doilea vas deoarece n etapa a
doua a calculului sunt estimai concomitent trei parametri i
reprezentrile grafice sunt mai dificile. Este sugerat completarea
programului cu reprezentarea tridimensional a elipsoidului de
ncredere
pentru
parametrii
estimai.
Cnd datele sunt recoltate n timp real, sunt preferate metodele
recursive de estimare a parametrilor. Pe aceleai date experimentale,
programul rec.pas execut operaia de estimare a parametrilor n
manier recursiv. Se admite c sistemul de vase n cascad este
discret sau, mai corect, este descris de un model matematic de tip
discret.

3. MODUL DE LUCRU
Determinarea modelului matematic se bazeaz pe datele experimentale
referitoare la evoluia n timp a cotelor lichidului n cele dou vase n
cascad .
Se studiaz rspunsul sistemului din figura 12.1 pentru un semnal
treapt aplicat debitului de alimentare a primului vas Q i1 .
Desfurarea experimentului se realizeaz dup cum urmeaz:
1. Se aduce procesul ntr-un regim staionar caracterizat prin constana
funciilor de timp Q i1 (t), H 1 (t), H 2 (t). Un punct staionar convenabil
este Q i1 (t)=50 l/or, H 1 (t)=75 mm, H 2 (t)=80 mm. Obinerea acestor
valori se realizeaz prin manevrarea robinetelor instalaiei, cu robinetul
de acionare electromagnetic R e nchis.
2. Prin intermediul robinetelor R e sau R 2 se d o variaie treapt
debitului Q i1 . Se recomand o treapt pozitiv astfel nct Q i1 s
ajung la 70-80 l/or. Se noteaz evoluia n timp a nivelurilor H 1 i
H 2 pe indicatoarele de nivel ataate vaselor. Aceste date vor fi trecute
ntr-un tabel tabelul 12.1- urmnd apoi a fi introduse ntr-un fiier de
date, expe.dat.
Tabelul 12.1
t (s)

h 1

h 2

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

110

In tabel timpul este marcat cu t, iar cotele n cele dou vase sunt notate
cu h 1 , h 2 .
Este foarte important ca pe durata regimului tranzitoriu valoarea
debitului Q i1 s nu se modifice. n acest scop, va fi observat
permanent debitul indicat de rotametrul instalaiei. Micile variaii se
recomand a fi eliminate prin acionarea robinetului R 1 .
3. Pentru determinarea constantelor de timp, se traseaz graficele
funciilor H 1 (t) i H 2 (t) .
Identificarea sistemului propus prin determinarea modelului matematic
se va realiza prin parcurgerea urmtoarelor etape:

Estimarea pe baza datelor experimentale a constantelor de timp


ale sistemului cu acumulare de lichid, folosind programul
est.pas;
Estimarea n manier recursiv, pe baza datelor experimentale, a
constantelor de timp ale sistemului, folosind programul rec.pas;
Compararea valorilor obinute prin aplicarea diferitelor metode
de identificare ;
Estimarea modelului matematic utiliznd alte metode de
identificare: metoda erorii de predicie, metoda variabilei
instrumentale, cu elaborarea programelor software de calcul
corespunztoare.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


program est;
{ Program de estimare a parametrilor }
uses CRT,graph;
const
dt=15.0;
sir:array [1..18] of string=
('E C U A T I I diferentiale exacte:',
'dVl/dt=FO-al.uVl',
'dV2/dt=al.uVl-a2.uV2',
'Regimul initial (stationar): t=0 => F0=al.uV10=a2.uV20',
'Aproximare liniart:',
'uV=u(VO+eV)=~uVO.(l+eV)',
'E C U A T I I liniarizate:',
'deVl/dt=eF-(a I/(2.UV10)).eVI',
'deV2/dt=(al/(2.UV10)).eVI-(a2/ (2.uV20)).eV2',
'S o 1 u t i a sistemului liniarizat:',
'eVl=A.(l-exp(-al.t)) cu al=al/(2.uVlO)',
'eV2=B+C.exp(-al.t)-(B+C).exp(-a2.t) cu a2=a2/(2.uV20)',
' Sunt de estimat cinci parametri: A, B, C, al si a2',
'Date experimentale (En fisierul EXPE.DAT',
'Metoda de estimare:',
' Initializati (En PARA. DAT pe o linie A, al pe o a doua linie B, al, C, a2! ')
Opt:array [1..2] of string=('Cele mai mici patrate',
'Verosimilitate maxima') ;
type
deri=array [1..3,1..60] of double;
var
f,g:text;
gdriver,gmode,i,j,k,m,n,nit,opty,x0,yO:integer;
eps, rol, ro2, t0,xl,x2, yl,y2, yd, yc2 ,u,we: array [1..60] of double;
sd:deri;
alf,alfa,alfa0,bet,beta,betaO,gama,gamaO,delta,deltaO,dl,d2,
pas,s,sO,samare,sarnica,ualfa:double;
tt,uu,xx,yy,zz:string;
car:char;
cov:array [1..3,1..3] of double;
label
unu;
procedure axe;
begin
for i:=0 to 1 do begin
line(30,400+i,610,400+i);
line(30-i,50,30-1,400) ;
line(30-i,50,25-1,55) ;
line(30-i,50,35-i,55) ;
line(610,400+1,605,395+i) ;
line(610,400+i,605,405+i)
end;
for i:=0 to 8 do begin
line(30+70*1,400,30+70*1,397) ;
str(100*i:3,xx) ;
outtextxy(30+70*i,410,xx)
end;
outtextxy(615,410,'[s]') ;

111

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


for i:=0 to 3 do begin
line(30,400-100*1,33,400-100*i) ;
str(20*i:2,xx) ;
outtextxy(15,400-100*1,xx)
end;
end;
procedure axel;
var
Ix,ly / xO /yO:integer;
begin
settextjustifyd, 1) ;
for i:=0 to 1 do begin
line(30,400+1,610,400+1);
line(30-1,50,30-1,400);
line(30-i,50,25-i,55) ;
line(30-i,50,35-i,55) ;
line(610,400+i,605,395+i) ;
line(610,400+i,605,405+i)
end;
for i:=0 to 6 do begin
line(30+90*1,400,30+90*1,397);
str(85+5*1:3,xx) ;
outtextxy(30+90*i,410,xx)
end;
outtextxy(615,410,'A [nm]') ;
for i:=0 to 3 do begin
line(30,400-100*1,33,400-100*1) ;
str(1.3+0.l*i:3:l,xx) ;
outtextxy(15,400-100*i,xx)
end;
outtextxy(60,40,'1000.al [1/s]');
end;
procedure dubluvas;
var
alfal,alfa2,ca0,cal,ca2,f0,kl,k2,ro0,rol,ro2,vl,v2:double;
kll,kl2,kl3,kl4,k21,k22,k23, k2 4 , past, t, vll, v21: double;
1:integer;
function dery(1:integer;vl,v2:double):double;
begin
case i of 1: dery:=2.0*beta0*xl[1]*(1.6-sqrt(1.0+vl/xl[1]))
2: dery:=2.0*beta0*xl[1]*sqrt(1.0+vl/xl[1])
-2.0*delta0*x2[l]*sqrt(1.0+v2/x2[1]) ;
end;
end;
begin
past:=15;
vll:=0.0;
v21:-0.0;
t:=0.0;
i:=0;
repeat
t:=t+past;
i:=i+l;
xO:=30+round(4*t) ;

112

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


vl:-vll;v2:=v21;
kll =past*dery(l,vl,v2) ;
k21 -past*dery(2,vl,v2);
kl2 =past*dery(l,vl+kll/2.0,v2+k21/2.0) ;
k22 =past*dery(2,vl+kll/2.0,v2+k21/2.0) ;
kl3 =past*dery(l,vl+kl2/2.0,v2+k22/2.0) ;
k23 =past*dery(2,vl+kl2/2.0,v2+k22/2.0) ;
kl4 =past*dery(l,vl+kl3,v2+k23) ;
k24 =past*dery(2,vl+kl3,v2+k23) ;
vll =vl+(kll+2.0*kl2+2.0*kl3+kl4)/6.0;
v21 =v2+(k21+2.0*k22+2.0*k23+k241/6.0 ;
ycl[i]:=vll;yc2[i]:=v21;
until t>780;
end;
procedure sl(var s:double;var sd:deri;m:integer) ;
var
a:double;
begin
3:=0.0;
for i:=l to 2 do sd [i, 1] : =0 . 0;
for i:=l to n do begin
a:-exp(-beta*(i-1)*dt) ;
yl[i]:=alfa* (1.0-a) ;
s:=s+sqr(yl[i]-xl[i]+xl[1]) ;
if m>0 then begin
sd[l,l]:=sd[l,l]+2.0*(yl[i]-xl[i]+xl[1])* (1.0-a) ;
sd[2,l]:=sd[2,l]+2.0*(yl[i]-xl[i]+xl[1])*alfa*a*(i-l)*dt
end
end;
end;
procedure s2(var s:double;var sd:deri;m:integer);
var
a,b:double;
begin
s:=0.0;
for i:=l to 3 do sd[i,1]:=0.0;
for i:=l to n do begin
a:=exp (-beta*(i-1)*dt) ;
b:=exp(-delta*(i-1)*dt) ;
y2 [i]:=alfa+gama*a-(alfa+gama)*b;
s:=s+sqr(y2[i]-x2[i]+x2[1]);
if m>0 then begin
sd[l,l]:=sd[l,l]+2.0*(y2[i]-x2[i]+x2[1])*(1.0-b) ;
sd[2,l] :=sd[2,l]+2.0*(y2[i]-x2[i]+x2[l] )* (a-b) ;
sd[3,1]:=sd[3,1]+2.0*(y2[i]-x2[i]+x2[l])*(alfa+gama)*(i-1)*dt
end
end;
end;
procedure s3(var s:double;var sd:deri;m:integer) ;
var
a:double;
jx:array [1..3] of double;
begin
s:=0.0;

113

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


for i:=l to n do begin
a:=exp(-beta*(i-1)*dt) ;
yl [i]:=alfa* (1.0-a) ;
eps[i]:-yl[i]-xl[i]+xl(l];
jx[l]:=alfa*a*beta;
jx[2]:=-1.0;
we [i] :=cov[l,l]*sqr(jx[l] )+cov [2 , 2 ] *sqr ( jx [2 ] ) ;
rol [i] :=abs (eps [i] ) /sqrt (we [i] ) ;
s : =s+sqr (eps [i] ) /we [i] ;
if m>0 then begin
sd[l,i]:=1.0-a;
sd[2,i]:=alfa*a*(i-1)*dt
end
end;
end;
procedure s4(var s:double;var sd:deri;m:integer) ;
var
a,b:double;
jx:array [1..3] of double;
begin
s:=0.0;
for i:=l to n do begin
a:=exp(-beta*(i-1)*dt) ;
b:=exp(-delta*(i-1)*dt) ;
y2 [i]:=alfa+gama*a-(alfa+gama)*b;
eps[i] :=y2[i]-x2[i]+x2[l] ;
jx[1]:=-gama*a*beta+(alfa+gama)*b*delta ;
jx[2] :=-1.0;
we [i] :=cov [1,1] *sqr (jx[l] ) +cov[3, 3] *sqr (jx[2]);
ro2 [i] :=abs(eps[i])/sqrt (we [i]) ;
s:-s+sqr (eps [i])/we [i];
if m>0 then begin
sd[l,i]:=1.0-b;
sd[2,ij:=a-b;
sd[3,i]:=(-gama*a+(alfa+gama)*b)*(i-1)*dt
end
end;
end;
procedure eli(m:integer);
var
btb,btbi,bteb,wa:array [1..3,1..3] of double;
c,fl0,f20:double;
begin
{ restorecrtmode;}
for i:=l to 3 do for j:=l to 3 do
begin btb [i, j ] : =0 . 0 ;btbi [i, j ] : =0 . 0,-bteb [i, j ] :=0 . 0 end;
for i:=l to 3 do btbi [i, i] :=1. 0;
for j:=1 to m do
for k:=j to m do begin
for i:=l to n do btb [j,k]:=btb(j,k]+sd[j,i]*sd[k,i];
btb[k,j]:=btb[j,k]
end;
for j : =1 to m do
for k:=l to m do
for i:=l to n do bteb[j,k]:=bteb(j,k]+sd[j,i]*we [i]*sd[k,i];
for i:=l to m do begin
c:=btb[i,i];
for j:=i to m do btb[i,j]:=btb[i,j]/c;
for j:=l to m do btbi[i,j]:=btbi[i,j]/c;

114

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


for k:^! to m do
if koi then begin
c:=btb [k,i];
for j:=i to m do btb[k,j]:=btb[k,j]-c*btb[i,j] ;
for j:=l to m do btbi [k,j]:=btbi[k,j]-c*btbi[i,j]
end;
end;
for j:=l to m do for k:=l to m do btb [j,k]:=0.0;
for j:=l to m do for k:=l to m do
for i:=l to m do btb [j,k]:=btb[j,k]+btbi[j,i]*bteb[i,k];
for j:=l to m do for k:=l to m do wa [j , k] :=0 . 0;
for j:=l to m do for k:=l to m do
for i:=l to m do wa [j,k]:=wa [j,k]+btb[j,i]*btbi[i,k];
for j:=l to m do for k:=l to m do
begin bteb[j,k]:=0.0;if j=k then bteb[j,k]:=1.0 end;
for i:=l to m do begin
c:=wa[i,i];
for j^i to m do wa [ i / j ] : =wa [ i, j ] /c;
for ]:=! to m do bteb[i,j]:=bteb[i,j]/c;
for k:=l to m do
if koi then begin
c: =wa[k, i] ;
for j:=i to m do wa [k,j]:=wa[k,j]-c*wa[i,j];
for j:=l to m do bteb [k,j]:=bteb [k,j]-c*bteb [i,j]
end;
end;
writeln(wa[l,l],wa[l,2],wa[2,l],wa[2,2]);
samare:=bteb[l,l]+bteb[2,2];
samica:=bteb[l,l]*bteb[2,2]-bteb [1,2]*bteb[2, 1] ;
samica : =sqrt f sqr (samare) -4.0 ^"s arnica) ;
fl0:=(samare-samica)/2.0;
f20:=(samare+samica)/2.0;
samare:=2.45/sqrtfflO) ;
samica:=2.45/sqrt(f20) ;
f20:--bteb[2,1]/ (bteb [2,2]-flO) ;
ualfa:=57.297*arctan(f20) ;
writein(samare,samica,ualfa) ;
axel;
setcolor(12)
line(30+round(18*(alfa0-2*samare-85)),400-round(1000*(1000*beta0-l.3))
,30+round(18*(alfa0+2*samare-85)),400-round(1000*(1000*beta0-l.3)))
line(30+round(18*(alfaO-85)),400-round(1000*(1000*beta0-2000*samica-l.3))
,30+round(18*(alfaO-85)),400-round(1000*(1000*beta0+2000*samica-l.3))),
set color (15) ;
ellipse(30+round(18*(alfaO-85) )
,400-round(1000*(1000*beta0-l.3) ), 0,360
,round (18*samare),round(l.e6*samica)) ;
outtextxy(300,450,'Pentru continuare apasati orice tasta!');
outtextxy (400,70,'Elipsa de (Encredere (95%) pentru vasul nr.l');
str(samare:6:2,xx) ;
str(1000*samica:6:3,yy);
str (ualfa:6:3,zz);
outtextxy(400,90,'Semiaxa mare:
'+xx+' [mm]') ;
outtextxy (400,100,'lOOOxSemiaxa mict: '+yy+' [1/s]');
outtextxy(400,110,'Inclinarea axei mari:'+zz+'0 ');
car:=readkey;
res torecrtmode;
setgraphmode(getgraphmode)
end;
function spl (alfa,beta:double):double;
var
suma:double;
i:integer;
begin

115

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

116

suma : =0 . 0;
for i:=l to n do suma:=suma+sqr(xl[i]-alfa*(1.0-exp(beta*t0[i]))) ;
spl:=suma
end;
function sp2(alfa,beta,gama,delta:double):double;
var
suma,co:double;
i:integer;
begin
co:=gama/(beta-gama);
suma:=0.0;
for i:=l to n do
suma:=suma+sqr (x2[i]-delta*(1.0-co*u[i]+(co-1.0) *exp(gama*t0 [i]) ) ) ;
sp2:=suma
end;
begin
assign (f,'expe.dat') ;
reset (f) ;
readin(f,n) ;
for i:=l to n do readin(f,tO[i],xl[i],x2[i]);
close(f);
for i:=2 to n do u[i]:=ln (1.0-(xl[i]-xl[1])/103.5) ;
samare:=0.0;
samica:=0.0;
for i:=2 to n do begin
samare:=samare+sqr(tO[i]) ;
sarnica:=samica+t0[i]*u[i]
end;
samica:=samica/samare ;
samare:=0.0;
for i:=2 to n do samare:=samare+sqr(samica*t0[i]-u[i]);
write(samica,samare);readin;
assign(f,'cov.dat') ;
reset(t) ;
readin(f,nit);
for i:=l to 3 do for j:=l to 3 do read(f,cov[i,j]);
close(f) ;
assign(g,'para.dat');
reset(g) ;
readin(g,alfa0,beta0);
readin(g,alfa0,beta0,gamaO,deltaO) ;
close(g) ;
s0:=spl(alfa0,beta0) ;
dl:= (sO-spl(1.001*alfa0,beta0))/ (0.001*alfa0) ;
d2:=(sO-spl(alfa0,1.001*beta0))/(0.001*beta0) ;
write(dl,d2) ;
( readin;
exit;)
detectgraph(gdriver,gmode) ;
InitGraph(gdriver,gmode,'');
dubluvas ;
settextjustify(1,1);
outtextxy(500,50,'OPTIUNE ASUPRA METODEI');
rectangle(400,60,600,105) ;
k:=l;
outtextxy(320,420,
'Selectare:
tastele
cu
sgeti
repeat
for i:=l to 2 do begin
if i^k then setcolor(13) else setcolor(15);
outtextxy(500,60+15*1,opt[i] ) ;
end;

'+#24+#25+';

Activare:

Enter.')

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


car:=readkey;
if car=#0 then begin
car:=readkey;
if car=#80 then k:=k+l;
if car=#72 then k:=k-l;
if k<l then k:=2;
if k>2 then k:=l;
end;
until car=#13;
opty:=k;
restorecrtmode ;
setgraphmode(getgraphmode) ;
settextjustify(0, 1) ;
for i:=l to 18 do outtextxy(30,40+15*i,sir[i]);
setcolor (13) ;
outtextxy(30,280,sir[16]+opt[opty]) ;
setcolor (15) ;
settextjustify (1,1) ;
outtextxy(300,450,'Pentru continuare apasati orice tasta!');
car:=readkey;
restorecrtmode;
setgraphmode(getgraphmode) ;
settextjustify (1,1) ;
assign(g,'para.dat');
reset(g);
readin(g,alfa0,beta0) ;
close(g) ;
randomize;
axe;
outtextxy(40,40,'ehl [mm]') ;
for i:=l to n do begin
circle(30+round(0.7*t0[i]),400-round(5*(xl[i]-xl[1])),2) ;
setcolor (11);
circle(30+round(0.7*(tO[i]+15)),400-round(5*ycl[i]),2) ;
setcolor(15)
end;
x0:=30;y0:=400;
alfa:=alfa0;
beta:=beta0;
moveto(xO,yO) ;
case opty of 1: sl(s0,sd,0); 2: s3(s0,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15) ;
y0:=400-round(5*yl[i]) ;
lineto(x0,y0) ;
end;
str(alfa0:8:3,xx);str(betaO:11:8,yy);str (sO:8:4,zz) ;
outtextxy(300,430,'A='+xx+' al='+yy+' S^'+zz);
outtextxy(300,450,'Pentru continuare apasati orice tasta!'itcar: =readkey;
setcolor(0) ;
for i:=l to n do begin
circle(30+round(0.7*t0[i]),400-round(5*(xl[i]-xl[1])),2) ;
circle(30+round(0.7 *(t0(i]+15)),400-round(5*yc1[i]),2)
end;
x0:=30;y0;=400;
alfa:=alfa0;
beta:=beta0;
moveto(xO,yO);
case opty of 1: sl (sO, sd, 0) ; 2: s3(s0,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15) ;
y0:=400-round(5*yl[i]) ;

117

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


lineto(x0,y0);
end;
outtextxy(300,450,'Pentru continuare apasati orice tasta!');
setcolor(15) ;
k:=0;
repeat
x0:=30;y0:=400;
alfa:=alfa0+0.05*(1.0-2.O*random) ;
beta:=beta0+0.0001*(1.0-2.O*random) ;
moveto(xO,yO) ;
case opty of 1: sl(s,sd,0); 2: s3(s,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15);
y0:=400-round(5*yl[i] ) ;
lineto(xO,yO) ;
end;
for i:=l to n do
circle(30+round(0.7*t0[i]),400-round(5*(xl[i]-xl [ 1])),2);
delay (100) ;
setcolor(0) ;
x0:=30;y0:=400;
moveto(xO,yO) ;
case opty of 1: sl(s,sd,0); 2: s3(s,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15) ;
y0:=400-round(5*yl[i]) ;
lineto (x0,y0) ;
end;
setcolor(15);
if s0>s then begin alfaO:=alfa;beta0:=beta;sO:=s;k:=l end else k:=k+l;
if k=10*(k div 10) then begin
if k>0 then
begin setcolor(0);outtextxy(500,320,xx+yy);setcolor(15) end;
str(s:10:3,xx);str(k:5,yy);outtextxy(500,320,xx+yy)
end;
until k=nit;
x0:=30;y0:=400;
moveto(xO,yO) ;
alfa:=alfa0;beta:=beta0;
case opty of 1: sl(s,sd,0>; 2: s3(s,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15) ;
y0:=400-round(5*yl[i]) ;
lineto(x0,y0);
end;
alf:=alfa0;bet:=beta0;
setcolor (0) ,-outtextxy (500, 320,xx+yy) ; setcolor (14) ;
sir (alfaO: 8: 3,xx) ; str (betaO : 11: 8,yy) ; str (s0 : 8 : 4, zz) ;
outtextxy(300,440,'A='+xx+' al='+yy+' S='+zz);
setcolor(15);
case opty of 1: begin
str (s0/ (n-2):6:4,xx) ;
str(n-2:3,yy);
outtextxy(500,320,'sy='+xx);
outtextxy(500,335,'Grade de libertate: '+yy);
str(sqrt(s0/(n-2)):6:3,xx) ;
outtextxy(500,350,'Abatere medie patratica: '+xx);
end;
2: begin
str(sO/n:7:4,xx) ;
outtextxy(500,320,'Distanta normalizata medie:'+xx);

118

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


outtextxy(500,335,'Valoarea critica (95%): 2.45');
end;
end;
outtextxy(300,450,'Pentru continuare apasati orice tasta!');
car:^readkey;
restorecrtmode;
setgraphmode(getgraphmode) ;
if opty=2 then begin s3(s,sd,1);eli (2) end;
settextjustify(1,1) ;
assign(g,'para.dat');
reset(g) ;
readin(g,alfaO,betaO) ;
readln(g,alfa0,beta0,gamaO,deltaO) ;
beta0:=bet;
close(g) ;
axe;
outtextxy(40,40,'eh2 [mm]');
for i:=l to n do begin
circle(30+round(0.1*t0[i]),400-round(5*(x2[i]-x2 [1])),2);
setcolor (11) ;
circle(30+round(0.7 *(tO[i]+15)),400-round(5*yc2[i] ) , 2) ;
seteolor(15)
end;
x0:=30;y0:=400;
alfa:=alfa0;beta;=beta0 ;
gama:=gama0;delta:=delta0;
moveto(xO,yO);
case opty of 1: s2(s0,sd,0); 2: s4(s0,sd,0); end;
for i;=l to n do begin
x0:-30+round(0.7*(i-1)*15) ;
y0:-400-round(5*y2[i]) ;
lineto(x0,y0) ;
end;
strfalfa0:8:3,xx);str(beta0:ll:8,yy);
str(gama0:8:3,tt);str(deltaO:ll:8,uu);str(s0:8:4,zz);
outtextxy(320,430,'B='+xx+' al='+yy+' C='+tt+' a2='+uu+' S='+zz)
outtextxy (300,450,'Pentru continuare apasati orice tasta!');
car:=readkey;
setcolor (0);
for i:=l to n do begin
circle(30+round(0.7*10 [i]),400-round(5*(x2[i]-x2[1])),2);
circle(30+roundfO.7*(tO[i]+15)),400-round(5*yc2[i]),2)
end;
xO:=30;y0:=400;
alfa:=alfa0;beta:=beta0;
gama:=gama0;delta:=delta0 ;
moveto (xO, yO) ;
case opty of 1: s2(s0,sd,0); 2: s4(s0,sd,0); end;
for i:=1 to n do begin
xO:-30+round(0.7*(i-1)*15) ;
y0:=400-round(5*y2[i]);
lineto(x0,y0) ;
end;
outtextxy(300,450,'Pentru continuare apasati orice tasta!');
setcolor(15);
k:=0;
repeat
x0:=30;y0;=400;
alfa:=alfa0+0.05*(1.0-2.O*random) ;
beta:=beta0;
gama:=gama0+0.05*(1.0-2.O*random) ;
delta:=delta0+0.000005*(1.0-2.0*random) ;
moveto(x0,y0) ;

119

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


case opty of 1: s2(s,sd,0); 2; s4(s,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15);
y0:=400-round(5*y2[i]) ;
lineto(x0,y0) ;
end;
for i: =1 to n do
circle(30+round(0.7*t0[i]),400-round(5 *(x2[i]-x2[1])),2) ;
delay (20) ;
setcolor (0) ;
x0:=30;y0:=400;
moveto(xO,yO);
case opty of 1: s2(s,sd,0); 2: s4(s,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-1)*15) ;
yO:=400-round(5*y2[i] ) ;
lineto (x0,y0) ;
end;
setcolor(15);
if s0>s then begin
alfa0:=alfa;beta0:=beta;
gamaO:=gama;delta 0:=delta;
s0:=s;k:=l
end else k:=k+l;
if k=10*(k div 10) then begin
if k>0 then
begin setcolor (0) ,-outtextxy (500, 320,xx+yy) ; setcolor (15) end;
str(s:10:3,xx);str(k:5,yy);outtextxy(500,320,xx+yy)
end;
until k=nit;
for i:=l to n do
circle(30+round(0.7*t0[i]),400-round(5*(x2[i]-x2[1] ) ) ,2) ;
x0:=30;y0:=400;
alfa:=alta0;beta:=beta0;
gama:=gama0;delta:=delta0;
moveto(xO,yO);
case opty of 1: s2(s0,sd,0); 2: s4(s0,sd,0); end;
for i:=l to n do begin
x0:=30+round(0.7*(i-l)*15) ;
y0:=400-round(5*y2[i]) ;
lineto(x0,y0) ;
end;
setcolor(0);outtextxy(500,320,xx+yy);setcolor (14) ;
strfalfaO:8:3,xx);str (betaO:11:8,yy) ;
str(gamaO:8:3,tt);str(delta0:ll:8,uu);str(s0:8:4,zz);
outtextxy(320,440,'B='+xx+' al='+yy+' C='+tt+' a2='+uu+' S='+zz);
setcolor (15) ;
case opty of 1: begin
str (s0/ (n-3) : 6: 4,xx) ;
str(n-3:3,yy) ;
outtextxy(500,320,'sy='+xx) ;
outtextxy(500,335,'Grade de libertate: '+yy);
str(sqrt(s0/(n-3)):6:3,xx) ;
outtextxy(500,350,'Abatere medie patratica: '+xx);
end;
2: begin
str(sO/n:1:4,xx) ;
outtextxy(500,320,'Distanta normalizata medie:'+xx);
outtextxy (500,335,'Valoarea critict (95%): 2.45');
end;

120

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


end;
rewrite(g) ;
writeln(g,alf:10:3,' ',bet:12:8) ;
writeln(g,alfa0:10:3,' ',betaO:12:8,' ',gamaO:10:3,' ',deltaO:12:8) ;
close(g) ;
outtextxy(300,450,'Pentru continuare apasati orice tasta!');
car:=readkey;
closegraph;
assign (f,'est.dat') ;
rewrite(f);
case opty of 1: writelnff,' t
hi hie ehl h2 h2c eh2')
2: writeln(f,' t
hi
hie
rol
h2
end;
for i:=l to n do
case opty of 1:
wnteln(f,t0 [i] : 5 : l,xl [i] : 8 :1, yl [i]+xl[l] : 7 :2 , yl [i]+xl [1]-xl [i] :6:2
,x2 [i] :8:l,y2 [i]+x2 [1] : 7 : 2 , y2 [i]+x2 [ 1]-x2 [i] :6:2) ;
2:
writeln(f,t0[i] :5:l,xl [i]:8:1,yl[i]+xl[1]:7:2,rol[i]:6:3
,x2[i]:8:l,y2[i]+x2[1]:7:2,ro2[i]:6:3);
end;
close(f)
end.
program rec;
uses CRT,graph;
{ Fisierul EGAVGA.BGI trebuie sa fie prezent in directorul/folderul de lucru(
const
nf=32;
model:array [1..2] of string= ( ' y (t+1) =cl. y (t)+sl. u (t) ' ,
'y(t+l)=cl.y(t)+c2.y(t-l)+sl.u(t) ' ) ;
para:array [1..2] of string= ( ' e ' '= [cl aal ] ' , ' e ' ' ='[cl c2 sl ] ' ) ;
fata:array [l..nf] of string=(
' PROGRAM PENTRU ESTIMAREA DE PARAMETRI',
'
RECURSIVA',
' Programul prezent ilustreaza estimarea recursiva a parametrilor in doua',
'modele, unul de ordinul intai, altui de ordinul al doilea.',
' Datele experimentale din fisierul EXPE.DAT sunt recoltate efectiv de pe ',
'un sistem de doua vase cu scurgere libera, in cascada. Primui vas detasat',
'din context este (aproximativ) un sistem de ordinul unu, cu o intrare',
'(debitui de alimentare de la reteaua de apa curenta) si o iesire (nivelul',
'in vas). Ansamblul celor doua vase este (tot aproximativ) un sistem de',
'ordinul doi, de asemenea cu o intrare (aceeasi ca mai sus) si una sau doua',
' iesiri (nivelul in unul din vase sau ambele niveluri).',
' Sunt de estimat doi sau, respectiv trei parametri. Modelele discretizate',
'apar pe ecran la momentui potrivit. La fei vectorul parametrilor de esti-',
'mat e.',
' Relatia de recurenta este',
e (t+l)=e (t)+K(t+l) .i(t+l) ',
' cu' ,
K(t+l)=P(t) .z(t+l)/(a(t+l)+z' ' (t+1) .P(t) .z(t+l)) ',
'in care ' ,
a(t+1)=a0.a(t)+(l-a0) ',
' si cu ' ,
i (t+l)=y(t+l)-z" (t+1) .e(t) ' ,
' Matricea P se calculeaza recursiv cu relatia',
'P(t+l)=[P(t)-P(t) .z(t+l) . (a(t+l)+z' ' (t+1) .P(t) .z (t+1) ).z''(t+l).P(t)]/a(t+l)'
' In cazurile tratate',
z (t+l)=[-y(t) u(t) ] ',
'respectiv',
z (t+l)=[-y (t) -y(t-l) u(t)]',
' Programul are in vedere o singura metoda, cea a celor mai mici patrate.',
'','Pentru continuare apasati orice tasta!');
drl:array [1..4] of pointtype=((x:70;y:150),(x:180;y:150)

h2c

121

ro2')

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


,(x:180;y:210),(x:70;y:210)) ;
dr2 : array [1..4] of pointtype" ( (x: 460; y: 170) , (x: 570,-y: 170)
,(x:570;y:230),(x:460;y:230)) ;
pur:fillpatterntype=($FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF) ;
var
f:text;
gdriver,gmode,i,j,k,l,m,mx,my,n:integer;
t0:array [1..60] of double;
yl,yc,yest:array [1..60,1..2] of double;
a,psi,tetal,tetaO:array [1..5] of double;
b,pl,p0,pp:array [1..5,1..5] of double;
alfa,la,la0,y:double;
car:char;
xx:string;
function ing(a:real;nd:integer):string;
var
xx,yy:string;
i:integer;
begin
str(10.0*a,xx) ;
yy:-";
for i:=l to nd+6 do yy:=yy+' ';
yy[l]:=xx[l] ;
yy[2]:='.';
yy[3] :=xx[2];
if nd>l then for i:=2 to nd do yy[i+2]:=xx [i+2];
yy[nd+3]:=xx(18] ;
yy[nd+4]:=xx[19] ;
yy[nd+5]:=xx[22];
yy[nd+6]:-xx[23] ;
ing:=' '+copy(yy,1/nd+6);
end;
procedure axe;
var
xx:string;
begin
for i:=0 to 1 do begin
line(30,400+i,610,400+i) ;
line(30-i,50,30-1,400) ;
line(30-i,50,25-i,55) ;
line (30-i,50,35-i,55) ;
line(610,400+i,605,395+i);
line(610,400+i,605,405+i)
end;
for i:=0 to 8 do begin
line(30+70*1,400,30+70*1,397) ;
str(100*i:3,xx) ;
outtextxy(30+70*i,410,xx)
end;
outtextxy(615,410,'[s]') ;
for i:=0 to 3 do begin
line(30,400-100*1,33,400-100*1);
str(20*i:2,xx) ;
outtextxy (15,400-100*1,xx)
end;
end;
procedure fatada;

122

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


begin
settextjustify(0,1) ;
for i:=l to nf-1 do outtextxy(10,14*i,fata[i]);
settextjustify(1,1);
setcolor (14) ;
outtextxy(320,14*nf,fata[nf]) ;
setcolor(15)
end;
procedure recu(m:integer) ;
begin
setfillpattern(pur,15) ;
fillpoly(4,drl);
fillpoly(4,dr2) ;
settextjustify(1,1) ;
setcolor (0) ;
line(75,150,75,210) ;
line(465,170,465,230) ;
line (75,180,175,180) ;
line(465,200,565,200) ;
case m of 2: outtextxy(85,155,'d');
3: outtextxy(100,155,'cl,c2');
end;
outtextxy(475,175,'sl') ;
setcolor (15) ;
axe;
str (m-1: 1, xx) ;
outtextxy(40,40,'eh'+xx+' [mm]') ;
outtextxy(320,425,'MODEL: '+model[m-1]) ;
outtextxy(320,440,'VECTOROL PARAMETRILOR DE ESTIMAT: '+para[m-1]),
for i: =1 to n do
circle(30+round(0.7*t0[i]),400-round(5*(yl[i,m-1]-yl[1,m-l])),2);
for i:=l to 5 do tetal[i]:=0.0;
for i: =1 to 5 do
for j:=l to 5 do begin
pi [i,j]:-0.0;if i=j then pl[i,j]:=1.0
end;
for i:=l to m-1 do yest[i,m-l]:=0.0;
la 0:=0.95;la:=0.95;
settextjustify (0,1) ;
circle(60,80,2) ;
outtextxy(70,80, 'EXPERIMENTAL') ;
setcolor(14);
circle(60,95, 2) ;
outtextxy(70,95,'ESTIMAT PAS CU PAS ' ) ;
outtextxy(70,475,
'Treceti de la un moment la urmatorul apasand o tasta oarecare!');
setcolor(13);
circle (60,110,2) ;
outtextxy(70,110,'CALCULAT CU MODELUL FINAL');
setcolor(15) ;
settextjustify(1,1) ;
outtextxy(386+36*m,290,'MATRICEA P');
line(390,300,390,310+10-m);
line (390, 300, 3 93, 300) ;
line(390,310+10*m,393,310+10*m) ;
line(400+72*m,300,400+72*m,310+10*m);
line(397+72*m,300,400+72*m,300);
line(397+72*m,310+10*m,400+72*m,310+10*m) ;
outtextxy(336,55+5*m,'e =');
outtextxy(328,50+5*m,'"');
line(400-44,50,400-44,60+10*m);

123

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

124

line(400+54,50,400+54,60+10*m);
line(356,50,359,50) ;
line(356,60+10*m,359,60+10*m) ;
line(451,50,454,50);
line(451,60+10*m,454,60+10*m) ;
for k:=m to n do begin
for i;=l to m do for j:=l to m do pO[i,j]:^pl[i,]] ;
for i:=l to m do tetaO[i]:=tetal[i] ;
for i:=l to m do begin
for j:=l to m do outtextxy(350+72*i,300+10*j,ing(pO[i,j],3));
outtextxy(400,50+10*i,ing(tetaO[i],5)) ;
end;
for
i:=l
to
m-1
do
putpixel(75+2*(k-m),180-round(20*teta0[i]),2*(i-1))
putpixel(465+2*(k-m),200-round(300*teta0[m]),0) ;
car:=readkey;
setcolor(0) ;
for i:=l to m do begin
for j:=l to m do outtextxy(350+72*i,300+10*j,ing(pO[i,j],3));
outtextxy(400,50+10*i,ing(teta0[i],5));
end;
setcolor(15) ;
for i:=l to m-1 do psi[i]:=-yl[k-i.m-1]+yl[l,m-l] ;
psi[m]:=30.0;
y:=yl[k,m-l]-yl[l,m-l] ;
for i:=l to m do begin
a[i]:=0.0;
for j:=l to m do a[i]:=a[i]+psi[i]*p0[j,i]
end;
la:=la0*la+l.0-laO;
alfa:=la;
for i =1 to m do alfa:=alfa+a [i]*psi[i] ;
alfa:=1.0/alfa;
for i =1 to m do for j:=1 to m do pp[i,j]:=alfa*psi[i]*psi[j] ;
for i ^1 to m do for j :=1 to m do b[i,j]:=0.0;
for i =1 to m do for j:=1 to m do
for 1:=1 to m do b[i,j]:=b[i,j]+p0[i,l]*pp[1,j] ;
for i =1 to m do for j :=1 to m do pp [i, j ] :=0.0;
for i =1 to m do for j:=1 to m do
for 1:=1 to m do pp [i, j ] :=pp [i, j ]+b [i, 1] *p0 [1, j ] ;
for i:=l to m do for j:=l to m do pi [i, j ] := (pO [i , j ]-pp [i , j ] )/la;
yest[k,m-l]:=0.0;
for i:=l to m do yest[k,m-1]:=yest[k,m-l]+psi[i]*teta0[i];
setcolor(14) ;
circle(30+round(0.7*t0[k]),400-round(5*yest[k,m-l]),2);
setcolor(15) ;
for i:=l to m do a[i]:=0.0;
for i:=l to m do for 1:=1 to m do a [i] :-a [i]+p0 [i, 1] *psi [1] ;
for i:=l to m do begin
a[i]:=alfa*(y-yest[k,m-l])*a[i];
tetal[i):=teta0[i]+a[i]
end;
end;
if m=2 then assign(f,'reel.dat') else assign(f,'rec2.dat');
rewrite(f) ;
for i:=l to m-1 do yc[i,m-l]:=yl[i,m-l]-yl[l,m-l] ;
setcolor(13) ;
for k:=m to n do begin
yc[k,m-l]:=tetal[m]*30.0;
for i:=1 to m-1 do
yc[k,m-l]:=yc[k,m-l]-tetal[i]*yc [k-i,m-l] ;
circle(30+round(0.7*t0[k]),400-round(5*yc[k,m-1]),2) ;
wnteln(f,yl [k, m-1]-yl [ 1, m-1] : 10 : 2 , yest [ k,m-l] : 12 : 3 , yc [k,m-l] : 12 :3)
end;
close(f) ;

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


for i:=1 to m do begin
for j:=l to m do outtextxy(350+72*i,300+10*j,ing(pO[i,j],3));
outtextxy(400,50+10*1,ing(teta0 [i],5)) ;
end;
car:=readkey;
clear viewport;
setcolor(15)
end;
begin
assign (f,'expe.dat') ;
reset (f) ;
readin(f,n) ;
for i:=l to n do readin(f,tO[i],yl[i,1],yl[i,2]);
close(f) ;
detectgraph(gdriver,gmode) ;
InitGraph(gdriver,gmode,'') ;
mx:=getmaxx;
my:=getmaxy;
fatada;
car:=readkey;
clear viewport;
recu(2) ;
recu(3) ;
closegraph
end.

125

LUCRAREA 13
IDENTIFICARE DINAMIC PENTRU
CONDUCEREA UNUI SISTEM DE REGLARE A
PRESIUNII

1. OBIECTIVELE LUCRRII
Aplicarea tehnicilor de identificare dinamic a proceselor n
scopul proiectrii unui regulator pentru conducerea unui sistem
de reglare a presiunii.
Elaborarea unui program software de achiziie de date i
identificare pentru un sistem de reglare a presiunii.

2. BREVIAR TEORETIC
2.1. Descrierea SRA-P
Sistemul de reglare automat ce urmeaz a fi studiat este destinat
reglrii presiunii aerului ntr-un recipient i se afl n laborator.
Schema sistemului de reglare automat este prezentat n figura 13.1.
Traductorul de presiune PT sesizeaz continuu variaia presiunii P2 i
transmite regulatorului PC un semnal electric proporional cu valoarea
curent a acestuia. Regulatorul compar valoarea semnalului Ir cu
valoarea Ii asociat prescrierii Pi i n cazul n care apare o abatere se
emite o comand Ic robinetului de reglare, dup un algoritm de tip PI
sau PID. Convertorul electro-pneumatic face posibil compatibilitatea
funcionrii regulatorului PC electronic - cu robinetul de reglare RRpneumatic.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

112

Fig. 13.1. Schema sistemului de reglare automat a presiunii.


Sistemul de reglare este dublat de un element de comand manual HC
(conturul punctat). Comutatorul ce selecteaz cuplarea/decuplarea
sistemului de reglare este amplasat pe elementul de comand manual
HC.
2.2. Modelul matematic al procesului
n regim dinamic cele dou vase sunt descrise de ecuaiile:
V1
V2

d1
= Q1i Q1e ;
dt

d 2
= Q2i Q2 e Q1e Q2 e .
dt

(13.1)
(13.2)

Curgerea prin robinetele R 2 i R 3 fiind turbulent, poate fi scris


relaia
Q1e = KV 2 ( P1 P2 )

(13.3)

De asemenea, se cunoate
=

M
P,
RT

(13.4)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

113

nlocuind relaiile (13.3) i (13.4) n (13.2), rezult:

V1 M dP1
M

= Q1i K V 2
P1 ( P1 P2 ) ;
RT dt
RT
V2 M dP2
M

= KV 2
P1 ( P1 P2 ) Q2 e .
RT dt
RT

(13.5)
(13.6)

care, liniarizate n jurul punctului (P10 ; P20 ; Q1i 0 ; Q2e 0 ) , conduc la:
2 P10 P20
P10
M
V1M
M
P1 = Q1i + KV2
P2
P1 + KV2
2
2
RT 2 P10 P10 P20
RT
RT 2 P10 P10 P20
2 P10 P20
P10
M
V2 M
M
P1 Q2 e ;
P2 + KV2
P2 = KV2
2
RT 2 P102 P10 P20
RT
RT 2 P10 P10 P20

(13.7)
respectiv:
a1P1 + P1 = b11Q1i + b12 P2
a P + P = b P + b Q
2

21

(13.8)

2e

22

unde:
VM
a1 = 1
RT
a2 =

V2 M
RT

2
RT 2 P10 P10 P20
M KV2 (2 P10 P20 )
2
RT 2 P10 P10 P20
M
KV2 P10

b11 =

2
RT 2 P10 P10 P20
M KV2 (2 P10 P20 )

b22 =

2
M 2 P10 P10 P20
RT
KV2 P10

P10
;
2 P10 P20
2P P
b21 = 10 20 ;
P10

b12 =

(13.9)

Valori practice pentru constantele de timp i coeficienii de amplificare


asociate instalaiei din laborator sunt considerate a fi urmtoarele:
V1 = V2 = V =

D 2
4

H =

0,32
4

0,5 = 0,035 m 3 ;

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR


P1 = 2 bar = 2 105 N / m 2 ; P2 = 1 bar = 105 N / m 2 ;

114

M
29 2 105
1 =
P1 =
= 2,38 Kg / m 3 ;
RT
8315 293
2
d
0,006 2
Q=
1 =
15 2,38 = 0,001 Kg / s ;
4
4
Q
0,001
KV2 =
=
= 2 10 6 m 2 ;
5
1 (P1 P2 )
2,38(2 1)10
a1 =

0,035 29 8315 293 2 2 105 (2 1)105

60 s ;
8315 293
29
2 106 4 105 105

0,035 29 8315 293 2 2 105 (2 1)105


a2 =

85 s ;
8315 293
29
2 106 2 105
8315 293 2 2 105 (2 1) 105
1
;
= 1,36 108
6
5
29
2 10 (4 1) 10
ms
P10
2
b12 =
=
= 0,67 ;
2 P10 P20 2 2 1
2P P P
2 2 1
b21 = 10 20 10 =
= 1,5 ;
P10
2

b11 =

b22 =

8315 293 2 2 105 (2 1) 105


1
.
= 2,05 108
6
5
29
2 10 2 10
ms

Este evident c valorile constantelor a1 , a2 , b11 , b12 , b21 , b22


modificate, printre altele, cu ajutorul robinetului R 2 .

pot fi

Avnd n vedere c cele dou vase sunt n interaciune, fapt evideniat


i de modelul matematic, schema bloc a procesului, figura 13.2,
conine un element cu reacie.

Fig. 13.2. Schema bloc a procesului de acumulare a gazului n cele


dou vase cu interaciune

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

115

Sistemul de ecuaii difereniale care reprezint modelul i schema bloc


din figura 13.2 permit evidenierea urmtoarelor funcii de transfer:
P1 (s )
b
= 11 ,
Q1 (s ) a1s + 1
P (s )
b
Y2 (s ) = 1 = 12 ,
P2 (s ) a1s + 1
P (s )
b
= 22 ,
Y3 (s ) = 2
Qe (s )
a2 s + 1
P (s )
b
Y4 (s ) = 2 = 21 .
P1 (1) a2 s + 1
Y1 (s ) =

(13.10)

n ansamblu, procesul reprezint un sistem caracterizat prin funcii de


transfer ce fac legtura ntre mrimea de execuie, mrimea
perturbatoare i mrimea de ieire.
Pentru procesul de acumulare a gazului din cadrul SRA-P schema bloc
este adus la forma din figura 13.3. Aplicnd algebra funciilor de
transfer pentru sisteme cu reacie se poate scrie:
P2 (s ) = Y1Y4 Q1 (s ) + Y2Y4 P2 (s ) Y3 Qe (s )

(13.11)

ceea ce conduce la
P2 (s ) =

Y3
Y1Y4
Q1 (s )
Qe (s )
1 Y2Y4
1 Y2Y4

Fig. 13.3. Schema bloc simplificat a procesului

(13.12)

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

116

Din relaia de mai sus se deduc funciile de transfer asociate


procesului, de forma:
P2 (s )
YY
= 1 4
Q1 (s ) 1 Y2Y4
Y3
P (s )
YPP (s ) = 2
=
Qe (s )
1 Y2Y4
YP (s ) =

(13.13)

2.3. Identificarea dinamic n contextul proiectrii unui


sistem de reglare
Identificarea este operaia de determinare a caracteristicilor dinamice
ale procesului (sistemului), a crui cunoatere este necesar pentru
proiectarea i implementarea unui sistem performant de reglare.
Figura 13.4 rezum principiile generale de proiectare si calcul ale unui
regulator.

Fig. 13.4. Principiul proiectrii i calculului unui regulator.


Pentru a proiecta corect un regulator sunt necesare:
specificarea performanelor
dorite pentru
comand/reglare;

bucla

de

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

117

cunoaterea modelului dinamic al procesului (numit model


de comand) ce descrie relaia ntre variaiile comenzii i
variaiile ieirii;
disponibilitatea unei metode adecvate de calcul al regulatorului
compatibil cu performanele specificate i caracteristicile
modelului procesului.
Noiunea de model matematic al unui sistem sau fenomen este un
concept fundamental. n general, exist diferite tipuri de modele,
fiecare model fiind destinat unei aplicaii specifice.
De exemplu, modelele de cunoatere (bazate pe legile fizice, chimice,
etc.) permit o descriere destul de complet a sistemelor i sunt utilizate
pentru simularea i modelarea proceselor. Aceste modele sunt, n
general, extrem de complexe i rareori direct utilizabile n automatic.
Modelele dinamice de comand, ce dau relaia ntre variaiile intrrilor
unui sistem i variaiile ieirii, sunt tipuri de modele necesare pentru
proiectarea i ajustarea sistemelor de comand/reglare. Dei indicaii
asupra structurii acestor modele de comand se pot obine pornind de
la structura modelului de cunoatere, n general, este foarte dificil s se
determine valorile parametrilor semnificativi pornind de la aceste
modele.
De aceea, n marea majoritate a situaiilor practice, este pus in
aplicare o metodologie de identificarea direct a acestor metode
dinamice (de comand). De notat c modelele de comand sunt de
dou tipuri:
modele neparametrice ( rspuns n frecven, rspuns la treapt).
modele parametrice ( funcie de transfer, ecuaie diferenial sau
cu diferene).
Metoda de identificare clasic utilizat pentru obinerea modelelor
parametrice pornind de la modele neparametrice de tip rspuns la
treapt este prezentat n figura 13.5.
Aceast metod a fost utilizat iniial pentru a obine modele
parametrice continue, apoi
a fost extins pentru identificarea
modelelor discrete. Pornind de la forma rspunsului procesului la

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

118

treapt, se alege un tip de model i se determin grafic parametrii


modelului. Cunoscnd frecvena de eantionare, se poate obine cu
ajutorul tabelelor modelul discret corespunztor.

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Fig. 13.5. Metoda clasic de identificare.

119

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

Principiul estimrii parametrilor modelelor discrete este prezentat

120

n figura 13.6.

Fig. 13.6. Principiul estimrii parametrilor unui model


Un model discret cu parametri ajustabili este implementat pe
calculator. Eroarea ntre ieirea procesului la momentul t, y (t ) , i
ieirea predictat de model, y (t ) , numit eroare de predicie, este
utilizat de algoritmul de ateptare parametric. Acesta va modifica
parametrii modelului la fiecare moment de eantionare, astfel nct s
se minimizeze aceast eroare. Intrarea este, n general, o secven
pseudo aleatoare binar de un nivel foarte slab, generat de
calculator (succesiune de impulsuri dreptunghiulare cu durat aleator
variabil). Odat modelul obinut, o validare obiectiv poate fi fcut
prin teste statistice asupra erorii de predicie (t ) i ieirii predictate

y (t ) . Testul de validare permite pentru un proces dat s se aleag cel


mai bun model, respectiv cea mai bun structur i cel mai bun
algoritm pentru estimarea parametrilor.
Calculnd i reprezentnd grafic rspunsul la o treapt i rspunsul n
frecven al modelului identificat, se poate determina modelul
continuu (rspuns la o treapt sau rspuns n frecven).

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

121

3. MODUL DE LUCRU
Echipamentul de conducere este compus din calculator i
interfa AX5411.
Se utilizeaz interfaa AX5411 multifuncional, cu urmtoarele
caracteristici:
Subsistemul intrrilor analogice
Numr de intrri
Rezoluie
Frecvena de achiziie
Timpul de conversie
Timpul de achiziie
Domenii de intrare
Impedana de ieire
Neliniaritate
Eroare inerent

16 simple (AI0 AI15)


12 bit
60 kHZ max.
A/D 15 s max
5s max/canal
10 V, 5V, 2,5V, 1.25 V
0,625V, 0,3125V selectabile software
> 10 M, 50 pF
1 LSB
1 LSB

Subsistemul ieirilor analogice

Numr de ieiri
Rezoluie
Frecvena
Domenii de ieire
Curent de ieire

2 (DA0, DA1)
12 bit
33 kHZ max.
0-5V, 0-10V selectabile hard
5 mA max

Subsistemul ieirilor/intrrilor numerice

Intrri numerice
Ieiri numerice
Nivele intrare/iesire
Conector intrare/ieire

24 (disponibile 8 DI0-DI7)
24 (disponibile 8 DO0-DO7)
compatibile TTL
50 pini

Caracteristici de interfa

Magistrala
Bii adres utilizai
Adres de baz (port)
Locaii necesare
Nivele de ntrerupere
Sursa de ntreruperi
Opiuni DMA

compatibil IBM PC AT
A9- A0
300 hexa
16 (octei)
2,3,4,5,6,7 (controlabile soft)
FINISH bit conversie A/D
DMA1 sau DMA3 selectabile hard

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

122

n figura 13.7 este prezentat asignarea pinilor n conectorul


interfeei AX5411. Adresa portului de baz pentru interfa este 0x300.
Fa de aceasta, interfaa utilizeaz 16 adrese consecutive care
constituie spaiul de I/O (R=read, W=write) conform figurii 13.8.

Fig. 13.7. Asignarea pinilor conectorului interfeei AX5411

Fig.13.8. Spaiul I/O al interfeei AX5411

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

123

Se studiaz aplicaia de achiziie i identificare a parametrilor


modelului matematic, care este format din trei seciuni
principale, descrise n continuare.
Programul de achiziie permite generarea unor tensiuni ctre robinet
i achiziionarea informaiei primite de la traductorul de presiune
(fig.13.9).

Fig. 13.9. Partea de achiziie a aplicaiei


Programul permite vizualizarea continu a parametrilor instalaiei i a
comenzii date ctre robinet prin indicatoarele aflate pe form
(fig.13.10).

Fig. 13.10. Fereastra vizualizare date din proces

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

124

n modul de baz se face achiziia de pe canalul 0, comanda de


stabilizare este de 7 mA, comanda pentru treapta aplicat procesului
este de 15 mA i filtrul software este activ. Aceti parametri pot fi
schimbai utiliznd butoanele din partea stng a ferestrei, prezentate
n figura 13.11.

Fig. 13.11.Setri placa de achiziie


Fiecare modificare este adus la cunotina utilizatorului prin
intermediul ferestrei de vizualizare comenzi. n cazul cnd fereastra
este plin, pentru a evita pierderea unei informaii, se realizeaz nti o
tergere a comenzilor anterioare i apoi se afieaz ultima comand
executat de ctre utilizator.
n figura 13.12 sunt prezentate unele comenzi executate urmnd
procedura descris anterior.

Fig.13.12. Fereastr vizualizare comenzi

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

125

Aplicaia permite achiziia datelor genernd fie un semnal treapt,


fie unul ramp. Acest lucru se realizeaz utiliznd meniul prezent n
partea de sus a ferestrei, conform prezentrii din figura 13.13..

Fig. 13.13. Meniu generare semnale


Datele achiziionate vor fi salvate n fiierele de tip text: adi_tp.txt,
adi_rp.txt, direct n rdcina disk-ului C.
Din forma de achiziie se poate face o rentoarcere n forma principal
sau, dup achiziionarea datelor, trecere n seciunea de identificare.
Programul de identificare are o fereastr asociat prezentat n figura
13.14.

Fig.13.14. Fereastra asociat procedurii de identificare

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

126

Tabelul din figur va prelua datele achiziionate din proces dup


apsarea butonului Incrcare date. Un exemplu, utilizat la aplicarea
procedurii de identificare pentru estimarea parametrilor modelului,
este prezentat n figura 13.15. Butonul de identificare rmne inactiv
pn cnd sunt preluate datele din fiierul text realizat n partea de
achiziie.

Fig.13.15. Tabelul cu datele achiziionate


n urma derulrii procedurii de identificare, pe ecran apare un
indicator de tip ProgressBar care arat procentul realizat din
identificare (fig.13.16), fereastra care prezint modelul matematic
actualizat n urma identificrii (fig. 13.17) i o aa-numit fereastr de
utilizator, care specific separat valoarea parametrilor estimai n urma
aplicrii procedurii de identificare (fig.13.18).

IDENTIFICAREA SISTEMELOR NDRUMAR DE LABORATOR

127

Fig. 13.16. Indicator proces identificare

Fig. 13.17. Fereastra model matematic

Fig. 13.18.Fereastra informare utilizator


Dup ncheierea procedurii de identificare se poate trece la ultima
parte a aplicaiei: reglarea predictiv a sistemului, acionnd butonul
Reglare.

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