2 Copyright (C) 2008-2019 EDF R&D
4 This file is part of SALOME ADAO module.
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.
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.
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
20 See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
24 .. index:: single: UnscentedKalmanFilter
25 .. _section_ref_algorithm_UnscentedKalmanFilter:
27 Algorithme de calcul "*UnscentedKalmanFilter*"
28 ----------------------------------------------
33 Cet algorithme réalise une estimation de l'état d'un système dynamique par un
34 filtre de Kalman "unscented", permettant d'éviter de devoir calculer les
35 opérateurs tangent ou adjoint pour les opérateurs d'observation ou d'évolution,
36 comme dans les filtres de Kalman simple ou étendu.
38 Il s'applique aux cas d'opérateurs d'observation et d'évolution incrémentale
39 (processus) non-linéaires et présente d'excellentes qualités de robustesse et
40 de performances. Il peut être comparé à
41 l':ref:`section_ref_algorithm_EnsembleKalmanFilter`, dont les qualités sont
42 similaires pour les systèmes non-linéaires.
44 Dans le cas d'opérateurs linéaires ou "faiblement" non-linéaire, on peut
45 aisément utiliser l':ref:`section_ref_algorithm_ExtendedKalmanFilter` ou même
46 l':ref:`section_ref_algorithm_KalmanFilter`, qui sont souvent largement moins
47 coûteux en évaluation sur de petits systèmes. On peut vérifier la linéarité des
48 opérateurs à l'aide de l':ref:`section_ref_algorithm_LinearityTest`.
50 Commandes requises et optionnelles
51 ++++++++++++++++++++++++++++++++++
53 Les commandes requises générales, disponibles dans l'interface en édition, sont
56 .. include:: snippets/Background.rst
58 .. include:: snippets/BackgroundError.rst
60 .. include:: snippets/EvolutionError.rst
62 .. include:: snippets/EvolutionModel.rst
64 .. include:: snippets/Observation.rst
66 .. include:: snippets/ObservationError.rst
68 .. include:: snippets/ObservationOperator.rst
70 Les commandes optionnelles générales, disponibles dans l'interface en édition,
71 sont indiquées dans la :ref:`section_ref_assimilation_keywords`. De plus, les
72 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
73 options particulières, décrites ci-après, de l'algorithme. On se reportera à la
74 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
77 Les options de l'algorithme sont les suivantes:
79 .. include:: snippets/BoundsWithExtremes.rst
81 .. include:: snippets/ConstrainedBy.rst
83 .. include:: snippets/EstimationOf.rst
85 Alpha, Beta, Kappa, Reconditioner
86 .. index:: single: Alpha
87 .. index:: single: Beta
88 .. index:: single: Kappa
89 .. index:: single: Reconditioner
91 Ces clés sont des paramètres de mise à l'échelle interne. "Alpha" requiert
92 une valeur comprise entre 1.e-4 et 1. "Beta" a une valeur optimale de 2 pour
93 une distribution *a priori* gaussienne. "Kappa" requiert une valeur entière,
94 dont la bonne valeur par défaut est obtenue en la mettant à 0.
95 "Reconditioner" requiert une valeur comprise entre 1.e-3 et 10, son défaut
99 ``{"Alpha":1,"Beta":2,"Kappa":0,"Reconditioner":1}``
101 StoreSupplementaryCalculations
104 Cette liste indique les noms des variables supplémentaires qui peuvent être
105 disponibles à la fin de l'algorithme. Cela implique potentiellement des
106 calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
107 aucune de ces variables n'étant calculée et stockée par défaut. Les noms
108 possibles sont dans la liste suivante : ["APosterioriCorrelations",
109 "APosterioriCovariance", "APosterioriStandardDeviations",
110 "APosterioriVariances", "BMA", "CostFunctionJ", "CostFunctionJb",
111 "CostFunctionJo", "CurrentState", "Innovation"].
114 ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
116 Informations et variables disponibles à la fin de l'algorithme
117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
119 En sortie, après exécution de l'algorithme, on dispose d'informations et de
120 variables issues du calcul. La description des
121 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
122 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
123 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
124 l'écriture des procédures de post-processing, sont décrites dans
125 l':ref:`subsection_r_o_v_Inventaire`.
127 Les sorties non conditionnelles de l'algorithme sont les suivantes:
129 .. include:: snippets/Analysis.rst
131 Les sorties conditionnelles de l'algorithme sont les suivantes:
133 .. include:: snippets/APosterioriCorrelations.rst
135 .. include:: snippets/APosterioriCovariance.rst
137 .. include:: snippets/APosterioriStandardDeviations.rst
139 .. include:: snippets/APosterioriVariances.rst
141 .. include:: snippets/BMA.rst
143 .. include:: snippets/CostFunctionJ.rst
145 .. include:: snippets/CostFunctionJb.rst
147 .. include:: snippets/CostFunctionJo.rst
149 .. include:: snippets/CurrentState.rst
151 .. include:: snippets/Innovation.rst
156 Références vers d'autres sections :
157 - :ref:`section_ref_algorithm_KalmanFilter`
158 - :ref:`section_ref_algorithm_ExtendedKalmanFilter`
159 - :ref:`section_ref_algorithm_EnsembleKalmanFilter`
161 Références bibliographiques :