Sunteți pe pagina 1din 9

Laborator 2.

Algoritmi recursivi de estimare parametrică de tipul CMMP

1. Introducere

Folosirea metodei CMMP nerecursivă la identificarea parametrică presupune un volum de


calcul foarte mare chiar în cazurile cele mai simple (se recomandă pentru acurateţea
determinării modelului folosirea unor secvenţe de date de lungime N2(na+nb+1)). Acest
volum mare de date ce trebuie procesate presupune atât rezervarea unui disponibil mare de
memorie pentru rutina de identificare cât şi folosirea unor procesoare extrem de rapide pentru
finalizarea calculelor în timp util.
O metodă empirică de eliminare a acestui neajuns constă în limitarea secvenţei de date
prelucrate de estimator la o lungime N fixată (N> na+nb+1). Astfel rezultatul estimării prin
aplicarea algoritmului CMMP nerecursiv se va aplica ultimelor N valori ale semnalelor de
ieşire şi comandă, permanent reactualizate. Metoda necesită însă calculul inversei unei
matrice în procesul de generare a estimaţiei parametrilor:
1
^ N  N 
( t )  P ( N ) R ( N ) unde P (N) =  (t) T ( t )  ; R (N) =  ( t ) y( t ) 
 t=1   t=1 
(1)
Soluţia unanim acceptată constă în utilizarea metodelor de identificare CMMP recursive,
care exploatează rezultatele estimării obţinute anterior, limitând prin aceasta volumul de
calcule implicate.

2. Estimarea parametrilor prin metoda CMMP recursivă (on line)

^
Estimatoarele recursive determină matricea parametrilor estimaţi la momentul t, ( t ) , prin
^
aplicarea unei corecţii valorii ( t  1) , determinată la pasul anterior. Corecţia se va calcula
luând în considerare numai ultimul set de valori  u( t ), y( t ) achiziţionate la pasul t.
^
Fie ( t  1) estimarea determinată la pasul t-1 pe baza relaţiei
   
^ 1
( t  1)   T ( t  1)( t  1) T
( t  1)Y( t  1)
(2)
unde:
 
T
( t  1)   T (1),  T (2), ...,  T ( t  1)

Y( t  1)   y(1), y(2),...., y( t  1)


T

La momentul t se achiziţionează valoarea actuală a ieşirii, y(t-1), şi se actualizează vectorul


( t ) astfel:
  y( t  2 )   -y(t - 1) 
  y( t  3)   -y(t - 2) 
   
........  .......... 
   
 y( t  n a  1)  -y(t - n a )
( t  1)    (t) =  
 u( t  d  1)   u( t  d ) 
   
 u( t  d  2)   u( t  d  1) 
...........  ............. 
   
 u( t  d  n b  1)   u( t  d  n b ) 
(3)
^ ^

Pe baza estimaţiei ( t  1) se calculează o predicţie a ieşirii y( t ) :

1
^ ^
y( t )   T ( t ) ( t  1) (4)
predicţie ce se va abate de la valoarea adevărată y(t) cu valoarea ( t ) (eroarea de predicţie):
^ ^
( t )  y( t )  y( t )  y( t )   T ( t ) ( t  1) (5)
 c ( t)
Eroarea de predicţie va furniza, pe baza unui mecanism de ajustare, corectorul ce se
^
va aplica vectorului ( t  1) astfel încât:
^ ^
( t )  ( t  1)   c ( t ) (6)

( t )
-
u(t) Proces y(t)
+

+ ( t )
-
^
Model ajustabil y( t )
^ ^
( t )  ( t  1)   c ( t )

 c (t)
Mecanism de
ajustare

Pentru determinarea corectorului  c ( t ) se dezvoltă o serie de relaţii de calcul recursiv al


matricilor P(t) şi R(t) din ecuaţia:
^
( t )  P ( t ) R ( t ) (7)
La momentul t matricea ( t ) , respectiv vectorul y(t) sunt:
( t  1) 
 
T
( t )   T (1),  T (2),.....,  T ( t  1),  T ( t )  T 
 ( t )  (8)
Y( t  1) 
Y( t )   y(1), y(2),......., y( t  1), y( t )
T
 
 y( t )  (9)
