Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSévère Nguyen Modifié depuis plus de 11 années
1
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) Algorithme d’adaptation Paramètres u(t) y(t) + e(t) Programme
2
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 : Soient 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) Vecteur des paramètres En posant : Regresseur (1) Prédiction
3
Erreur de prédiction : (2) Soit (3) où ai : facteurs de pondération Critère de q durant [t, t+1[ minimise Jt(q) L’estimation est la solution de Or (3) est la solution de (4) et (4)
4
Si la matrice (5) est inversible, on tire (6) Mais (6) est non récursive. Elle nécessite : la mémorisation de tous les j(i), i = 1, …, t, l’inversion de la matrice P-1(t). Expressions récursives: => => (7) Il reste à trouver une relation récursive pour P(t)
5
(5) (8) Pour éviter les inversions, on utilise le Lemme: Pour A = P-1(t-1), B = j(t), C = at et D = jT(t), et si P-1(t-1) est inversible, (8) ou (9) Remarque : si P-1(t-1) inv. => P-1(t), P-1(t+1), inv.
6
Algorithme du moindre carré récursif
7
INTERPRETATION du MCR PAR KALMAN CONVERGENCE DU MCR
En supposant que le système reste invariant entre t et t+1, et l’écart bt.n(t) provient de l’imprécision du modèle et de mesure n(t): aléatoire de moyenne nulle et de variance s2 bt : facteur qui diminue quand l’information sur q augmente Les équations précédentes sont d’état avec Appliquons Kalman:
8
En posant: et comme dans MCR on retrouve (*) les mêmes relations qu’en MCR On déduit les propriétés suivantes
9
1) 2) => tr[P(t)] est une mesure de l’erreur d’estimation en t 3) tr[P(t)] décroissante. En effet Trace de > 0 car tr(numérateur) = > 0 et dénominateur = (1) => tr[P(t+1)] < tr[P(t)]
10
4) En effet tr[P(t)] décroissante et bornée par L (limite) (*) => L = L - lim de trace de => pour tout j(t) => P(t) 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.
11
Choix des facteurs de pondération : ai
Initialisation du MCR On pose: j(0) = [0, …, 0, 0, …,0] les y les u et au lieu de P(0) qui n’existe pas car P-1(0) = 0, on pose P(0) = P0 = c.I; c grand (=1000) et I = matrice unitaire P-1(0) = d.I (d = 0.001) et, d’après (5) et (6), MCR donne Comme les éléments diagonaux de j(i).jT(i) = jk2(i) > 0, devient rapidement négligeable. Choix des facteurs de pondération : ai a) Cas d’un système invariant En principe on donne la même importance à toutes les périodes ai = 1 i. Mais pour accélérer la convergence, on prend: 1 a0 ai i
12
b) Cas d’un système variant
b(t,i) est d’autant plus faible que i est loin de t. (5) et (6) deviennent : (10) (11)
13
Choix de at et l(t) 1 b(t,i) t-i
L’expression de ne se modifie pas dans MCR mais P-1(t-1) doit être remplacée par l(t).P-1(t-1) ou P(t-1) par P(t-1)/l(t) (10) et (11) Donc la relation du MCR doit être remplacée par Choix de at et l(t) 1) Si q varie lentement at = 1 et l(t) = l = cte => b(t,i) = l(t-i) 1 b(t,i) t-i 2) Si q 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:
14
a) On pose l(t)/at = k = cte arbitraire mais d’autant plus
faible que q est rapide b) On détermine l(t) en résolvant à chaque pas tr[P(t)] = tr[P(t-1)] = tr c.a.d ou (*) (*) est valable si l’écart est dû à la variation de q 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.
15
(MCR) systèmes variants
Initialement, on introduit les constantes k, c, a 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. 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: 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). . i) T(t+1) = [-y(t), 1(t),…., (n-1)(t), u(t), (n+1)(t),…., (n+m-1)(t)].
16
S-function mcri function [sys,x0,str,ts] = mcri(t,x,v,flag,n,m,lamda,dt) % 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.
17
r = n+m ; if flag == % 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 == % 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
18
%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 == % 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 MCRI v = [u, y]’ dt xt xt-1 Flag t q tr(P)
19
a) Identification d’un système variant sur SIMULINK
b2 b1
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.