lucrarea nr5

10
LUCRAREA Nr. 5 ESTIMAREA PARAMETRILOR MODELELOR OE (output error) ŞI BJ (Box-Jenkins) 5.1 Modelul OE (output error) Modelul de tip OE (output error) este utilizat pentru modelarea sistemelor descrise de următoarea ecuaţie: ) ( ) ( * ) ( ) ( ) ( t e n t u q F q B t y k + = unde: a a n n q f q f q F + + + = * * 1 ) ( 1 1 L - polinom de grad n f 1 1 2 1 * * ) ( + + + + = b b n n q b q b b q B L - polinom de grad n b -1 Structura acestui model este prezentată în figura următoare: u(t) ) ( ) ( q F q B q d y(t) e(t) + + Identificarea parametrilor unui model OE se realizează în Matlab folosind funcţiile oe şi roe descrise în continuare: Funcţia oe Sintaxă: m = oe(data,orders) Descriere: Această funcţie estimează parametrii unui model OE folosind metoda erorii de predicţie. Semnificaţia parametrilor este următoarea:

Upload: mv-irinel

Post on 22-Oct-2015

6 views

Category:

Documents


0 download

DESCRIPTION

h

TRANSCRIPT

Page 1: LUCRAREA Nr5

LUCRAREA Nr. 5

ESTIMAREA PARAMETRILOR MODELELOR OE (output error) ŞI BJ (Box-Jenkins)

5.1 Modelul OE (output error)

Modelul de tip OE (output error) este utilizat pentru modelarea sistemelor descrise de următoarea ecuaţie:

)()(*)()()( tentu

qFqBty k +−=

unde: a

a

nn qfqfqF −− +++= **1)( 1

1 L - polinom de grad nf

1121 **)( +−− +++= b

b

nn qbqbbqB L - polinom de grad nb-1

Structura acestui model este prezentată în figura următoare:

u(t) )(

)(qF

qBq d−

y(t)

e(t)

+

+

Identificarea parametrilor unui model OE se realizează în Matlab

folosind funcţiile oe şi roe descrise în continuare:

■ Funcţia oe Sintaxă: m = oe(data,orders) Descriere: Această funcţie estimează parametrii unui model OE folosind metoda erorii de predicţie. Semnificaţia parametrilor este următoarea:

Page 2: LUCRAREA Nr5

- data: este un obiect de tip iddata ce conţine datele intrare-ieşire ale sistemului ce trebuie identificat. Datele prelucrate de această funcţie pot fi date din domeniul timp sau din domeniul frecvenţă.

- orders: este un vector linie ce conţine ordinele polinoamelor B(q) şi F(q) precum şi întârzierea pe intrare şi este definit astfel: orders=[nb nf nk].

- m: este un obiect de tip idpoly.

Dacă datele prelucrate sunt din domeniul continuu sau din domeniul frecvenţă atunci funcţia oe estimează un model continuu cu funcţia de transfer:

12

12)1(

1

......

)()()(

fsfsfbsbsb

sFsBsG nf

nf

nbnb

++++++

==−

−−

În acest caz întârzierea nk nu are nici un sens şi poate fi omisă. În

cazul sistemelor multivariabile nb, nf, nk sunt vectori linie de dimensiune egală cu numărul de intrări.

■ Funcţia roe Sintaxă: thm = roe(data,orders,adm,adg) [thm,yp,P,phi,psi] = roe(data,orders,adm,adg,th0,P0,phi0,psi0) Descriere: Această funcţie estimează parametrii unui model OE (output-error) folosind o metodă de estimare recursivă. Parametri data şi orders au aceleaşi semnificaţii ca în cazul funcţiei oe. Parametrii adm şi adg sunt utilizaţi în diverse combinaţii cu ajutorul cărora se selectează algoritmul recursiv utilizat pentru identificare, astfel:

- adm=’ff’ şi adg=lambda pentru a se utiliza algoritmul celor mai mici pătrate recursiv cu factorul de uitare egal cu valoarea lambda.

- adm=’ug’ şi adg=gam pentru a se utiliza algoritmul gradientului nenormalizat, cu amplificarea lui gama egală cu valoarea gam.

- adm=’ng’ şi adg=gam pentru a se utiliza algoritmul gradientului normalizat.

- adm=’kf’ şi adg=R1 pentru a se utiliza un algoritm bazat pe filtru Kalman.

Page 3: LUCRAREA Nr5

Parametrii estimaţi sunt returnaţi în matricea thm. Rândul k din această matrice conţine parametrii asociaţi momentului de timp k, adică aceşti parametrii se bazează pe datele până la linia k din data. Fiecare linie a matricii thm conţine parametrii estimaţi în ordinea următoare: thm(k,:) = [b1,...,bnb, f1,...,fnf]

În cazul utilizării celei de-a doua variante de sintaxă, semnificaţia parametrilor este următoarea: - Parametrul de ieşire yp este predicţia ieşirii conform modelului actual, adică linia k a lui yp conţine predicţia y(k) calculată pe baza tuturor datelor anterioare. - Argumentul de intrare th0 este un vector linie ce conţine valoarea iniţială a parametrilor modelului. Valoarea sa implicită este un vector llinie cu toate elementele nule. - Argumentele P0 şi P sunt valorile iniţială, şi respectiv finală, a matricei de covarianţă scalate a parametrilor. Valoarea implicită a matricei P0 este 104 înmulţit cu matricea unitate. - Argumentele phi0 şi phi conţin valorile iniţială, şi respectiv finală, a vectorului de date:

)]1(),...,1(),(),...,1([)( +−−−−−=ϕ nknbtutunatytyt

Valoarea implicită a vectorului phi0 este un vector cu toate elementele zero. - Argumentele psi0 şi psi sunt vectori ce conţin valorile iniţială, şi respectiv finală, a gradientului. Valoarea implicită a vectorului psi0 este un vector cu toate elementele zero. Observaţie: Această funcţie solicită o valoare nk mai mare decât zero. Exemplul 5.1 Considerăm un sistem discret descris de următoarea ecuaţie cu diferenţe:

)2(*2.0)1()()2(*5.0)1()2(*2.0)1()( −+−−+−+−=−+−− tetetetututytyty

Se cere: a) să se creeze un model Matlab pentru acest sistem; b) să se simuleze răspunsul sistemului pe un interval de 300 de

