• Aucun résultat trouvé

Un exemple de SOS, le filtre de Kalman RRSQRT

Dans le document THESE pour obtenir le grade de (Page 48-51)

3.8 Autres impulsions venant de la géostatistique

4.1.2 Un exemple de SOS, le filtre de Kalman RRSQRT

Le RRSQRT n’apporte pas de grands changements conceptuels par rapport à l’EKF. On introduit la matriceS dont le carré est une approximation de la matrice de covariance C

SnfSnf> Cnf, SnaSna> Cna:

Son rangr est bien inférieur à la dimension du modèle d’état (entre 50 et 100 dans la plupart des applica-tions). Ceci permet d’alléger le calcul car on manipule alors une matriceS de dimension N r au lieu de C de taille N N.

4.1.2.1 Ébauche

L’état et la racine carrée de la matrice de covariance sont propagées par le modèle :

zfn = fn(zan 1; 0) (4.9)

Snf = @f

@zjzan 1Sn 1a ; @f

@"m jzan 1(m)1=2

: (4.10)

On vérifie bien que le produitSfnSnf>redonne l’équation (4.5).

4.1. PROPAGATION NON LINÉAIRE, CORRECTION LINÉAIRE 37 La racine carrée dem existe puisqu’il s’agit d’un matrice de covariance définie positive1. Lei-ème vecteur colonne deSnsera noté sin(resp. si;fn ou si;an après lan-ième étape de propagation ou d’analyse) ; on peut interpréter l’espace engendré par ces vecteurs comme l’ensemble des perturbations de l’état du système dans lequel le filtre de Kalman RRSQRT peut le recaler. Pour éviter de calculer à chaque pas de temps le modèle linéaire tangent utilisé dans l’équation (4.5), Verlaan et Heemink (1997) utilisent une méthode de différences finies :

où le scalaire est censé être le plus petit possible, mais pas trop car les valeurs faibles provoquent des instabilités du filtre, voir Verlaan (1998) et les applications aux chapitres 5 et 6.

Les vecteurs colonnes de la matrice (m)1=2 sont eux aussi propagés par le modèle linéaire tangent suivant une relation similaire à (4.12), en notant si;m lei-ème vecteur colonne de (m)1=2, qui dans nos notations ne dépend pas den :

@f

On peut remarquer que le choix de la racine carrée dem aura une incidence sur les résultats. On peut s’en convaincre en considérant l’opposé d’une racine carrée dem et reporter le vecteur colonne si;m dans (4.14). Le filtre RRSQRT «second order exact»2 (Verlaan et Heemink, 1999) apporte une solution partielle : on ajoute à la base propre tous les vecteurs propres orientés en sens opposé. Verlaan et Heemink (1999) obtient ainsi un filtre RRSQRT plus résistant aux non linéarités. Mais ce filtre ne semble pas encore tenir compte de l’ensemble des racines carrées possibles dem, sauf dans le cas trivial où cette matrice est diagonale. Je n’emploierai pas cette seconde version du RRSQRT dans la suite pour garder les algorithmes les plus simples.

Dans (4.10), la matriceSfnest la jonction des deux matrices entre crochets, de dimensions respectives N r et N q. Sa dimension est alors augmentée (N (r + q)). Numériquement, cette étape représente r + q + 1 intégrations du modèle physique (les r + q colonnes de Snf et la moyenne zfn), ce qui réduit considérablement la charge de calcul en comparaison avec l’EKF.

1Dans les applications cette matrice est de petite taille. Trouver une racine carrée ne pose pas de problème. Celle de Cholesky fait très bien l’affaire.

2Le terme de «second ordre» semble indiquer que le filtre utilise un développement limité au second ordre du modèle dynamique ce qui n’est pas le cas puisque son but est seulement d’améliorer le calcul du moment d’ordre 2 de Ztn; il prête donc à confusion.

On notera que la relation (4.11) sert à approcher l’équation (4.5) qui est elle-même issue du développe-ment au premier ordre de (4.1). Cette étape de l’algorithme est donc la plus critiquable.

