next up previous contents
suivant: Filtre SEEK monter: Assimilation séquentielle précédent: Interpolation optimale   Table des matières

Filtre de Kalman

Nous allons désormais nous pencher sur la technique du filtrage de Kalman ([22], [16], [17], [18], [20], [15], [14], [8], [52]). Cette théorie fournit à chaque nouvelle observation une nouvelle estimation de la variable d'état. Le filtrage de Kalman utilise les observations dans l'ordre où elles sont disponibles, d'où l'appellation séquentielle. Par conséquent, l'estimation de l'état du système ne dépendra pas des observations futures mais uniquement des observations passées et présentes.

Considérons une discrétisation en temps de notre problème :

$\displaystyle \left\{ \begin{array}{l} x_0 \textrm{ donn\'e,}  [0.2cm] x_{n+1} = M_n x_n + \varepsilon_n, \quad n \ge 0, \end{array} \right.$ (2.7)

$ M_n$ est une approximation linéaire du modèle à l'instant $ t_n$ correspondant au $ n^{\textrm{i\\lq eme}}$ pas de temps et $ \varepsilon_n$ est l'incertitude sur le modèle à cet instant.

On doit également discrétiser en temps les observations :

$\displaystyle y_n = H_n x_n + o_n,$ (2.8)

$ H_n$ est une approximation linéaire (si $ H$ ne l'est pas) de l'opérateur d'observation à l'instant $ t_n$ et $ o_n$ représente l'erreur d'observation à ce même instant.

Notons, à chaque instant $ t_n$ , $ Q_n$ et $ R_n$ les matrices de covariance des erreurs de modèle et d'observation respectivement. Nous supposerons dans la suite que ces deux erreurs sont d'espérance nulle et décorrélées (l'une par rapport à l'autre et entre elles à des instants différents).

L'ébauche de l'état du système à l'instant $ t_n$ n'est autre que l'état obtenu en faisant évoluer l'analyse réalisée à l'instant d'avant sur un pas de temps :

$\displaystyle x_n^f = M_{n-1}x_{n-1}^a$ (2.9)

avec $ x_{n-1}^a$ l'état analysé à l'instant $ t_{n-1}$ .

Si on note $ P^f_n$ la matrice de covariance de l'erreur d'ébauche $ x_n^f-x_n$ et $ P^a_n$ la matrice de covariance de l'erreur d'analyse $ x_n^a-x_n$ , alors

\begin{displaymath}\begin{array}{rcl}
P_{n+1}^f &=& E\left( (x_{n+1}^f-x_{n+1})^...
...silon_n)^T
(M_nx_n^a-M_nx_n-\varepsilon_n) \right),
\end{array}\end{displaymath}

donc

$\displaystyle P_{n+1}^f = M_nP_n^aM_n^T + Q_n.$ (2.10)

Cette phase est appelée la phase de prédiction : on a déduit une estimation de l'état à l'instant $ t_{n+1}$ de la prévision de l'instant $ t_n$ , ainsi que la matrice de covariance de l'erreur d'ébauche en fonction de la matrice de covariance de l'erreur d'analyse de l'instant précédent.

À partir de cette ébauche et du vecteur d'innovation $ y_{n+1}-H_{n+1}x_{n+1}^f$ , il faut construire l'état analysé $ x_{n+1}^a$ , de façon analogue à la méthode de l'interpolation optimale :

$\displaystyle x_{n+1}^a = x_{n+1}^f + K_{n+1} (y_{n+1}-H_{n+1}x_{n+1}^f)$ (2.11)

$ K_{n+1}$ est la matrice de gain, dite de Kalman. Cette matrice est définie par :

$\displaystyle K_{n+1} = P^f_{n+1}H_{n+1}^T \left( H_{n+1} P^f_{n+1}H^T_{n+1} + R_{n+1} \right)^{-1}.$ (2.12)

Les équations (2.11) et (2.12) ne sont pas sans rappeler l'équation (2.6) qui donnait l'analyse en fonction de l'ébauche dans le cadre de l'interpolation optimale, sauf qu'ici la dépendance du temps intervient dans chaque matrice et chaque vecteur.

Il est alors aisé de calculer la nouvelle matrice de covariance d'erreur d'analyse :

$\displaystyle P_{n+1}^a = P_{n+1}^f-K_{n+1}H_{n+1}P_{n+1}^f.$ (2.13)

Cette phase est appelée la phase de correction : on a corrigé l'estimation fournie par l'étape de prédiction à l'aide du vecteur d'innovation et d'une matrice de gain.

Il faut noter que la matrice de covariance d'erreur d'analyse $ P_{n+1}^a$ est indépendante des valeurs des observations, contrairement à l'état analysé $ x_{n+1}^a$ .

Le gros avantage de la méthode du filtre de Kalman est de fournir à chaque itération une estimation des matrices de covariance d'erreur d'ébauche et d'analyse. Il faut toutefois initialiser correctement ces matrices à l'instant $ t_0$ , et avoir une estimation des matrices de covariance d'erreur modèle et d'erreur d'observation. Cependant, en météorologie, l'initialisation n'est pas une difficulté majeure car les observations s'accumulent dans le temps, et en pratique, la mise en route de l'algorithme de filtrage est assez vite oubliée.

Plusieurs inconvénients majeurs sont cependant connus. Tout d'abord, dans le cas d'un modèle non linéaire, le filtre de Kalman ainsi défini n'est pas optimal (il ne fournit pas la solution de variance minimale). Pour pallier à ce défaut qui pose problème dès qu'on utilise le filtre de Kalman sur un problème même faiblement non linéaire, a été introduit le filtre de Kalman étendu qui travaille à chaque instant sur des versions linéarisées du modèle (système linéaire tangent) et de l'opérateur d'observation (opérateur linéaire tangent d'observation). Ainsi, dans le cas d'un modèle linéaire, il est optimal, et dans le cas d'un modèle non linéaire, même s'il n'est pas forcément optimal, il donne de bonnes analyses si les non linéarités ne sont pas trop importantes.

Le second problème qui se pose est le coût de la mise en \oeuvre numérique du filtre de Kalman. En effet, si la dimension du problème est de l'ordre de $ 10^7$ , et la dimension des observations de l'ordre de $ 10^5$ , les matrices $ P_n^f$ , $ P_n^a$ , $ M_n$ et $ Q_n$ sont des matrices carrées de dimension $ 10^7 \times 10^7$ , la matrice $ R_n$ est carrée de dimension $ 10^5 \times 10^5$ et les matrices $ H_n$ et $ K_n$ sont rectangulaires de dimension $ 10^5 \times 10^7$ . Le stockage d'une matrice de cet ordre de grandeur pose problème, mais il n'est heureusement pas utile, car seul le résultat de la multiplication d'une telle matrice par un vecteur est nécessaire. Pour des raisons évidentes de coût de calcul, il est nécessaire de réduire la dimension du filtre si on veut l'appliquer à des problèmes d'océanographie ou météorologie.


next up previous contents
suivant: Filtre SEEK monter: Assimilation séquentielle précédent: Interpolation optimale   Table des matières
Retour à la page principale