Title: III. IDENTIFICATION
1III. IDENTIFICATION PARAMETRIQUE
DES SYSTEMES LINEAIRES
- Le processus de lidentification paramétrique
21. 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
3Erreur de prédiction
(2)
Soit
(3)
où ai facteurs de pondération
Critère
Or (3) ?
(4)
et (4) ?
4Si 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,
- linversion de la matrice P-1(t).
Expressions récursives
gt
(7)
gt
Il reste à trouver une relation récursive pour
P(t)
5(8)
Pour éviter les inversions, on utilise le
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. gt P-1(t),
P-1(t1),... inv.
6Algorithme du moindre carré récursif
7INTERPRETATION du MCR PAR KALMAN CONVERGENCE DU
MCR
En supposant que le système reste invariant entre
t et t1,
et
lécart bt.n(t) provient de limprécision du
modèle et de mesure n(t) aléatoire de moyenne
nulle et de variance s2 bt facteur qui diminue
quand linformation sur q augmente
Les équations précédentes sont détat avec
Appliquons Kalman
8En posant
on retrouve
()
les mêmes relations quen MCR
On déduit les propriétés suivantes
91)
2)
gt trP(t) est une mesure de lerreur
destimation en t
3)
trP(t) décroissante. En effet
Trace de
gt 0 car
(1) gt trP(t1) lt trP(t)
104)
En effet
trP(t) décroissante et bornée par 0 L ?
(limite)
Lalgorithme MCR converge en moyenne quadratique
vers les vrais paramètres en admettant que le
modèle représente correctement la dynamique du
système.
11Initialisation du MCR
et au lieu de P(0) qui nexiste pas car P-1(0)
0, on pose P(0) P0 c.I c grand (1000)
et I matrice unitaire
(d 0.001)
P-1(0) d.I
et, daprès (5) et (6), MCR donne
Comme les éléments diagonaux de j(i).jT(i)
jk2(i) gt 0, ? devient rapidement négligeable.
Choix des facteurs de pondération ai
a) Cas dun 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
12b) Cas dun système variant
b(t,i) est dautant plus faible que i est loin de
t.
(5) et (6) deviennent
13(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
1
b(t,i)
t-i
2) Si q varie rapidement il faut pouvoir le
suivre gt les pas ditération doivent rester
grands gt trP(t) ne doit pas diminuer
On procède comme suit
14a) On pose l(t)/at k cte arbitraire mais
dautant plus
faible que q est rapide
b) On détermine l(t) en résolvant à chaque pas
trP(t) trP(t-1) tr
c.a.d
()
ou
et non à lerreur destimation.
Or, au départ, cest lerreur destimation qui
lemporte.
Remède 1) On commence par supposer que le
système est invariant jusquà linstant t0
où trP(t0) lt (mn).c, 0 lt c lt 4.
Typiquement, c 2. 2) On applique () à partir
de t0.
15- A linstant t, on lit les valeurs de y(t) et de
u(t). - 2) Durant létape t1, cest-à-dire entre t et
t1, on effectue successivement les
opérations suivantes
c) Si t gt t0, on passe à f).
e) Si trP(t) (n m).c, on pose t0 t et tr
trP(t), on passe à h).
.
i) ?T(t1) -y(t), ?1(t),., ?(n-1)(t), u(t),
?(n1)(t),., ?(nm-1)(t).
16S-function mcri
function sys,x0,str,ts mcri(t,x,v,flag,n,m,lam
da,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 thetaP()phialpha
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.
17r nm if flag 2 associe à
sys le nouveau état x(t1). theta
x(1r) P zeros(r,r) P()
x(r1r(r2)) phi x(r(r2)12r(r2))
alpha x(2r(r2)1) u v(1) y v(2)
epsilon y - theta'phi den (1/alpha)
phi'Pphi nvP P - (Pphiphi'P)/den
nvtheta theta alphanvPphiepsilon nvphi
-y phi(1n-1)uphi(n1r-1) nvalpha
1 - amda(1 - alpha) sys nvthetanvP()nvp
hinvalpha
elseif flag 0 dimensions
et initialisation. dimensions sys(1)
0 pas d'états continus.
sys(2) 2r(r2)1 dimension de x
sys(3) r1 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 1000eye(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(r1r(r2)) tr trace(P) sys
x(1r)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
19a) Identification dun système variant sur
SIMULINK