secunde la o intrare u(t) de tip semnal pseudo-aleator binar şi un zgomot aleator e(t) gaussian de medie nulă şi deviaţie standard 0.6;

Page 4: LUCRAREA Nr5

c) folosind datele intrare-ieşire de la punctul b) să se estimeze parametrii unui model ARMAX folosind metoda minimizării erorii de predicţie.

Soluţie: Folosind operatorul de întârziere cu un pas q-1 obţinem ecuaţia

)()2.01()()5.0()()2.01( 212121 teqqtuqqtyqq −−−−−− +−++=+− Sau

)()(2.01

5.0)( 21

21

tetuqq

qqty ++−

+= −−

−−

Observăm că suntem în cazul unui model OE cu singură intrare şi o singură ieşire cu:

[ ]5.010=B şi [ ]2.011 −=F Crearea unui model OE se realizează folosind funcţia idpoly: m=idpoly(1,B,1,1,F); Semnalul de intrare şi perturbaţia pot fi generate folosind funcţia idinput:

u=idinput(300,’prbs’); e=idinput(300,’rgs’);

Simularea modelului m la intrarea u şi perturbaţia e se realizează folosind funcţia sim:

y=sim(m,[u e]); Datele intrare – ieşire sunt grupate într-un obiect de tip iddata:

z=iddata(y,u,1) Aceste date pot fi plotate folosind funcţia idplot : idplot(z) Pentru estimarea modelului OE cu doi poli, două zerouri şi o întârziere folosim funcţia armax: me=oe(z,[2 2 1]) În concluzie, programul Matlab ce rezolvă cerinţele problemei este următorul: B =[0, 1, 0.5]

Page 5: LUCRAREA Nr5

F= [1 -1 0.2] m=idpoly(1,B,1,1,F) u=idinput(300,'prbs'); e=idinput(300,'rgs'); y=sim(m,[u e]); z=iddata(y,u,1) idplot(z) me=oe(z,[2 2 1]) 5.2 Modelul BJ (Box-Jenkins)

Modelul de tip BJ (Box-Jenkins) este un model descris de următoarea ecuaţie:

)()()()(*

)()()( te

qDqCntu

qFqBty k +−=

unde: a

a

nn qfqfqF −− +++= **1)( 1

1 L - polinom de grad nf

1121 **)( +−− +++= b

b

nn qbqbbqB L - polinom de grad nb-1

c

c

nn qcqcqC −− +++= **1)( 1

1 L - polinom de grad nc

d

d

nn qdqdqD −− +++= **1)( 1

1 L - polinom de grad nd Structura acestui model este prezentată în figura următoare:

u(t) y(t)

e(t)

+ +

)()(

qDqC

)()(

qFqBq d−

Identificarea parametrilor unui model BJ se realizează în Matlab folosind funcţiile bj şi rbj descrise în continuare:

Page 6: LUCRAREA Nr5

■ Funcţia bj Sintaxă: m = bj(data,orders) Descriere: Această funcţie estimează parametrii unui model BJ folosind metoda erorii de predicţie. Semnificaţia parametrilor este următoarea:

- data: este un obiect de tip iddata ce conţine datele intrare-ieşire ale sistemului ce trebuie identificat. Datele prelucrate de această funcţie pot fi doar date din domeniul timp (datele din domeniul frecvenţă nu sunt acceptate).

- orders: este un vector linie ce conţine ordinele polinoamelor B(q), C(q), D(q) şi F(q) precum şi întârzierea pe intrare şi este definit astfel: orders=[nb nc nd nf nk].

- m: este un obiect de tip idpoly. În cazul sistemelor multivariabile nb, nf, nk sunt vectori linie de

dimensiune egală cu numărul de intrări.

■ Funcţia rbj Sintaxă: thm = rbj(data,orders,adm,adg) [thm,yp,P,phi,psi] = rbj(data,orders,adm,adg,th0,P0,phi0,psi0) Descriere: Această funcţie estimează parametrii unui model BJ (Box-Jenkins) folosind o metodă de estimare recursivă. Parametri data şi orders au aceleaşi semnificaţii ca în cazul funcţiei bj. Parametrii adm şi adg sunt utilizaţi în diverse combinaţii cu ajutorul cărora se selectează algoritmul recursiv utilizat pentru identificare, astfel:

- adm=’ff’ şi adg=lambda pentru a se utiliza algoritmul celor mai mici pătrate recursiv cu factorul de uitare egal cu valoarea lambda.

- adm=’ug’ şi adg=gam pentru a se utiliza algoritmul gradientului nenormalizat, cu amplificarea lui gama egală cu valoarea gam.

- adm=’ng’ şi adg=gam pentru a se utiliza algoritmul gradientului normalizat.

- adm=’kf’ şi adg=R1 pentru a se utiliza un algoritm bazat pe filtru Kalman.

Page 7: LUCRAREA Nr5

Parametrii estimaţi sunt returnaţi în matricea thm. Rândul k din această matrice conţine parametrii asociaţi momentului de timp k, adică aceşti parametrii se bazează pe datele până la linia k din data. Fiecare linie a matricii thm conţine parametrii estimaţi în ordinea următoare: thm(k,:) = [b1,b2,...,bnb, c1,c2,...,cnc, d1,...,dnd , f1,...,fnf]

În cazul utilizării celei de-a doua variante de sintaxă, semnificaţia parametrilor este următoarea: - Parametrul de ieşire yp este predicţia ieşirii conform modelului actual, adică linia k a lui yp conţine predicţia y(k) calculată pe baza tuturor datelor anterioare. - Argumentul de intrare th0 este un vector linie ce conţine valoarea iniţială a parametrilor modelului. Valoarea sa implicită este un vector llinie cu toate elementele nule. - Argumentele P0 şi P sunt valorile iniţială, şi respectiv finală, a matricei de covarianţă scalate a parametrilor. Valoarea implicită a matricei P0 este 104 înmulţit cu matricea unitate. - Argumentele phi0 şi phi conţin valorile iniţială, şi respectiv finală, a vectorului de date:

)]1(),...,1(),(),...,1([)( +−−−−−=ϕ nknbtutunatytyt Valoarea implicită a vectorului phi0 este un vector cu toate elementele zero. - Argumentele psi0 şi psi sunt vectori ce conţin valorile iniţială, şi respectiv finală, a gradientului. Valoarea implicită a vectorului psi0 este un vector cu toate elementele zero. Observaţie: Această funcţie solicită o valoare nk mai mare decât zero. Exemplul 5.2 Considerăm un sistem discret descris de următoarea ecuaţie:

)(2.01

1)(7.02.11

3.1)( 21

1

2

31

teqq

qtuq

qqty −−

−−

+−−

++−−

=

Se cere: a) să se creeze un model Matlab pentru acest sistem; b) să se simuleze răspunsul sistemului pe un interval de 300 de

