Filtro Kalman

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 7 de octubre de 2022; las comprobaciones requieren 2 ediciones .

El filtro de Kalman  es un filtro recursivo eficiente que estima el vector de estado de un sistema dinámico utilizando una serie de mediciones incompletas y ruidosas. El nombre de Rudolf Kalman .

El filtro de Kalman se usa ampliamente en aplicaciones de ingeniería y econométricas, desde sistemas de radar y visión hasta estimaciones de parámetros de modelos macroeconómicos [1] [2] . El filtrado de Kalman es una parte importante de la teoría de control y juega un papel importante en la creación de sistemas de control. Junto con un controlador lineal-cuadrático, el filtro de Kalman permite resolver el problema del control gaussiano lineal-cuadrático . El filtro de Kalman y el controlador lineal-cuadrático  son una posible solución a la mayoría de los problemas fundamentales en la teoría de control.

En la mayoría de las aplicaciones, la dimensión del vector de estado del objeto excede la dimensión del vector de datos de observación . Al mismo tiempo, el filtro de Kalman permite evaluar el estado interno completo del objeto.

El filtro de Kalman está destinado a la subestimación recursiva del vector de estado de un sistema dinámico conocido a priori, es decir, para calcular el estado actual del sistema, es necesario conocer la medida actual, así como el estado previo del filtro. sí mismo. Así, el filtro de Kalman, al igual que otros filtros recursivos, se implementa en el tiempo, no en la representación de frecuencias, pero, a diferencia de otros filtros similares, el filtro de Kalman opera no solo con estimaciones de estado, sino también con estimaciones de la incertidumbre (densidad de distribución) de el vector de estado, basado en la fórmula de probabilidad condicional de Bayes .

El algoritmo funciona en dos etapas. En la etapa de predicción, el filtro de Kalman extrapola los valores de las variables de estado así como sus incertidumbres. En la segunda etapa, de acuerdo con los datos de medición (obtenidos con algún error), se refina el resultado de la extrapolación. Debido a la naturaleza paso a paso del algoritmo, puede rastrear el estado del objeto en tiempo real (sin mirar hacia adelante, utilizando solo mediciones actuales e información sobre el estado anterior y su incertidumbre).

Existe la idea errónea de que la operación correcta del filtro de Kalman supuestamente requiere una distribución gaussiana de los datos de entrada. En el trabajo original de Kalman, los resultados sobre la covarianza mínima del filtro se obtuvieron sobre la base de proyecciones ortogonales, sin la suposición de errores de medición gaussianos [3] . Entonces simplemente se demostró que para el caso especial de la distribución del error gaussiano, el filtro proporciona una estimación exacta de la probabilidad condicional de la distribución del estado del sistema.

Un claro ejemplo de las capacidades del filtro es la obtención de estimaciones óptimas y continuamente actualizadas de la posición y velocidad de un objeto a partir de los resultados de una serie temporal de mediciones inexactas de su ubicación. Por ejemplo, en el radar la tarea es rastrear un objetivo, determinar su ubicación, velocidad y aceleración, mientras que los resultados de la medición llegan gradualmente y son muy ruidosos. El filtro de Kalman utiliza un modelo dinámico de objetivo probabilístico que especifica el tipo de objeto que probablemente se mueva, lo que reduce el impacto del ruido y proporciona buenas estimaciones de la posición del objeto en el momento presente, futuro o pasado.

Introducción

El filtro de Kalman opera con el concepto de vector de estado del sistema (un conjunto de parámetros que describen el estado del sistema en algún momento) y su descripción estadística. En el caso general, la dinámica de algún vector de estado viene descrita por las densidades de probabilidad de la distribución de sus componentes en cada momento del tiempo. En presencia de cierto modelo matemático de las observaciones del sistema, así como un modelo de cambio a priori en los parámetros del vector de estado (es decir, como un proceso de formación de Markov ), uno puede escribir una ecuación para el a posteriori densidad de probabilidad del vector de estado en cualquier momento. Esta ecuación diferencial se llama ecuación de Stratonovich . La ecuación de Stratonovich en forma general no está resuelta. Se puede obtener una solución analítica solo en el caso de una serie de restricciones (suposiciones):

