lucrarea nr5
DESCRIPTION
hTRANSCRIPT
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:
- 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.
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;
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]
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:
■ 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.
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ă;
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]
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.
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.