iii. identification parametrique des systemes lineaires le processus de lidentification...
Post on 03-Apr-2015
115 Views
Preview:
TRANSCRIPT
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
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
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)
θ
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)
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)
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)]
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:
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
(*)
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
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.
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
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)
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)
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.
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
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.
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
%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)
a) Identification d’un système variant sur SIMULINK
a1
a2
b2
b1
top related