El filtro de Kalman clásico es una ecuación para calcular el primer y segundo momento de la densidad de probabilidad posterior (en el sentido del vector de expectativas matemáticas y la matriz de varianzas, incluidas las mutuas) bajo restricciones dadas. En vista de que para una densidad de probabilidad normal, la esperanza matemática y la matriz de dispersión definen completamente la densidad de probabilidad, podemos decir que el filtro de Kalman calcula la densidad de probabilidad posterior del vector de estado en cada momento del tiempo, y por lo tanto completamente describe el vector de estado como una cantidad vectorial aleatoria.

Los valores calculados de expectativas matemáticas en este caso son estimaciones óptimas según el criterio de error cuadrático medio, lo que provoca su amplia aplicación.

Hay varias variedades del filtro de Kalman, que difieren en aproximaciones y trucos que deben aplicarse para reducir el filtro a la forma descrita y reducir su dimensión:

Además, existen análogos del filtro de Kalman, que utilizan total o parcialmente el modelo de tiempo continuo:

Reseña histórica y nombres

El filtro lleva el nombre del matemático húngaro Rudolf E. Kalman , que emigró a los Estados Unidos, aunque Thorvald Nicolai Thiele [4] [5] y Peter Swerling desarrollaron un algoritmo similar anteriormente (Thiele consideró solo una configuración particular, mientras que El algoritmo de Swerling es prácticamente idéntico al de Kalman). Richard S. Bucy de la Universidad del Sur de California contribuyó a la teoría que condujo al llamado filtro Kalman-Bucy. Stanley F. Schmidt es considerado el primero en implementar el filtro de Kalman durante la visita de Kalman al Centro de Investigación Ames , por lo que Kalman vio la aplicabilidad de sus ideas al problema de estimación de trayectoria para el programa Apollo , lo que finalmente condujo a la inclusión de este filtro en el sistema de navegación Apollo. El filtro de Kalman fue descrito por primera vez y desarrollado parcialmente por Swerling (1958), Kalman (1960) y Kalman y Bucy (1961).

Los filtros Kalman demostraron ser fundamentales para la implementación de los sistemas de navegación de submarinos de misiles balísticos nucleares de la Marina de los EE. UU. en sistemas de navegación de misiles de crucero, como los Tomahawks . También se utilizó en los sistemas de navegación y control del proyecto Space Shuttle de la NASA , se utiliza en los sistemas de control y navegación de la ISS .

El filtro digital de Kalman a veces se denomina filtro Stratonovich-Kalman-Bucy, ya que es un caso especial de un filtro no lineal más general desarrollado algo antes por el matemático soviético R. L. Stratonovich [6] [7] [8] [9] . De hecho, algunas de las ecuaciones para casos particulares del filtro lineal aparecieron en estos artículos de Stratonovich, publicados antes del verano de 1960, cuando Kalman conoció a Stratonovich durante una conferencia en Moscú.

El modelo de sistema dinámico utilizado

Los filtros de Kalman se basan en sistemas dinámicos lineales muestreados en el tiempo . Dichos sistemas se modelan mediante cadenas de Markov utilizando operadores lineales y términos con distribución normal . El estado del sistema se describe mediante un vector de dimensión finita: el vector de estado . En cada paso de tiempo, el operador lineal actúa sobre el vector de estado y lo transfiere a otro vector de estado (cambio de estado determinista), algún vector de ruido normal (factores aleatorios) y, en el caso general, un vector de control que simula el impacto del Se añade el sistema de control. El filtro de Kalman puede verse como un análogo de los modelos ocultos de Markov , con la diferencia de que las variables que describen el estado del sistema son elementos de un conjunto infinito de números reales (en contraste con el conjunto finito del espacio de estado en los modelos ocultos de Markov). ). Además, los modelos ocultos de Markov pueden usar distribuciones arbitrarias para valores de vectores de estado subsiguientes, en contraste con el filtro de Kalman, que usa un modelo de ruido distribuido normalmente. Existe una relación estricta entre las ecuaciones del filtro de Kalman y el modelo oculto de Markov. Roweis y Chahramani (1999) [10] ofrecen una revisión de estos y otros modelos .