Se obţin succesiv relaţiile:
1
   ( t  1)  
     
1 1
T
P( t )   ( t )  ( t )    T ( t  1), ( t )  T    T ( t  1)  ( t  1)  ( t ) T ( t ) 
  ( t )  

 
1
= P -1 ( t  1)   ( t ) T ( t )
(10)
sau echivalent:
P 1 ( t )  P 1 ( t  1)  ( t ) T ( t ) (11)
În mod similar se poate dezvolta o relaţie de calcul recursiv pentru matricea R(t):

R ( t )   T ( t )Y( t )   T ( t  1), ( t ) 
 y ( t )

Y( t  1) 

T
   ( t  1)Y( t  1)  ( t ) y( t ) 

= R(t - 1) + (t)y(t) (12)


Matricea parametrilor identificaţi la momentul t este
^
( t )  P( t ) R ( t )  P( t ) R ( t  1)  ( t ) y( t )  P( t ) R ( t  1)  P( t )( t ) y( t )
(13)

2
^
1
Înlocuind în ecuaţia (13) R ( t  1)  P ( t  1) ( t  1) se obţine:
  
 

^ ^ (11) ^
( t )  P( t )  P 1 ( t  1) ( t  1)   P( t )( t ) y( t )  P( t )  P 1 ( t )   ( t ) T ( t ) ( t  1)   P( t )( t ) y( t ) 
   
^ ^ ( 5)
( t  1)  P( t )( t ) T ( t ) ( t  1)  P( t )( t ) y( t ) 
^ ^  ^ 
 ( t  1)  P( t )( t ) T ( t ) ( t  1)  P( t )( t ) ( t )   T ( t ) ( t  1)  
 
^ ^
( t )  ( t  1)  P( t )( t ) ( t ) (14)

Relaţia (14) evidenţiază structura corectorului aplicat în estimarea recursivă, corector


dependent de eroarea de modelare ( t ) , obţinută pe baza estimaţiei la pasul anterior.
Relaţia (11) stabileşte recursivitatea inversei matricei P. Pentru stabilirea unei relaţii de
recursivitate pentru exprimarea directă a acestei matrici se foloseşte următorul rezultat (lema
de inversiune matriceală):
 A  BCD 1  A 1  A 1 B C 1  DA 1 B
1
DA 1
(15)
1 T
Considerând: A  P ( t  1); B  ( t ); C  1; D   ( t ) din (10) rezultă:
 
1
P( t )  P( t  1)  P( t  1)( t ) 1   T ( t ) P( t  1)( t )  T ( t ) P( t  1)
(16)
T
Termenul  ( t ) P( t  1)( t ) este scalar şi rezultă că algoritmul nu presupune determinarea
inverselor unei matrici:

  
1
P( t )  P( t  1) I n a  n b 1  1   T ( t ) P( t  1)( t ) ( t ) T ( t ) P( t  1) 
 (17) 
În consecinţă algoritmul CMMP recursiv constă în efectuarea la momentul t a următorilor
paşi:
1. Formează ( t ) - relaţia (3)
2. Calculează P(t) - relaţia (17)
3. Calculează eroarea de modelare ( t ) - relaţia (5)
^
4. Corectează estimaţia ( t ) - relaţia (14)
5. Aşteaptă următorul moment de eşantionare şi reia algoritmul

Pe parcursul funcţionării procesului este posibilă o modificare parametrică a modelului,


ceea ce înseamnă că cel puţin un set de date achiziţionate la momente îndepărtate de timp vor
conţine informaţii false referitor la modelul actual al procesului.
În cazul proceselor ce suferă modificări parametrice în timp, algoritmul de identificare va
trebui să prelucreze selectiv informaţia conţinută de setul de date achiziţionat (secvenţele u(i),
y(i), i=0,1,..t), accentuând ponderea informaţiei recente referitoare la comportarea şi implicit
la modelul matematic al procesului.
Metodele de identificare recursivă a proceselor cu parametri variabili se particularizează în
funcţie de modul de variaţie a parametrilor.
Astfel pentru procesele pentru care parametrii se menţin constanţi pe intervale largi de
timp, în cazul depistării unor variaţii parametrice ale modelului, reliefată prin apariţia unor
valori ale erorii de predicţie a modelului, ( t ) , ce depăşesc o valoare de prag, se utilizează:

