thumbnail|Rudolf Emil Kalman, coinventor y desarrollador del filtro de Kalman. thumb|500px|Algoritmo recursivo del filtro de Kalman

El filtro de Kalman es un algoritmo desarrollado por Rudolf E. Kalman en 1960 que sirve para poder identificar el estado oculto (no medible) de un sistema dinámico lineal, al igual que el observador de Luenberger, pero sirve además cuando el sistema está sometido a ruido blanco aditivo.Kalman, R. E.; A New Approach to Linear Filtering and Prediction Problems, Transactions of the ASME - Journal of Basic Engineering Vol. 82: pag. 35-45 (1960). La diferencia entre ambos es que en el observador de Luenberger, la ganancia K de realimentación del error debe ser elegida "a mano", mientras que el filtro de Kalman es capaz de escogerla de forma óptima cuando se conocen las varianzas de los ruidos que afectan al sistema.

Ya que el filtro de Kalman es un algoritmo recursivo, puede correr en tiempo real usando únicamente las mediciones de entrada actuales, el estado calculado previamente y su matriz de incertidumbre, y no requiere ninguna otra información adicional.

El filtro de Kalman tiene numerosas aplicaciones en tecnología. Una aplicación común es la guía, navegación y control de vehículos, especialmente naves espaciales. Además, se utiliza ampliamente en campos como el procesamiento de señales y la econometría.

Historia El método de filtrado recibe el nombre del emigrante húngaro Rudolf E. Kálmán, aunque Thorvald Nicolai Thiele y Peter Swerling desarrollaron un algoritmo similar. Richard S. Bucy, del Laboratorio de Física Aplicada de Johns Hopkins contribuyó a la teoría, causando que a veces se le conozca como el filtrado de Kalman–Bucy. Kalman se inspiró en derivar el filtro de Kalman aplicando variables de estado al problema del filtrado de Wiener. Stanley F. Schmidt es generalmente acreditado con el desarrollo de la primera implementación del filtro de Kalman. Se dio cuenta de que el filtro puede ser dividido en dos partes distintas, una para los lapsos de tiempo entre las salidas de los sensores y otra para la incorporación de mediciones. Fue durante una visita de Kalman al Centro de Investigación Ames de la NASA que Schmidt vio la aplicabilidad de las ideas de Kalman al problema no lineal de estimación de trayectorias para el programa Apolo, lo que llevó a su incorporación en la computadora de navegación del Apolo.

Este filtro digital a veces es denominado como el filtro de Stratonovich–Kalman–Bucy porque es un caso específico de un filtro no lineal más general desarrollado por el matemático soviético Ruslan Stratónovich. De hecho, algunas de las ecuaciones del filtro lineal aparecieron en artículos de Stratónovich publicados antes del verano de 1961, cuando Kálmán se reunió con Stratonovich durante una conferencia en Moscú.

El filtrado de Kalman fue descrito y desarrollado de forma parcial en artículos técnicos por Swerling (1958), Kálmán (1960) y Kálmán y Bucy (1961).

Los filtros de Kalman han sido vitales en la implementación del sistema de navegación en submarinos nucleares balísticos de la Marina de los Estados Unidos, también en los sistemas de guía y navegación de misiles de crucero como el Tomahawk de la Marina de Estados Unidos y el misil de crucero lanzado desde el aire de la Fuerza Aérea de Estados Unidos. También es usado en los sistemas de guía y navegación de vehículos de lanzamiento reutilizables y el control de actitud y navegación de naves espaciales que están en la Estación Espacial Internacional.

Descripción general del cálculo El filtrado de Kalman utiliza el modelo dinámico de un sistema (ej. Leyes físicas del movimiento), las entrada de control conocidas de dicho sistema y múltiples mediciones secuenciales (como las de los sensores) para formar un estimado de las cantidades variables del sistema (su estado) que es mejor que el estimado obtenido usando únicamente una medición. Por eso, es un algoritmo común de fusión de sensores y de datos.

Los datos ruidosos de los sensores, las aproximaciones en las ecuaciones que describen la evolución del sistema y los factores externos que no son contemplados limitan la precisión con la que es posible saber el estado del sistema. El filtro de Kalman maneja de forma efectiva la incertidumbre gracias al ruido en los datos de los sensores y, hasta cierto grado, los factores externos aleatorios. El filtro de Kalman produce una estimación del estado del sistema como un promedio entre el estado predicho del sistema y una nueva medida, usando un promedio ponderado. El propósito de los pesos es que los valores (menores) son más "confiables". Los pesos se calculan con la covarianza, que es una medida de la incertidumbre estimada en la predicción del estado del sistema. El resultado de este promedio ponderado es una estimación nueva del estado que se encuentra entre el estado predicho y el estado medido, y tiene una incertidumbre estimada menor que cualquiera de los dos por separado. Este proceso se repite en cada paso de tiempo, donde la estimación nueva y su covarianza informan la predicción usada en la iteración que sigue. Esto significa que el filtro de Kalman funciona de manera recursiva y solo requiere la última “mejor suposición” del estado del sistema, en lugar de toda la historia, para calcular un nuevo estado.

La certeza de las mediciones y la estimación del estado actual son consideraciones importantes. Es común discutir la respuesta del filtro en términos de ganancia del filtro de Kalman. Las ganancias de Kalman son el peso dado a las mediciones y el estimado actual puede "ajustarse" para alcanzar un desempeño particular. Con una ganancia alta, el filtro coloca más peso a las mediciones más recientes y se adapta a ellas más rápido. Con una ganancia baja, el filtro se ajusta más de cerca a las predicciones del modelo. En los extremos, una ganancia alta (cerca de uno) dará una trayectoria estimada más alta, mientras que una ganancia baja (cerca de cero) suavizará el ruido, pero bajará la capacidad de respuesta.

