Filtro de Kalman

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Rudolf Emil Kalman, co-inventor y desarrollador del Filtro de Kalman.
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.[1] 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, este puede correr en tiempo real usando únicamente las mediciones de entrada actuales, el estado calculado previamente y su matriz de incertidumbre, no requiere alguna otra información pasada 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 el filtro es ampliamente usado en campos como procesamiento de señales y econometría.

Sistema lineal en el espacio de estado[editar]

Se entiende como espacio de estado todos los posibles estados de un sistema dinámico. Cada estado corresponde a un punto del espacio de estado.

Caso de tiempo discreto:

Se tiene un sistema representado en el espacio de estado:

 \quad x_k=A_{k-1} x_{k-1}+B_{k-1} u_{k-1}+w_{k-1}

 \quad z_k=H_k x_k+v_k

donde:

\quad w_k es ruido blanco de valor promedio igual a cero y con varianza \quad Q_k en el instante k.

\quad v_k es ruido blanco de valor promedio igual a cero y con varianza \quad R_k en el instante k.

El filtro de Kalman permite estimar el estado \quad x_k a partir de las mediciones anteriores de \quad u_{k-i}, \quad z_{k-i}, \quad Q_{k-i}, \quad R_{k-i} y las estimaciones anteriores de \quad x_{k-i}.

Caso de tiempo continuo:

Se tiene un sistema representado en el espacio de estado:

\quad \frac{d}{dt}x(t)=A(t) x(t)+B(t) u(t)+w(t)

\quad z(t)=C(t) x(t)+v(t)

donde:

\quad w(t) es ruido blanco de valor promedio igual a cero y con varianza \quad Q(t) en el intervalo de tiempo descrito como t.

\quad v(t) es ruido blanco de valor promedio igual a cero y con varianza \quad R(t) en el intervalo de tiempo descrito como t.

El filtro de Kalman permite estimar el estado \quad x(t+dt) a partir de las mediciones anteriores de \quad u(t), \quad z(t), \quad Q(t), \quad R(t) y las estimaciones anteriores de \quad x(t).

Algoritmo del Filtro discreto de Kalman[editar]

El Filtro de Kalman es un algoritmo recursivo en el que el estado \quad x_k es considerado una variable aleatoria Gaussiana. El filtro de Kalman suele describirse en dos pasos: Predicción y Corrección.


Predicción

Estimación a priori

\hat{\textbf{x}}_{k|k-1} = \mathbf{\Phi}_{k} \ \textbf{x}_{k-1|k-1}

Covarianza del error asociada a la estimación a priori

\textbf{P}_{k|k-1} =  \mathbf{\Phi}_{k} \textbf{P}_{k-1|k-1} \mathbf{\Phi}_{k}^{\text{T}} + \textbf{Q}_{k}

Corrección

Actualización de la medición


\tilde{\textbf{y}}_k = \textbf{z}_k - \textbf{H}_k\hat{\textbf{x}}_{k|k-1}

Ganancia de Kalman \textbf{K}_k = \textbf{P}_{k|k-1}\textbf{H}_k^\text{T}(\textbf{H}_k \textbf{P}_{k|k-1} \textbf{H}_k^\text{T} + \textbf{R}_k)^{-1}
Estimación a posteriori \hat{\textbf{x}}_{k|k} = \hat{\textbf{x}}_{k|k-1} + \textbf{K}_k\tilde{\textbf{y}}_k
Covarianza del error asociada a la estimación a posteriori \textbf{P}_{k|k} = (I - \textbf{K}_k \textbf{H}_k) \textbf{P}_{k|k-1}

donde:

\mathbf{\Phi}_{k}: Matriz de Transición de estados. Es la matriz que relaciona  \textbf{x}_{k|k-1} con  \textbf{x}_{k-1|k-1} en la ausencia de funciones forzantes (funciones que dependen únicamente del tiempo y ninguna otra variable).

 \textbf{x}_{k|k-1}:  El estimado apriori del vector de estados.