3
1) resetarea algoritmului de identificare în momentul depistării variaţiei parametrice,
^
reţinându-se estimaţia ( t  1) ca estimaţie iniţială şi modificând matricea de covarianţă P(t) la
valoarea iniţială I.
2) adăugarea unui termen de corecţie suplimentară în momentul depistării variaţiei
parametrice. În acest caz reactualizarea P(t) se va face cu relaţia:

 
1 
P( t )  P( t  1) I  ( t ) T ( t ) 1   T P( t  1)( t )   P0
 (18)
unde termenul suplimentar P0 este ales de forma:
P0=I, R
sau
P0=diag{i}, iR, i=1,(na+nb+1)
în cazul în care modelul variază diferit şi într-un mod cunoscut.

Algoritmi ponderaţi de tipul CMMP

În cazul unor variaţii continue ale parametrilor procesului se folosesc algoritmi ponderaţi
de tipul CMMP. Ponderarea se referă la accentuarea influenţei informaţiilor proaspăt culese
de la proces, în raport cu informaţia mai veche, asupra mecanismului de calcul al corectorului.
^
Estimaţia ( t ) va fi o soluţie a ecuaţiei:
^ ^
y( t )   T ( t ) ( t )   ( t ) (19)
găsită în sensul minimizării criteriului:
2
^ 1 t t i ^
J ( )     (i)
2 i 1
(20)
unde (0,1] este constanta de ponderare.
Alegerea valorii  se face în funcţie de viteza de variaţie a parametrilor procesului: cu cât
viteza va fi mai mare cu atât  se va considera mai mic şi influenţa datelor mai vechi în
calculul corectorului va fi mai mică. Totuşi valori foarte mici ale lui  produc oscilaţii ale
estimaţiilor, în mod uzual constanta de ponderare alegându-se în plaja de valori (0.9..1].
Se poate arăta că, prin ponderare, estimarea recursivă se face luându-se în considerare
1
aproximativ ultimele (1   ) valori ale ieşirii şi comenzii procesului; secvenţele de date mai
vechi au ponderi extrem de mici şi vor fi practic ignorate în cadrul rutinei de identificare.
^
Estimaţia ( t ) obţinută prin metoda CMMP ponderată cu factor de uitare  este:
1
^  t   t 
( t )    (i)t  i  T (i)    ( i ) y ( i ) 
T
 i 1   i 1 
(21)
În varianta recursivă expresia estimatorului se păstrează:
^ ^
( t )  ( t  1)  P( t )( t ) ( t ) (22)
În schimb, factorul de ponderare apare în matricea de covarianţă P(t), care se
reactualizează la fiecare pas cu relaţia:
P 1 ( t )  P 1 ( t  1)  ( t ) T ( t ) (23)
sau echivalent:
1  1 
P( t )  P( t  1) I  ( t ) T ( t ) P( t  1) 
 
T
   ( t ) P( t  1)( t ) 
(24)

4
Utilizarea algoritmilor de identificare recursivă de tipul CMMP cu factor de ponderare se
va realiza cu precauţie deoarece prezintă o serie de dezavantaje precum:
 Pentru cazurile în care parametrii procesului nu se modifică estimarea cu <1 nu va
^
converge niciodată exact. Estimaţia ( t ) va
oscila în jurul valorii adevărate ( t ) ; plaja de
oscilaţie va fi cu atât mai mare cu cât  va fi mai mic.
 În cazul în care pentru un set suficient de mare de măsurători (N>1/(1-)) semnalul de
intrare folosit în identificare nu este persistent se poate pierde complet stabilitatea
estimatorului. Spre exemplu în situaţia în care procesul se găseşte într-un punct de
funcţionare, aportul de informaţie furnizat de valorile actualizate ale datelor (t) este
nesemnificativ iar matricea P(t) va lua valori succesive determinate cu relaţia:
1
P( t )  P( t  1).
 (25)
Acest lucru va conduce evident la o creştere permanentă a lui P(t) (<1) şi implicit la o
^
corecţie eronată a lui ( t ) .

