19
III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de l’identification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables (préducteur) Algorith me d’adapta tion Paramètres u(t) y(t) ˆ y(t) + (t) Programm e

III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

Embed Size (px)

Citation preview

Page 1: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES

• Le processus de l’identification paramétrique

Système à identifier

D/A A/D

Modèle à paramètresajustables (préducteur)

Algorithme d’adaptation

Paramètres

u(t) y(t)

y(t) +

(t)

Prog

ram

me

Page 2: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

1. MOINDRES CARRES RECURSIFS

Admettons pour le moment que la perturbation v = 0

Choisissons les degrés m et n du numérateur et du dénominateur de la FT du système à modéliser.

Forme du modèle :

1 m0 1 m

m 1 n 0 m 1 n1 n

Zy b b .z ... b .zG (z,a ,...,a ,b ,...,b )

Zu 1 a .z ... a .z

Soient 1 n 1 mˆ ˆˆ ˆa (t), a (t), b (t), ,b (t)

les valeurs associées aux paramètres durant la période t c.à.d durant [t-1, t[ t-1 t

Prédiction de la valeur de y(t)

1 n

0 1 m

ˆ ˆy(t) a (t).y(t 1) a (t).y(t n)

ˆ ˆ b .u(t) b (t).u(t 1) b (t).u(t m)

En posant :T

1 n 1 m

T

ˆ ˆˆ ˆ ˆ(t) [a (t), ,a (t),b (t), ,b (t)],

(t) [ y(t 1), , y(t n),u(t), ,u(t m)]

θ

(1)

(1) Tˆy(t) (t). (t)θ

Vecteur des paramètres

Regresseur

Prédiction

Page 3: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

Erreur de prédiction :

Tˆˆ(t) y(t) y(t) y(t) (t). (t) θ

Soitt t

2 T 2t i i

i 1 i 1J ( ) . (i) .[y(i) . (i)]

θ θ

où i : facteurs de pondération

Critère

de durant [t, t+1[ minimise Jt()ˆ(t 1)θL’estimation

ˆ(t 1)θ est la solution de

T

t t t

1 n m

J J J,..., 0

θ

où (1,…,n) = (a1,…,an) et (n+1,….,n+m) = (b1,…,bm)

tTt

i ki 1k

J2. .[y(i) . (i)]. (i), k=1,...,n+m,

θ Or (3)

ˆ(t 1)θ est la solution det T

ii 1

.[y(i) . (i)]. (i) 0 θ

Mais T.(i).(i) = (i).T(i).

(3)

(2)

(4)

et (4) t t

Ti i

i 1 i 1

ˆ(i). (i) . (t 1) y(i). (i)

θ

Page 4: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

t1 T

ii 1

(t) . (i). (i)

P Si la matrice

est inversible, on tire

t

ii 1

ˆ(t 1) (t). .y(i). (i)

θ P (6)

Mais (6) est non récursive. Elle nécessite :

• la mémorisation de tous les (i), i = 1, …, t,• l’inversion de la matrice P-1(t).

Expressions récursives:

t 1

i ti 1

1t

-1 Tt t

ˆ(t 1) (t). .y(i). (i) .y(t). (t) ,

ˆ(t). (t 1). (t) .y(t). (t)

ˆ(t). (t) . (t). (t) . (t) .y(t). (t)

θ P

P P θ

P P θ

Tt

T T

ˆ ˆ ˆ(t 1) (t) . (t). y(t) (t). (t) . (t)

ˆ ˆ car (t). (t). (t) (t). (t). (t).

θ θ P θ

θ θ

=>

tˆ ˆ(t 1) (t) . (t). (t). (t) θ θ P => (7)

Il reste à trouver une relation récursive pour P(t)

(5)

Page 5: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

P-1(t) = P-1(t-1) + t.(t).T(t) P(t) = [P-1(t-1) + t.(t).T(t)]-1

(5)

Pour éviter les inversions, on utilise le

Lemme: (A + B.C.D)-1 = A-1 - A-1.B.(D.A-1.B + C-1)-1.D.A-1

>> [A 1 A 1.B.(D.A 1.B + C 1) 1.D.A 1].(A + B.C.D), = I + A 1.B.C.D A 1.B.(D.A 1.B + C 1) 1.D A 1.B.(D.A 1.B + C 1)-1.D.A 1.B.C.D, = I + A 1.B.(D.A 1.B + C 1) 1[(D.A 1.B + C 1).C.D D D.A-1.B.C.D], = I + A 1.B.(D.A 1.B + C 1) 1.(0) = I <<

Pour A = P-1(t-1), B = (t), C = t et D = T(t), et si P-1(t-1) est inversible, (8)

(8)

P(t) = P(t-1) P(t-1).(t).[T(t).P(t-1)(t) + 1/t] 1.T(t).P(t-1)

T

Tt

(t 1). (t). (t). (t 1)(t) (t 1)

1/ (t). (t 1). (t)

P PP P

P

ou

Remarque : si P-1(t-1) inv. => P-1(t), P-1(t+1),... inv.

(9)

Page 6: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

Algorithme du moindre carré récursif

(MCR) ou (LSM)

ˆ La matrice (t-1) et les vecteurs (t) et (t), obtenus

durant la période t, sont stockés dans la mémoire.

1) A l'instant t, on lit les valeurs de y(t) et de u(t).

2) Durant la période

P θ

T

T

Tt

t

T1 (n 1)

[t, t+1[, on calcule successivement

ˆˆa) y(t) (t). (t),

ˆb) (t) y(t) y(t),

(t 1). (t). (t). (t 1)c) (t) (t 1) ,

1/ (t). (t 1). (t)

ˆ ˆd) (t 1) (t) . (t). (t). (t),