\textbf{P}_{k|k-1} : Covarianza del error asociada a la estimación a priori.

 \textbf{z}_k :  Vector de mediciones al momento k.

 \textbf{H}_k :  La matriz que indica la relación entre mediciones y el vector de estado al momento k en el supuesto ideal de que no hubiera ruido en las mediciones.

 \textbf{R}_k :  La matriz de covarianza del ruido de las mediciones (depende de la resolución de los sensores).

Extensibilidad[editar]

En el caso de que el sistema dinámico sea no lineal, es posible usar una modificación del algoritmo llamada "Filtro de Kalman Extendido", el cual linealiza el sistema en torno al \hat x(t) identificado realmente, para calcular la ganancia y la dirección de corrección adecuada. En este caso, en vez de haber matrices A, B y C, hay dos funciones f(x,u,w) y h(x,v) que entregan la transición de estado y la observación (la salida contaminada) respectivamente. El modelo lineal dinámico con observación no lineal y no Gaussiano se estudia en este caso. Se extiende el teorema de Masreliez (ver. C. Johan Masreliez, 1975) como una aproximación de filtrado no Gaussiano con ecuación de estado lineal y ecuación de observaciones también lineal, al caso en que la ecuación de observaciones no lineal pueda aproximarse mediante el desarrollo en serie de Taylor de segundo orden. [2]

Primeras aplicaciones[editar]

Kalman encontró una audiencia receptiva de su filtro en el verano de 1960 en una visita de Stanley F. Schmitdt del Ames Research Center de NASA en Mountain View (Califonia). Kalman describió su resultado y Schimidt reconoció su potencial aplicativo - la estimación de la trayectoria y el problema del control del programa apolo. Schimdt comenzó a trabajar inmediatamente en lo que fue probablemente la primera implementación completa del filtro de Kalman. Entusiasmado sobre el éxito del mismo, Schimidt impulsó usar el filtro en trabajos similares. A comienzos de 1961, Schimidt describió sus resultados a Richard H. Battin del laboratorio de instrumentación del MIT (llamado más tarde el Charles Stark Draper Laboratory). Battin estuvo usando métodos de espacio de estado para el diseño y la implementación de sistemas de navegación astronáutica, y él hizo al filtro de Kalman parte del sistema de guía del Apollo, el cual fue diseñado y desarrollado en el laboratorio de instrumentación. A mediados de la década de 1960, influenciado por Schmidt, el filtro de Kalman se hizo parte del sistema de navegación del transporte aéreo C5A, siendo diseñado por Lockheed Aircraft Company. El filtro de Kalman resolvió el problema asociado a la fusión de datos asociado con la combinación de los datos del radar con los datos del sensor inercial al lograr una aproximación global de la trayectoria de la aeronave. Desde entonces ha sido parte integral de la estimación de trayectorias a bordo de las aeronaves y el diseño de sistemas de control.[3]

Impacto del filtro de Kalman en la tecnología[editar]

Desde el punto de vista de los problemas que involucran control y estimación, el Filtro de Kalman ha sido considerado el gran logro en la teoría de estimación del siglo veinte. Muchos de los logros desde su introducción no hubiesen sido posibles sin este. Se puede decir que el filtro de Kalman fue una de las tecnologías que permitió la era espacial ya que la precisión y eficiencia en la navegación de las naves espaciales a través del sistema solar puede no haber sido hecha sin este. El principal uso del filtro de Kalman ha sido en los sistemas de control modernos, en el seguimiento y navegación de todo tipo de vehículos, y en el diseño predictivo de estimación de los mismos.

Aplicaciones[editar]

Véase también[editar]

Notas[editar]

  1. 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).
  2. T. Cipra & A. Rubio; Kalman filter with a non-linear non-Gaussian observation relation, Springer (1991).
  3. Mohinder, S. Grewal (2001). Kalman Filtering. John Wiley & Sons, Inc. ISBN 0-471-26638-8. 


Enlaces externos[editar]