Le plus souvent, le réglage des matrices de bruit du filtre de Kalman se fait par essais et erreurs ou par connaissance du domaine. Existe-t-il des façons plus rationnelles de régler tous les paramètres du filtre de Kalman?
Le plus souvent, le réglage des matrices de bruit du filtre de Kalman se fait par essais et erreurs ou par connaissance du domaine. Existe-t-il des façons plus rationnelles de régler tous les paramètres du filtre de Kalman?
Réponses:
Vous pouvez obtenir des données expérimentales et effectuer des analyses statistiques pour déterminer le bruit du processus (bruit entre les pas de temps) et le bruit du capteur (par rapport à une vérité terrain).
Pour obtenir la vérité sur le bruit du capteur, vous avez besoin soit d'un capteur plus précis, soit d'un test expérimental tout en maintenant l'état d'intérêt à une valeur connue (généralement fixe).
Si vous ne disposez pas de données expérimentales, vous pouvez utiliser les fiches techniques ou les spécifications de chaque capteur pour déterminer son bruit. Le bruit de processus serait plus difficile dans ce cas, mais vous pouvez peut-être deviner sa valeur en supposant une certaine quantité de bruit due, par exemple, à un actionneur, si l'actionneur est la principale source de bruit de processus.
Une autre façon consiste à considérer le temps de stabilisation maximum autorisé pour l'estimation. Cela permettra de déterminer le rapport entre le bruit du processus et le bruit du capteur. Cela vous permet d'avoir un effet de filtrage maximal tout en répondant à vos exigences de temps de stabilisation.
Notez que cela ne fournit pas un bon moyen de régler le rapport entre différents capteurs ou entre différents états, ce n'est donc pas parfait.
Fondamentalement, si vous disposez de données expérimentales, vous pouvez obtenir des performances optimales. Sinon, vous pouvez uniquement calculer le bruit de processus en supposant le bruit probable du contributeur dominant au bruit de processus, ou en déterminant les performances minimales requises (ce qui n'est pas optimal, mais obtient au moins ce qui est nécessaire).
Dans le domaine de l'apprentissage automatique, nous considérons un filtre de Kalman comme un algorithme d'inférence sur un modèle variable latent. Les mesures sont visibles, mais l'état réel est masqué. Vous voulez maintenant déduire les vrais états.
Comme d'habitude, cette méthode repose sur un ensemble de paramètres et - en principe - la façon d'obtenir la meilleure estimation ponctuelle pour les paramètres est de regarder la vraisemblance des données (compte tenu des paramètres) et d'optimiser vos paramètres pour obtenir la valeur maximale. Cela vous donne l'estimation du maximum de vraisemblance.
Malheureusement, dans le cas du filtre de Kalman, cette approche n'est pas si facile et intraitable à faire sous forme fermée. C'est parce que nous n'observons pas les états cachés. Par conséquent, il faut appliquer quelques astuces. L'un d'eux consiste à utiliser l'algorithme Expecation Maximization (EM), qui est une approche itérative: dans la première étape, vous calculez la valeur la plus probable pour vos états masqués (la valeur attendue) sous vos paramètres actuels. Dans la deuxième étape, vous gardez les états masqués fixes et optimisez les paramètres pour obtenir la solution avec la plus grande probabilité. Ces étapes sont répétées jusqu'à la convergence.
Vous pouvez lire sur le concept général de la SE dans tout un tas de manuels sur l'apprentissage automatique (un seul exemple: "Raisonnement bayésien et apprentissage automatique" par David Barber). Le processus d'inférence des paramètres pour les systèmes dynamiques linéaires (qui vous donne le type de modèle de filtre de Kalman) est bien décrit dans un rapport technique de Zoubin Ghahramani et Geoffrey Hinton .
Vous voudrez peut-être lire "Un outil pour le réglage du filtre de Kalman" par Bernt M. Åkesson, et. Al. Il décrit la méthode des moindres carrés d'autocovariance (ALS).