Documente Academic
Documente Profesional
Documente Cultură
1
respectiv (t) reprezintă reziduurile modelului cauzate de erori de măsurare, perturbaţii
interne, erori de modelare. Se presupune că (t) are o variaţie aleatoare, independentă de
semnalul de intrare u(t) şi ieşire y(t).
În aceste ipoteze modelul procesului se scrie
y(t)+a1y(t-1)+...anay(t-na)=b0u(t-d)+..bnbu(t-d-nb)+ (t) (2)
sau echivalent în forma:
y( t ) T ( t ) ( t ) (3)
unde:
a 1 , a 2 ,..., a na , b 0 , b1 ,..... b nb
T
( t) y(t 1), y( t 2),... y( t na), u(t d), u(t d 1),.... u(t d nb)
T
^ ^
y( 2) T ( 2) ( 2)
(5)
.............
^ ^
y( N ) T ( N ) ( N )
2
sau, într-o exprimare matricială:
^ ^
Y E (6)
unde:
^
y(1) T (1) (1)
T ^
y( 2) (2) ^
Y ; = ; E ( 2 )
......
........ ......
y( N ) T ( N ) ^
( N )
^
În situaţia în care E 0 şi N=na+nb+1 sistemul liniar este unic determinat rezolvându-se
^
printr-o metodă specifică. Dacă E 0 se vor achiziţiona N*>N date, obţinându-se un sistem
de N* ecuaţii cu N necunoscute.
^
Determinarea lui se va face astfel încât reziduurile modelului (erorile de modelare) să fie
minime. Mai precis se va încerca minimizarea criteriului eroare pătratică:
* 2 * 2
1N ^ 1N ^
J ( )
2 t 1
( t ) y( t ) T ( t )
2 t 1
(7)
^
Valoarea care extremizează criteriul J se caută astfel încât:
^
J
J ^ ^
^
^
0 , i = 1,... N unde i -componenta i a vectorului (8)
i
1 N 2 ^
* * 2 N*
^ 1 N T ^
J ( ) ^ 2
T
y ( t ) ( t ) y ( t ) ( t )
^ 2
i i t 1 t 1 t 1
(9)
* 2 *
^ N* N*
1 N N ^ 1N N
^
^ 2 i
( t ) i y( t ) i ( t ) i ( t ) i ( t ) y( t ) i ( t ) 0
T
2 t 1 i 1 t 1
i t 1 i 1 t 1
^
Relaţia (9), rescrisă de N ori, determină complet valoarea vectorului :
N* ^ N*
( t ) T ( t ) ( t ) y T ( t ) (10)
t 1 t 1
echivalentă cu:
1
^ N* N*
( t ) T ( t ) ( t )y T ( t ) (11)
t 1 t 1
3
1
N* N* N*
P(N)= ( t ) T ( t ) ; R(N)= ( t )y T ( t ) ( t )y( t ) (12)
t 1 t 1 t 1
( t ) (1), (2),.... ( N * ) este necesar a se dispune de valorile u(t) şi y(t) pentru t[1-n,N],
unde n=max(na,nb+d).
Dacă nu se dispune de măsurători pentru t<0, se poate presupune că u(t)=y(t)=0. O astfel de
presupunere, deşi puţin arbitrară, nu va afecta semnificativ rezultatele deoarece de cele mai
multe ori n<<N*.
O altă soluţie la această problemă este să se schimbe limita inferioară a sumelor din ecuaţia
(12) cu t=n+1; procedându-se astfel în calculul matricelor (13) vor fi necesare măsurători
pentru t [1,N] - disponibile.
Pentru a releva principalele operaţii necesare implementării algoritmului CMMP ecuaţia
(13) se prezintă într-o formă mai detaliată:
4
1
N N
y( t i) y( t j) y( t i) u( t j d 1)
t n 1 t n 1
i 1..... na i 1..... na N
y( t i) y( t )
j 1...... na j 1...... nb 1 t n 1
i 1..... na
^
N N N
u( t i d 1) y( t j) u( t i d 1) u( t j d 1) u( t j) y( t )
t n 1 t n 1 t n 1
i 1..... nb 1 j 1...... nb 1
i 1..... nb 1
j 1...... na j 1...... nb 1
b
1
a ij e i na 1
=
ij nax ( nb 1)
naxna
(14)
c ij
( nb 1) xna
d ij
( nb 1) x ( nb 1) ( na nb 1) x ( na nb 1)
f j ( nb 1) x1
( na nb 1) x1
clear P
clear R
%estimare parametrica cmmp - off -line
d=input('introduceti structura modelului [d]');
nb=input('introduceti structura modelului [nb]');
na=input('introduceti structura modelului [na]');
n=max(na,nb+d);
5
N=length(y);
for i=1:na,
for j=1:na,
a1=y(n+1-i:N-i);
a2=y(n+1-j:N-j);
a(i,j)=a1'*a2;
end
end
for i=1:na,
for j=1:nb+1,
b1=y(n+1-i:N-i);
b2=u((n+1)+1-d-j:N+1-d-j);
a(i,na+j)=-b1'*b2;
end
end
for i=1:nb+1,
for j=1:na,
c1=u((n+1)+1-d-i:N+1-d-i);
c2=y(n+1-j:N-j);
a(na+i,j)=-c1'*c2;
end
end
for i=1:nb+1,
for j=1:nb+1,
d1=u((n+1)+1-d-i:N+1-d-i);
d2=u((n+1)+1-d-j:N+1-d-j);
a(na+i,na+j)=d1'*d2;
end
end
P=inv(a);
6
clear a
e2=y(n+1:N);
for i=1:na,
e1=y(n+1-i:N-i);
R(i,1)=-e1'*e2;
end
for i=1:nb+1,
e1=u((n+1)+1-d-i:N+1-d-i);
R(na+i,1)=e1'*e2;
end
teta=P*R