Sunteți pe pagina 1din 9

LUCRAREA Nr.

ESTIMAREA PARAMETRILOR
MODELELOR AR ŞI ARX

Modelul de tip AR (autoregresiv) este utilizat pentru modelarea


seriilor de timp (datele nu conţin semnale de intrare) şi este descris de
următoarea ecuaţie:

A(q ) * y (t ) = e(t )

unde:
A(q ) = 1 + a1 * q −1 + L + an * q − n - polinom de grad na
a
a

Acest model poate fi considerat ca un caz particular al unui model


ARX (autoregresiv cu intrare exogenă) descris de ecuaţia:

A(q ) * y (t ) = B(q ) * u (t − nk ) + e(t )


unde:
A(q ) = 1 + a1 * q −1 + L + an * q − n
a
a
- polinom de grad na
B (q) = b1 + b2 * q −1 + L + bnb * q − nb +1 - polinom de grad nb-1
q −1 - operator de întârziere cu un pas;
u (t ) - semnalul de intrare;
y (t ) - semnalul de ieşire;
e(t ) - perturbaţie;
Structura acestui model este prezentată în figura următoare:

e(t)
1
A( q )
u(t) q − d B(q) + y(t)
A(q ) +

28
În Matlab există mai multe funcţii ce pot fi utilizate pentru Estimarea
parametrilor modelelor AR şi ARX, în funcţie de algoritmul ce se doreşte
a fi utilizat pentru identificare. Astfel, funcţiile ar şi arx folosesc metoda
celor mai mici pătrate pentru estimarea parametrilor modelelor, funcţia
rarx utilizează metoda celor mai mici pătrate recursivă iar funcţiile ivar
şi iv4 utilizează metoda variabilelor instrumentale. În continuare sunt
prezentate aceste funcţii.

■ Funcţia ar

Sintaxă: m = ar(y,n)

Descriere: Această funcţie estimează parametrii unui model AR


(autoregresiv) pentru o serie de timp scalară folosind metoda celor mai
mici pătrate. Semnificaţia parametrilor este următoarea:
- y: este un obiect de tip iddata ce conţine evoluţia unui semnal de
ieşire;
- n: este un scalar ce specifică ordinul modelului ce trebuie estimat
(numărul coeficienţilor polinomului A)
- m: este un obiect de tip idpoly.

■ Funcţia arx

Sintaxă: m = arx(data,orders)

Descriere: Această funcţie estimează parametrii unui model AR


(autoregresiv) sau ARX (autoregresiv cu intrări exogene) folosind
algoritmul celor mai mici pătrate. 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. Pot fi utilizate atât date în
domeniul timp cât şi în domeniul frecvenţă.
- orders: În cazul unui sistem discret, acest parametru este un
vector linie ce conţine ordinele polinoamelor A(q) şi B(q) precum
şi întârzierea pe intrare şi este definit astfel: orders=[na nb nk].
În cazul unui model AR avem orders=na.
- m: este un obiect de tip idpoly.

29
Pentru modelele multivariabile (modele cu mai multe intrări şi mai
multe ieşiri) na este o matrice ce conţine un număr de linii egal cu
numărul de ieşiri al sistemului, iar nb şi nk sunt matrice cu un număr de
coloane egal cu numărul de intrări şi un număr de linii egal cu numărul de
ieşiri al sistemului.
Pentru modelele cu o singură ieşire această funcţie poate fi utilizată
pentru estimarea unui model continuu în timp (doar folosind date din
domeniul frecvenţă). În acest caz, na reprezintă gradul numitorului iar nb
gradul numărătorului funcţiei de transfer. Astfel, dacă na=4 şi nb=2 se va
obţine un model de forma:
b1 s + b2
G (s) =
s + a1 s + a 2 s 2 + a3 s + a 4
4 3

Pentru modelele continue nk nu are nici o semnificaţie şi poate fi omis.

■ Funcţia rarx

Sintaxă:
thm = rarx(data,orders,adm,adg)
[thm,yp,P,phi] = rarx(data,orders,adm,adg,th0,P0,phi0)

Descriere: Această funcţie estimează parametrii unui model AR


(autoregresiv) sau ARX (autoregresiv cu intrări exogene) folosind un
algoritm de estimare recursiv. Parametri data şi orders au aceleaşi
semnificaţii ca în cazul funcţiei arx. În plus apar parametrii adm şi adg
ce sunt utilizaţi în diverse combinaţii şi 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,:) = [a1,a2,...,ana,b1,...,bnb]
30
Î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
linie cu toate elementele nule.
- Argumentele P0 şi P sunt valorile iniţială, şi respectiv finală, ale
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:
ϕ(t ) = [ y (t − 1),..., y (t − na ), u (t − 1),..., u (t − nb − nk + 1)]
Valoarea implicită a vectorului phi0 este un vector cu toate elementele
zero.

■ Funcţia ivar

Sintaxă: m = ivar(y,n)

Descriere: Această funcţie estimează parametrii unui model AR


(autoregresiv) pentru o serie de timp scalară folosind metoda variabilelor
instrumentale. Semnificaţia parametrilor este următoarea:
- y: este un obiect de tip iddata ce conţine evoluţia unui semnal de
ieşire;
- n: este un scalar ce specifică ordinul modelului ce trebuie estimat
(numărul coeficienţilor polinomului A)
- m: este un obiect de tip idpoly.

■ Funcţia iv4

Sintaxă: m = iv4(data,orders)

Descriere: Această funcţie estimează parametrii unui model ARX