Eliminarea acestor neajunsuri presupune folosirea unui factor de ponderare  variabil astfel
încât:
<1 (de valoare mică) când parametrii procesului suferă modificări semnificative;
=1 când parametrii sunt constanţi.

3. Aspecte practice de implementare şi utilizare

În afara stabilirii algoritmului de calcul implicat în estimarea parametrică o importanţă


covârşitoare o au o serie de aspecte practice legate de implementarea şi utilizarea
estimatorului. Printre acestea iniţializarea algoritmului de estimare recursivă, alegerea
modelului matematic asociat procesului şi implicit stabilirea parametrilor ce urmează a fi
estimaţi, respectiv selectarea perioadei de eşantionare.

Iniţializarea algoritmilor de identificare

Pentru ca algoritmul CMMP recursiv să funcţioneze trebuie ca la momentul t să fie


cunoscute:
- vectorul de date ( t  1) ; mai precis trebuie cunoscute valorile y(t-2), y(t-3),...y(t-n a)
respectiv u(t-d-1), u(t-d-2), ...,u(t-d-nb). Acestea împreună cu datele “proaspăt” achiziţionate
la momentul t-1  u( t  d ), y( t  1) vor permite formarea lui ( t ) .
^
- vectorul parametrilor estimaţi la pasul t-1: ( t  1) ;
- matricea de covarianţă calculată la pasul t-1:P(t-1).

În general, toate aceste date iniţiale ale algoritmului la pasul t sunt cunoscute, fiind
furnizate de calcule şi/sau reactualizările făcute la pasul anterior t-1. Problema care se pune
constă în iniţializarea algoritmului CMMP recursiv în sensul determinării/alegerii iniţiale a
acestor date.

Iniţializarea vectorului regresor ( t )


La momentul t=1 (primul pas al algoritmului CMMP recursiv) va trebui format vectorul de
date:
(1)    y(0), y( 1), ....., y(  n a  1), u( d ), u( 1  d ),.... , u(  n b  d  1)
T

5
Cu excepţia valorilor y(0) şi u(0) ce pot fi achiziţionate de la proces se impune o
iniţializare a datelor y(t) şi u(t) pentru t<0.
Această iniţializare poate fi:
 arbitrară: uzual u(t)=y(t)=0, pentru t0
O astfel de presupunere nu va afecta semnificativ rezultatele dar va determina o
convergenţă mai lentă a algoritmului.
 bazată pe precolectarea datelor: momentul începerii estimării t=0 este precedat de o
perioadă de funcţionare a procesului (uzual se foloseşte conducerea în regim manual) în care
se face precolectarea datelor. Lungimea acestei perioade de precolectare, exprimată în tacte de
eşantionare, este max(na,nb+1).

Valorile iniţiale ale parametrilor estimaţi

^
Determinarea estimaţiei (1) presupune aplicarea unei corecţii vectorului:
T
^ ^ ^ ^ ^ ^ ^ 
(0)  a 1 , a 2 ,...., a n a , b 0 , b 1 ,...., b n b  t 0
 
^
Iniţializarea (0) se poate face:
 dezvoltând un model teoretic al procesului pe baza cunoştinţelor aprioric existente,
^ ^ ^
referitoare la comportarea sistemului. În acest fel fi construit din parametrii (0) va ai , bi
estimaţi aprioric.
 arbitrar, atunci când nu există posibilitatea estimării apriorice a modelului procesului
^
(0)   0 0 ...... 0
T

^
Un punct de plecare în alegerea (0) constă în considerarea procesului ca fiind de tip
integrator pur cu câştig unitar:
1 T
G (s)   G ( z 1 ) 
s 1  z 1
^ ^
a1 t 0  1; a i t 0  0; i  2, n a
^ ^
b0 t 0  T; b i t 0  0; i  1, n b

^
Alegerea (0) nu este esenţială pentru acurateţea estimaţiei prin utilizarea algoritmului
CMMP recursiv, însă va influenţa rata de convergenţă a parametrilor estimaţi către valorile
^
reale. Algoritmul va converge mai lent (în mai mulţi paşi) dacă (0) a fost arbitrar, îndepărtat
de valoarea adevărată ( 0) .

Iniţializarea matricei de covarianţă P(t)

Formula de corecţie a estimaţiei