e) (t) [ y(t), (t), , (

θ

P PP P

P

θ θ P

(n 1) (n m 1)

t),

u(t), , , (t)]

Page 7: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

INTERPRETATION du MCR PAR KALMANCONVERGENCE DU MCR

En supposant que le système reste invariant entre t et t+1,

(t+1) = (t).

et y(t) = T(t).(t) + t.(t)

l’écart t.(t) provient de l’imprécision du modèle et de mesure

(t): aléatoire de moyenne nulle et de variance 2

t : facteur qui diminue quand l’information sur augmente

Les équations précédentes sont d’état avec

A = I, B = 0, w(t) = 0, C = T(t) et v(t) = t.(t)

Appliquons Kalman:

(t+1) = A. (t) + B.u(t) + K(t).[y(t) - C. (t)], K(t) = [A.P1(t).C

T + R12].[C.P1(t).CT + R2]

-1, P1(t+1) = A.P1(t).A

T + R1 - K(t).[C.P1(t).AT + R12

T].

x x x

Sachant que R1 = 0, R12 = 0 et R2 = t2.2, on obtient:

Page 8: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

T

T 2 2 11 1 t

12 2 Tt 1

T1 1 1

ˆ ˆ ˆ(t 1) (t) K(t).[y(t) (t). (t)],

K(t) P (t). (t).[ (t).P (t). (t) . ]

P (t). (t) ,

. (t).P (t). (t)

P (t 1) P (t) K(t). (t).P (t).

1 t2 2t

1 1P(t) .P (t) et

En posant:

(t) = y(t) - (t) = y(t) - T(t). (t). et comme dansMCR

y

on retrouve

P(t +1) = P(t) -

P t t t P t

t P t t

et t tP t t t

t P t t

t P t t t

T

tT

tT

t

( ). ( ). ( ). ( )

/ ( ). ( ). ( ),

( ) ( )( ). ( ). ( )

/ ( ). ( ). ( )

( ) . ( ). ( ). ( ).

1

11

1

On déduit les propriétés suivantes

les mêmes relations qu’en MCR

(*)

Page 9: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

t = 1/t2 => t doit augmenter quand la prediction se precise y1)

2)

=> tr[P(t)] est une mesure de l’erreur d’estimation en t

3)

P t t t P t

t P t t

T

tT

( ). ( ). ( ). ( )

/ ( ). ( ). ( )

1

Trace de > 0 car

tr[P(t)] décroissante.

En effet

T1

T1

2 2

ˆ ˆ P (t) {[ (t) (t)].[ (t) (t)] }

ˆ ˆet tr[P (t)] {[ (t) (t)] .[ (t) (t)]}

ˆ[ (t) (t) ] tr[P(t)]

