Supongamos que quiero rastrear la posición de un automóvil en 2D. Lo que obtengo como datos del sensor es mi posición actual. Entonces mi estado es
donde es la posición en m lejos de algún punto predefinido, es la velocidad en m / s en el momento de inicio y es la aceleración en . Las medidas son
Lo que puedo elegir es mi aceleración en cada paso de tiempo (los pasos de tiempo tienen la longitud ):
Como el filtro de Kalman es un filtro lineal, mi modelo de estado es:
La medición depende del estado, con algo de ruido :
con , . Como uno puede descomponer la aceleración / velocidad en las direcciones y la ecuación para la nueva posición es
Entonces, dado nuestro modelo de estado, obtenemos:
¿Es este hasta ahora un escenario / enfoque razonable para el filtro de Kalman?
¿Cómo elijo la matriz de covarianza de incertidumbre inicial / el estado inicial ? He oído que uno hace que los valores de la matriz sean "grandes", sea lo que sea que eso signifique. Por ejemplo, si se trata de una matriz diagonal para algunos ? Por ejemplo, ya que el diámetro de la tierra es aproximadamente y ya que ir a más de nunca va a suceder para un automóvil.
Para el parámetro de estado inicial, esperaría dos pasos de tiempo:
Paso de predicción
La predicción de estado funciona como anteriormente:
Predicción de covarianza:
- ¿De dónde obtengo la covarianza de error de proceso ? ¿Qué propiedades tiene que tener? Supongo positivo definitivo? ¿Qué significa esta matriz?
Paso de innovación
Innovación, que compara la medición con la predicción:
- (resuelto) : ¿De dónde obtengo la matriz de observación ? Qué significa eso?
EDITAR :
Lo tengo. En mi ejemplo, ya que codifica la relación entre el estado y la medición.
Covarianza de innovación:
Para la covarianza de error de medición tengo que saber algo sobre la forma en que funcionan mis sensores. Supongo que generalmente será una matriz diagonal, ya que los sensores serán independientes (?).
Kalman Gain:
Ahora, finalmente, el estado y la actualización de covarianza:
Fuentes:
- http://greg.czerniak.info/guides/kalman1/ (Encontré esto mientras escribía esta pregunta, ya respondió a un par de preguntas que, con suerte, eliminé).
- Diversas conferencias en KIT
fuente
Respuestas:
Respuesta 1: Sí, su modelo se ve razonable. Sin embargo, estás tratando la aceleración como constante. Si va a cambiar en su experimento, debe incluirlo en la matriz de error su sistema .Q
Respuesta 2: es su covarianza de estado inicial . Eso expresa cuánto sabe sobre la estimación inicial del estado . Si no tiene idea, es habitual configurar donde es grande. Ver, por ejemplo, esta respuesta que establece .P0 x0
Respuesta 3: Esta matriz expresa su error del sistema. Las entradas en esta matriz representan la covarianza de los valores correspondientes en su modelo de sistema. Si supone, por ejemplo, que la aceleración es tan constante como lo hizo, pero que va a cambiar en el mundo real, entonces puede incluir aquí la covarianza correspondiente.
Aparte de eso, siempre es una buena idea experimentar mucho con sus matrices yHacer que más grande dependerá más de sus datos en vivo, hacer que más grande dependerá más de su predicción. Rara vez un modelo es perfecto sin sintonizar.Q P Q P
fuente