^ ^
( t )  ( t  1)  P( t )( t ) ( t )
sugerează faptul că matricea de covarianţă P(t) reflectă gradul de incertitudine în determinarea
^ ^
estimaţiei ( t ) . Dacă informaţia apriorică asupra modelului este săracă, şi implicit (0) este
ales arbitrar, atunci matricea P(0) trebuie selectată astfel încât să permită corecţii

6
^
semnificative ale vectorului parametrilor iniţiali. Complementar, pentru estimaţii (0) bune,
determinate din cunoştinţele iniţiale referitoare la model, P(0) va avea elemente de valoare
mică.
Influenţa P(0) asupra evoluţiei matricei de covarianţă P(t) poate fi stabilită prin formularea
relaţiei recursive (10) succesiv de t ori rezultând:
1
 t 
P( t )   P 1 (0)   (i) T (i) 
 i 1 
Această ultimă relaţie arată că, în cazul unei incertitudini mari, P(t) va fi determinată
esenţial de evoluţia vectorului de date (i) , i=1...t; P(0), aleasă în acest caz cu elemente de
^
valoare mare, contribuie neglijabil la valoarea P(t). Dacă în schimb estimaţia iniţială (0) este
bună, atunci iniţializarea la valori mici a matricii P(0) va influenţa puternic calculul lui P(t). În
^
acest ultim caz corecţia estimării ( t ) va fi mai puţin influenţată de zgomotul indus în secvenţa
de date ( t ) .
Implicit, mărimea oricărei funcţii scalare monoton crescătoare dependentă de P(t), cum ar
fi det(P(t)) sau urma tr(P(t)), reflectă gradul de incertitudine în determinarea estimaţiei.

O alegere simplă şi des utilizată a lui P(0) este:


P(0)=I
^
unde =104...105 pentru o alegere (0) arbitrară,
^
=102...104 pentru o iniţializare corectă (0)  
Valoarea concretă a parametrului  utilizat în iniţializarea matricei de covarianţă va
determina rata convergenţei algoritmului de identificare: astfel, dacă  este prea mic rezultă o
convergenţă lentă a parametrilor estimaţi către valorile reale, respectiv dacă  este prea mare
^
se vor produce oscilaţii mari ale estimărilor recursive ( t ) .
^
Dacă numai o parte din componentele  pot fi corect estimate aprioric prin (0) , se poate
folosi:
P(0)=diag{i}; iR, i=1,(na+nb+1)

Alegerea modelului matematic

Alegerea modelului matematic se rezumă la stabilirea unui ordin maximal pentru


descrierea transferului realizat de sistem. Valorile na şi nb se aleg în primul rând pe baza
interpretării analitice a ecuaţiilor de bilanţ energetic ce descriu funcţionarea instalaţiei reglate,
respectiv identificarea tuturor elementelor de acumulare - anticipare din sistem.
În situaţiile în care volumul de informaţii aprioric cunoscut referitoare la proces este
insuficient se efectuează o serie de investigaţii experimentale, uzual corespunzând
monitorizării răspunsului la impuls sau la semnal de comandă treaptă, iar acolo unde costurile
experimentale o permit se realizează o analiză a răspunsului la frecvenţă.
Un aspect esenţial al modelării constă în estimarea timpului mort. În afara unor estimări
analitice, deducerea întârzierii pure realizată de proces se face experimental prin aplicarea
unor comenzi persistente ce determină o perturbare a procesului de la regimul staţionar şi
monitorizarea ieşirii sistemului la începutul regimului tranzitoriu declanşat. Valoarea timpului
mort, normat la perioada de eşantionare, este dată de numărul de tacte în care ieşirea
procesului rămâne încadrată în jurul valorii de regim staţionar anterioară perturbării, într-o

7
bandă de valori, definită de saltul estimat în modificarea regimului staţionar şi de nivelul
zgomotului din instalaţie.

Alegerea perioadei de eşantionare

Selecţia perioadei de eşantionare este dependentă în primul rând de dinamica procesului