secunde la o intrare u(t) de tip semnal pseudo-aleator binar şi un zgomot aleator e(t) cu distribuţie normală;

Page 8: LUCRAREA Nr5

c) folosind datele intrare-ieşire de la punctul b) să se estimeze parametrii unui model BJ folosind metoda minimizării erorii de predicţie.

Soluţie:

Observăm că suntem în cazul unui model BJ cu singură intrare şi o singură ieşire cu:

[ ]3.110 −=B , [ ]7.02.11 −=F , [ ]11 −=C şi [ ]2.011 −=D Crearea unui model ARMAX se realizează folosind funcţia idpoly: m=idpoly(1,B,C,D,F); Semnalul de intrare şi perturbaţia pot fi generate folosind funcţia idinput:

u=idinput(300,’prbs’); e=idinput(300,’rgs’);

Simularea modelului m la intrarea u şi perturbaţia e se realizează folosind funcţia sim:

y=sim(m,[u e]);

Datele intrare – ieşire sunt grupate într-un obiect de tip iddata: z=iddata(y,u,1)

Aceste date pot fi plotate folosind funcţia idplot : idplot(z) Pentru estimarea modelului BJ folosim funcţia bj:

me=bj(z,[2 2 2 2 1]) În concluzie, programul Matlab ce rezolvă cerinţele problemei este următorul: B =[0, 1, -1.3] C= [1 -1] D =[1,-1, 0.2]

