Comment comprendre Kalman gagner intuitivement?

30

L' algorithme de filtre de Kalman fonctionne comme suit

Initialisez et .x^0|0P0|0

A chaque itérationk=1,,n

Prédire

Estimation prédite (a priori) de l'état Covariance estimée (a priori) Mise à jour

x^k|k1=Fkx^k1|k1+Bkuk
Pk|k1=FkPk1|k1FkT+Qk

Innovation ou mesure résiduelle Innovation (ou résiduelle) covariance Gain de Kalman optimal Estimation d'état mise à jour (a posteriori) Mis à jour (a posteriori) estimer la covariance \ textbf {P} _ {k | k} = (I - \ textbf {K} _k \ textbf {H} _k) \ textbf {P} _ {k | k-1}

y~k=zkHkx^k|k1
Sk=HkPk|k1HkT+Rk
x k | k = x k | k - 1 + K k ˜ y k P k | k =(I- K k H k ) P k | k - 1
Kk=Pk|k1HkTSk1
x^k|k=x^k|k1+Kky~k
Pk|k=(IKkHk)Pk|k1

Le gain de Kalman Kk représente l'importance relative de l'erreur y~k par rapport à l'estimation précédente x^k|k1 .

Je me demande comment comprendre intuitivement la formule du gain de Kalman K_k ? Considérez le cas lorsque les états et les sorties sont scalaires, pourquoi le gain est-il plus grand, quandKk

  • Pk|k1 est plus grand

  • Hk est plus grand

  • Sk est plus petit?

Merci et salutations!

Tim
la source
C'est une question difficile à répondre correctement. J'ai essayé, mais pas convaincu par ma propre réponse. Fondamentalement, le gain contrôle à quel point vous faites confiance aux mesures par rapport à l'estimation, mais je ne peux pas expliquer comment ce gain est conforme.
Jav_Rock

Réponses:

18

J'ai trouvé une bonne façon de penser intuitivement Kalman gain . Si vous écrivez cette façonKK

 Kk=PkHkT(HkPkHkT+Rk)1=PkHkTHkPkHkT+Rk

vous vous compte que les grandeurs relatives des matrices ( ) et ( ) contrôlent une relation entre l'utilisation par le filtre de l'estimation d'état prédite ( ) et la mesure ( ).RkPkxkk

 limRk0PkHkT HkPkHkT+Rk =Hk1

 limPk0PkHkT HkPkHkT+Rk =0

Substitution de la première limite dans l'équation de mise à jour de la mesure

 x^k=xk+Kk(y~kHkxk)

suggère que lorsque l'amplitude de est petite, ce qui signifie que les mesures sont précises, l'estimation d'état dépend principalement des mesures.R

Lorsque l'état est connu avec précision, alors est petit par rapport à , et le filtre ignore principalement les mesures reposant plutôt sur la prédiction dérivée de l'état précédent ( ).HPHTRxk

Jav_Rock
la source
2
Merci! Si j'ai raison, n'est pas monotone par rapport à . KkHk
Tim
12

Le gain de Kalman vous indique à quel point je souhaite modifier mon estimation en fonction d'une mesure.

Sk est la matrice de covariance estimée des mesures . Cela nous indique la "variabilité" de nos mesures. Si elle est grande, cela signifie que les mesures "changent" beaucoup. Votre confiance dans ces mesures est donc faible. En revanche, si est faible , la variabilité est faible, notre confiance dans la mesure augmente. Lorsque nous sommes convaincus de nos mesures, nous étions convaincus que les informations que nous obtenons sont suffisamment bonnes pour nous de mettre à jour / modifier nos estimations d'état. Le gain Kalman est donc plus élevé.zkSk

Pk est la matrice de covariance d'état estimée. Cela nous indique la "variabilité" de l'état, . Si est grand , cela signifie que l'état devrait beaucoup changer. Vous devez donc pouvoir modifier vos estimations avec de nouvelles mesures. En conséquence, le gain de Kalman est plus élevé.xkPk

Inversement, si est petit, alors vous savez que votre état ne change pas beaucoup, donc vous ne voulez pas trop modifier vos estimations à chaque instant. @ La réponse de Jav_Rock dit que si , alors le . En d'autres termes, il a laissé entendre que si vous pensez que votre état ne varie plus, vous n'essayez plus de modifier votre estimation.PkPk0K0

ssk08
la source
2

Jav_Rock a obtenu le point. En fait, si vous écrivez comme ceciKk

 Kk=PkHkT(HkPkHkT+Rk)1=HkHkPkHkTHkPkHkT+Rk

le numérateur de la fraction représente l'incertitude propagée à partir du modèle tandis que représente l'incertitude de la mesure. Ainsi, la valeur de la fraction représente à quel point nous devons faire confiance à la mesure, comme expliqué par Jav_Rock.Rk

Quant au , il ne fait que retransformer l'observation à l'état, car c'est l'état que nous voulons mettre à jour, pas l'observation.Hk

Pour conclure, le gain calcule combien de correction nous devons prendre de l'observation et retransforme la correction d'observation en correction d'état, ce qui conduit à la mise à jour de l'estimation d'état:Kk

 x^k=xk+Kk(y~kHkxk)

Zichao Zhang
la source
-1

Je travaille sur l'algorithme du filtre de Kalman (KF). J'ai observé que le gain kalman traite de la convergence de l'algorithme avec le temps, c'est-à-dire à quelle vitesse l'algorithme corrige et minimise le résidu.

En arrivant à l'équation, choisissez une valeur de gain kalman initiale et faites-la varier de faible à élevée, ce qui peut vous donner une valeur approximative.

Harsha
la source