Je viens d'apprendre le filtre de Kalman. Dans la terminologie de Kalman Filter, j'ai des difficultés avec le bruit de processus. Le bruit de processus semble être ignoré dans de nombreux exemples concrets (la plupart étant axés sur le bruit de mesure). Si quelqu'un peut m'indiquer un lien de niveau d'introduction qui décrit bien le bruit de processus avec des exemples, ce serait formidable.
Prenons un exemple scalaire concret pour ma question, étant donné:
x_j = a x_j-1 + b u_j + w_j
Disons que x_j
modélise la température dans un réfrigérateur avec le temps. Il fait 5 degrés et devrait rester ainsi. Nous modélisons donc avec a = 1
. Si, à un moment donné, t = 100
, la température du réfrigérateur atteint 7 degrés (par exemple, une journée chaude, une mauvaise isolation), le bruit du processus est alors de 2 degrés. Donc, notre variable d'état x_100 = 7
degrés, et c'est la vraie valeur du système.
Question 1:
Si je paraphrase alors la phrase que je vois souvent pour décrire le filtre de Kalman, «nous filtrons le signal x de manière à minimiser les effets du bruit w», http://www.swarthmore.edu/NatSci/echeeve1/Ref/ Kalman/ScalarKalman.html si nous minimisons les effets des 2 degrés, essayons-nous de nous débarrasser de la différence de 2 degrés? Mais le vrai état à est x_100 == 7
degrés. Que faisons-nous du bruit de processus w exactement quand nous filtrons de Kalmen?
Question 2:
Le bruit de processus a une variance de Q
. Dans l'exemple du réfrigérateur simple, il semble facile de modéliser car vous savez que l'état réel sous-jacent est de 5 degrés et que vous pouvez prendre Q
comme déviation par rapport à cet état. Mais si le véritable état sous-jacent fluctue dans le temps, lorsque vous modélisez, quelle partie de celle-ci sera considérée comme une fluctuation d'état par rapport au «bruit de processus». Et comment pouvons-nous déterminer un bon Q
(cet exemple serait Nice, par exemple)?
J'ai trouvé que Q
est toujours ajouté à la prédiction de covariance quel que soit le pas de temps où vous vous trouvez (voir la formule de prédiction de covariance de http://greg.czerniak.info/guides/kalman1/ ) Si vous sélectionnez Q
trop volumineux, il ne semble pas que le filtre de Kalman se comporte correctement.
Merci.
EDIT1 Mon interprétation
Mon interprétation du terme bruit de processus est la différence entre l'état actuel du système et l'état modélisé à partir de la matrice de transition d'état (c.-à-d. a * x_j-1
). Et ce que le filtre de Kalman essaie de faire est de rapprocher la prédiction de l’état réel. En ce sens, il "incorpore en partie" le bruit de processus dans la prévision par le biais du mécanisme de retour résiduel, plutôt que de "l'éliminer", afin de mieux prédire l'état réel. Je n'ai lu aucune explication de ce genre dans ma recherche et j'apprécierais que quiconque commente ce point de vue.
En Kalman, filtrer le "bruit de processus" représente l'idée/caractéristique que l'état du système change avec le temps, mais nous ne savons pas exactement quand/comment ces changements se produisent, nous devons donc les modéliser comme un processus aléatoire. .
Dans votre exemple de réfrigérateur:
t
, vous examinez le thermomètre et voyez qu'il indique 7 degrés; Étant donné que nous supposons que les erreurs de mesure sont très petites, cela signifie Que la température réelle est (très proche de) 7 degrés.Si nous ne savons pas si/quand le condensateur dans le réfrigérateur s’allumera, nous pourrions avoir: 1. la température à la dernière heure est encore supérieure à 7 degrés (15 minutes parviennent à pour se rapprocher de la température maximale dans un cycle), 2. Abaissez si le condenseur est/a été en marche, ou même, 3. être à peu près le même.
Cette idée qu'il existe une distribution des résultats possibles pour l'état réel du système À un moment ultérieur constitue le "bruit de processus"
Remarque: mon modèle qualitatif pour le réfrigérateur est le suivant: le condenseur ne fonctionne pas, la température monte jusqu’à ce qu’il atteigne un seuil de température de quelques degrés au-dessus de la température cible nominale (remarque: il s'agit d'un capteur température à laquelle le condenseur s’allume), le condenseur reste allumé jusqu’à ce que la température devienne de quelques degrés inférieure à la température réglée. Notez également que si quelqu'un ouvre la porte, il y aura un saut de température; comme nous ne savons pas quand quelqu'un pourrait le faire, nous le modélisons comme un processus aléatoire.
Rappelez-vous qu’un système n’a généralement pas d’état "vrai" inhérent. Un réfrigérateur est un mauvais exemple, car il s'agit déjà d'un système de contrôle à propriétés non linéaires. Un boulet de canon volant en est un meilleur exemple. Il existe un endroit où il est "réellement", mais ce n'est pas intrinsèque à A. Dans cet exemple, vous pouvez considérer le vent comme une sorte de "bruit de traitement". (Pas un bon exemple, car ce n'est pas du bruit blanc, mais travaillez avec moi ici.) Le vent est un bruit de processus en 3 dimensions qui affecte la vitesse du boulet de canon; cela n'affecte pas directement la position du boulet de canon.
Maintenant, supposons que le vent dans cette zone souffle toujours au nord-ouest. Nous devrions voir une covariance positive entre les composantes nord et ouest du vent. Une déviation de la vitesse du boulet de canon vers le nord devrait nous amener à nous attendre à une déviation similaire à celle de l'ouest et inversement.
Considérez Q plus comme une covariance que comme une variance; l'aspect autocorrélation de celui-ci est presque accessoire.
C'est une bonne discussion ici. Je voudrais ajouter que le concept de bruit de processus est que toute prédiction faite sur la base du modèle comporte des erreurs et qu’elle est représentée à l’aide de la matrice Q. Si vous notez les équations dans KF pour la prédiction de la matrice de covariance (prédiction P) qui est en fait l'erreur quadratique moyenne de l'état prédit, le Q y est simplement ajouté. PPredict = APA '+ Q. Je suggère que cela vous donnerait un bon aperçu si vous pouviez trouver la dérivation des équations de KF.