E{

E{

E{

tr(numérateur) = ||P(t).(t)||2 > 0

(1) => tr[P(t+1)] < tr[P(t)]

et dénominateur = t2 + E{T(t)[(t)- (t)]}2/2 > 0

Page 10: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

4)

En effet

tr[P(t)] décroissante et bornée par 0 L (limite)

(*) => L = L - lim de trace deP t t t P t

t P t t

T

tT

( ). ( ). ( ). ( )

/ ( ). ( ). ( )

1

=> lim ( ). ( )t

P t t

2 0 pour tout (t)

=> P(t) 0 E[ ||(t)- (t)||2 ] 0 =>

E[ ||(t) (t)||2 ] 0

L’algorithme MCR converge en moyenne quadratique vers les vrais paramètres en admettant que le modèle représente correctement la dynamique du système.

Page 11: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

1t t1 T

0 i ii 1 i 1

ˆ(t+1)= . (i). (i) . .y(i). (i).

θ P

et au lieu de P(0) qui n’existe pas car P-1(0) = 0, on poseP(0) = P0 = c.I; c grand (=1000) et I = matrice unitaire

P-1(0) = .I

Comme les éléments diagonaux de (i).T(i) = k2(i) > 0,

devient rapidement négligeable.

Initialisation du MCR

On pose: ˆ(0) 0θ (0) = [0, …, 0, 0, …,0]

les y les u

( = 0.001)

et, d’après (5) et (6), MCR donne

Choix des facteurs de pondération : i

En principe on donne la même importance à toutes les périodes i = 1 i.Mais pour accélérer la convergence, on prend:

ii 0 i 1 i

0

1 (1 ) 1 (1 )

avec 0.95 1 et 0.999

1

0

i

i

a) Cas d’un système invariant

Page 12: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

Le facteur de pondération dépendra, en plus de i, de l’instant t où l’on estime . D’où, au lieu de i, on prend :

(t,i) = (t).(t-1,i) (t) : facteur d’oubli avec (i,i) = i > 0 et (t) 1, t = i+1, i+2, …

(t,i) est d’autant plus faible que i est loin de t.

t1 T

i 1

t

i 1

(t) (t,i). (i). (i)

ˆ(t 1) (t). (t,i).y(i). (i)

P

θ P

b) Cas d’un système variant

(5) et (6) deviennent :

t 11 T T

i 1

1 Tt

t 1

i 1

-1

(t) (t). (t 1,i). (i). (i) (t, t). (t). (t)

(t). (t 1) . (t). (t)

et

ˆ(t+1) (t) (t). (t 1,i).y(i). (i) (t, t).y(t). (t)

ˆ (t) (t). (t 1). (

P

P

θ P

P P θ

tt) .y(t). (t) .

1 Tt t

t

T

ˆ ˆ(t 1) (t). (t) . (t). (t) . (t) . (t).y(t)

ˆ (t) . (t). (t). (t)

ˆavec (t) = y(t) (t). (t).

θ P P θ

θ P

θ

(10)

(11)

Page 13: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

T

Tt

(t 1). (t). (t). (t 1)(t) (t 1)

1/ (t). (t 1). (t)

P P

P PP

du MCR

doit être remplacée par

T

Tt

1 (t 1). (t). (t). (t 1)(t) (t 1)

(t) (t) / (t). (t 1). (t)

P PP P

P

Donc la relation

(10) et (11) L’expression de ne se modifie pas dans MCRmais P-1(t-1) doit être remplacée par (t).P-1(t-1)

ou P(t-1) par P(t-1)/(t)

ˆ(t 1)θ

Choix de t et (t)

1) Si varie lentement t = 1 et (t) = = cte

2) Si varie rapidement il faut pouvoir le suivre => les pas d’itération doivent rester grands => tr[P(t)] ne doit pas diminuer

On procède comme suit:

t-i

1 (t,i) 0.95 0.999.

=> (t,i) = (t-i)

Page 14: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

a) On pose (t)/t = k = cte arbitraire mais d’autant plus faible que est rapide

b) On détermine (t) en résolvant à chaque pas tr[P(t)] = tr[P(t-1)] = tr

c.a.d

T

T

1 (t 1). (t). (t). (t 1)tr (t 1) tr (t 1)

(t) c (t). (t 1). (t)

P PP P

P

ou2

T

(t 1). (t)(t) 1 .

[k (t). (t 1). (t)].tr

P

P

(*)

(*) est valable si l’écart ˆ(t) (t)θ θ est dû à la variation de

et non à l’erreur d’estimation.

Or, au départ, c’est l’erreur d’estimation qui l’emporte.

Remède :

1) On commence par supposer que le système est invariant jusqu’à l’instant t0 où tr[P(t0)] < (m+n).c, 0 < c < 4. Typiquement, c = 2.2) On applique (*) à partir de t0.