Cuando se usa el filtro de Kalman para obtener estimaciones del vector de estado del proceso a partir de una serie de mediciones ruidosas, es necesario representar el modelo de este proceso de acuerdo con la estructura del filtro, en forma de una ecuación matricial de cierto tipo. Para cada paso k de la operación de filtro , es necesario determinar las matrices de acuerdo con la siguiente descripción: la evolución del proceso Fk ; matriz de observación H k ; la matriz de covarianza del proceso Q k ; matriz de covarianza del ruido de medición R k ; en presencia de acciones de control - la matriz de sus coeficientes B k .

El modelo del sistema (proceso) implica que el estado verdadero en el tiempo k se obtiene del estado verdadero en el tiempo k −1 de acuerdo con la ecuación

,

dónde

En el momento k , se realiza la observación (medida) z k del vector de estado verdadero x k , los cuales están interconectados por la ecuación

,

donde H k  es la matriz de medida que relaciona el vector de estado verdadero y el vector de medidas realizadas, v k  es el ruido de medida gaussiano blanco con esperanza matemática cero y la matriz de covarianza R k :

El estado inicial y los vectores de procesos aleatorios en cada paso { x 0 , w 1 , …, w k , v 1 , …, v k } se consideran independientes .

Este modelo no puede describir con precisión muchos sistemas dinámicos reales. En la práctica, las dinámicas no tenidas en cuenta en el modelo pueden estropear seriamente el rendimiento del filtro, especialmente cuando se trabaja con una señal estocástica desconocida en la entrada. Además, las dinámicas que no se tienen en cuenta en el modelo pueden hacer que el filtro sea inestable . Por otro lado, el ruido blanco independiente como señal no hará que el algoritmo diverja. La tarea de separar el ruido de medición de la dinámica no contabilizada en el modelo es difícil, se resuelve utilizando la teoría de los sistemas de control robustos .

Filtro de Kalman

El filtro de Kalman es un tipo de filtro recursivo . Para calcular la estimación del estado del sistema para el ciclo de trabajo actual, se necesita una estimación del estado (en forma de estimación del estado del sistema y estimación del error en la determinación de este estado) en el ciclo de trabajo anterior y mediciones en el ciclo actual. Esta propiedad lo distingue de los filtros de paquetes, que requieren el conocimiento del historial de mediciones y/o evaluaciones en el ciclo actual de operación. Además, bajo el registro comprenderemos la estimación del vector verdadero en el momento n , teniendo en cuenta las mediciones desde el momento en que comenzó el trabajo hasta el momento m inclusive.

El estado del filtro se establece mediante dos variables:

Cada iteración del filtro de Kalman se divide en dos fases: extrapolación (predicción) y corrección. Durante la extrapolación, el filtro recibe una estimación preliminar del estado del sistema (en la literatura rusa a menudo se denota por , donde significa "extrapolación", y k  es el número del paso en el que se obtuvo) para el paso actual según la estimación final del estado del paso anterior (o una estimación preliminar para el siguiente paso según la evaluación final del paso actual, según la interpretación). Esta estimación preliminar también se denomina estimación de estado previo, ya que no se utilizan las observaciones del paso correspondiente para obtenerla. En la fase de corrección, la extrapolación a priori se complementa con las medidas de corriente pertinentes para corregir la estimación. La estimación ajustada también se denomina estimación de estado posterior, o simplemente estimación de vector de estado . Por lo general, estas dos fases se alternan: la extrapolación se realiza en función de los resultados de la corrección hasta la siguiente observación, y la corrección se realiza junto con las observaciones disponibles en el siguiente paso, etc. Sin embargo, también es posible otro escenario: si para algunos razón por la cual la observación resultó no estar disponible, entonces la etapa de corrección puede omitirse y extrapolarse de la estimación no ajustada (extrapolación a priori). De manera similar, si las mediciones independientes están disponibles solo en ciclos de trabajo separados, las correcciones aún son posibles (usualmente usando una matriz de observación H k diferente ).