4.1.2.2 Réduction

On réduit la dimension deSnf deN (r + q) à N r par orthogonalisation en négligeant les q valeurs propres les plus faibles :

Snf>Snf = UDU> (4.15)

Snf = [UD1=2]1:N;1:r (4.16)

On note dans l’équation (4.15) que ce n’est pas la matriceCnf de tailleN N qui est diagonalisée car le produit matriciel a commuté. On diagonalise ainsi une matrice de taille plus modeste(r +q)(r +q). Cette manipulation est autorisée car le rang deCnf est au plus der + q et les valeurs propres du produit commuté ne diffèrent que parN (r + q) valeurs propres nulles.

Numériquement cette étape revient donc à deux produits matriciels et une décomposition en valeurs propres et vecteurs propres d’une matrice(r+q)(r+q). Pour cette décomposition, les routines classiques de la librairie Fortran eispack sont mises en œuvre : la matrice est d’abord rendue tridiagonale, puis diagonale par une méthode QR itérative. Le nombre d’opérations dépend donc de la précision demandée, mais il est courant de supposer que le nombre d’itérations n’augmente pas avec la taille de la matrice à diagonaliser (Verlaan, 1998). Ce nombre d’opération est alors unO((r + q)2).

En tout, le coût numérique associé aux trois calculs est deN(r + q)2 + O((r + q)2) + 2Nr(r + q) opérations, en tenant compte de la symétrie deSnf>Snf, et il varie donc comme le carré du nombre de modes retenusr.

Dans le cas multivariable la réduction pourrait rendre l’ADS dépendante des unités des différentes va-riables si elle coupait systématiquement les modes liés aux vava-riables exprimées dans les unités les plus fortes.

Il convient donc de diagonaliser des matrices de corrélation au lieu de matrices de covariances, comme dans Segers et al. (2000).

4.1.2.3 Correction

L’algorithme du RRSQRT utilise le schéma de correction scalaire de Potter, dont on trouve aussi la justification dans (Maybeck, 1979). Ce schéma suppose que la matriceHCnfH>+ oest diagonale. Si ce n’est pas le cas3, on peut procéder au préalable à une orthogonalisation de cette matrice. L’algorithme de

3C’est-à-dire si les observations sont trop rapprochées au sens de la covarianceCnf

4.1. PROPAGATION NON LINÉAIRE, CORRECTION LINÉAIRE 39 Potter procède au calcul du gain de Kalman et à la mise à jour deSnf observation par observation. Si on omet l’indice de pas de tempsn et si on note kilai-ème colonne de K pour simplifier les notations, on a :

do loop i = 1 : m (4.17)

i = (H(i;:)Sf)> (4.18)

i = 1

>i i+ oi;i (4.19)

ki = iSfi (4.20)

Sa = Sf ki>i 1 +q

ioi;i (4.21)

end loop i: (4.22)

Ayant la matrice de gainK, on peut alors appliquer l’équation linéaire de correction de l’état du filtre de Kalman (3.22). Le coût numérique de cette étape est environ6mrN, auquel on ajoute un O(m2) s’il faut diagonaliser la matriceHCfH>+ o. Dans nos applications où le nombre d’observations est très faible, ce coût est négligeable face à celui des deux autres étapes.

Pour les trois étapes du RRSQRT, il faut noter que la réduction du rang de Snf provoque une sous-estimation systématique de la variance d’sous-estimation, mais dans le cadre linéaire à termes constants, il est possible de prouver la convergence asymptotique de la covariance estimée par le RRSQRT vers celle du filtre de Kalman de rang plein, lui-même convergent dans ce cas d’école (Verlaan, 1998). Dans le cas général, la convergence du filtre de Kalman RRSQRT n’est pas garantie, elle est cependant constatée dans de nombreux cas réels de grandes dimensions et souvent non linéaires.

Dans le document THESE pour obtenir le grade de (Page 48-51)

Documents relatifs