Salome HOME
Documentation update (observers and Pf)
[modules/adao.git] / doc / fr / ref_algorithm_ExtendedKalmanFilter.rst
1 ..
2    Copyright (C) 2008-2021 EDF R&D
3
4    This file is part of SALOME ADAO module.
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this library; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19
20    See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
22    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
23
24 .. index:: single: ExtendedKalmanFilter
25 .. _section_ref_algorithm_ExtendedKalmanFilter:
26
27 Algorithme de calcul "*ExtendedKalmanFilter*"
28 ---------------------------------------------
29
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
32
33 Cet algorithme réalise une estimation de l'état d'un système dynamique par un
34 filtre de Kalman étendu, utilisant un calcul non linéaire de l'état et de
35 l'évolution incrémentale (processus).
36
37 Conceptuellement, on peut représenter le schéma temporel d'action de
38 l'opérateur d'évolution de cet algorithme de la manière suivante, avec **x**
39 l'état et **P** la covariance d'erreur d'état :
40
41   .. _schema_temporel_KF:
42   .. image:: images/schema_temporel_KF.png
43     :align: center
44     :width: 100%
45   .. centered::
46     **Schéma temporel des étapes en assimilation par filtre de Kalman étendu**
47
48 On remarque qu'il n'y a pas d'analyse effectuée au pas de temps initial
49 (numéroté 0 dans l'indexage temporel) car il n'y a pas de prévision à cet
50 instant (l'ébauche est stockée comme pseudo-analyse au pas initial). Si les
51 observations sont fournies en série par l'utilisateur, la première n'est donc
52 pas utilisée.
53
54 Dans le cas d'opérateurs réellement non-linéaires, on peut aisément utiliser
55 l':ref:`section_ref_algorithm_EnsembleKalmanFilter` ou
56 l':ref:`section_ref_algorithm_UnscentedKalmanFilter`, qui sont souvent
57 largement plus adaptés aux comportements non-linéaires mais plus coûteux. On
58 peut vérifier la linéarité des opérateurs à l'aide de
59 l':ref:`section_ref_algorithm_LinearityTest`.
60
61 .. ------------------------------------ ..
62 .. include:: snippets/Header2Algo02.rst
63
64 .. include:: snippets/Background.rst
65
66 .. include:: snippets/BackgroundError.rst
67
68 .. include:: snippets/EvolutionError.rst
69
70 .. include:: snippets/EvolutionModel.rst
71
72 .. include:: snippets/Observation.rst
73
74 .. include:: snippets/ObservationError.rst
75
76 .. include:: snippets/ObservationOperator.rst
77
78 .. ------------------------------------ ..
79 .. include:: snippets/Header2Algo03AdOp.rst
80
81 .. include:: snippets/BoundsWithExtremes.rst
82
83 .. include:: snippets/ConstrainedBy.rst
84
85 .. include:: snippets/EstimationOf.rst
86
87 StoreSupplementaryCalculations
88   .. index:: single: StoreSupplementaryCalculations
89
90   *Liste de noms*. Cette liste indique les noms des variables supplémentaires
91   qui peuvent être disponibles au cours du déroulement ou à la fin de
92   l'algorithme, si elles sont initialement demandées par l'utilisateur. Cela
93   implique potentiellement des calculs ou du stockage coûteux. La valeur par
94   défaut est une liste vide, aucune de ces variables n'étant calculée et
95   stockée par défaut sauf les variables inconditionnelles. Les noms possibles
96   sont dans la liste suivante : [
97   "Analysis",
98   "APosterioriCorrelations",
99   "APosterioriCovariance",
100   "APosterioriStandardDeviations",
101   "APosterioriVariances",
102   "BMA",
103   "CostFunctionJ",
104   "CostFunctionJAtCurrentOptimum",
105   "CostFunctionJb",
106   "CostFunctionJbAtCurrentOptimum",
107   "CostFunctionJo",
108   "CostFunctionJoAtCurrentOptimum",
109   "CurrentIterationNumber",
110   "CurrentOptimum",
111   "CurrentState",
112   "ForecastCovariance",
113   "ForecastState",
114   "IndexOfOptimum",
115   "InnovationAtCurrentAnalysis",
116   "InnovationAtCurrentState",
117   "SimulatedObservationAtCurrentAnalysis",
118   "SimulatedObservationAtCurrentOptimum",
119   "SimulatedObservationAtCurrentState",
120   ].
121
122   Exemple :
123   ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
124
125 .. ------------------------------------ ..
126 .. include:: snippets/Header2Algo04.rst
127
128 .. include:: snippets/Analysis.rst
129
130 .. ------------------------------------ ..
131 .. include:: snippets/Header2Algo05.rst
132
133 .. include:: snippets/Analysis.rst
134
135 .. include:: snippets/APosterioriCorrelations.rst
136
137 .. include:: snippets/APosterioriCovariance.rst
138
139 .. include:: snippets/APosterioriStandardDeviations.rst
140
141 .. include:: snippets/APosterioriVariances.rst
142
143 .. include:: snippets/BMA.rst
144
145 .. include:: snippets/CostFunctionJ.rst
146
147 .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
148
149 .. include:: snippets/CostFunctionJb.rst
150
151 .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
152
153 .. include:: snippets/CostFunctionJo.rst
154
155 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
156
157 .. include:: snippets/CurrentIterationNumber.rst
158
159 .. include:: snippets/CurrentOptimum.rst
160
161 .. include:: snippets/CurrentState.rst
162
163 .. include:: snippets/ForecastCovariance.rst
164
165 .. include:: snippets/ForecastState.rst
166
167 .. include:: snippets/IndexOfOptimum.rst
168
169 .. include:: snippets/InnovationAtCurrentAnalysis.rst
170
171 .. include:: snippets/InnovationAtCurrentState.rst
172
173 .. include:: snippets/SimulatedObservationAtCurrentAnalysis.rst
174
175 .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
176
177 .. include:: snippets/SimulatedObservationAtCurrentState.rst
178
179 .. ------------------------------------ ..
180 .. include:: snippets/Header2Algo06.rst
181
182 - :ref:`section_ref_algorithm_KalmanFilter`
183 - :ref:`section_ref_algorithm_EnsembleKalmanFilter`
184 - :ref:`section_ref_algorithm_UnscentedKalmanFilter`
185
186 .. ------------------------------------ ..
187 .. include:: snippets/Header2Algo07.rst
188
189 - [WikipediaEKF]_