A continuación, considere el funcionamiento del filtro de Kalman óptimo clásico.

Paso de extrapolación

Extrapolación (predicción) del vector de estado del sistema de acuerdo con la estimación del vector de estado y el vector de control aplicado del paso ( k −1 ) al paso k :
Matriz de covarianza para el vector de estado extrapolado :

Etapa de corrección

Desviación de la observación obtenida en el paso k de la observación esperada en la extrapolación:
Matriz de covarianza para el vector de desviación (vector de error):
La matriz de ganancia óptima de Kalman formada en base a las matrices de covarianza de la extrapolación del vector de estado disponible y las mediciones obtenidas (a través de la matriz de covarianza del vector de desviación):
Corrección de la extrapolación del vector de estado obtenida anteriormente - obteniendo una estimación del vector de estado del sistema:
Cálculo de la matriz de covarianza para estimar el vector de estado del sistema:

La expresión de la matriz de covarianza para estimar el vector de estado del sistema es válida solo cuando se utiliza el vector de coeficientes óptimo reducido. En general, esta expresión tiene una forma más compleja.

Invariantes

Si el modelo es absolutamente preciso y las condiciones iniciales están especificadas con absoluta exactitud , los siguientes valores se conservan después de cualquier número de iteraciones de filtro, es decir, son invariantes:

Expectativas matemáticas de estimaciones y extrapolaciones del vector de estado del sistema, las matrices de error son vectores nulos:

donde  está la esperanza matemática .

Las matrices de covarianza calculadas de extrapolaciones, estimaciones del estado del sistema y el vector de error coinciden con las verdaderas matrices de covarianza:

Un ejemplo de construcción de un filtro

Imagine un carrito parado sobre rieles infinitamente largos en ausencia de fricción . Inicialmente descansa en la posición 0, pero bajo la influencia de factores aleatorios, tiene una aceleración aleatoria . Medimos la posición del carro cada ∆t segundos , pero las medidas son inexactas. Queremos obtener estimaciones de la posición del carro y su velocidad. Aplicando el filtro de Kalman a este problema, determinamos todas las matrices necesarias.

En este problema, las matrices F , H , R y Q no dependen del tiempo, por lo que omitimos sus índices.

La coordenada y la velocidad del carro se describen mediante un vector en el espacio de estado lineal

donde  es la velocidad (la primera derivada de la coordenada con respecto al tiempo).

Suponemos que entre ( k −1 )-th yk -th ciclos el carro se mueve con una aceleración constante a k , distribuida según la ley normal con expectativa matemática cero y desviación estándar σ a . De acuerdo con la mecánica newtoniana, se puede escribir

dónde

La matriz de control se escribe como un vector

.

El vector de control degenera en un escalar ak .

Matriz de covarianza de influencias aleatorias

( σ a  es un escalar).

En cada ciclo de trabajo se mide la posición del carro. Supongamos que el error de medición v k tiene una distribución normal con expectativa matemática cero y desviación estándar σ z . Después

,

dónde

,

y la matriz de covarianza del ruido observacional tiene la forma

.

La posición inicial del carro se conoce exactamente:

, .

Si la posición y la velocidad del carro se conocen solo aproximadamente, entonces la matriz de varianza se puede inicializar con un número L suficientemente grande para que este número exceda la varianza de las medidas de coordenadas:

, .

En este caso, en los primeros ciclos de funcionamiento, el filtro utilizará los resultados de la medida con más peso que la información disponible a priori.

Derivación de fórmulas

Matriz de covarianza de estimación de vector de estado

Por definición de la matriz de covarianza P k | k

.

Sustituimos la expresión para evaluar el vector de estado

y escriba la expresión para el vector de error

y vector de medición

.

Sacamos el vector de error de medida v k

.