(autoregresiv cu intrări exogene) folosind metoda variabilelor
instrumentale în patru etape. Semnificaţia parametrilor este următoarea:
31
- data: este un obiect de tip iddata ce conţine datele intrare-ieşire ale
sistemului ce trebuie identificat. Pot fi utilizate atât date în domeniul
timp cât şi în domeniul frecvenţă.
- orders: În cazul unui sistem discret, acest parametru este un vector
linie ce conţine ordinele polinoamelor A(q) şi B(q) precum şi
întârzierea pe intrare şi este definit astfel: orders=[na nb nk]. În
cazul unui model AR avem orders=na.
- m: este un obiect de tip idpoly.

Principala diferenţă între această funcţie şi funcţia arx este aceea că


funcţia iv4 nu este afectată de ”culoarea” zgomotului e(t) ce apare în
ecuaţia modelului.

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

y (t ) − 1.5 * y (t − 1) + 0.7 * y (t − 2) = u(t − 1) + 0.5 * u(t − 2) + e(t )


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 ARX folosind metoda celor mai mici
pătrate.

Soluţie:
Folosind operatorul de întârziere cu un pas q-1 obţinem ecuaţia
(1 − 1.5q −1 + 0.7q −2 ) y (t ) = ( q −1 + 0.5q −2 )u(t ) + e(t )
Observăm că suntem în cazul unui model ARX cu singură intrare şi o
singură ieşire cu:

A = [1 − 1.5 0.7] şi B = [0 1 0.5]

Crearea unui model ARX se realizează folosind funcţia idpoly:

m=idpoly(A,B);

32
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 ARX cu doi poli, două zerouri şi o întârziere


folosim funcţia arx:

me=arx(z,[2 2 1])

În concluzie, programul Matlab ce rezolvă cerinţele problemei este


următorul:

A =[1,-1.5, 0.7]
B =[0, 1, 0.5]
m=idpoly(A,B)
u=idinput(300,'prbs');
e=idinput(300,'rgs');
y=sim(m,[u e]);
z=iddata(y,u,1)
idplot(z)
me=arx(z,[2 2 1])

Exemplul 2.2
Considerăm un sistem discret descris de următoarea ecuaţie cu diferenţe:
y (t ) − 1.5 * y (t − 1) + 0.2 * y (t − 2) = u1 (t − 1) − u1 (t − 2) + 0.5 * u2 (t ) + 1.2 * u2 (t − 1) + e(t )

33
Se cere:
c) să se creeze un model Matlab pentru acest sistem;
d) să se simuleze răspunsul sistemului pe un interval de 300 de
secunde la o intrare u1(t) de tip sumă de 2 sinusoide, la o intrare
u2(t) de tip aleator binar şi un zgomot aleator e(t) cu distribuţie
normală;
e) folosind datele intrare-ieşire de la punctul b) să se estimeze
parametrii unui model ARX folosind metoda celor mai mici
pătrate.

Soluţie:
Folosind operatorul de întârziere cu un pas q-1 obţinem ecuaţia:
(1 + 0.7 q −1 + 0.2 q −2 ) y (t ) = ( q −1 − q −2 )u1 (t ) + (1 + 0.5q −1 )u2 (t ) + e(t )

Observăm că suntem în cazul unui model ARX cu două intrări şi o


singură ieşire. În acest caz B este o matrice cu două linii (câte una pentru
fiecare intrare). Deci, avem:
A=[1, 0.7, 0.2]
B=[0 , 1 , -1;
0.5, 1.2, 0 ];
Programul Matlab pentru rezolvarea acestei probleme este similar cu
cel de la primul exemplu, aşa cum se prezintă în continuare:

A =[1, 0.7, 0.2]


B =[ 0, 1, -1;0.5 1.2 0];
m=idpoly(A,B)
u1=idinput(300,'sine',[],[0 4],[2 5 1]);
u2=idinput(300,'prbs');
e=idinput(300,'rgs');
y=sim(m,[u1 u2 e]);
z=iddata(y,[u1 u2],1)
idplot(z)
me=arx(z,[2 ,[2 2] ,[1 0]])

Exemplul 2.3

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

y (t ) − 1.5 * y (t − 1) + 0.7 * y (t − 2) = u(t − 1) + 0.5 * u(t − 2) + e(t )


Se cere:

34
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 ARX folosind metoda celor mai mici
pătrate recursivă folosind un factor de uitare egal cu 0.9. Să se
ploteze evoluţia parametrilor modelului estimat.

Soluţie:
Punctele a) şi b) se rezolvă la fel ca în Exemplul 2.1, iar pentru punctul c)
se utilizează funcţia rarx. Programul Matlab şi graficul rezultat în urma
rulării acestui program sunt următoarele:

A =[1,-1.5, 0.7]
B =[ 0, 1, 0.5]
m=idpoly(A,B)
u=idinput(300,'prbs');
e=idinput(300,'rgs',[],[-0.1 0.1]);
y=sim(m,[u e]);
z=iddata(y,u,1)
idplot(z)
mr=rarx(z,[2 2 1],'ff',0.9)
plot(mr)

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150 200 250 300

35
TEME:

1. Să se ruleze exemplele prezentate în lucrare.

2. Considerăm un sistem discret descris de următoarea ecuaţie cu


diferenţe:

y (t ) + 0.8 * y (t − 1) + 0.6 * y (t − 2) = 0.5 * u (t − 1) + u (t − 2) + e(t )


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) de medie 2 şi deviaţie standard 0.3 (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 ARX folosind metoda celor mai mici
pătrate.

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


diferenţe:
y (t ) + 1.3 * y (t − 1) + 0.55 * y (t − 2) + 0.075 * y (t − 3) = 0.7 * u (t − 1) + e(t )
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 sumă de două sinusoide ş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 ARX folosind metoda variabilelor
instrumentale.
d) să se estimeze parametrii unui model ARX folosind metoda celor
mai mici pătrate recursivă. Să se ploteze evoluţia parametrilor
modelului estimat.

36

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