Page 9: LUCRAREA Nr5

F =[1,-1.2, 0.7] m=idpoly(1,B,C,D,F) u=idinput(300,'prbs'); e=idinput(300,'rgs'); y=sim(m,[u e]); z=iddata(y,u,1) idplot(z) me=bj(z,[2 2 2 2 1]) TEME: 1. Să se ruleze exemplele prezentate în lucrare. 2. Considerăm un sistem discret descris de următoarea ecuaţie cu diferenţe:

)2(*3.0)1(*85.0)()2()1(*5.0

)2(*3.0)1(*85.0)(−+−++−+−=

=−+−+tetetetutu

tytyty

Se cere: a) să se creeze un model Matlab pentru acest sistem; b) să se simuleze răspunsul sistemului pe un interval de 400 de

secunde la o intrare u(t) de tip semnal pseudo-aleator binar şi un zgomot aleator e(t) cu distribuţie normală (se cer graficele intrării şi ieşirii sistemului);

c) folosind datele intrare-ieşire de la punctul b) să se estimeze parametrii unui model OE folosind metoda minimizării erorii de predicţie.

d) Pentru modelul obţinut la punctul c) să se afişeze: - gradul de asemănare între datele reale şi ieşirea modelului; - funcţia de corelaţie a reziduurilor; - funcţia pondere; - funcţia indicială; - caracteristica complexă de frecvenţă amplitudine-fază; - caracteristicile BODE; - funcţia de transfer corespunzătoare modelului; - polii şi zerourile modelului împreună cu regiunile de încredere.

Page 10: LUCRAREA Nr5

e) să se estimeze parametrii unui model OE folosind algoritmul celor mai mici pătrate recursiv cu un factor de uitare egal cu 0.93. Să se ploteze evoluţia parametrilor modelului estimat.

3. Considerăm un sistem discret descris de următoarea ecuaţie:

)(65.085.121

18.02.01)(9.01

8.03.1)( 321

421

2

432

teqqq

qqqtuq

qqqty −−−

−−−

−−−

−+−−+−

++

+−=

Se cere: a) să se creeze un model Matlab pentru acest sistem; b) să se simuleze răspunsul sistemului pe un interval de 500 de

secunde la o intrare u(t) de tip sumă de două sinusoide şi un zgomot aleator e(t) de tip zgomot alb (se cer graficele intrării şi ieşirii sistemului);

c) folosind datele intrare-ieşire de la punctul b) să se estimeze parametrii unui model BJ folosind metoda minimizării erorii de predicţie.

d) să se estimeze parametrii unui model BJ folosind algoritmul celor mai mici pătrate recursiv cu un factor de uitare egal cu 0.9. Să se ploteze evoluţia parametrilor modelului estimat.

4. Considerăm un sistem discret descris de următoarea ecuaţie cu diferenţe:

)2(*7.0)1(*2.1)()3(*1.0)2(*5.0)1(*1.0)2(*5.0)1(*5.1)3(*1.0)2(*5.0)1(

)2(*7.0)1(*2.1)(

333

22111

−+−−+−−−+−−−−−−+−+−+−

=−+−−

tetetetutututututututu

tytyty

Se cere: a) să se creeze un model Matlab pentru acest sistem; b) să se simuleze răspunsul sistemului pe un interval de 500 de

secunde la intrările u1(t), u2(t) şi u3(t) de tip aleator binar şi un zgomot aleator e(t) cu distribuţie normală;

c) folosind datele intrare-ieşire de la punctul b) să se estimeze parametrii unui model OE folosind metoda minimizării erorii de predicţie.