Page 15: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

1) A l’instant t, on lit les valeurs de y(t) et de u(t).2) Durant l’étape t+1, c’est-à-dire entre t et t+1, on effectue

successivement les opérations suivantes:

(MCR) systèmes variantsInitialement, on introduit les constantes k, c, et on donne à t0 une

trés grande valeur. La matrice P(t-1) et les vecteurs (t) et ,obtenus durant l’étape t, sont stockés dans la mémoire.

ˆ(t)θ

Tˆˆa) y(t) (t). (t)θ

c) Si t > t0, on passe à f).

e) Si tr[P(t)] ≤ (n + m).c, on pose t0 = t et tr = tr[P(t)],

on passe à h).2

T

(t 1). (t)f ) (t) 1 .

[k (t). (t 1). (t)].tr

P

P

T

T

1 (t 1). (t). (t). (t 1)g) (t) (t 1)

(t) k (t). (t 1). (t)

P PP P

P

. tˆ ˆh) (t 1) (t) . (t). (t). (t) P

i) T(t+1) = [-y(t), 1(t),…., (n-1)(t), u(t), (n+1)(t),…., (n+m-1)(t)].

ˆb) (t) y(t) y(t)

T

T

(t 1). (t). (t). (t 1)d) (t)

1/ (t). (t 1). (t)

P P

PP

Page 16: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

function [sys,x0,str,ts] = mcri(t,x,v,flag,n,m,lamda,dt)

S-function mcri

% MCRI est une fonction-S pour estimer les paramètres d'un% système linéaire invariant non perturbé.

% Les arguments t, x, v et flag sont introduits à chaque pas par% simulink. % t = instant du simulateur; v = [u(t),y(t)]' = entrée à l'instant t; % x = [theta;P(:);phi;alpha] = vecteur colonne contenant les% estimations des paramètres, les éléments de la matrice P, le% vecteur phi et le facteur alpha à l'instant t. % flag = code qui indique à la fonction-S ce qu'elle doit associer% à sys. % Les paramètres à introduire dans la fenêtre du bloc mcri sont:

% n et m = les degrés respectivement du dénominateur et du% numérateur,% lamda = le facteur d'oubli et% dt = la période d'échantillonnage.

% Voir SFUNTMPL pour la signification des valeurs de flag.

Page 17: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

r = n+m ;if flag == 2 % associe à sys le nouveau état

x(t+1). theta = x(1:r); P = zeros(r,r); P(:) = x(r+1:r+(r^2)); phi = x(r+(r^2)+1:2*r+(r^2)); alpha = x(2*r+(r^2)+1); u = v(1); y = v(2); epsilon = y - theta'*phi; den = (1/alpha) + phi'*P*phi; nvP = P - (P*phi*phi'*P)/den; nvtheta = theta + alpha*nvP*phi*epsilon; nvphi = [-y; phi(1:n-1)];u;phi(n+1:r-1)]; nvalpha = 1 - amda*(1 - alpha); sys = [nvtheta;nvP(:);nvphi;nvalpha];

elseif flag == 0 % dimensions et initialisation.

%dimensions

sys(1) = 0; % pas d'états continus. sys(2) = 2*r+(r^2)+1; % dimension de x : sys(3) = r+1; % dimension de la sortie: theta +trace. sys(4) = 2; % dimension de l'entrée v. sys(5) = 0; % pas de racines a déterminer. sys(6) = 0; % l'entrée ne sera pas lue durant flag 3. sys(7) = 1; % la periode d’échantillonnage est % toujours la même

Page 18: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

%initialisation

P = 1000*eye(r); x0 = [zeros(r,1);P(:);zeros(r,1);0.98]; str = []; % c'est toujours vide. ts = [dt 0]; % calcul aux instants nT sans

décalage. elseif flag == 3 % définition de la sortie.

P = zeros(r,r); P(:) = x(r+1:r+(r^2)); tr = trace(P); sys = [x(1:r);tr]; % c'est-à-dire theta et la trace de P. sys = sys(:); else

sys = []; % les autres flags n'ont pas de rôle ici.

end

MCRIv = [u, y]’

dtxtxt-1

Flag t

tr(P)

Page 19: III. IDENTIFICATION PARAMETRIQUE DES SYSTEMES LINEAIRES Le processus de lidentification paramétrique Système à identifier D/A A/D Modèle à paramètres ajustables

a) Identification d’un système variant sur SIMULINK

a1

a2

b2

b1