Al realizar los cálculos del filtro (como se discute más adelante), la estimación del estado y las covarianzas están codificadas en matrices por las múltiples dimensiones involucradas en una serie de cálculos. Esto permite representar relaciones lineales entre diferentes variables de estado (como posición, velocidad y aceleración) en cualquiera de los modelos de transición o covarianzas.

Ejemplo de aplicación Como un ejemplo de aplicación, consideremos el problema de determinar la ubicación exacta de un camión. El camión puede estar equipado con una unidad GPS que nos brinda una estimación de la posición con un margen de error de unos metros. El estimado del GPS probablemente sea ruidosa; las lecturas “saltan” rápidamente, aunque se mantienen dentro de unos pocos metros de la posición real. Además, dado que se espera que el camión siga las leyes de física, su posición también se puede estimar integrando su velocidad a lo largo del tiempo, lo cual termina llevando un registro de las revoluciones de las ruedas y el ángulo del volante. Esta técnica se conoce como navegación inercial (dead reckoning). Normalmente la navegación inercial proporcionará una estimación muy suave de la posición del camión, pero se desviará con el tiempo a medida de que acumulen errores pequeños.

En este ejemplo, se puede considerar que el filtro de Kalman opera en dos fases distintas: predicción y actualización. En la fase de predicción, la posición se modifica de acuerdo con las leyes físicas de movimiento (el modelo dinámico o de "transición de estados"). No solo calculará una nueva estimación de la posición, también se calculará una nueva covarianza. Tal vez esa covarianza sea proporcional a la velocidad del camión porque tenemos menos certeza sobre la precisión de la estimación de posición por la navegación oficial altas velocidades, pero mucha en bajas velocidades. Luego, en la fase de actualización, se toma una posición del camión a partir de la unidad GPS. Junto con esta medición llega cierta incertidumbre y su covarianza relativa con relación a la predicción de la fase anterior determina cuanto influirá la nueva medición en la predicción actualizada. Idealmente, como las posiciones de la navegación inercial tienden a desviarse de la posición real, las medidas del GPS deberían "jalar" a las estimaciones de la posición hacia la posición real, pero sin perturbarla al punto de volverse ruidosa y saltar rápidamente.

Descripción técnica y contexto El filtro de Kalman es un filtro recursivo eficiente que estima el estado interno de un sistema dinámico lineal a partir de una serie de mediciones ruidosas. Se utiliza en un amplio rango de aplicaciones en ingeniería y econometría desde el radar y visión por computadora hasta la estimación de modelos macroeconómicos estructurales, y es un tema importante en la teorías de control e ingeniería de sistemas de control. Juntos con el regulador lineal-cuadrático (LQR), el filtro el Kalman resuelve el problema de control lineal–cuadrático–gaussiano (LQG). El filtro de Kalman, el regulador lineal-cuadrático y el controlador lineal–cuadrático–gaussiano son soluciones a los problemas más fundamentales de la teoría de control.

En la mayoría de las aplicaciones, el estado interno es más grande (tiene más grados de libertad) que las pocas variables "observables" que se miden. Sin embargo, al combinar una serie de mediciones, el filtro de Kalman puede estimar todo el estado interno.

Para la teoría de Dempster–Shafer, cada ecuación de estado o de observación se considera un caso especial de una función de creencia lineal, y el filtrado de Kalman es una caso especial de la combinación de funciones de creencia lineales en un árbol de unión o árbol de Markov. Métodos adicionales incluyen el filtrado por creencias que utiliza actualizaciones bayesianas o basadas en evidencia para las ecuaciones de estado.

Una gran variedad de filtrados de Kalman existen en la actualidad: La formulación original de Kalman —ahora llamado el filtro de Kalman "simple" —, el filtro de Kalman–Bucy, el filtro "extendido" de Schmidt, el filtro de información, y una variedad de filtros de "raíz cuadrada" que fueron desarrollados por Bierman, Thornton y muchos otros. Quizá el filtro "simple" de Kalman más utilizado sea el bucle de enganche de fase (phase-locked loop, PLL), que ahora es ubicuo en radios, especialmente en radios de modulación de frecuencia (FM), televisores, receptores de comunicaciones satelitales, receptores de comunicaciones satelitales, sistemas de comunicación en el espacio exterior y básicamente cualquier otro equipo electrónico de comunicaciones.

Modelo de sistema dinámico subyacente El filtrado de Kalman está basado en sistemas dinámicos lineales discretizados en el dominio del tiempo. Son modelados con una cadena de Markov construida sobre operadores lineales perturbados por errores que pueden incluir ruido gaussiano. El estado del sistema objetivo se refiere a la configuración real del sistema (aunque oculta) de interés, que se representa como un vector de números reales. En cada incremento de tiempo discreto, un operador lineal se aplica al estado actual para generar un estado nuevo, con un poco de ruido mezclado y, opcionalmente, algo de información de los controles del sistema si se conocen. Luego, otro operador lineal mezclado con más ruido genera las salidas medibles (observaciones) a partir del estado verdadero ("oculto").

El filtrado de Kalman puede considerarse análogo al modelo oculto de Markov, con la diferencia de que las variables de estado ocultas tienen valores en un espacio continuo, a diferencia del espacio de estados discretos del modelo oculto de Markov. Hay una analogía fuerte entre las ecuaciones del filtro de Kalman y las del modelo oculto de Markov. Una revisión de este y otros modelos se presenta en Roweis y Ghahramani (1999) y en Hamilton (1994), Capítulo 13.