dar şi de posibilităţile echipamentului de achiziţie şi prelucrare a datelor. Este binecunoscut
faptul că pragul superior de alegere a perioadei de eşantionare este impus de constantele de
timp ale sistemului. Conform teoremei eşantionării frecvenţa de sondare a valorilor unui
sistem trebuie să fie cel puţin dublă faţă de banda de frecvenţe ocupată de semnalul în cauză.
Pentru a surprinde cu exactitate dinamica procesului modelat, tactul de eşantionare trebuie
corelat cu banda de frecvenţe a răspunsului la impuls a sistemului, o astfel de alegere
1 1
conducând la o valoare a perioadei de eşantionare egală cu 5 ... 2 din constanta de timp
dominantă.
În ceea ce priveşte valoarea minimă a perioadei de eşantionare, aceasta este în primul rând
determinată de rapiditatea sistemului de calcul şi a dispozitivului de conversie A/D. Totuşi
pentru valori excesiv de mici ale eşantionării, valori în secvenţa de date utilizată în
identificare diferă nesemnificativ, situaţie care poate conduce la instabilitate numerică a
algoritmului. De asemenea, în cazul unei eşantionări de înaltă frecvenţă, polii şi zerourile
modelului discret se vor situa în planul Z într-o zonă compactă situată în apropierea limitei de
stabilitate; diferenţe mici, de ordinul 10-3, între singularităţile modelului impun utilizarea unei
precizii ridicate în proiectarea legii de reglare.
O sugestie practică de alegere a perioadei de eşantionare corespunde unei valori egale cu
1
... 15
20 din timpul de creştere, definit pe răspunsul indicial.

4. Aplicații

1. Se consideră un proces industrial caracterizat prin modelul discret de forma:


0 .5 z−1 +0 . 3 z −2
H ( z−1 )=
1+0 . 8 z −1 +0 .6 z−2
obținut în urma eşantionării cu o perioadă Te = 1s.

a). Folosind SIMULINK (blocul “Recursive Least Squares Estimator”) sau funcția
“rarx.m”, să se realizeze estimarea recursivă a parametrilor (vizualizarea grafică a
valorilor parametrilor la fiecare moment de timp).
b). Determinați parametrii de acord ai algoritmului de estimare recursivă (na,nb,d,,).
Să se analizeze influența valorii parametrului  asupra ratei de convergenţă a
parametrilor. Să se analizeze influența persistenței semnalului de excitației asupra
convergenței parametrilor. Evidențiați regimul tranzitoriu al algoritmului de
estimare recursivă cu ajutorul urmei matricei de covarianță P (trace(P)).
2. Se consideră un proces industrial supus automatizării caracterizat prin modelul
continuu de forma:
0 .5 s+0 . 1
H ( s )= 2
s +0 . 4 s+0 . 28
Folosind răspunsul indicial al sistemului să se aleagă perioada de discretizare adecvată
1 1
( )
T e= .. t c 95 %
25 5 . Determinați parametrii modelului discret folosind metoda de
discretizare cu extrapolator de ordin zero (funcția MATLAB c2dm -vezi help c2dm).

8
Să se implementeze schema de estimare recursivă folosind modelul continuu al
procesului şi extrapolatorul de ordin zero. Reluați problematica de studiu de la punctul
1.b)

Observații:

1. Funcția rarx.m va fi apelată astfel:


[theta,y_hat,P] = rarx([y, u],[na, nb, d], ’ff’, lambda, theta0, P0);
unde:
u, y – vectori cu eşantioane ale mărimilor de intrare/ ieşire din process;
na, nb, d – ordinele polinoamelor funcției de transfer discrete şi timpul mort;
‘ff’ – indică metoda de identificare (corespunde metodei cu factor de uitare);
lambda – parametrul de uitare;
theta0 – valoarea inițială a parametrilor modelului;
P0 – valoarea inițială a matricii de covarianță (se alege de forma α⋅I n , unde
n este numărul parametrilor);
theta – vectorul parametrilor estimați;
y_hat – vector cu eşantioanele mărimii de ieşire a modelului identificat;
P – matricea de covarianță.
2. Utilizarea blocului Simulink “Recursive Least Squares Estimator” se face conform
următoarelor:
- descrierea blocului din documentația Mathworks:
https://www.mathworks.com/help/ident/ref/recursiveleastsquaresestimator.html
- exemplul Mathworks referitor la identificarea unui motor:
https://www.mathworks.com/help/ident/examples/online-recursive-least-squares-estimation.html