He leído la descripción del filtro de Kalman, pero no tengo claro cómo se combina en la práctica. Parece estar dirigido principalmente a sistemas mecánicos o eléctricos, ya que quiere transiciones de estado lineales y que no es útil para detectar anomalías o localizar transiciones de estado por la misma razón (quiere transiciones de estado lineal), ¿es correcto? En la práctica, ¿cómo se encuentran típicamente los componentes que se espera que se conozcan de antemano para usar un filtro de Kalman? He enumerado los componentes, corríjame si mi comprensión de lo que necesita saber por adelantado es incorrecta.
Creo que no es necesario que se sepan "de antemano":
- Ruido de proceso
- Ruido de observación
- Estado real (esto es lo que el filtro de Kalman intenta estimar)
Creo que estos deben conocerse "de antemano" para usar un filtro de Kalman:
- El modelo de transición de estado lineal que aplicamos a (necesitamos saber esto de antemano, por lo que nuestros estados deben regirse por leyes conocidas, es decir, el filtro de Kalman es útil para corregir las mediciones cuando la transición de un estado a otro es buena entendido y determinista hasta un poco de ruido: no es un buscador de anomalías ni una herramienta para encontrar cambios de estado aleatorios)
- Vector de control
- Modelo de entrada de control que se aplica al vector de control (necesitamos saber esto de antemano, así que para usar un filtro de Kalman también necesitamos saber de antemano cómo nuestros valores de control afectan el modelo, hasta a lo sumo un poco de ruido gaussiano, y el efecto debe ser lineal)
- Covarianza del ruido del proceso (que parece depender del tiempo en el artículo de wikipedia, es decir, depende del tiempo ); parece que necesitamos saber esto de antemano y con el tiempo, supongo que en la práctica se toma como siendo constante?
- Un modelo de observación (lineal)
- Covarianza (que también parece depender del tiempo en el artículo de wikipedia) - problemas similares a
PD: Sí, sé que muchos de estos dependen del tiempo, simplemente eliminé todo el desorden de subíndices. Si lo desea, puede imaginar la letra minúscula a la derecha y hacia abajo de cada nombre de variable.
fuente
Respuestas:
Para algún contexto, volvamos a las ecuaciones del filtro de Kalman:
.x ( k + 1 ) = F ( k ) x ( k ) + G ( k ) u ( k ) + w ( k )z (k)= H (k) x (k)+ v (k)
En resumen, para un KF de vainilla simple:
debe estar completamente definido. Esto viene directamente de las ecuaciones diferenciales del sistema. Si no, tiene unproblema de doble estimación(es decir, estimar tanto el estado como el modelo del sistema). Si no tienes ecuaciones diferenciales del sistema, ¡entonces un KF no es para ti!F (k)
es, por definición, incognoscible. Después de todo, si lo supieras, ¡no sería un problema de estimación!x (k)
Hay una gran cantidad de "trucos" que se pueden hacer para evitar las restricciones en un KF simple, pero estos están mucho más allá del alcance de esta pregunta.
Idea tardía:
Si bien buscar en Google "Kalman Filter" da como resultado un millón de visitas, creo que vale la pena mirar un par de cosas. La página de Wikipedia está demasiado desordenada para aprender de manera efectiva :(
En AVR Freaks , hay una introducción "libre de ecuaciones" al filtro de Kalman que escribí hace algún tiempo para intentar introducir dónde se usa de verdad.
Si no le temes a las matemáticas, hay varios libros que vale la pena leer que están en el nivel superior de pregrado / posgrado. Pruebe Brown y Hwang, que incluye toda la teoría y muchos sistemas de ejemplo. El otro que viene altamente recomendado pero que no he leído es Gelb , ¡que tiene la clara ventaja de ser barato!
fuente