Dado que el vector de error de medida v k no está correlacionado con otros argumentos, obtenemos la expresión

.

De acuerdo con las propiedades de la covarianza de vectores, esta expresión se transforma a la forma

.

Reemplazando la expresión de la matriz de covarianza de la extrapolación del vector de estado con P k | k −1 y la definición de la matriz de covarianza del ruido de observación en R k , obtenemos

.

La expresión resultante es válida para una matriz arbitraria de coeficientes, pero si la matriz de coeficientes es la óptima de Kalman, entonces esta expresión para la matriz de covarianza se puede simplificar.

Matriz de ganancia óptima

El filtro de Kalman minimiza la suma de los cuadrados de los errores de estimación del vector de estado esperado.

Vector de error de estimación de vector de estado

.

La tarea es minimizar la suma de las expectativas matemáticas de los cuadrados de los componentes de este vector:

,

lo que equivale a minimizar la traza de la matriz de covarianza de la estimación del vector de estado P k | k _ Sustituyamos las expresiones disponibles en la expresión de la matriz de covarianza de la estimación del vector de estado y completemos hasta el cuadrado completo:

.

Tenga en cuenta que el último término es la matriz de covarianza de alguna variable aleatoria, por lo que su traza no es negativa. El mínimo de seguimiento se alcanzará cuando el último término se establezca en cero:

Se afirma que esta matriz es la deseada y, cuando se utiliza como matriz de coeficientes en el filtro de Kalman, minimiza la suma de los cuadrados medios de los errores de estimación del vector de estado.

Matriz de covarianza de estimación de vector de estado cuando se usa la matriz de coeficiente óptimo

La expresión de la matriz de covarianza de la estimación del vector de estado P k | k al utilizar la matriz óptima de coeficientes tomará la forma:

.

Esta fórmula es computacionalmente más simple y, por lo tanto, casi siempre se usa en la práctica, pero es correcta solo cuando se usa la matriz óptima de coeficientes. Si, debido a la baja precisión computacional, hay un problema con la estabilidad computacional, o se usa específicamente una matriz de coeficientes no óptima, se debe usar la fórmula general para la matriz de covarianza de estimación del vector de estado.

Filtro de Kalman-Bucy

El filtro de Kalman-Bucy (llamado así por Richard Snowden-Bucy) es una versión de tiempo continuo del filtro de Kalman [11] [12] que se basa en el siguiente modelo de estado dinámico continuo:

, .

Aquí y representará las intensidades de dos términos (con las características del ruido blanco) y respectivamente.

El filtro consta de dos ecuaciones diferenciales, una de las cuales se utiliza para estimar el estado del sistema y la otra para estimar la covarianza:

,

donde el coeficiente de Kalman se obtiene por la fórmula

.

Nótese que en la expresión para la covarianza del ruido de observación representa al mismo tiempo la covarianza del error de predicción , y estas covarianzas son iguales solo para el caso de tiempo continuo [13] .

La diferencia entre los pasos de predicción y corrección en el filtrado discreto de Kalman no es válida para el caso continuo.

La segunda ecuación diferencial de covarianza es un ejemplo de la ecuación de Riccati .

Filtro Kalman híbrido

La mayoría de los sistemas físicos tienen un modelo de tiempo continuo para la evolución del estado del sistema y un modelo de medición discreto para refinar el estado. Por lo tanto, el modelo de filtro se puede representar de la siguiente manera:

,

dónde

. Inicialización Pronóstico

Las ecuaciones de pronóstico se toman del filtro de Kalman-Bucy con tiempo continuo en . La predicción del estado y covarianza se obtiene integrando las ecuaciones diferenciales con el valor inicial tomado del paso de corrección anterior.

Corrección

Las ecuaciones de corrección son idénticas a las del filtro discreto de Kalman.

Críticas al filtro de Kalman

Por el momento, la principal crítica al filtro de Kalman se lleva a cabo en las siguientes áreas [14] :

00a00

En consecuencia, la posición de los partidarios de la optimización de este filtro es que [15] :

¿Dónde está

Véase también

Notas

  1. Ingvar Strid y Karl Walentin (2009), Filtrado de bloque de Kalman para modelos DSGE a gran escala , Economía computacional (Springer) . — V. 33 (3): 277–304 , < http://www.riksbank.se/Upload/Document_riksbank/Kat_publicerat/WorkingPapers/2008/wp224ny.pdf > Archivado el 20 de abril de 2015 en Wayback Machine . 
  2. Martin Møller Andreasen (2008), Modelos DSGE no lineales, el filtro de Kalman de diferencia central y el filtro de partículas desplazado por la media , < ftp://ftp.econ.au.dk/creates/rp/08/rp08_33.pdf > 
  3. Kalman, RE (1960). "Un nuevo enfoque de los problemas de filtración y de predicción lineal". Revista de ingeniería básica 82 (1): págs. 35-45
  4. Lauritzen S. L. . Análisis de series de tiempo en 1880. Una discusión de las contribuciones hechas por TN Thiele: [ ing. ] // Revista Estadística Internacional. - 1981. - vol. 49, núm. 3 (diciembre). - Pág. 319-331. -doi : 10.2307/ 1402616 . . _ Deriva un procedimiento recursivo para estimar el componente de regresión y predecir el movimiento browniano. El procedimiento ahora se conoce como filtrado de Kalman.
  5. Lauritzen S. L. Thiele: Pionero en Estadística  : [ arq. 22 de abril de 2022 ]. - Nueva York: Oxford University Press , 2002. - Pág. 41. - ISBN 0-19-850972-3 . Resuelve el problema de estimar los coeficientes de regresión y predecir los valores del movimiento browniano por el método de los mínimos cuadrados y da un elegante procedimiento recursivo para realizar los cálculos. El procedimiento se conoce hoy en día como filtrado de Kalman.
  6. Stratonovich, R. L. (1959). Sistemas no lineales óptimos que provocan una separación de una señal con parámetros constantes del ruido . Radiofizika, 2:6, págs. 892-901.
  7. Stratonovich, R. L. (1959). Sobre la teoría del filtrado no lineal óptimo de funciones aleatorias . Teoría de la probabilidad y sus aplicaciones, 4, pp. 223-225.
  8. Stratonovich, RL (1960) Aplicación de la teoría de los procesos de Markov al filtrado óptimo . Ingeniería de Radio y Física Electrónica, 5:11, pp. 1-19.
  9. Stratonovich, R. L. (1960). Procesos condicionales de Markov . Teoría de la probabilidad y sus aplicaciones, 5, pp. 156-178.
  10. Roweis, S. y Ghahramani, Z., Una revisión unificadora de los modelos gaussianos lineales . Archivado el 28 de mayo de 2016 en Wayback Machine , Neural Comput. vol. 11, núm. 2, (febrero de 1999), págs. 305-345.
  11. Bucy, RS y Joseph, PD, Filtrado para procesos estocásticos con aplicaciones a la orientación, John Wiley & Sons, 1968; Segunda edición, AMS Chelsea Publ., 2005. ISBN 0-8218-3782-6
  12. Jazwinski, Andrew H., Procesos estocásticos y teoría de filtrado, Academic Press, Nueva York, 1970. ISBN 0-12-381550-9
  13. Kailath, Thomas, "Un enfoque innovador para la estimación de mínimos cuadrados Parte I: Filtrado lineal en ruido blanco aditivo", IEEE Transactions on Automatic Control , 13(6), 646-655, 1968
  14. http://www.tgizd.ru/mag/aviakos/aviakos_7_6_7.shtml Copia de archivo fechada el 10 de noviembre de 2011 en Wayback Machine G. F. Savinov Sobre algunas características del algoritmo de filtrado óptimo Kalman-Bucy // Aerospace Instrumentation No. 6, 2007
  15. A. Yu. Gorbachev Criterios para evaluar algoritmos de filtrado óptimos  (enlace inaccesible) // Aerospace Instrumentation No. 6, 2008

Literatura y publicaciones

Enlaces