Filtro Kalman

Para las estadísticas y la teoría del control, el filtro de Kalman, también conocido como estimación cuadrática lineal (LQE), es un algoritmo que utiliza una serie de mediciones observadas a lo largo del tiempo, incluido el ruido estadístico y otras imprecisiones, y produce estimaciones de variables desconocidas que tienden a ser más precisas que aquellas basadas en una sola medición, al estimar una distribución de probabilidad conjunta sobre las variables para cada período de tiempo. El filtro lleva el nombre de Rudolf E. Kálmán, quien fue uno de los principales desarrolladores de su teoría.
Este filtro digital a veces se denomina filtro Stratonovich-Kalman-Bucy porque es un caso especial de un filtro no lineal más general desarrollado algo antes por el matemático soviético Ruslan Stratonovich. De hecho, algunas de las ecuaciones de filtros lineales de casos especiales aparecieron en artículos de Stratonovich que se publicaron antes del verano de 1960, cuando Kalman se reunió con Stratonovich durante una conferencia en Moscú.
El filtrado de Kalman tiene numerosas aplicaciones tecnológicas. Una aplicación común es para la guía, navegación y control de vehículos, particularmente aeronaves, naves espaciales y barcos posicionados dinámicamente. Además, el filtrado de Kalman es un concepto muy aplicado en el análisis de series de tiempo utilizado para temas como el procesamiento de señales y la econometría. El filtrado de Kalman también es uno de los temas principales de la planificación y el control del movimiento robótico y se puede utilizar para la optimización de la trayectoria. El filtrado de Kalman también funciona para modelar el control del movimiento del sistema nervioso central. Debido a la demora de tiempo entre la emisión de comandos de motor y la recepción de retroalimentación sensorial, el uso de filtros de Kalman proporciona un modelo realista para realizar estimaciones del estado actual de un sistema de motor y emitir comandos actualizados.
El algoritmo funciona mediante un proceso de dos fases. Para la fase de predicción, el filtro de Kalman produce estimaciones de las variables de estado actual, junto con sus incertidumbres. Una vez que se observa el resultado de la siguiente medición (necesariamente corrompido con algún error, incluido el ruido aleatorio), estas estimaciones se actualizan utilizando un promedio ponderado, dando más peso a las estimaciones con mayor certeza. El algoritmo es recursivo. Puede operar en tiempo real, utilizando únicamente las medidas presentes de entrada y el estado calculado previamente y su matriz de incertidumbre; no se requiere información pasada adicional.
La optimización del filtrado de Kalman supone que los errores tienen una distribución normal (gaussiana). En palabras de Rudolf E. Kálmán: "En resumen, se hacen las siguientes suposiciones sobre los procesos aleatorios: Se puede pensar que los fenómenos aleatorios físicos se deben a fuentes aleatorias primarias que excitan sistemas dinámicos. Se supone que las fuentes primarias son procesos aleatorios gaussianos independientes con media cero; los sistemas dinámicos serán lineales." Aunque independientemente de la gaussianidad, si se conocen las covarianzas del proceso y de la medición, el filtro de Kalman es el mejor estimador lineal posible en el sentido del mínimo error cuadrático medio. Es un error común (perpetuado en la literatura) que el filtro de Kalman no se puede aplicar rigurosamente a menos que se suponga que todos los procesos de ruido son gaussianos.
También se han desarrollado extensiones y generalizaciones del método, como el filtro de Kalman extendido y el filtro de Kalman sin perfume que funcionan en sistemas no lineales. La base es un modelo oculto de Markov tal que el espacio de estado de las variables latentes es continuo y todas las variables latentes y observadas tienen distribuciones gaussianas. El filtrado de Kalman se ha utilizado con éxito en la fusión de sensores múltiples y en las redes de sensores distribuidos para desarrollar el filtrado de Kalman distribuido o de consenso.
Historia
El método de filtrado lleva el nombre del emigrado húngaro Rudolf E. Kálmán, aunque Thorvald Nicolai Thiele y Peter Swerling desarrollaron un algoritmo similar anteriormente. Richard S. Bucy, del Laboratorio de Física Aplicada de Johns Hopkins, contribuyó a la teoría, lo que provocó que a veces se la conociera como filtrado de Kalman-Bucy. A Stanley F. Schmidt generalmente se le atribuye el desarrollo de la primera implementación de un filtro Kalman. Se dio cuenta de que el filtro se podía dividir en dos partes distintas, con una parte para los períodos de tiempo entre las salidas del sensor y otra parte para incorporar mediciones. Fue durante una visita de Kálmán al Centro de Investigación Ames de la NASA que Schmidt vio la aplicabilidad de las ideas de Kálmán al problema no lineal de estimación de trayectoria para el programa Apolo, lo que resultó en su incorporación en la computadora de navegación Apolo.
Este filtrado de Kalman se describió por primera vez y se desarrolló parcialmente en artículos técnicos de Swerling (1958), Kalman (1960) y Kalman y Bucy (1961).
El computador Apollo usó 2k de RAM núcleo magnético y cuerda de alambre de 36k [...]. La CPU fue construida desde ICs [...]. La velocidad del reloj era de menos de 100 kHz [...]. El hecho de que los ingenieros del MIT pudieran empaquetar tan buen software (una de las primeras aplicaciones del filtro Kalman) en un equipo tan pequeño es realmente notable.
—Entrevista a Jack Crenshaw, de Matthew Reed, TRS-80.org (2009) [1]
Los filtros Kalman han sido vitales en la implementación de los sistemas de navegación de los submarinos de misiles balísticos nucleares de la Marina de los EE. UU. y en los sistemas de guía y navegación de los misiles de crucero como el misil Tomahawk de la Marina de los EE. UU. y la Fuerza Aérea de los EE. UU. 39; misil de crucero lanzado desde el aire. También se utilizan en los sistemas de guía y navegación de los vehículos de lanzamiento reutilizables y en los sistemas de navegación y control de actitud de las naves espaciales que atracan en la Estación Espacial Internacional.
Resumen del cálculo
El filtrado de Kalman utiliza el modelo dinámico de un sistema (p. ej., las leyes físicas del movimiento), las entradas de control conocidas de ese sistema y varias mediciones secuenciales (como las de los sensores) para formar una estimación de la capacidad del sistema. s cantidades variables (su estado) que es mejor que la estimación obtenida usando una sola medida. Como tal, es un algoritmo común de fusión de sensores y fusión de datos.
Los datos de sensores ruidosos, las aproximaciones en las ecuaciones que describen la evolución del sistema y los factores externos que no se tienen en cuenta limitan la precisión con la que se puede determinar el estado del sistema. El filtro de Kalman trata eficazmente la incertidumbre debida a los datos ruidosos del sensor y, hasta cierto punto, a los factores externos aleatorios. El filtro de Kalman produce una estimación del estado del sistema como un promedio del estado previsto del sistema y de la nueva medición utilizando un promedio ponderado. El propósito de las ponderaciones es que los valores con mejor (es decir, menor) incertidumbre estimada sean "confiables" más. Los pesos se calculan a partir de la covarianza, una medida de la incertidumbre estimada de la predicción del estado del sistema. El resultado del promedio ponderado es una nueva estimación de estado que se encuentra entre el estado pronosticado y el medido, y tiene una mejor incertidumbre estimada que cualquiera de los dos por separado. Este proceso se repite en cada paso de tiempo, con la nueva estimación y su covarianza informando la predicción utilizada en la siguiente iteración. Esto significa que el filtro de Kalman funciona de forma recursiva y requiere solo la última "mejor suposición", en lugar de todo el historial, del estado de un sistema para calcular un nuevo estado.
Las medidas' la calificación de certeza y la estimación del estado actual son consideraciones importantes. Es común discutir la respuesta del filtro en términos de la ganancia del filtro Kalman. La ganancia de Kalman es el peso dado a las mediciones y la estimación del estado actual, y se puede "ajustar" para lograr un desempeño particular. Con una ganancia alta, el filtro otorga más peso a las mediciones más recientes y, por lo tanto, se ajusta a ellas de manera más receptiva. Con una ganancia baja, el filtro se ajusta más a las predicciones del modelo. En los extremos, una ganancia alta cercana a uno dará como resultado una trayectoria estimada con más saltos, mientras que una ganancia baja cercana a cero suavizará el ruido pero disminuirá la capacidad de respuesta.
Al realizar los cálculos reales para el filtro (como se explica a continuación), la estimación del estado y las covarianzas se codifican en matrices debido a las múltiples dimensiones involucradas en un único conjunto de cálculos. Esto permite una representación de relaciones lineales entre diferentes variables de estado (como posición, velocidad y aceleración) en cualquiera de los modelos de transición o covarianzas.
Aplicación de ejemplo
Como aplicación de ejemplo, considere el problema de determinar la ubicación precisa de un camión. El camión puede equiparse con una unidad de GPS que proporciona una estimación de la posición en unos pocos metros. Es probable que la estimación del GPS sea ruidosa; lecturas 'saltar alrededor' rápidamente, aunque permaneciendo a pocos metros de la posición real. Además, dado que se espera que el camión siga las leyes de la física, también se puede estimar su posición integrando su velocidad a lo largo del tiempo, determinada mediante el seguimiento de las revoluciones de las ruedas y el ángulo del volante. Esta es una técnica conocida como navegación a estima. Por lo general, la navegación a estima proporcionará una estimación muy fluida de la posición del camión, pero se desviará con el tiempo a medida que se acumulen pequeños errores.
Para este ejemplo, se puede pensar que el filtro de Kalman opera en dos fases distintas: predicción y actualización. En la fase de predicción, la posición anterior del camión se modificará de acuerdo con las leyes físicas del movimiento (el modelo dinámico o de 'transición de estado'). No solo se calculará una nueva estimación de posición, sino que también se calculará una nueva covarianza. Tal vez la covarianza sea proporcional a la velocidad del camión porque no estamos seguros de la precisión de la estimación de la posición de navegación a estima a altas velocidades, pero estamos muy seguros de la estimación de la posición a bajas velocidades. A continuación, en la fase de actualización, se toma una medida de la posición del camión desde la unidad GPS. Junto con esta medición viene cierta cantidad de incertidumbre, y su covarianza relativa a la predicción de la fase anterior determina cuánto afectará la nueva medición a la predicción actualizada. Idealmente, dado que las estimaciones de navegación a estima tienden a alejarse de la posición real, la medición del GPS debería llevar la estimación de la posición hacia la posición real, pero no perturbarla hasta el 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 una amplia gama de aplicaciones econométricas y de ingeniería, desde radar y visión artificial hasta la estimación de modelos macroeconómicos estructurales, y es un tema importante en la teoría de control y la ingeniería de sistemas de control. Junto con el regulador lineal-cuadrático (LQR), el filtro de Kalman resuelve el problema de control lineal-cuadrático-gaussiano (LQG). El filtro de Kalman, el regulador cuadrático lineal y el controlador gaussiano cuadrático lineal son soluciones a los que posiblemente son los problemas más fundamentales de la teoría de control.
En la mayoría de las aplicaciones, el estado interno es mucho mayor (tiene más grados de libertad) que los pocos "observables" parámetros que se miden. Sin embargo, al combinar una serie de medidas, el filtro de Kalman puede estimar todo el estado interno.
Para la teoría de Dempster-Shafer, cada ecuación de estado u observación se considera un caso especial de función de creencia lineal y el filtrado de Kalman es un caso especial de combinación de funciones de creencia lineal en un árbol de combinación o árbol de Markov. Los métodos adicionales incluyen el filtrado de creencias que utiliza Bayes o actualizaciones probatorias de las ecuaciones de estado.
Actualmente existe una amplia variedad de filtros Kalman, a partir de la fórmula original de Kalman, que ahora se denomina "simple" Filtro de Kalman, filtro de Kalman-Bucy, filtro de Schmidt "extendido" filtro, el filtro de información y una variedad de "raíz cuadrada" filtros que fueron desarrollados por Bierman, Thornton y muchos otros. Quizás el tipo de filtro de Kalman muy simple que se usa más comúnmente es el bucle de enganche de fase, que ahora es omnipresente en las radios, especialmente las radios de modulación de frecuencia (FM), los televisores, los receptores de comunicaciones por satélite, los sistemas de comunicaciones del espacio exterior y casi cualquier otro dispositivo electrónico. equipo de comunicaciones.
Modelo de sistema dinámico subyacente
El filtrado de Kalman se basa en sistemas dinámicos lineales discretizados en el dominio del tiempo. Se modelan en una cadena de Markov construida sobre operadores lineales perturbados por errores que pueden incluir ruido gaussiano. El estado del sistema de destino se refiere a la configuración de interés del sistema de verdad básica (aunque oculta), que se representa como un vector de números reales. En cada incremento de tiempo discreto, se aplica un operador lineal al estado para generar el nuevo estado, con algo de ruido mezclado y, opcionalmente, alguna información de los controles del sistema si se conocen. Luego, otro operador lineal mezclado con más ruido genera los resultados medibles (es decir, la observación) del estado verdadero ('oculto'). El filtro 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 en oposición a un espacio de estado discreto como en el modelo oculto de Markov. Existe una fuerte analogía entre las ecuaciones de un filtro de Kalman y las del modelo oculto de Markov. En Roweis y Ghahramani (1999) y Hamilton (1994), Capítulo 13, se ofrece una revisión de este y otros modelos.
Para utilizar el filtro de Kalman para estimar el estado interno de un proceso dada solo una secuencia de observaciones ruidosas, se debe modelar el proceso de acuerdo con el siguiente marco. Esto significa especificar las matrices, para cada paso de tiempo k, siguiendo:
- Fk, el modelo de transición estatal;
- Hk, el modelo de observación;
- Qk, la covariancia del ruido del proceso;
- Rk, la covariancia del ruido de observación;
- y a veces Bk, el modelo de entrada de control como se describe a continuación; si Bk se incluye, entonces también hay
- uk, el vector de control, representando la entrada controladora en el modelo de entrada de control.

El modelo de filtro de Kalman asume que el estado verdadero en el momento k evoluciona desde el estado en (k − 1) según
- xk=Fkxk− − 1+Bkuk+wk{displaystyle mathbf {x} ¿Qué? _{k-1}+mathbf {B} {K}mathbf {U} ¿Qué?
dónde
- Fk es el modelo de transición estatal que se aplica al estado anterior xk−1;
- Bk es el modelo de entrada de control que se aplica al vector de control uk;
- wk es el ruido del proceso, que se supone que se extrae de una distribución normal multivariada cero, N{displaystyle {fn}, con covariancia, Qk: wk♪ ♪ N()0,Qk){displaystyle mathbf {w} ¿Por qué?.
En el tiempo k una observación (o medición) zk del estado verdadero x k se hace de acuerdo con
- zk=Hkxk+vk{displaystyle mathbf {z} ¿Qué? ¿Qué?
dónde
- Hk es el modelo de observación, que mapea el verdadero espacio estatal en el espacio observado y
- vk es el ruido de observación, que se supone que es cero medio ruido blanco gaussiano con covariancia Rk: vk♪ ♪ N()0,Rk){displaystyle mathbf {v} ¿Por qué?.
El estado inicial y los vectores de ruido en cada paso {x0, w1,..., wk, v1,... vk} se supone que son mutuamente independientes.
Muchos sistemas dinámicos en tiempo real no se ajustan exactamente a este modelo. De hecho, la dinámica no modelada puede degradar seriamente el rendimiento del filtro, incluso cuando se suponía que funcionaba con señales estocásticas desconocidas como entradas. La razón de esto es que el efecto de la dinámica no modelada depende de la entrada y, por lo tanto, puede llevar el algoritmo de estimación a la inestabilidad (diverge). Por otro lado, las señales de ruido blanco independientes no harán que el algoritmo diverja. El problema de distinguir entre el ruido de medición y la dinámica no modelada es difícil y se trata como un problema de teoría de control que usa un control robusto.
Detalles
El filtro Kalman es un estimador recursivo. Esto significa que sólo el estado estimado del paso del tiempo anterior y la medición actual son necesarias para calcular la estimación para el estado actual. En contraste con las técnicas de estimación por lotes, no se requiere ningún historial de observaciones y/o estimaciones. En lo que sigue, la notación x^ ^ n▪ ▪ m{displaystyle {hat {mathbf {x} } {nmid m} representa la estimación x{displaystyle mathbf {x} a la vez n de las observaciones hasta el momento m ≤ n.
El estado del filtro está representado por dos variables:
- xk▪ ▪ k{displaystyle mathbf {x} ¿Qué?, el a posteriori estimación del estado significa a tiempo k de las observaciones hasta el momento k;
- Pk▪ ▪ k{displaystyle mathbf {} _{kmid k}, el a posteriori Estimación de la matriz de covariancia (medida de la exactitud estimada de la estimación estatal).
La estructura del algoritmo del filtro de Kalman se asemeja a la del filtro Alpha beta. El filtro de Kalman se puede escribir como una sola ecuación; sin embargo, a menudo se conceptualiza como dos fases distintas: "Predecir" y "Actualizar". La fase de predicción utiliza la estimación del estado del paso de tiempo anterior para producir una estimación del estado en el paso de tiempo actual. Esta estimación del estado pronosticado también se conoce como estimación del estado a priori porque, aunque es una estimación del estado en el intervalo de tiempo actual, no incluye información de observación del intervalo de tiempo actual. En la fase de actualización, la innovación (el residuo preajustado), es decir, la diferencia entre la predicción a priori actual y la información de observación actual, se multiplica por la ganancia de Kalman óptima y se combina con el estado anterior. estimación para refinar la estimación del estado. Esta estimación mejorada basada en la observación actual se denomina estimación de estado a posteriori.
Por lo general, las dos fases se alternan, con la predicción avanzando el estado hasta la siguiente observación programada y la actualización incorporando la observación. Sin embargo, esto no es necesario; si una observación no está disponible por algún motivo, se puede omitir la actualización y realizar varios procedimientos de predicción. Asimismo, si se dispone de múltiples observaciones independientes al mismo tiempo, se pueden realizar múltiples procedimientos de actualización (normalmente con diferentes matrices de observación Hk).
Predecir
Preculpado (a prioriEstimación del estado | x^ ^ k▪ ▪ k− − 1=Fkxk− − 1▪ ▪ k− − 1+Bkuk{displaystyle {hat {mathbf {x} - ¿Qué? ¿Por qué? ¿Qué? |
Preculpado (a priori) estimación de la covariancia | P^ ^ k▪ ▪ k− − 1=FkPk− − 1▪ ▪ k− − 1FkT+Qk{displaystyle {hat {mathbf}_{kmid k-1}=mathbf {f}mathbf} {P} _{k-1mid k-1}mathbf {F}{k}{textsf {T}+mathbf {Q} _{k} |
Actualizar
Innovación o medición pre-fit residual | Sí.~ ~ k=zk− − Hkx^ ^ k▪ ▪ k− − 1{displaystyle {fnMitbf} - ¿Qué? ¿Qué? } |
Covariancia de innovación (o pre-fit residual) | Sk=HkP^ ^ k▪ ▪ k− − 1HkT+Rk{displaystyle mathbf {fnMicrosoft} {fnh} {fnh}mfnh}mfnhfnh}mfnh}mfnh} {T}+mathbf {R} _{k} |
Optimal Kalman gana | Kk=P^ ^ k▪ ▪ k− − 1HkTSk− − 1{displaystyle mathbf {K} _{k}={hat {mathbf {}_{kmid k-1}mathbf {H} _{k}{textsf {T}Mathbf {fnMicrosoft Sans Serif} |
Actualizado (a posterioriEstimación del estado | xk▪ ▪ k=x^ ^ k▪ ▪ k− − 1+KkSí.~ ~ k{displaystyle mathbf {x} ¿Qué? {cHFF} {cHFF}cHFF} {cHFF} {cHFF}cHFF} ♪♪ |
Actualizado (a posteriori) estimación de la covariancia | PkSilenciok=()I− − KkHk)P^ ^ kSilenciok− − 1{displaystyle mathbf {P} _{k habitk}=left(mathbf) - Mathbf {K}-Mathbf {H} {H}right){hat {mathbf {} }_{k habitk-1} |
Medición posterior al ajuste residual | Sí.~ ~ k▪ ▪ k=zk− − Hkxk▪ ▪ k{displaystyle {fnMitbf} - ¿Qué? ¿Qué? |
La fórmula para la covarianza estimada actualizada (a posteriori) anterior es válida para la ganancia óptima de Kk que minimiza el error residual, en qué forma se usa más ampliamente en las aplicaciones. La prueba de las fórmulas se encuentra en la sección derivaciones, donde también se muestra la fórmula válida para cualquier Kk.
Una manera más intuitiva de expresar la estimación actualizada del estado (x^ ^ k▪ ▪ k{displaystyle {hat {mathbf {x} }) es:
- xk▪ ▪ k=()I− − KkHk)x^ ^ k▪ ▪ k− − 1+Kkzk{displaystyle mathbf {x} ¿Por qué? }_{kmid k-1}+mathbf {K}Mathbf {z} _{k}
Esta expresión nos recuerda una interpolación lineal, x=()1− − t)()a)+t()b){displaystyle x=(1-t)(a)+t(b)} para t{displaystyle t} [0,1]. En nuestro caso:
- t{displaystyle t} es la ganancia Kalman (Kk{displaystyle mathbf {K} _{k}), una matriz que toma valores de 0{displaystyle 0} (alto error en el sensor) a I{displaystyle Yo... (bajo error).
- a{displaystyle a} es el valor estimado del modelo.
- b{displaystyle b} es el valor de la medición.
Esta expresión también se parece al paso de actualización del filtro alfa beta.
Invariantes
Si el modelo es preciso, y los valores para x^ ^ 0▪ ▪ 0{displaystyle {hat {mathbf {x} } y P0▪ ▪ 0{displaystyle mathbf {P} {0mid0} reflejar con precisión la distribución de los valores del estado inicial, entonces se conservan los siguientes invariantes:
- E [xk− − x^ ^ k▪ ▪ k]=E [xk− − x^ ^ k▪ ▪ k− − 1]=0E [Sí.~ ~ k]=0{displaystyle {begin{aligned}operatorname [Mathbf {x] _{hat {mathbf {x} ♪♪♪♪♪♪♪♪♪♪♪♪♪ [Mathbf {x] _{hat {mathbf {x} #### ## #### ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ####################################################################################################################################################################################### {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}
Donde E [.. ]{displaystyle operatorname {E} [xi] es el valor esperado .. {displaystyle xi }. Es decir, todas las estimaciones tienen un error medio de cero.
También:
- Pk▪ ▪ k=cov ()xk− − x^ ^ k▪ ▪ k)Pk▪ ▪ k− − 1=cov ()xk− − x^ ^ k▪ ▪ k− − 1)Sk=cov ()Sí.~ ~ k){displaystyle {begin{aligned}mathbf {P} _{kmid k} Alguien=operatorname {cov} left(mathbf {x} ¿Qué? ¿Qué? {C} left(mathbf {x} ¿Qué? {fnMicrosoft Sans Serif} {fnK} {f}fnMicrosoft} {fnMicrosoft} {f}fnMitbf {f}fnK} {fnMicrosoft Sans Serif}
para que las matrices de covarianza reflejen con precisión la covarianza de las estimaciones.
Estimación de las covarianzas de ruido Qk y Rk
La implementación práctica de un filtro de Kalman suele ser difícil debido a la dificultad de obtener una buena estimación de las matrices de covarianza de ruido Qk y Rk. Se ha realizado una amplia investigación para estimar estas covarianzas a partir de los datos. Un método práctico para hacer esto es la técnica de mínimos cuadrados de autocovarianza (ALS) que utiliza las autocovarianzas con retraso en el tiempo de los datos operativos de rutina para estimar las covarianzas. El código GNU Octave y Matlab utilizado para calcular las matrices de covarianza de ruido mediante la técnica ALS está disponible en línea mediante la Licencia pública general GNU. Se ha propuesto Field Kalman Filter (FKF), un algoritmo bayesiano, que permite la estimación simultánea del estado, los parámetros y la covarianza del ruido. El algoritmo FKF tiene una formulación recursiva, una buena convergencia observada y una complejidad relativamente baja, lo que sugiere que el algoritmo FKF puede ser una alternativa valiosa a los métodos de mínimos cuadrados de autocovarianza.
Optimidad y rendimiento
Se deduce de la teoría que el filtro de Kalman proporciona una estimación de estado óptima en los casos en que a) el modelo coincide perfectamente con el sistema real, b) el ruido de entrada es "blanco" (sin correlación) y c) las covarianzas del ruido se conocen exactamente. El ruido correlacionado también se puede tratar con filtros de Kalman. Durante las últimas décadas se han propuesto varios métodos para la estimación de la covarianza del ruido, incluido el ALS, mencionado en la sección anterior. Después de estimar las covarianzas, es útil evaluar el rendimiento del filtro; es decir, si es posible mejorar la calidad de la estimación del estado. Si el filtro de Kalman funciona de manera óptima, la secuencia de innovación (el error de predicción de salida) es un ruido blanco, por lo que la propiedad de blancura de las innovaciones mide el rendimiento del filtro. Se pueden utilizar varios métodos diferentes para este propósito. Si los términos de ruido se distribuyen de una manera no gaussiana, en la literatura se conocen métodos para evaluar el rendimiento de la estimación del filtro, que utilizan desigualdades de probabilidad o teoría de muestras grandes.
Ejemplo de aplicación, técnica
Considere un camión sobre rieles rectos sin fricción. Inicialmente, el camión está parado en la posición 0, pero es sacudido de un lado a otro por fuerzas aleatorias incontroladas. Medimos la posición del camión cada Δt segundos, pero estas medidas son imprecisas; queremos mantener un modelo de la posición y la velocidad del camión. Mostramos aquí cómo derivamos el modelo a partir del cual creamos nuestro filtro de Kalman.
Desde F,H,R,Q{displaystyle mathbf {F}mathbf {H}Mathbf {R}Mathbf {Q} son constantes, sus índices de tiempo se bajan.
La posición y la velocidad del camión se describen mediante el espacio de estado lineal
- xk=[xxÍ Í ]{displaystyle mathbf {x} ¿Por qué? {x}end{bmatrix}}
Donde xÍ Í {displaystyle {dot {x}} es la velocidad, es decir, el derivado de la posición con respecto al tiempo.
Suponemos que entre el paso de tiempo (k − 1) y k, las fuerzas incontroladas causan una aceleración constante de ak que se distribuye normalmente con media 0 y desviación estándar σa. De las leyes del movimiento de Newton concluimos que
- xk=Fxk− − 1+Gak{displaystyle mathbf {x} _{k}=mathbf {F} mathbf {x} _{k-1}+mathbf {G} a_{k}
(no hay Bu{displaystyle mathbf {B} u} término ya que no hay entradas de control conocidas. En su lugar, ak es el efecto de una entrada desconocida y G{displaystyle mathbf {G} aplica ese efecto al vector del estado
- F=[1Δ Δ t01]G=[12Δ Δ t2Δ Δ t]{displaystyle {begin{aligned}mathbf {F}={begin{bmatrix}1 ventajaDelta t reducida1end{bmatrix}[4pt]mathbf {G}={begin{bmatrix}{frac {1}{2}{ Delta tend{bmatrix}end{aligned}
para que
- xk=Fxk− − 1+wk{displaystyle mathbf {x} ¿Qué? ¿Qué? ¿Qué?
dónde
- wk♪ ♪ N()0,Q)Q=GGTσ σ a2=[14Δ Δ t412Δ Δ t312Δ Δ t3Δ Δ t2]σ σ a2.{displaystyle {begin{aligned}mathbf {w} _{k} limitsim N(0,mathbf {Q})\\Mathbf {Q} {G} mathbf {G} {textosf}sigma ¿Por qué? {1}{4}{ Delta t}{4} {1}{2}{ Delta t} {3}[6pt]{frac {1}{2}{ Delta t} {3} {Delta t} {2}end{bmatrix}sigma ¿Qué?
La matriz Q{displaystyle mathbf {Q} no es de rango completo (es de rango uno si Δ Δ tل ل 0{displaystyle Delta tneq 0}). Por consiguiente, la distribución N()0,Q){displaystyle N(0,mathbf {Q}} no es absolutamente continuo y no tiene función de densidad de probabilidad. Otra manera de expresar esto, evitando distribuciones explícitas degeneradas es dada por
- wk♪ ♪ G⋅ ⋅ N()0,σ σ a2).{displaystyle mathbf {w} _{k}sim mathbf {G} cdot Nleft(0,sigma _{a}^{2}right). }
En cada fase de tiempo, se realiza una medición ruidosa de la verdadera posición del camión. Supongamos que el ruido de medida vk también se distribuye normalmente, con media 0 y desviación estándar σz.
- zk=Hxk+vk{displaystyle mathbf {z} ¿Qué? ¿Qué?
dónde
- H=[10]{displaystyle mathbf {H} ={begin{bmatrix}1 {0end{bmatrix}}
y
- R=E[vkvkT]=[σ σ z2]{displaystyle mathbf {R} =mathrm {E} left[mathbf {v} _{k}mathbf {v} _{k}textsf {T}right]={begin{bmatrix}sigma ¿Qué?
Conocemos el estado de arranque inicial del camión con perfecta precisión, por lo que inicializamos
- x^ ^ 0▪ ▪ 0=[00]{displaystyle {hat {mathbf {x} {m}}}}
y para decirle al filtro que conocemos la posición y la velocidad exactas, le damos una matriz de covarianza cero:
- P0▪ ▪ 0=[0000]{displaystyle mathbf {mid0}}}}
Si la posición inicial y la velocidad no se conocen perfectamente, la matriz de covarianza debe inicializarse con varianzas adecuadas en su diagonal:
- P0▪ ▪ 0=[σ σ x200σ σ xÍ Í 2]{displaystyle mathbf {fnMicrosoft Sans Serif} ¿Qué? {x}} {2}end{bmatrix}}
El filtro preferirá la información de las primeras mediciones a la información que ya se encuentra en el modelo.
Forma asintótica
Para la simplicidad, asuma que la entrada de control uk=0{displaystyle mathbf {u} ¿Qué? {0}. Entonces el filtro Kalman puede ser escrito:
- x^ ^ k▪ ▪ k=Fkx^ ^ k− − 1▪ ▪ k− − 1+Kk[zk− − HkFkx^ ^ k− − 1▪ ▪ k− − 1].{displaystyle {hat {mathbf {x} ¿Qué? - ¿Qué? ¿Qué? {fnK} {f} {fnK} {fnK}} {f}} {f} {f} {f}f}} {f}}}} {f} {f}}}f}fnH} {f}f}f} {f}fnH}f}f}f}f} {f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}f}fnH}f}f}f}f}f}f}f}f}f}fnH}f}f}f}f}f}f}f}f}f}f}f}fnH}fnH}f}f}f}f}f}f}f}fn }_{k-1mid k-1}
Una ecuación similar sostiene si incluimos una entrada de control no cero. Gain matrices Kk{displaystyle mathbf {K} _{k} evolucionar independientemente de las mediciones zk{displaystyle mathbf {z} ¿Qué?. Desde arriba, las cuatro ecuaciones necesarias para actualizar la ganancia Kalman son las siguientes:
- Pk▪ ▪ k− − 1=FkPk− − 1▪ ▪ k− − 1FkT+Qk,Sk=Rk+HkPk▪ ▪ k− − 1HkT,Kk=Pk▪ ▪ k− − 1HkTSk− − 1,PkSilenciok=()I− − KkHk)PkSilenciok− − 1.{displaystyle {begin{aligned}mathbf {fnK} {fnMicrosoft}mfnMitbf} {P} _{k-1mid k-1}mathbf {F}{k}{textsf {T}+mathbf {Q} _ {k},\\\\\\cHFF} {fnMicrosoft} {R} {K}+Mathbf {H} _{k}mathbf {f}\m}mm}mfnh}msf}\mthbf {K} _{k}=mthbf} ¿Qué? Mathbf [S] _{-1} {fnMicrosoft} - Mathbf {H} _{k}right)mathbf {fnMicrosoft Sans Serif}
Dado que las matrices de ganancia dependen sólo del modelo, y no de las mediciones, pueden ser calculadas fuera de línea. Convergencia de las matrices de ganancia Kk{displaystyle mathbf {K} _{k} a una matriz asintotica KJUEGO JUEGO {displaystyle mathbf {K} _{infty} aplica para las condiciones establecidas en Walrand y Dimakis. Las simulaciones establecen el número de pasos a la convergencia. Para el ejemplo de camión móvil descrito anteriormente, con Δ Δ t=1{displaystyle Delta t=1}. and σ σ a2=σ σ z2=σ σ x2=σ σ xÍ Í 2=1{displaystyle sigma _{2}=sigma ¿Qué? ¿Qué? {x}} {2}=1}, simulación muestra convergencia en 10{displaystyle 10} iteraciones.
Usando la ganancia asintotica, y suponiendo Hk{displaystyle mathbf {H} _{k} y Fk{displaystyle mathbf {F} _{k} son independientes de k{displaystyle k}, el filtro Kalman se convierte en un filtro lineal de tiempo-invariante:
- x^ ^ k=Fx^ ^ k− − 1+KJUEGO JUEGO [zk− − HFx^ ^ k− − 1].{displaystyle {hat {mathbf {x} }_{k}=mathbf {hat {mathbf {x} ¿Qué? ¿Qué? - Sí.
La ganancia asintotica KJUEGO JUEGO {displaystyle mathbf {K} _{infty}, si existe, se puede computar por primera vez resolver la siguiente ecuación discreta Riccati para la covariancia del estado asintotico PJUEGO JUEGO {displaystyle mathbf {fnK}:
- PJUEGO JUEGO =F()PJUEGO JUEGO − − PJUEGO JUEGO HT()HPJUEGO JUEGO HT+R)− − 1HPJUEGO JUEGO )FT+Q.{displaystyle mathbf {P} _{infty }=mathbf {F} left(mathbf) {fnMicrosoft Sans Serif} {H} ^{textsf {T}left(mathbf {H} mathbf {fnK} {H} ^{textsf {T}+mathbf {R} right)}mathbf {H} mathbf {P} _{infty }right)mathbf {F} {textsf {T}+mathbf {Q}
La ganancia asintótica se calcula como antes.
- KJUEGO JUEGO =PJUEGO JUEGO HT()R+HPJUEGO JUEGO HT)− − 1.{displaystyle mathbf {K} _{infty }=mathbf {fnK} [H] ^{textsf {T}left(mathbf {R} +mathbf {H} mathbf {fnMicrosoft Sans Serif}
Además, una forma del filtro asintótico de Kalman que se usa más comúnmente en la teoría de control viene dada por
- x^ ^ k+1=Fx^ ^ k+Buk+K̄ ̄ JUEGO JUEGO [zk− − Hx^ ^ k],{displaystyle {displaystyle {hat {mathbf} {fnMitbf} {fnMitbf {fnK} }_{k}+mathbf {B} mathbf {u} _{k}+mathbf {overline {K} _{infty }[mathbf {z} ¿Qué? ♪♪♪♪
dónde
- K̄ ̄ JUEGO JUEGO =FPJUEGO JUEGO HT()R+HPJUEGO JUEGO HT)− − 1.{displaystyle {fnMicrosoft {fnMicrosoft {\fnMicrosoft {\fnMicrosoft {\\fnMicrosoft {\\\fnMicrosoft {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ {K}_{infty}=mathbf {F} mathbf {fnK} [H] ^{textsf {T}left(mathbf {R} +mathbf {H} mathbf {fnMicrosoft Sans Serif}
Esto conduce a un estimador de la forma
- x^ ^ k+1=()F− − K̄ ̄ JUEGO JUEGO H)x^ ^ k+Buk+K̄ ̄ JUEGO JUEGO zk,{displaystyle {displaystyle {hat {mathbf} {fnK} {fnMitbf} {fnK} {fnK} {fnf}}nf}nf}nf} {fnfnh} {fnK}fnf}fnfnh} {f}fnfnH}fnf}fnfnf}fnfnH}fnfnfnfnH}fnf}fnfnfnfnfnH00fnKfnK}fnfnK}}}}}}}f}}}}}fnKf9}f}f}fnf}fnKf}fnKfnKf}f}fnH00fnH00}fnH00}}fnKf}}f}}}}}}}}} }_{k}+mathbf {B} mathbf {u} _{k}+mathbf {overline {K} - No. ¿Qué?
Derivaciones
El filtro de Kalman se puede derivar como un método de mínimos cuadrados generalizados que opera con datos anteriores.
Derivación de la matriz de covarianza estimada a posteriori
Empezando con nuestro invariante en la covarianza del error Pk | k como arriba
- Pk▪ ▪ k=cov ()xk− − x^ ^ k▪ ▪ k){displaystyle mathbf {P} _{kmid k}=operatorname {cov} left(mathbf {x} ¿Qué? - Sí.
sustitución en la definición de x^ ^ k▪ ▪ k{displaystyle {hat {mathbf {x} }
- Pk▪ ▪ k=cov [xk− − ()x^ ^ k▪ ▪ k− − 1+KkSí.~ ~ k)]{displaystyle mathbf {P} _{kmid k}=operatorname {cov} left[mathbf {x} ¿Qué? {cHFF} {cHFF}cHFF} {cHFF}} {cHFF} {cHFF} - Sí.
y sustituto Sí.~ ~ k{displaystyle {fnMitbf} ♪♪
- Pk▪ ▪ k=cov ()xk− − [x^ ^ k▪ ▪ k− − 1+Kk()zk− − Hkx^ ^ k▪ ▪ k− − 1)]){displaystyle mathbf {P} _{kmid k}=operatorname {cov} left(mathbf {x} ¿Qué? }_{kmid k-1}+mathbf {k}left(mathbf {z} ¿Qué? Bien.
y zk{displaystyle mathbf {z} ¿Qué?
- Pk▪ ▪ k=cov ()xk− − [x^ ^ k▪ ▪ k− − 1+Kk()Hkxk+vk− − Hkx^ ^ k▪ ▪ k− − 1)]){displaystyle mathbf {P} _{kmid k}=operatorname {cov} left(mathbf {x} ¿Qué? }_{kmid k-1}+mathbf {K}left(mathbf {H} _{k}mathbf {x} ¿Qué? ¿Qué? Bien.
y al recopilar los vectores de error obtenemos
- Pk▪ ▪ k=cov [()I− − KkHk)()xk− − x^ ^ k▪ ▪ k− − 1)− − Kkvk]{displaystyle mathbf {} _{kmid k}=operatorname {cov} left[left(mathbf {I} -mathbf {K} _{k}mathbf {H}right)left(mathbf {x} _{k}-{hat {mathbf {x} ¿Qué?
Dado que el error de medición vk no está correlacionado con los otros términos, esto se convierte en
- Pk▪ ▪ k=cov [()I− − KkHk)()xk− − x^ ^ k▪ ▪ k− − 1)]+cov [Kkvk]{displaystyle mathbf {} _{kmid k}=operatorname {cov} left[left(mathbf {I} -mathbf {K} _{k}mathbf {H}right)left(mathbf {x} _{k}-{hat {mathbf {x} ################################################################################################################################################################################################################################################################
por las propiedades de la covarianza vectorial esto se convierte en
- Pk▪ ▪ k=()I− − KkHk)cov ()xk− − x^ ^ k▪ ▪ k− − 1)()I− − KkHk)T+Kkcov ()vk)KkT{displaystyle mathbf {} _{kmid k}=left(mathbf {I} -mathbf {K} _{k}mathbf {H} _{k}right)operatorname {C} left(mathbf {x} ¿Qué? }_{kmid k-1}right)left(mathbf {I} -mathbf {K} _{k}mathbf {H}right)^{textsf {T}+mathbf {K} _{k}operatorname {cov} left(mathbf {v} _{k}right)mathbf {K} _{k}^{textsf {T}
que, usando nuestro invariante en Pk | k−1 y la definición de Rk se convierte en
- Pk▪ ▪ k=()I− − KkHk)Pk▪ ▪ k− − 1()I− − KkHk)T+KkRkKkT{displaystyle mathbf {} _{kmid k}=left(mathbf {I} -mathbf {K} _{k}mathbf {H} _{k}right)mathbf [P] _{kmid k-1}left(mathbf {I} -mathbf {K} _{k}mathbf {H} _{k}right)}{textsf Mathbf {fnMicrosoft} {T}
Esta fórmula (a veces conocida como la forma de Joseph de la ecuación de actualización de covarianza) es válida para cualquier valor de Kk . Resulta que si Kk es la ganancia óptima de Kalman, esto se puede simplificar aún más como se muestra a continuación.
Derivación de la ganancia de Kalman
El filtro de Kalman es un estimador de error cuadrático medio mínimo. El error en la estimación del estado a posteriori es
- xk− − x^ ^ k▪ ▪ k{displaystyle mathbf {x} ¿Qué? }
Buscamos minimizar el valor esperado del cuadrado de la magnitud de este vector, E [.xk− − x^ ^ kSilenciok.2]{displaystyle operatorname {E} left[left eternamathbf {x} ¿Qué? - ¿Qué?. Esto equivale a minimizar el rastro del a posteriori estimación de la matriz de covariancia PkSilenciok{displaystyle mathbf {P} _{k habitk}. Al expandir los términos en la ecuación anterior y recoger, obtenemos:
- Pk▪ ▪ k=Pk▪ ▪ k− − 1− − KkHkPk▪ ▪ k− − 1− − Pk▪ ▪ k− − 1HkTKkT+Kk()HkPk▪ ▪ k− − 1HkT+Rk)KkT=Pk▪ ▪ k− − 1− − KkHkPk▪ ▪ k− − 1− − Pk▪ ▪ k− − 1HkTKkT+KkSkKkT{displaystyle {begin{aligned}mathbf {fnK} {fnMicrosoft} {fnMicrosoft} {fnK}-Mathbf {K} {H}Mathbf {P} {Kmid k-1}-mathbf ¿Qué? {T}Mathbf {K} _{textsf {T}+mathbf {K} _{k}left(mathbf {H} _{k}mathbf {P} _{kmid k-1}mathbf {H} _{k}{textsf {T}+mathbf {R} _{k}right)mathbf {K} _{k}{textsf {T}[6pt] {fnK}-Mathbf {K} {H}Mathbf {P} {Kmid k-1}-mathbf ¿Qué? {T}Mathbf {K} _{textsf Mathbf ¿Qué? {T}end{aligned}}
La traza se minimiza cuando su matriz derivada con respecto a la matriz de ganancia es cero. Usando las reglas de la matriz de gradiente y la simetría de las matrices involucradas encontramos que
- ∂ ∂ tr ()Pk▪ ▪ k)∂ ∂ Kk=− − 2()HkPk▪ ▪ k− − 1)T+2KkSk=0.{displaystyle {frac {partial ;operatorname {tr} (mathbf {P} _{kmid k})}{partial ;mathbf {K}=-2left(Mathbf) {H}Mathbf {P} _{kmid k-1}right)}{textsf {T}+2mathbf {K}Mathbf {S}=0}
Resolviendo esto para Kk se obtiene la ganancia de Kalman:
- KkSk=()HkPk▪ ▪ k− − 1)T=Pk▪ ▪ k− − 1HkT⇒ ⇒ Kk=Pk▪ ▪ k− − 1HkTSk− − 1{displaystyle {begin{aligned}mathbf {K}Mathbf {fnMicrosoft} {H} _{k}mathbf {P} _{kmid k-1}right)^{textsf {T}=Mathbf ¿Qué? {T} \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ {K} {K} âTMa âTMa âTMa ¿Qué? {T}mathbf {S} {f} {f}fn}fn} {fn} {f} {f} {f}} {f}}fn}fn}fn}fn}fn}f}\fnK}\f}fnKf}f}}\f}\\\f}}}\\\\\f}f}f}f}}}\\\fn}\\fnK}\fnK}fn}f}fn}\\f}f}\fn}fn}fn}fn}m}fn}\\fn}\fn}fn}\\\\\\\\\\\fn}}fn}fn}fn}
Esta ganancia, que se conoce como ganancia óptima de Kalman, es la que produce estimaciones de MMSE cuando se usa.
Simplificación de la fórmula de covarianza del error a posteriori
La fórmula utilizada para calcular la covarianza del error a posteriori se puede simplificar cuando la ganancia de Kalman es igual al valor óptimo obtenido anteriormente. Multiplicando ambos lados de nuestra fórmula de ganancia de Kalman a la derecha por SkKk T, se sigue que
- KkSkKkT=Pk▪ ▪ k− − 1HkTKkT{displaystyle mathbf {K} _{k}mathbf ¿Qué? {T}=mathbf {P} _{kmid k-1}mathbf {H} _{k}textsf {T}Mathbf {K} _{textsf {T}}
Volviendo a nuestra fórmula ampliada para la covarianza del error a posteriori,
- Pk▪ ▪ k=Pk▪ ▪ k− − 1− − KkHkPk▪ ▪ k− − 1− − Pk▪ ▪ k− − 1HkTKkT+KkSkKkT{displaystyle mathbf {P} _{kmid k}=mathbf {fnK}-Mathbf {K} {H}Mathbf {P} {Kmid k-1}-mathbf ¿Qué? {T}Mathbf {K} _{textsf Mathbf ¿Qué? {T}}
encontramos que los dos últimos términos se cancelan, dando
- Pk▪ ▪ k=Pk▪ ▪ k− − 1− − KkHkPk▪ ▪ k− − 1=()I− − KkHk)Pk▪ ▪ k− − 1{displaystyle mathbf {P} _{kmid k}=mathbf {fnK}-Mathbf {K} {H} _{k}mathbf {f} {f}=(mathbf {I} -mathbf {K} _{k}mathbf {H})mathbf {P} _{k}mmid k-1}}
Esta fórmula es computacionalmente más barata y, por lo tanto, casi siempre se usa en la práctica, pero solo es correcta para la ganancia óptima. Si la precisión aritmética es inusualmente baja y causa problemas con la estabilidad numérica, o si se usa deliberadamente una ganancia de Kalman no óptima, esta simplificación no se puede aplicar; se debe usar la fórmula de covarianza de error a posteriori como se derivó anteriormente (forma de Joseph).
Análisis de sensibilidad
Las ecuaciones de filtración Kalman proporcionan una estimación del estado x^ ^ k▪ ▪ k{displaystyle {hat {mathbf {x} } y su covariancia de errores Pk▪ ▪ k{displaystyle mathbf {} _{kmid k} recursivamente. La estimación y su calidad dependen de los parámetros del sistema y de las estadísticas de ruido alimentadas como insumos para el estimador. Esta sección analiza el efecto de las incertidumbres en las entradas estadísticas al filtro. En ausencia de estadísticas fiables o los verdaderos valores de las matrices de covariancia de ruido Qk{displaystyle mathbf {Q} _{k} y Rk{displaystyle mathbf {R} _{k}, la expresión
- Pk▪ ▪ k=()I− − KkHk)Pk▪ ▪ k− − 1()I− − KkHk)T+KkRkKkT{displaystyle mathbf {} _{kmid k}=left(mathbf {I} -mathbf {K} _{k}mathbf {H} _{k}right)mathbf [P] _{kmid k-1}left(mathbf {I} -mathbf {K} _{k}mathbf {H} _{k}right)}{textsf Mathbf {fnMicrosoft} {T}
ya no proporciona la covariancia de error real. En otras palabras, Pk▪ ▪ kل ل E[()xk− − x^ ^ k▪ ▪ k)()xk− − x^ ^ k▪ ▪ k)T]{displaystyle mathbf {} _{kmid k}neq Eleft[left(mathbf {x} _{k}-{hat {mathbf {x} ¿Por qué? }_{kmid k}right){textsf {T}right]. En la mayoría de las aplicaciones en tiempo real, las matrices de covariancia que se utilizan para diseñar el filtro Kalman son diferentes de las matrices de covariancias de ruido (verdad). Este análisis de sensibilidad describe el comportamiento de la covariancia de error de estimación cuando las covariancias del ruido así como las matrices del sistema Fk{displaystyle mathbf {F} _{k} y Hk{displaystyle mathbf {H} _{k} que se alimentan como entradas al filtro son incorrectas. Por lo tanto, el análisis de sensibilidad describe la robustez (o sensibilidad) del estimador a los insumos estadísticos y paramétricos no especificados al estimador.
Esta discusión se limita al análisis de sensibilidad de errores para el caso de incertidumbres estadísticas. Aquí las covarianzas de ruido son denotadas por Qka{displaystyle mathbf {Q} _{k}{a}} y Rka{displaystyle mathbf {R} _{k}{a}} respectivamente, mientras que los valores de diseño utilizados en el estimador son Qk{displaystyle mathbf {Q} _{k} y Rk{displaystyle mathbf {R} _{k} respectivamente. La covariancia de error real es denotada por Pk▪ ▪ ka{displaystyle mathbf {f} {f} {fnK} {f}} {f}} {f} {fnK}}} {f}}} {fnK}}}}}} y Pk▪ ▪ k{displaystyle mathbf {} _{kmid k} como computado por el filtro Kalman se conoce como la variable Riccati. Cuando Qk↑ ↑ Qka{displaystyle mathbf {Q} {K}equiv mathbf {Q} _{k} {a}} y Rk↑ ↑ Rka{displaystyle mathbf {R} _{k}equiv mathbf {R} _{k}^{a}}, esto significa que Pk▪ ▪ k=Pk▪ ▪ ka{displaystyle mathbf {f} {fnK}=mathbf {} _{kmid k}{a}}} {f}}} {f}}. Mientras computa la covariancia de error real utilizando Pk▪ ▪ ka=E[()xk− − x^ ^ k▪ ▪ k)()xk− − x^ ^ k▪ ▪ k)T]{displaystyle mathbf {} _{kmid k}{a}=Eleft[left(mathbf {x} _{k}-{hat {mathbf {x} ¿Por qué? }_{kmid k}right){textsf {T}right], sustitución por x^ ^ k▪ ▪ k{displaystyle {widehat {mathbf {x} } y utilizando el hecho de que E[wkwkT]=Qka{fnMicrosoft} {T}right]=mathbf {Q}{k} {f} {f}} y E[vkvkT]=Rka{fnMicrosoft} {T}right}=mathbf {R} {K} {}} {f} {f} {f} {f} {f} {f}} {f}}} {f}}}}}f}}}\f} {f}}}\f}\f}f}f}f}}f}}}}}\\s}}\\s}}\\\\\\s}}s}}s}}\\\s}\\\\\s}s}}\\s}s}\\s}\\s}\\s}}\\\\\\s}s}s}s}s}s}}s}s}s}s}}s}}s}s}s}}s}, resultados en las siguientes ecuaciones recursivas para Pk▪ ▪ ka{displaystyle mathbf {f} {f} {fnK} {f}} {f}} {f} {fnK}}} {f}}} {fnK}}}}}}:
- Pk▪ ▪ k− − 1a=FkPk− − 1▪ ▪ k− − 1aFkT+Qka{displaystyle mathbf {P} _{kmid k-1}{a}=mathbf {F}Mathbf {P} _{k-1mid k-1}{a}mathbf {F}{k}{textsf {T}+mathbf {Q} _{k}{a}
y
- Pk▪ ▪ ka=()I− − KkHk)Pk▪ ▪ k− − 1a()I− − KkHk)T+KkRkaKkT{displaystyle mathbf {} _{kmid k}{a}=left(mathbf) - Mathbf {H} _{k}right)mathbf [P] _{kmid k-1}{a}left(mathbf {I} -mathbf {K} _{k}mathbf {H} _{k}right)^{textsf Mathbf {fnMicrosoft Sans Serif} [K] _{k}{textsf {T}
Mientras computación Pk▪ ▪ k{displaystyle mathbf {} _{kmid k}, por el diseño del filtro implícitamente supone que E[wkwkT]=Qk{fnMicrosoft} {T}derecha]=Mathbf {Q} {K} {K}} {f} y E[vkvkT]=Rk{fnMicrosoft} {T}right]=Mathbf {R} {k}. Las expresiones recursivas para Pk▪ ▪ ka{displaystyle mathbf {f} {f} {fnK} {f}} {f}} {f} {fnK}}} {f}}} {fnK}}}}}} y Pk▪ ▪ k{displaystyle mathbf {} _{kmid k} son idénticos excepto por la presencia de Qka{displaystyle mathbf {Q} _{k}{a}} y Rka{displaystyle mathbf {R} _{k}{a}} en lugar de los valores de diseño Qk{displaystyle mathbf {Q} _{k} y Rk{displaystyle mathbf {R} _{k} respectivamente. Se han realizado investigaciones para analizar la robustez del sistema de filtros Kalman.
Forma de raíz cuadrada
Un problema con el filtro de Kalman es su estabilidad numérica. Si la covarianza del ruido del proceso Qk es pequeña, el error de redondeo a menudo provoca un pequeño valor propio positivo de la matriz de covarianza del estado P para ser calculado como un número negativo. Esto hace que la representación numérica de P sea indefinida, mientras que su verdadera forma es definida positiva.
Las matrices definidas positivas tienen la propiedad de tener una raíz cuadrada de matriz triangular P = S·ST. Esto se puede calcular de manera eficiente utilizando el algoritmo de factorización de Cholesky, pero lo que es más importante, si la covarianza se mantiene de esta forma, nunca puede tener una diagonal negativa o volverse asimétrica. Una forma equivalente, que evita muchas de las operaciones de raíz cuadrada requeridas por la raíz cuadrada de la matriz pero conserva las propiedades numéricas deseables, es la forma de descomposición U-D, P = U·D·UT, donde U es una matriz triangular unitaria (con unidad de diagonal), y D es una matriz diagonal.
Entre las dos, la factorización U-D utiliza la misma cantidad de almacenamiento y algo menos de cálculo, y es la forma de raíz cuadrada más utilizada. (La literatura anterior sobre la eficiencia relativa es algo engañosa, ya que suponía que las raíces cuadradas consumían mucho más tiempo que las divisiones, mientras que en las computadoras del siglo XXI son solo un poco más caras).
G. J. Bierman y C. L. Thornton desarrollaron algoritmos eficientes para la predicción de Kalman y los pasos de actualización en forma de raíz cuadrada.
La descomposición L·D·LT de la matriz de covarianza de innovación Sk es la base para otro tipo de filtro de raíz cuadrada robusto y numéricamente eficiente. El algoritmo comienza con la descomposición LU implementada en el PAQUETE de álgebra lineal (LAPACK). Estos resultados se incluyen en la estructura L·D·LT con métodos proporcionados por Golub y Van Loan (algoritmo 4.1.2) para una matriz no singular simétrica. Cualquier matriz de covarianza singular se pivota para que la primera partición diagonal no sea singular y esté bien condicionada. El algoritmo de pivote debe retener cualquier parte de la matriz de covarianza de la innovación que corresponda directamente a las variables de estado observadas Hk·xk|k -1 que están asociados con observaciones auxiliares en yk. El filtro de raíz cuadrada l·d·lt requiere la ortogonalización del vector de observación. Esto se puede hacer con la raíz cuadrada inversa de la matriz de covarianza para las variables auxiliares usando el Método 2 en Higham (2002, p. 263).
Forma paralela
El filtro Kalman es eficiente para el procesamiento de datos secuencial en unidades centrales de procesamiento (CPU), pero en su forma original es ineficiente en arquitecturas paralelas como unidades de procesamiento gráfico (GPUs). Sin embargo, es posible expresar la rutina de filtración actualizada en términos de un operador asociativo utilizando la formulación en Särkkä (2021). La solución de filtro se puede recuperar mediante el uso de un algoritmo de suma prefijo que puede ser implementado eficientemente en GPU. Esto reduce la complejidad computacional de O()N){displaystyle O(N)} en el número de pasos de tiempo O()log ()N)){displaystyle O(log(N)}.
Relación con la estimación bayesiana recursiva
El filtro de Kalman se puede presentar como una de las redes bayesianas dinámicas más simples. El filtro de Kalman calcula estimaciones de los valores reales de los estados de forma recursiva a lo largo del tiempo utilizando mediciones entrantes y un modelo de proceso matemático. De manera similar, la estimación bayesiana recursiva calcula estimaciones de una función de densidad de probabilidad desconocida (PDF) recursivamente a lo largo del tiempo utilizando mediciones entrantes y un modelo de proceso matemático.
En la estimación bayesiana recursiva, se supone que el estado real es un proceso de Markov no observado y las mediciones son los estados observados de un modelo oculto de Markov (HMM).
Debido a la suposición de Markov, el estado verdadero es condicionalmente independiente de todos los estados anteriores dado el estado inmediatamente anterior.
- p()xk▪ ▪ x0,...... ,xk− − 1)=p()xk▪ ▪ xk− − 1){displaystyle p(mathbf {x} _{k}mid mathbf {x} _{0},dotsmathbf {x} _{k-1})=p(mathbf {x} ¿Por qué?
Del mismo modo, la medición en el k-ésimo paso de tiempo depende solo del estado actual y es condicionalmente independiente de todos los demás estados dado el estado actual.
- p()zk▪ ▪ x0,...... ,xk)=p()zk▪ ▪ xk){displaystyle p(mathbf {z} _{k}mid mathbf {x} _{0},dotsmathbf {x} _{k})=p(mathbf {z} ¿Por qué?
Usando estas suposiciones, la distribución de probabilidad sobre todos los estados del modelo oculto de Markov se puede escribir simplemente como:
- p()x0,...... ,xk,z1,...... ,zk)=p()x0)∏ ∏ i=1kp()zi▪ ▪ xi)p()xi▪ ▪ xi− − 1){displaystyle pleft(mathbf {x} _{0},dotsmathbf {x} _{k},mathbf {z} _{1},dotsmathbf {z} _{k}right)=pleft(mathbf {x} _{0}right)prod ¿Por qué?
Sin embargo, cuando se usa un filtro de Kalman para estimar el estado x, la distribución de probabilidad de interés es la asociada con los estados actuales condicionados a las mediciones hasta el paso de tiempo actual. Esto se logra marginando los estados anteriores y dividiendo por la probabilidad del conjunto de medidas.
Esto resulta en predicción y actualización fases del filtro Kalman escritas probabilísticamente. La distribución de probabilidad asociada al estado predicho es la suma (integral) de los productos de la distribución de probabilidad asociada con la transición de la (k− 1)- el paso al k- y la distribución de probabilidad asociada al estado anterior, sobre todo posible xk− − 1{displaystyle x_{k-1}}.
- p()xk▪ ▪ Zk− − 1)=∫ ∫ p()xk▪ ▪ xk− − 1)p()xk− − 1▪ ▪ Zk− − 1)dxk− − 1{fnMicrosoft Sans Serif} {fnMicrosoft {fnMicrosoft} {fnMicrosoft} {cH}cHFF}cHFF} {cHFF}cHFF}cH00}cH00}cH00}b}cH00}cH00cH00}cH00}cH00}cH00} ¿Qué?
La medida configurada hasta el tiempo t es
- Zt={}z1,...... ,zt}{displaystyle mathbf {Z} _{t}=left{mathbf {z} _{1},dotsmathbf {z} ¿Qué?
La distribución de probabilidad de la actualización es proporcional al producto de la probabilidad de medición y el estado previsto.
- p()xk▪ ▪ Zk)=p()zk▪ ▪ xk)p()xk▪ ▪ Zk− − 1)p()zk▪ ▪ Zk− − 1){fnMicrosoft {f}m}m}m}m}m}mm}m}m}m}={mccccH0}m}m}mmmmmmhnMitbf {f}m}mm}mm}mmmmmmm}m}mm}m}mmmmm}mmmm}ppmmm}pppppppp}p}ppcH0pppp}ppp}cH0pcH0pcH0p}cH0cH0cH0cH00p}cH0cH0p}cH0p}cH {Z} _{k-1}right)}{pleft(mathbf {z}mid mathbf {Z} _{k-1}right)}}
El denominador
- p()zk▪ ▪ Zk− − 1)=∫ ∫ p()zk▪ ▪ xk)p()xk▪ ▪ Zk− − 1)dxk{fnMicrosoft Sans Serif} {fnMicrosoft {f} {fnMicrosoft} {cHFF}cH}cHFF}cHFF}cHFF}cHFF}cH00}cH00}cH00}cH00} ¿Qué?
es un término de normalización.
Las funciones de densidad de probabilidad restantes son
- p()xk▪ ▪ xk− − 1)=N()Fkxk− − 1,Qk)p()zk▪ ▪ xk)=N()Hkxk,Rk)p()xk− − 1▪ ▪ Zk− − 1)=N()x^ ^ k− − 1,Pk− − 1){displaystyle {begin{aligned}pmathbf {x} _{k}mid mathbf {x} _{k-1}right) ventaja={mathcal {N}left(mathbf {F} _{k}mathbf {x} {f}f}cH00}cH00}cH00}cH00}cH00}cH00}cH} {cH}cH}cH00} {cHFF}cH}cH}cH}cH00} {Z} _{k-1}derecho)} {fn}left {fnfnh} {fnH00} }_{k-1},mathbf {fnMicrosoft Sans Serif}
El PDF en el paso anterior se asume inductivamente para ser el estado estimado y la covariancia. Esto se justifica porque, como un estimador óptimo, el filtro Kalman hace el mejor uso de las mediciones, por lo tanto el PDF para xk{displaystyle mathbf {x} _{k} dadas las mediciones Zk{displaystyle mathbf {Z} _{k} es la estimación del filtro Kalman.
Probabilidad marginal
En relación con la interpretación bayesiana recursiva descrita anteriormente, el filtro de Kalman se puede ver como un modelo generativo, es decir, un proceso para generar un flujo de observaciones aleatorias z = (z0, z1, z2,...). En concreto, el proceso es
- Muestra un estado oculto x0{displaystyle mathbf {x} ¿Qué? de la distribución previa de Gauss p()x0)=N()x^ ^ 0▪ ▪ 0,P0▪ ▪ 0){fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fn}m}m} {fn}fnh} {fn0}fnh}fnK} ¿Qué?.
- Muestra una observación z0{displaystyle mathbf {z} ¿Qué? del modelo de observación p()z0▪ ▪ x0)=N()H0x0,R0){displaystyle pleft(mathbf {z} _{0}mid mathbf {x} _{0}right)={mathcal {N}}left(mathbf {H} _{0}mathbf {x} _{0},mathbf {R} _{0}right)}.
- Para k=1,2,3,...... {displaystyle k=1,2,3,ldots}, do
- Muestra el siguiente estado oculto xk{displaystyle mathbf {x} _{k} del modelo de transición p()xk▪ ▪ xk− − 1)=N()Fkxk− − 1+Bkuk,Qk).{displaystyle pleft(mathbf {x}midmathbf {x} _{k-1}right)={mathcal {N}left(mathbf {F} _{k}mathbf {x} - ¿Qué? {B} _{k}mathbf {u} {k},mathbf {Q} _{k}right).}
- Muestra una observación zk{displaystyle mathbf {z} ¿Qué? del modelo de observación p()zk▪ ▪ xk)=N()Hkxk,Rk).{fnMitbf {x} _{k}mthbf {x} _{k}right)={mathcal {N}}left(mathbf {h} _{k}mathbf {x} _{k},mathbf {R} _{k}right)}}} {m}cH}} {c}}s}}m}cH}cH}cH}cH}cH}cH}cH}cH}cH} {cH}cH}cH}cH}cH}cH}cH}cH}cH}cH}cH} {cH}c}cH}cH}cH00}cH}cH}cH}cH00}cH00}cH}cH00}cH00}cH}cH00}
Este proceso tiene una estructura idéntica al modelo oculto de Markov, excepto que el estado discreto y las observaciones se reemplazan con variables continuas muestreadas de distribuciones gaussianas.
En algunas aplicaciones, es útil calcular la probabilidad de que un filtro de Kalman con un conjunto determinado de parámetros (distribución previa, modelos de transición y observación, y entradas de control) genere una señal observada en particular.. Esta probabilidad se conoce como probabilidad marginal porque integra ("marginaliza hacia fuera") los valores de las variables de estado ocultas, por lo que se puede calcular usando solo la señal observada. La probabilidad marginal puede ser útil para evaluar diferentes opciones de parámetros o para comparar el filtro de Kalman con otros modelos mediante la comparación de modelos bayesianos.
Es sencillo calcular la probabilidad marginal como un efecto secundario del cálculo de filtrado recursivo. Por la regla de la cadena, la probabilidad se puede factorizar como el producto de la probabilidad de cada observación dadas las observaciones anteriores,
- p()z)=∏ ∏ k=0Tp()zk▪ ▪ zk− − 1,...... ,z0){displaystyle p(mathbf {z})=prod _{k=0}{T}pleft(mathbf {z} _{k}mid mathbf {z} ¿Qué?,
y porque el filtro Kalman describe un proceso de Markov, toda la información relevante de observaciones anteriores está contenida en la estimación del estado actual x^ ^ k▪ ▪ k− − 1,Pk▪ ▪ k− − 1.{displaystyle {hat {mathbf {x} - No. Así la probabilidad marginal es dada por
- p()z)=∏ ∏ k=0T∫ ∫ p()zk▪ ▪ xk)p()xk▪ ▪ zk− − 1,...... ,z0)dxk=∏ ∏ k=0T∫ ∫ N()zk;Hkxk,Rk)N()xk;x^ ^ k▪ ▪ k− − 1,Pk▪ ▪ k− − 1)dxk=∏ ∏ k=0TN()zk;Hkx^ ^ k▪ ▪ k− − 1,Rk+HkPk▪ ▪ k− − 1HkT)=∏ ∏ k=0TN()zk;Hkx^ ^ k▪ ▪ k− − 1,Sk),{displaystyle {begin{aligned}p(mathbf {z}) ¿Por qué? ¿Por qué? ¿Por qué? ¿Por qué? ¿Qué? ¿Qué? {fnMicrosoft Sans Serif} ¿Por qué? ¿Qué? ¿Qué? }_{kmid k-1,mathbf {R} {K}+Mathbf {fnh}mfnh}mfnh}mfnh}mfnh} Bueno... ¿Qué? ¿Qué? - Sí.
es decir, un producto de densidades gausianas, cada una correspondiente a la densidad de una observación zk bajo la distribución de filtrado actual Hkx^ ^ k▪ ▪ k− − 1,Sk{displaystyle mathbf {H} _{k}{hat {mathbf {x} }_{kmid k-1,mathbf {fnK}. Esto se puede calcular fácilmente como una simple actualización recursiva; sin embargo, para evitar el flujo numérico, en una aplicación práctica es generalmente deseable calcular el log marginalidad l l =log p()z){displaystyle ell =log p(mathbf {z})} En su lugar. Aprobación de la convención l l ()− − 1)=0{displaystyle ell ^{(-1)}=0}, esto se puede hacer a través de la regla de actualización recursiva
- l l ()k)=l l ()k− − 1)− − 12()Sí.~ ~ kTSk− − 1Sí.~ ~ k+log SilencioSkSilencio+dSí.log 2π π ),{displaystyle ell ^{(k)}=ell ^{(k-1)}-{frac {1}{2}}left({tilde {mathbf {y} }_{k} {textosf {T}Mathbf {fnMicrosoft Sans Serif} }_{k}+log left durablemathbf {S} _{k}right WordPress+d_{y}log 2pi right),}
Donde dSí.{displaystyle D_{y} es la dimensión del vector de medición.
Una aplicación importante en la que se utiliza tal probabilidad (logarítmica) de las observaciones (dados los parámetros de filtro) es el seguimiento de objetivos múltiples. Por ejemplo, considere un escenario de seguimiento de objetos en el que la entrada es un flujo de observaciones, sin embargo, se desconoce cuántos objetos hay en la escena (o se conoce el número de objetos pero es mayor que uno). Para tal escenario, puede ser desconocido a priori qué observaciones/medidas fueron generadas por qué objeto. Un rastreador de hipótesis múltiples (MHT) normalmente formará diferentes hipótesis de asociación de rastreo, donde cada hipótesis puede considerarse como un filtro de Kalman (para el caso gaussiano lineal) con un conjunto específico de parámetros asociados con el objeto hipotético. Por lo tanto, es importante calcular la probabilidad de las observaciones para las diferentes hipótesis bajo consideración, de modo que se pueda encontrar la más probable.
Filtro de información
En los casos en que la dimensión del vector de observación y sea mayor que la dimensión del vector espacial de estado x, el filtro de información puede evitar la inversión de una matriz más grande en el cálculo de la ganancia de Kalman al precio de invertir una matriz más pequeña en el paso de predicción, ahorrando así tiempo de cálculo. En el filtro de información, o filtro de covarianza inversa, la covarianza estimada y el estado estimado se reemplazan por la matriz de información y el vector de información, respectivamente. Estos se definen como:
- Yk▪ ▪ k=Pk▪ ▪ k− − 1Sí.^ ^ k▪ ▪ k=Pk▪ ▪ k− − 1x^ ^ k▪ ▪ k{displaystyle {begin{aligned}mathbf {Y:fnMicrosoft} {fnK} {fnK} {fnK}fnK}f} {fnK} {fnK}f} {fn}f}\fnK} {fnK} {fnK}f} {\fnK}f}\fnKfnKf}f}\f}f}f}f}f}\f}\\f}f}\\\fnKfnKfnK\f}fnK\\fnK\fnKf}\\f}f}\\\\\fnKfnKfnK\fnK\\fnK\fnKfnKfnH00}fnKfnK\\fnKfnKfnKf}}\fnH {fnK} {fnK} {fnK} {fnK}} {fnK} {fnK} {f}fnK} }_{kmid k}end{aligned}}
Del mismo modo, la covarianza y el estado pronosticados tienen formas de información equivalentes, definidas como:
- Yk▪ ▪ k− − 1=Pk▪ ▪ k− − 1− − 1Sí.^ ^ k▪ ▪ k− − 1=Pk▪ ▪ k− − 1− − 1x^ ^ k▪ ▪ k− − 1{displaystyle {begin{aligned}mathbf {fnK} {fnK} {fnK} {f}\f}\\fn}\\fn}\fn}\fn}\fnK}\fnK}\\\\\fnK}\\fnKfnKf}}\\\\\\fnK}\\\\\\\\\\\\\fnK\\\fnK\\\\\\\\\\\\\\\\\\fn}fnK\\\\\\fnKfnKfnKfnKfn}\fn}\\\\\\\\\\\\\ }_{kmid k-1} âTMa âTMa âTMa {kmid k-1}{-1}{hat {mathbf {x} }_{kmid k-1}end{aligned}
así como la covarianza de medida y el vector de medida, que se definen como:
- Ik=HkTRk− − 1Hkik=HkTRk− − 1zk{displaystyle {begin{aligned}mathbf {cH} {fnMicrosoft Sans Serif} Mathbf {H} _{k}\\\\sfnMicrosoft Sans Serif} Mathbf {R}
La actualización de la información ahora se convierte en una suma trivial.
- Yk▪ ▪ k=Yk▪ ▪ k− − 1+IkSí.^ ^ k▪ ▪ k=Sí.^ ^ k▪ ▪ k− − 1+ik{displaystyle {begin{aligned}mathbf {fnK}mfnK}cH00}mfnh}mfnh}mfn}cH}\cH00}\fnK} {fnMicrosoft} {fnK} {fnMicrosoft} }_{kmid k-1}+mathbf {i} ¿Qué?
La principal ventaja del filtro de información es que se pueden filtrar N mediciones en cada paso de tiempo simplemente sumando sus vectores y matrices de información.
- Yk▪ ▪ k=Yk▪ ▪ k− − 1+.. j=1NIk,jSí.^ ^ k▪ ▪ k=Sí.^ ^ k▪ ▪ k− − 1+.. j=1Nik,j{displaystyle {begin{aligned}mathbf {Y:fnMicrosoft} {Y:fnK}+sum _{j=1}mathbf {fnMicrosoft Sans Serif} {fnMicrosoft} {fnK} {fnMicrosoft} }_{kmid k-1}+sum _{j=1}mathbf {i} _{k,j}end{aligned}}
Para predecir el filtro de información, la matriz de información y el vector se pueden volver a convertir a sus equivalentes de espacio de estado o, alternativamente, se puede usar la predicción del espacio de información.
- Mk=[Fk− − 1]TYk− − 1▪ ▪ k− − 1Fk− − 1Ck=Mk[Mk+Qk− − 1]− − 1Lk=I− − CkYk▪ ▪ k− − 1=LkMk+CkQk− − 1CkTSí.^ ^ k▪ ▪ k− − 1=Lk[Fk− − 1]TSí.^ ^ k− − 1▪ ▪ k− − 1{displaystyle {begin{aligned}mathbf [M] _{k}=left [máthbf {F} {k}{-1}right]^{textsf {T}mthbf {Y} _{k-1mid k-1}mathbf {F} _{k}\m}\\m}\\mhm}\m}\m}\\m}cH0}\\\\cH0cH00}cH00}cH0}\cH00}\cH00}cH00}\\\\cH00}cH00}cH00}\\\\\\\\cH0}cH00}cH00}cH00}\cH00}cH00}cH00}cH00}cH00}\\\cH00}cH00}\cH {C} {C} {C} {fnMicrosoft Sans Serif} [M] _{k}+mathbf {Q} _{k}{-1}{-1}\\\Mathbf {L} {cHFF} {cH00}}cH00}cH00} - Mathbf. ################################################################################################################################################################################################################################################################ {L} {K}Mathbf {M} {K}+mathbf {C}Mathbf {Q} {C} {fnMicrosoft {T}\\fnK} {fnMitbf} ♪♪ {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {f}fnMicrosoft Sans Serif} {f} {f}} {fnMitbf {f}}} {fnMitbf} {f}f}}fnMitbf} ################################################################################################################################################################################################################################################################
Retraso fijo más suave
El suavizador de lag fija óptima proporciona la estimación óptima x^ ^ k− − N▪ ▪ k{displaystyle {hat {mathbf {x} } para una determinada carga fija N{displaystyle N} utilizando las mediciones desde z1{displaystyle mathbf {z} ¿Qué? a zk{displaystyle mathbf {z} ¿Qué?. Puede derivarse usando la teoría anterior a través de un estado aumentado, y la ecuación principal del filtro es la siguiente:
- [x^ ^ t▪ ▪ tx^ ^ t− − 1▪ ▪ t⋮ ⋮ x^ ^ t− − N+1▪ ▪ t]=[I0⋮ ⋮ 0]x^ ^ t▪ ▪ t− − 1+[0...... 0I0⋮ ⋮ ⋮ ⋮ ⋱ ⋱ ⋮ ⋮ 0...... I][x^ ^ t− − 1▪ ▪ t− − 1x^ ^ t− − 2▪ ▪ t− − 1⋮ ⋮ x^ ^ t− − N+1▪ ▪ t− − 1]+[K()0)K()1)⋮ ⋮ K()N− − 1)]Sí.t▪ ▪ t− − 1{displaystyle {begin{bmatrix}{hat {mathbf} }_{tmid t}{hat {mathbf {x} }_{t-1mid ##\vdots{hat {mathbf {x} #########end{bmatrix}={begin{bmatrix}mathbf {I} \0\\vdots \0\end{bmatrix}{hat {mathbf {x} }_{tmid t-1}+{begin{bmatrix}0 âldots > 'Mathbf {I} > 'vdots 'vdots &ddots &vdots \0 limiteldots > {fnK} {fnMitbf {x}} {fnMitbf {x}} {f}} {f}} {fncip {bmatrix} {fn}} {fn}} {fn}}} {fn}} {f}}} {fnf}f}fn}}}}} {f}f}}}\\\\fn}fn}\fn}f}f}fn}\f}fn}fn}\\fn}f}\\\\fn}\\\fn}fn}fnfn}fnfn\fn\fnfn\\fn}\fn}fnfnfn\\\\fn\\fn} }_{t-1mid t-1}{hat {mathbf {x} }_{t-2mid t-1}\vdots \{hat {mathbf {x} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}
donde:
- x^ ^ t▪ ▪ t− − 1{displaystyle {hat {mathbf {x} } se calcula mediante un filtro estándar Kalman;
- Sí.t▪ ▪ t− − 1=zt− − Hx^ ^ t▪ ▪ t− − 1{displaystyle mathbf {y} _{tmid t-1}=mathbf {z} ¿Qué? {H} {hat {mathbf {x} } es la innovación producida considerando la estimación del filtro estándar Kalman;
- los diversos x^ ^ t− − i▪ ▪ t{displaystyle {hat {mathbf {x} } con i=1,...... ,N− − 1{displaystyle i=1,ldotsN-1} son nuevas variables; es decir, no aparecen en el filtro estándar Kalman;
- las ganancias se calculan mediante el siguiente esquema:
- K()i+1)=P()i)HT[HPHT+R]− − 1{displaystyle mathbf {K} {i+1)}=mathbf {P} {i)}mathbf {H} {textosf}left[mathbf] {H} mathbf {P} mathbf {H} {textsf {T}+mathbf {R} right]^{-1}
- y
- P()i)=P[()F− − KH)T]i{displaystyle mathbf {} {i)}=mathbf {P}left[left(mathbf {F} -mathbf {K}mathbf {H}right)}{textsf {T}right]}{i}}}}}} {}}}} {i}}}}}}}}
- Donde P{displaystyle mathbf {P} y K{displaystyle mathbf {K} son la covariancia de error de predicción y las ganancias del filtro estándar Kalman (es decir, Pt▪ ▪ t− − 1{displaystyle mathbf {P} _{tmid t-1}).
Si la covarianza del error de estimación se define de modo que
- Pi:=E[()xt− − i− − x^ ^ t− − i▪ ▪ t)Alternativa Alternativa ()xt− − i− − x^ ^ t− − i▪ ▪ t)▪ ▪ z1...... zt],{displaystyle mathbf {} _{i}:=Eleft[left(mathbf {x} _{t-i}-{hat {mathbf {x} }_{t-imid t}right)}left(mathbf {x} _{t-i}-{hat {mathbf {x} }_{t-imid t}mid z_{1}ldots z_{t}right]
entonces tenemos que mejorar la estimación xt− − i{displaystyle mathbf {x} ¿Qué? es dado por:
- P− − Pi=.. j=0i[P()j)HT()HPHT+R)− − 1H()P()i))T]{displaystyle mathbf - Mathbf {P} ¿Qué? {H} ^{textsf {T}left(mathbf {H} mathbf {P} mathbf {H} ^{textsf {T}+mathbf {R}right)^{-1}mathbf {H} left(mathbf {P} {i)}right)^{textsf {T}right]}}}
Suavizadores de intervalo fijo
El liso de intervalo fijo óptimo proporciona la estimación óptima x^ ^ k▪ ▪ n{displaystyle {hat {mathbf {x} } ()<math alttext="{displaystyle kk.n{displaystyle k maden}<img alt="k) utilizando las mediciones de un intervalo fijo z1{displaystyle mathbf {z} ¿Qué? a zn{displaystyle mathbf {z} ¿Qué?. Esto también se llama "Kalman Smoothing". Hay varios algoritmos de suavizado en uso común.
Rauch-Tung-Striebel
El suavizador Rauch-Tung-Striebel (RTS) es un algoritmo eficiente de dos pasos para suavizar intervalos fijos.
El pase adelante es el mismo que el algoritmo regular de filtro Kalman. Éstos filtrado a-priori y a-posteriori state estimates x^ ^ k▪ ▪ k− − 1{displaystyle {hat {mathbf {x} }, x^ ^ k▪ ▪ k{displaystyle {hat {mathbf {x} } y covarianzas Pk▪ ▪ k− − 1{displaystyle mathbf {P} _{kmid k-1}, Pk▪ ▪ k{displaystyle mathbf {} _{kmid k} son salvados para su uso en el paso atrasado (para la retrodicción).
En el paso atrás, computamos el lisa Estimaciones estatales x^ ^ k▪ ▪ n{displaystyle {hat {mathbf {x} } y covarianzas Pk▪ ▪ n{displaystyle mathbf {} _{kmid n}. Comenzamos por última vez paso y avanzamos hacia atrás a tiempo utilizando las siguientes ecuaciones recursivas:
- x^ ^ k▪ ▪ n=x^ ^ k▪ ▪ k+Ck()x^ ^ k+1▪ ▪ n− − x^ ^ k+1▪ ▪ k)Pk▪ ▪ n=Pk▪ ▪ k+Ck()Pk+1▪ ▪ n− − Pk+1▪ ▪ k)CkT{displaystyle {begin{aligned}{hat {mathbf {x} {fnMicrosoft Sans Serif} }_{kmid k}+mathbf {C}left({hat {mathbf {x} }_{k+1mid n}-{hat {mathbf {x} {\fnK}\fnK}\fnMitbf {f}mmmm}mmmmfn} {fnK}mfnh}mfnh}mcH0cH00}mcH00}mcH00} {P} _{k+1mid No... {P} _{k+1mid k}right)mathbf {C} _{k}{textsf {T}end{aligned}}
dónde
- Ck=Pk▪ ▪ kFk+1TPk+1▪ ▪ k− − 1.{displaystyle mathbf {C}=Mathbf {P} {Kmid k}Mathbf {F} _{k+1}{textsf Mathbf {P} k}{-1}
xk▪ ▪ k{displaystyle mathbf {x} ¿Qué? es la estimación de tiempo del estado a-posteriori k{displaystyle k} y xk+1▪ ▪ k{displaystyle mathbf {x} ¿Qué? es la estimación del tiempo del estado a priori k+1{displaystyle k+1}. La misma notación se aplica a la covariancia.
Suavizado Bryson-Frazier modificado
Una alternativa al algoritmo RTS es el suavizador de intervalo fijo Bryson-Frazier (MBF) modificado desarrollado por Bierman. Esto también utiliza un pase hacia atrás que procesa los datos guardados del pase hacia adelante del filtro Kalman. Las ecuaciones para el pase hacia atrás implican la recursiva cálculo de datos que se utilizan en cada tiempo de observación para calcular el estado suavizado y la covarianza.
Las ecuaciones recursivas son
- ▪ ▪ ~ ~ k=HkTSk− − 1Hk+C^ ^ kT▪ ▪ ^ ^ kC^ ^ k▪ ▪ ^ ^ k− − 1=FkT▪ ▪ ~ ~ kFk▪ ▪ ^ ^ n=0λ λ ~ ~ k=− − HkTSk− − 1Sí.k+C^ ^ kTλ λ ^ ^ kλ λ ^ ^ k− − 1=FkTλ λ ~ ~ kλ λ ^ ^ n=0{displaystyle {begin{aligned}{tilde #Lambda ♪♪♪♪♪ [H] _{k}{textsf Mathbf {fnH} {fnMithbf} }_{k} {textosf {T}{hat {fnMicrosoft} {fnMicrosoft}} {fnMicrosoft}} {f}} {f}} {fn}}} {f}}} {fnfnfnfnf}} {fnf}fnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnf}fnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfnfn - ¿Qué? }_{k}{hat #Lambda }_{k-1} Alguien=mathbf {F} _{k}{textsf {T} {fn} {fnMicrosoft} {fnMicrosoft}} {fnMicrosoft}} {fn}} {fnMicrosoft}}} {fn}} {fnMicrosoft} {fn}}}} {f}}} {f}}}} {f}}}} {f}}}} {f}}}}}} {f}f} {f}f}f}}f}f}}}}f}f} {f} {f} {f} {f}f}f}}}}f}f}f}f}f}f}fnf}}fnf}f}f}fnfnfnf}f}fnfnfn}fnfnf}fnf}f}f}}}}}}}} #Lambda ♪♪♪♪♪Mathbf {F} {fn}\fnK} #Lambda ♪♪♪♪♪♪♪♪ {fnMicrode ♪♪♪♪♪ [H] _{k}{textsf {T}Mathbf {fnK} {fnK} {fnK} {fnK}} {fnK} {fnK}} {f}} {fn}}}fnK} {fnK}}}f}}}}}\fnKf} {f}fnKf}f}f}}}f}}}f}}}}}}}}}}}}}}\\\\\\\fnKfnK\\f}}}\\\\\fnKf}}}}}}}}}}}}}}\\\fnKhn}}}}}}}\\\\\\\fnKh}}}}fnK\fnKfnK\f}\\\\f}}}}}}}}} }_{k} {textosf {T}{hat {lambda} }_{k}{hat {lambda }_{k-1} Alguien=mathbf {F} _{k}{textsf {T} {fn} {fnMicrosoft} {fnMicrosoft}} {fnMicrosoft}} {fn}} {fnMicrosoft}}} {fn}} {fnMicrosoft} {fn}}}} {f}}} {f}}}} {f}}}} {f}}}} {f}}}}}} {f}f} {f}f}f}}f}f}}}}f}f} {f} {f} {f} {f}f}f}}}}f}f}f}f}f}f}fnf}}fnf}f}f}fnfnfnf}f}fnfnfn}fnfnf}fnf}f}f}}}}}}}} {fnMicrode }_{k}{hat {lambda } {n}=0end{aligned}
Donde Sk{displaystyle mathbf {S} _{k} es la covariancia residual y C^ ^ k=I− − KkHk{displaystyle {hat {fnMithbf {C} ♪♪♪♪ - Mathbf {fnK}. El estado suavizado y la covariancia se pueden encontrar por sustitución en las ecuaciones
- Pk▪ ▪ n=Pk▪ ▪ k− − Pk▪ ▪ k▪ ▪ ^ ^ kPk▪ ▪ kxk▪ ▪ n=xk▪ ▪ k− − Pk▪ ▪ kλ λ ^ ^ k{displaystyle {begin{aligned}mathbf {P} {fn} {fnK} {fnMicrosoft}} {fnMicrosoft} {fn}}}} {fnMicrosoft} {f}fn}}fnMicrosoft}fnK}}f} {fnK}-Mathbf {fnK} {fnK} {fnK} {fnMicrosoft}} {fnK} {fnK}} {fnK}}} {fnK}} {fnK} {fnK}}} {fnK}} {f}fnKfnKf}}fnH00f}f}}}f}}f}f}}fnH00fnH00f}fnH00fnKfnH00f}fnH00fnH00fnKfnH00fnH00f}}fnH00fnKfnH00fnH00fnKfnH00fnH00fnKfnH00fnKfnH00fnH00fnH00}fnH00}}}}fnH00}}}}}} #Lambda ♪♪♪♪♪Mathbf {fnK}\\fnMitbf} ################################################################################################################################################################################################################################################################ ¿Por qué? }_{k}end{aligned}}
o
- Pk▪ ▪ n=Pk▪ ▪ k− − 1− − Pk▪ ▪ k− − 1▪ ▪ ~ ~ kPk▪ ▪ k− − 1xk▪ ▪ n=xk▪ ▪ k− − 1− − Pk▪ ▪ k− − 1λ λ ~ ~ k.{displaystyle {begin{aligned}mathbf {P} {fn} {fnK} {fnMicrosoft}} {fnMicrosoft} {fn}}}} {fnMicrosoft} {f}fn}}fnMicrosoft}fnK}}f} {P} {Kmid k-1}-mathbf {fnK} {fnK} {fnMicrosoft} {fnMicrosoft} {fnMicrosoft} {fn} {fnMicrosoft} {fnMicrosoft} {fnMicrosoft} {fnMicrosoft} {fnMicrosoft} {fnMicrosoft} {fnMicrosoft} #Lambda ♪♪♪♪♪Mathbf {fnK}\\fnMitbf {x} ################################################################################################################################################################################################################################################################ ¿Qué? {fnMicrode }_{k}.
Una ventaja importante del MBF es que no requiere encontrar la inversa de la matriz de covarianza.
Suavizado de varianza mínima
El suavizador de varianza mínima puede lograr el mejor rendimiento de error posible, siempre que los modelos sean lineales, sus parámetros y las estadísticas de ruido se conozcan con precisión. Este suavizador es una generalización del espacio de estado variable en el tiempo del filtro de Wiener no causal óptimo.
Los cálculos más suaves se realizan en dos pasadas. Los cálculos directos involucran un predictor de un paso adelante y están dados por
- x^ ^ k+1▪ ▪ k=()Fk− − KkHk)x^ ^ k▪ ▪ k− − 1+Kkzkα α k=− − Sk− − 12Hkx^ ^ k▪ ▪ k− − 1+Sk− − 12zk{displaystyle {begin{aligned}{hat {mathbf {x} }_{k+1mid k} Alguien=(mathbf {F} {K} _{k}mathbf {H} {f} {f} {f}} {f} {f} {f} {f}f}} }_{kmid k-1}+mathbf {K}Mathbf {z} _{k}\\\Alpha ################################################################################################################################################################################################################################################################ {fnMicrosoft Sans Serif} Mathbf... }_{kmid k-1}+mathbf {fnMicrosoft Sans Serif} Mathbf {z} {k}end{aligned}
El sistema anterior se conoce como el inverso factor Wiener-Hopf. La recursión atrasada es la unión del sistema anterior hacia adelante. El resultado del pase atrasado β β k{displaystyle beta _{k} puede calcularse mediante el funcionamiento de las ecuaciones avanzadas en el tiempo revertido α α k{displaystyle alpha _{k} y el tiempo revertiendo el resultado. En el caso de la estimación de salida, la estimación suavizada se da por
- Sí.^ ^ k▪ ▪ N=zk− − Rkβ β k{fnMicrosoft Sans Serif} }_{kmid N}=mathbf {z} ¿Qué? {R} {K}beta ¿Qué?
Tomar la parte causal de este rendimiento más suave de varianza mínima
- Sí.^ ^ k▪ ▪ k=zk− − RkSk− − 12α α k{displaystyle {hat {mathbf} - ¿Qué? ¿Qué? {R}Mathbf {fnK} {fnMicroc} {fnK}} {fnK}} {f}}} {fn}}} {fn}}} {f}}}} {fn}}} {fnK}}} {f}}} {f}}}}} {f}}}}}}}}}}}}}}} {f}}}}}}}}}}}}}}} {f}}}}}}} {f}} {f}}}}}}} {f}}}}}}}}}} {f}}}}}}}}}} {f}}}}}}}} {f}}}}}}}}}}}}}}}}} {f}}}}}}f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ¿Qué?
que es idéntico al filtro de Kalman de varianza mínima. Las soluciones anteriores minimizan la varianza del error de estimación de salida. Tenga en cuenta que la derivación más suave de Rauch-Tung-Striebel supone que las distribuciones subyacentes son gaussianas, mientras que las soluciones de varianza mínima no lo son. Los suavizadores óptimos para la estimación de estado y la estimación de entrada se pueden construir de manera similar.
Una versión de tiempo continuo del suavizador anterior se describe en.
Se pueden emplear algoritmos de maximización de expectativas para calcular estimaciones aproximadas de máxima verosimilitud de parámetros de espacio de estado desconocidos dentro de filtros y suavizadores de varianza mínima. A menudo, las incertidumbres permanecen dentro de los supuestos del problema. Se puede diseñar un suavizador que acomode las incertidumbres agregando un término definido positivo a la ecuación de Riccati.
En los casos en que los modelos no son lineales, las linealizaciones paso a paso pueden estar dentro del filtro de varianza mínima y recurrencias más suaves (filtrado de Kalman extendido).
Filtros Kalman ponderados en frecuencia
Fletcher y Munson realizaron una investigación pionera sobre la percepción de sonidos en diferentes frecuencias en la década de 1930. Su trabajo condujo a una forma estándar de ponderar los niveles de sonido medidos dentro de las investigaciones del ruido industrial y la pérdida auditiva. Desde entonces, las ponderaciones de frecuencia se han utilizado en los diseños de filtros y controladores para gestionar el rendimiento dentro de las bandas de interés.
Típicamente, una función de configuración de frecuencia se utiliza para ponderar la potencia promedio de la densidad espectral de error en una banda de frecuencia especificada. Vamos Sí.− − Sí.^ ^ {displaystyle mathbf {f} {f}} {f}} {f}} {f}} denota el error de estimación de salida expuesto por un filtro convencional Kalman. Además, deja W{displaystyle mathbf {W} denota una función de transferencia de peso de frecuencia causal. La solución óptima que minimiza la diferencia W()Sí.− − Sí.^ ^ ){displaystyle mathbf {W} left(mathbf {y} -{hat {mathbf {y}}right)} surge simplemente construyendo W− − 1Sí.^ ^ {displaystyle mathbf {f} {f} {f}} {f}} {f}} {f}}.
El diseño de W{displaystyle mathbf {W} sigue siendo una pregunta abierta. Una forma de proceder es identificar un sistema que genera el error de estimación y el ajuste W{displaystyle mathbf {W} igual a la inversa de ese sistema. Este procedimiento se puede realizar para obtener una mejora de error media-cuatro con el costo del orden de filtro aumentado. La misma técnica se puede aplicar a licuados.
Filtros no lineales
El filtro de Kalman básico se limita a una suposición lineal. Sin embargo, los sistemas más complejos pueden ser no lineales. La no linealidad se puede asociar con el modelo de proceso o con el modelo de observación o con ambos.
Las variantes más comunes de filtros Kalman para sistemas no lineales son el filtro Kalman extendido y el filtro Kalman sin perfume. La idoneidad de qué filtro utilizar depende de los índices de no linealidad del proceso y del modelo de observación.
Filtro Kalman extendido
En el filtro de Kalman extendido (EKF), los modelos de observación y transición de estado no necesitan ser funciones lineales del estado, sino que pueden ser funciones no lineales. Estas funciones son de tipo diferenciable.
- xk=f()xk− − 1,uk)+wkzk=h()xk)+vk{displaystyle {begin{aligned}mathbf {x} _{k}=f(mathbf {x} _{k-1},mathbf {u})+mathbf {w} ¿Qué? ¿Qué?
La función f se puede utilizar para calcular el estado previsto a partir de la estimación anterior y, de forma similar, la función h se puede utilizar para calcular la medida prevista a partir del estado previsto. Sin embargo, f y h no se pueden aplicar directamente a la covarianza. En su lugar, se calcula una matriz de derivadas parciales (la jacobiana).
En cada paso de tiempo, el jacobiano se evalúa con los estados predichos actuales. Estas matrices se pueden utilizar en las ecuaciones de filtro de Kalman. Este proceso esencialmente linealiza la función no lineal alrededor de la estimación actual.
Filtro Kalman sin perfume
Cuando los modelos de transición y observación del estado, es decir, las funciones de predicción y actualización f{displaystyle f} y h{displaystyle h}—son altamente no lineales, el filtro extendido Kalman puede dar un rendimiento particularmente pobre. Esto se debe a que la covariancia se propaga mediante la linealización del modelo no lineal subyacente. El filtro Kalman no centrado (UKF) utiliza una técnica de muestreo determinista conocida como la transformación no centrada (UT) para elegir un conjunto mínimo de puntos de muestra (llamados puntos de sigma) alrededor de la media. Los puntos de sigma se propagan a través de las funciones no lineales, desde las cuales se forman una nueva estimación de media y covariancia. El filtro resultante depende de cómo se calculan las estadísticas transformadas de la UT y de qué conjunto de puntos de sigma se utilizan. Debe señalarse que siempre es posible construir nuevos FRU en forma coherente. Para ciertos sistemas, el FRU resultante calcula con más precisión la verdadera media y covariancia. Esto se puede verificar con el muestreo Monte Carlo o la expansión de la serie Taylor de las estadísticas posteriores. Además, esta técnica elimina el requisito de calcular explícitamente a los jacobinos, que para funciones complejas puede ser una tarea difícil en sí mismo (es decir, requerir derivados complicados si se hace analíticamente o se hace computacionalmente costoso si se hace numéricamente), si no imposible (si esas funciones no son diferenciables).
Puntos Sigma
Para un vector aleatorio x=()x1,...... ,xL){displaystyle mathbf {x} =(x_{1},dotsx_{L}}, puntos de sigma son cualquier conjunto de vectores
- {}s0,...... ,sN}={}()s0,1s0,2...... s0,L),...... ,()sN,1sN,2...... sN,L)}{fnMicrosoft Sans Serif} ##### {begin{pmatrix}s_{0,1} limites_{0,2} {0,L}end{pmatrix}},dots{begin{pmatrix}s_{N,1} limits_{N,2} limitldots {N,L}end{pmatrix}{bigr {}}}
atribuido con
- pesos de primer orden W0a,...... ,WNa{displaystyle ¿Qué? que cumple
- .. j=0NWja=1{displaystyle sum _{j=0}{N}W_{j}{a}=1}
- para todos i=1,...... ,L{displaystyle i=1,dotsl}: E[xi]=.. j=0NWjasj,i{displaystyle E[x_{i}=sum ¿Qué?
- pesos de segundo orden W0c,...... ,WNc{displaystyle ¿Qué? que cumple
- .. j=0NWjc=1{displaystyle sum _{j=0}W_{j}{c}=1}
- para todos los pares ()i,l)▪ ▪ {}1,...... ,L}2:E[xixl]=.. j=0NWjcsj,isj,l{displaystyle (i,l)in {1,dots E [x_{i}x_{l}=sum ¿Qué?.
Una simple elección de puntos de sigma y pesos para xk− − 1▪ ▪ k− − 1{displaystyle mathbf {x} ¿Qué? en el algoritmo UKF
- <math alttext="{displaystyle {begin{aligned}mathbf {s} _{0}&={hat {mathbf {x} }}_{k-1mid k-1}\-1&<W_{0}^{a}=W_{0}^{c}s0=x^ ^ k− − 1▪ ▪ k− − 1− − 1.W0a=W0c.1sj=x^ ^ k− − 1▪ ▪ k− − 1+L1− − W0Aj,j=1,...... ,LsL+j=x^ ^ k− − 1▪ ▪ k− − 1− − L1− − W0Aj,j=1,...... ,LWja=Wjc=1− − W02L,j=1,...... ,2L{displaystyle {begin{aligned}mathbf {} {} {f} {f}f} {f} }_{k-1mid ################################################################################################################################################################################################################################################################ }_{k-1mid k-1}+{sqrt {frac # Mathbf {A} _{j},quad j=1,dots L 'Mathbf {s} _{L+j} }_{k-1mid k-1}-{sqrt {frac {L}{1-W_{0}}}mathbf {A} _{j},quad j=1,dotsL\W_{j}{a} {=W_{j}{c}={c}={c}=frac} {1-W_{0} {2L}},quad j=1,dots2Lend{aligned}}}<img alt="{displaystyle {begin{aligned}mathbf {s} _{0}&={hat {mathbf {x} }}_{k-1mid k-1}\-1&<W_{0}^{a}=W_{0}^{c}
Donde x^ ^ k− − 1▪ ▪ k− − 1{displaystyle {hat {mathbf {x} }_{k-1mid k-1} es la estimación media de xk− − 1▪ ▪ k− − 1{displaystyle mathbf {x} ¿Qué?. El vector Aj{displaystyle mathbf {A} _{j} es jcolumna de A{displaystyle mathbf {A} Donde Pk− − 1▪ ▪ k− − 1=AAT{displaystyle mathbf {fnMicrosoft Sans Serif}. Típicamente, A{displaystyle mathbf {A} se obtiene a través de la descomposición de Cholesky Pk− − 1▪ ▪ k− − 1{displaystyle mathbf {P} _{k-1mid k-1}. Con algún cuidado las ecuaciones de filtros se pueden expresar de tal manera que A{displaystyle mathbf {A} se evalúa directamente sin cálculos intermedios de Pk− − 1▪ ▪ k− − 1{displaystyle mathbf {P} _{k-1mid k-1}. This is referred to as the filtro Kalman sin olor.
El peso del valor medio, W0{displaystyle W_{0}, puede ser elegido arbitrariamente.
Otra parametrización popular (que generaliza lo anterior) es
- s0=x^ ^ k− − 1▪ ▪ k− − 1W0a=α α 2κ κ − − Lα α 2κ κ W0c=W0a+1− − α α 2+β β sj=x^ ^ k− − 1▪ ▪ k− − 1+α α κ κ Aj,j=1,...... ,LsL+j=x^ ^ k− − 1▪ ▪ k− − 1− − α α κ κ Aj,j=1,...... ,LWja=Wjc=12α α 2κ κ ,j=1,...... ,2L.{displaystyle {begin{aligned}mathbf {} {} {f} {f}f} {f} }_{k-1mid k-1) ¿Qué? -L}{alpha ^{2}kappa }W_{0}{c} {=W_{0}{a}+1-alpha ^{2}+beta \mathbf {s} _{j} limit={hat {mathbf {x} }_{k-1mid k-1}+alpha {sqrt {kappa # Mathbf {A} _{j},quad j=1,dots L 'Mathbf {s} _{L+j} }_{k-1mid k-1}-alpha {cHFF} }mathbf {A} _{j},quad j=1,dotsLW_{j}{a} {=W_{j}{c}={c}={frac} {1}{2alpha ^{2}kappa }quad j=1,dots2L.end{aligned}}}
α α {displaystyle alpha } y κ κ {displaystyle kappa } controla la propagación de los puntos de sigma. β β {displaystyle beta } se relaciona con la distribución de x{displaystyle x}.
Los valores apropiados dependen del problema de que se trate, pero una recomendación típica es α α =10− − 3{displaystyle alpha =10^{-3}, κ κ =1{displaystyle kappa =1}, y β β =2{displaystyle beta =2}. Sin embargo, un valor mayor α α {displaystyle alpha } (por ejemplo, α α =1{displaystyle alpha =1}) puede ser beneficioso para captar mejor la difusión de la distribución y posibles no linealidades. Si la verdadera distribución de x{displaystyle x} es Gaussian, β β =2{displaystyle beta =2} es óptimo.
Predecir
Al igual que con el EKF, la predicción del UKF se puede usar independientemente de la actualización del UKF, en combinación con una actualización lineal (o EKF), o viceversa.
Dadas las estimaciones de la media y la covariancia, x^ ^ k− − 1▪ ▪ k− − 1{displaystyle {hat {mathbf {x} }_{k-1mid k-1} y Pk− − 1▪ ▪ k− − 1{displaystyle mathbf {P} _{k-1mid k-1}, uno obtiene N=2L+1{displaystyle N=2L+1} sigma puntos como se describe en la sección anterior. Los puntos de sigma se propagan a través de la función de transición f.
- xj=f()sj)j=0,...... ,2L{displaystyle mathbf {x} _{j}=fleft(mathbf {s} _{j}right)quad j=0,dots2L}.
Los puntos sigma propagados se pesan para generar la media y la covarianza predichas.
- x^ ^ k▪ ▪ k− − 1=.. j=02LWjaxjPk▪ ▪ k− − 1=.. j=02LWjc()xj− − x^ ^ k▪ ▪ k− − 1)()xj− − x^ ^ k▪ ▪ k− − 1)T+Qk{displaystyle {begin{aligned}{hat {mathbf {x} ♪♪ k-1} ¿Por qué? {P}{kmid k-1} ¿Por qué? }_{kmid k-1}right)left(mathbf {x} _{j}-{hat {mathbf {x} {fnMicrosoft Sans Serif} {T}+mathbf {Q} {k}end{aligned}}
Donde Wja{displaystyle ¿Qué? son los pesos de primer orden de los puntos de sigma originales, y Wjc{displaystyle ¿Qué? son los pesos de segundo orden. La matriz Qk{displaystyle mathbf {Q} _{k} es la covariancia del ruido de transición, wk{displaystyle mathbf {w} ¿Qué?.
Actualizar
D. Estimaciones de predicción x^ ^ k▪ ▪ k− − 1{displaystyle {hat {mathbf {x} } y Pk▪ ▪ k− − 1{displaystyle mathbf {P} _{kmid k-1}, un nuevo conjunto de N=2L+1{displaystyle N=2L+1} sigma puntos s0,...... ,s2L{displaystyle mathbf {s} _{0},dotsmathbf {s} _{2L}} con pesos de primer orden correspondientes W0a,...... W2La{displaystyle ¿Qué? ¿Qué? y pesos de segundo orden W0c,...... ,W2Lc{displaystyle ¿Qué? se calcula. Estos puntos de sigma se transforman a través de la función de medición h{displaystyle h}.
- zj=h()sj),j=0,1,...... ,2L{displaystyle mathbf {z} _{j}=h(mathbf {s} _{j}),,, j=0,1,dots2L}.
Luego se calcula la media empírica y la covarianza de los puntos transformados.
- z^ ^ =.. j=02LWjazjS^ ^ k=.. j=02LWjc()zj− − z^ ^ )()zj− − z^ ^ )T+Rk{displaystyle {begin{aligned}{hat {mathbf} ♪♪♪ ¿Qué? }_{k} âTMa âTMa ¿Por qué? {fnMicrosoft Sans Serif} {T}+mathbf {R_{k}end{aligned}}}
Donde Rk{displaystyle mathbf {R} _{k} es la matriz de covariancia del ruido de observación, vk{displaystyle mathbf {v} _{k}. Además, también se necesita la matriz de covariancia cruzada
- Cxz=.. j=02LWjc()xj− − x^ ^ kSilenciok− − 1)()zj− − z^ ^ )T.{displaystyle {begin{aligned}mathbf {C_{xz}=sum _{j=0}^{2L}W_{j}{c}(mathbf {x} ¿Por qué? {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {fnMitbf {f}}}} {fnMitbf {f}} {fnMicrosoft Sans Serif}}}
La ganancia de Kalman es
- Kk=CxzS^ ^ k− − 1.{displaystyle {begin{aligned}mathbf {K}=Mathbf {C_{xz} {hat {fnMithbf} {S} {fnMicrosoft Sans Serif}
La media actualizada y las estimaciones de covarianza son
- x^ ^ k▪ ▪ k=x^ ^ kSilenciok− − 1+Kk()zk− − z^ ^ )Pk▪ ▪ k=Pk▪ ▪ k− − 1− − KkS^ ^ kKkT.{displaystyle {begin{aligned}{hat {mathbf {x} {fnK} {fnMicrosoft} {fnMicrosoft} }_{k habitk-1}+mathbf {K} ¿Qué? {P} {Kmid k-1}-mathbf {K} {fnK} {fnMitbf} {fnK} {f}fnMicrosoft Sans Serif} {T}.end{aligned}}
Filtro de Kalman discriminatorio
Cuando el modelo de observación p()zk▪ ▪ xk){displaystyle p(mathbf {z} _{k}mid mathbf {x} _{k}} es altamente no lineal y/o no gaussiano, puede resultar ventajoso aplicar la regla y estimación de Bayes
- p()zk▪ ▪ xk).. p()xk▪ ▪ zk)p()xk){displaystyle p(mathbf {z} ¿Por qué?
Donde p()xk▪ ▪ zk).. N()g()zk),Q()zk)){displaystyle p(mathbf {x} _{k}mid mathbf {z} _{k})approx {mathcal {N}}(g(mathbf {z} _{k}),Q(mathbf {z} _{k})})} para funciones no lineales g,Q{displaystyle g,Q}. Esto reemplaza la especificación generativa del filtro estándar Kalman con un modelo discriminativo para los estados latentes dadas observaciones.
Bajo un modelo de estado estacionario
- p()x1)=N()0,T),p()xk▪ ▪ xk− − 1)=N()Fxk− − 1,C),{cHFF} {cHFF} {cH00}} {cH00}} {cHFF} {cHFF} {cHFF}} {cHFF} {cHFF} {cHFF} {cHFF} {cH00}cH00} {cH00}cH00} {cH00}}} {f}f}cH00}cH00}cH00}cH00}cH00}cH00}cH00} {cH00}cH00}cH00} {cH00}cH00}cH00}cH00}cH00} {cH00}cH00} {cH00}cH00}cH00}cH00} {cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}
Donde T=FTF⊺ ⊺ +C{displaystyle mathbf {T} =mathbf {F} mathbf {T} mathbf {F} ^{intercal }+mathbf {C}, si
- p()xk▪ ▪ z1:k).. N()x^ ^ kSilenciok− − 1,PkSilenciok− − 1),{displaystyle p(mathbf {x} _{k}mid mathbf {z} _{1:k})approx {mathcal {N} {hat {mathbf {x} }_{k tuk-1},mathbf {P} _{k tuk-1}}
entonces dado una nueva observación zk{displaystyle mathbf {z} ¿Qué?, sigue que
- p()xk+1▪ ▪ z1:k+1).. N()x^ ^ k+1Silenciok,Pk+1Silenciok){displaystyle p(mathbf {x} _{k+1}mid mathbf {z} _{1:k+1})approx {mathcal {N} {hat {mathbf {x} }_{k+1 imperk},mathbf {P} _{k+1 imperk}}
dónde
- Mk+1=FPkSilenciok− − 1F⊺ ⊺ +C,Pk+1Silenciok=()Mk+1− − 1+Q()zk)− − 1− − T− − 1)− − 1,x^ ^ k+1Silenciok=Pk+1Silenciok()Mk+1− − 1Fx^ ^ kSilenciok− − 1+Pk+1Silenciok− − 1g()zk)).{displaystyle {begin{aligned}mathbf {M} _{k+1} {F} mathbf {fnK}* {F} ^{intercal "Mathbf" {P} _{k+1 hPak} tarde=(mathbf {M} _{k+1}{-1}+Q(mathbf {z} _{k})^{-1}-mathbf {fnMicrosoft Sans Serif} ################################################################################################################################################################################################################################################################ [P] _{k+1 imperk] {fnK} {fnK} {fnK} {f}}f} {fnK}f} {f} {f}fn}}}f9}}} ################################################################################################################################################################################################################################################################ {P} _{k+1 imperk}{-1}g(mathbf {z})end{aligned}}}
Tenga en cuenta que esta aproximación requiere Q()zk)− − 1− − T− − 1{displaystyle Q(mathbf {z} _{k}-mathbf {T} ser positivo-definido; en el caso de que no es,
- Pk+1Silenciok=()Mk+1− − 1+Q()zk)− − 1)− − 1{displaystyle mathbf {P} _{k+1 imperk}=(mathbf [M] _{k+1} {-1}+Q(mathbf {z} _{k})^{-1})}{-1}}
se utiliza en su lugar. Tal enfoque resulta particularmente útil cuando la dimensionalidad de las observaciones es mucho mayor que la de los estados latentes y puede usarse para construir filtros que son particularmente robustos a las no estacionariedades en el modelo de observación.
Filtro de Kalman adaptativo
Los filtros Adaptive Kalman permiten adaptarse a dinámicas de proceso que no se modelan en el modelo de proceso F()t){displaystyle mathbf {F} (t)}, que sucede por ejemplo en el contexto de un objetivo de maniobra cuando un filtro Kalman de velocidad constante (orden reducido) se emplea para el seguimiento.
Filtro Kalman–Bucy
El filtrado de Kalman-Bucy (llamado así por Richard Snowden Bucy) es una versión de tiempo continuo del filtrado de Kalman.
Se basa en el modelo de espacio de estados
- ddtx()t)=F()t)x()t)+B()t)u()t)+w()t)z()t)=H()t)x()t)+v()t){cHFF} {cHFF} {cHFF} {cH} {cHFF} {cH} {cHFF} {cHFF} {cHFF} {cHFF} {cHFF} {cHFF} {cHFF} {cHFF} {cHFF} {cHFF}cHFF} {cHFF}f} {cHFF}}}cHFF}f} {cHFF}cHFF} {cHFF}} {f} {cHFF}cHFF}cHFF} {cHFF}cHFF}cHFF}cHFF}}cHFF} {f} {cHFF}cHFF} {cHFF}f} {cHFF}f} {f} {cHFF}cHFF}f}f}cHFF}}}}}}cH
Donde Q()t){displaystyle mathbf {Q} (t)} y R()t){displaystyle mathbf {R} (t)} representan las intensidades (o, con mayor precisión: la densidad del espectro de potencia - PSD - matrices) de los dos términos de ruido blanco w()t){displaystyle mathbf {w} (t)} y v()t){displaystyle mathbf {v} (t)}, respectivamente.
El filtro consta de dos ecuaciones diferenciales, una para la estimación del estado y otra para la covarianza:
- ddtx^ ^ ()t)=F()t)x^ ^ ()t)+B()t)u()t)+K()t)()z()t)− − H()t)x^ ^ ()t))ddtP()t)=F()t)P()t)+P()t)FT()t)+Q()t)− − K()t)R()t)KT()t){displaystyle {begin{aligned}{frac} {fnK} {f} {fnK} {f}} {f}} {f} {f} {f} {f} {fn} {f}} {cH}} {f}} {f}f} {f}f}f}f} {f} {f}f}f}f}f}f}f} {f}f}}f}f}f}f}f}f}f}f}f}}f}f}f}f}f}f}}f}f}f}f}f}f}}f}f}}f}}}}}f}f} {f} {f}f}f} {f} {f}f}f}f}f}f}f}f}}f}}}}}} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}
donde la ganancia de Kalman viene dada por
- K()t)=P()t)HT()t)R− − 1()t){displaystyle mathbf {K} (t)=mathbf {P} (t)mathbf {H} ^{textsf {T}(t)mathbf {R} ^{-1}(t)}
Note que en esta expresión K()t){displaystyle mathbf {K} (t)} la covariancia del ruido de observación R()t){displaystyle mathbf {R} (t)} representa al mismo tiempo la covariancia del error de predicción (o innovación) Sí.~ ~ ()t)=z()t)− − H()t)x^ ^ ()t){displaystyle {tilde {mathbf {y}}(t)=mathbf {z} (t)-mathbf {H} (t){hat {mathbf {x}} {}(t)}} {f}; estas covarianzas son iguales sólo en el caso del tiempo continuo.
La distinción entre los pasos de predicción y actualización del filtrado de Kalman en tiempo discreto no existe en tiempo continuo.
La segunda ecuación diferencial, para la covarianza, es un ejemplo de una ecuación de Riccati. Las generalizaciones no lineales a los filtros de Kalman-Bucy incluyen el filtro de Kalman extendido en el tiempo continuo.
Filtro Kalman híbrido
La mayoría de los sistemas físicos se representan como modelos de tiempo continuo, mientras que las mediciones de tiempo discreto se realizan con frecuencia para la estimación del estado a través de un procesador digital. Por lo tanto, el modelo del sistema y el modelo de medida están dados por
- xÍ Í ()t)=F()t)x()t)+B()t)u()t)+w()t),w()t)♪ ♪ N()0,Q()t))zk=Hkxk+vk,vk♪ ♪ N()0,Rk){fnMicrosoft Sans Serif} {fnMicrosoft} {fnMicrosoft} {f} {f} {f} {fnMicrosoft} {f} {fnMicrosoft} {fnMicrosoft} {f} {fnMicrosoft} {f}fnMicrosoft} {f}}f} {f}}f}}}}f}f}}f}f} {f}f}}f} {f}f}f} {f}f} {f}f}f}f}f}f}f}f}f} {f}f}f}}f}}}f}f}f}f}}f}f}f} {f}f}f}f}f}}f}f}f}f}f}f}f} ♪♪♪♪ {H} {K}Mathbf {x} ¿Qué? ¿Qué? {R} {fn}fnK} {fnK}} {fnMicrosoft}} {fn}} {fn}}}} {fn}} {fnK}}} {fnK}}}}}}} {f}}}}}}}}}}fnKf}}}} {f}}}}} {f}}}}}}}}}}}}}}}}}}}}}}}}}} {f}}}}}f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {f}f}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
dónde
- xk=x()tk){displaystyle mathbf {x}=mathbf {x}.
Inicializar
- x^ ^ 0▪ ▪ 0=E[x()t0)],P0▪ ▪ 0=Var [x()t0)]{displaystyle {hat {mathbf {x} ♪♪ 0}=Eleft[mathbf {x} (t_{0})right],mathbf {P} _{0mid 0}=operatorname {Var} left[mathbf {x} left(t_{0}right)right]}
Predecir
- x^ ^ Í Í ()t)=F()t)x^ ^ ()t)+B()t)u()t), conx^ ^ ()tk− − 1)=x^ ^ k− − 1▪ ▪ k− − 1⇒ ⇒ x^ ^ k▪ ▪ k− − 1=x^ ^ ()tk)PÍ Í ()t)=F()t)P()t)+P()t)F()t)T+Q()t), conP()tk− − 1)=Pk− − 1▪ ▪ k− − 1⇒ ⇒ Pk▪ ▪ k− − 1=P()tk){fnK} {f} {fnK} {f}} {f} {f}} {f} {f}} {f} {f}} {f} {f} {f} {f}f}f} {f} {f}f}f}f}f}f}f}f}f}f}f}}f}f}f} {f}}f}f}}f}f}f}f}f}f}f}f}}}f}f}f}}}f} {f}f}f} {f}f} {f} {f}}}f}f}}f}f}f}f}}}f}}}}f}f}f}}}}}f}f}f}f}}}}}}} }_{k-1mid k-1}\\ Rightarrow {hat {mathbf {x} {fnMicrosoft Sans Serif} Rightarrow mathbf {P} _{kmid k-1} âTMamathbf {P} left(t_{k}right)end{aligned}}}
Las ecuaciones de predicción se derivan de los filtros Kalman de tiempo continuo sin actualización de las mediciones, es decir, K()t)=0{displaystyle mathbf {K} (t)=0}. El estado predicho y la covariancia se calculan respectivamente resolviendo un conjunto de ecuaciones diferenciales con el valor inicial igual a la estimación en el paso anterior.
Para el caso de los sistemas lineales invariantes en el tiempo, la dinámica del tiempo continuo se puede discretizar exactamente en un sistema de tiempo discreto utilizando matrices exponenciales.
Actualizar
- Kk=Pk▪ ▪ k− − 1HkT()HkPk▪ ▪ k− − 1HkT+Rk)− − 1x^ ^ k▪ ▪ k=x^ ^ k▪ ▪ k− − 1+Kk()zk− − Hkx^ ^ k▪ ▪ k− − 1)Pk▪ ▪ k=()I− − KkHk)Pk▪ ▪ k− − 1{displaystyle {begin{aligned}mathbf {K} {K} âTMa âTMa âTMa {P} {Kmid k-1}Mathbf [H] _{k}{textsf {T}left(mathbf {H} _{k}mathbf {f}mmid k-1}mathbf {H} _{k}textsf {T}+mathbf {R} _{k}right){-1}{hat {mathbf {x} {fnK} {fnMicrosoft} {fnMicrosoft} }_{kmid k-1}+mathbf {K}left(mathbf {z} ¿Qué? - Mathbf {K} {H} _{k}right)mathbf {P} {fnKmid k-1}end{aligned}}
Las ecuaciones de actualización son idénticas a las del filtro de Kalman de tiempo discreto.
Variantes para la recuperación de señales escasas
El filtro de Kalman tradicional también se ha empleado para la recuperación de señales dispersas, posiblemente dinámicas, de observaciones ruidosas. Trabajos recientes utilizan nociones de la teoría de la detección/muestreo comprimido, como la propiedad de isometría restringida y los argumentos de recuperación probabilísticos relacionados, para estimar secuencialmente el estado disperso en sistemas intrínsecamente de baja dimensión.
Relación con procesos gaussianos
Dado que los modelos de espacio de estado gaussiano lineal conducen a procesos gaussianos, los filtros de Kalman pueden verse como solucionadores secuenciales para la regresión de procesos gaussianos.
Aplicaciones
- Attitude and heading reference systems
- Autopilot
- Estimación del estado de la batería eléctrica (SoC)
- Interfazes cerebro-computer
- Señales caóticos
- Rastreo y fijación de vértice de partículas cargadas en detectores de partículas
- Seguimiento de objetos en la visión de la computadora
- Posición dinámica en el envío
- Economía, en particular macroeconómicos, análisis de series temporales y econometría
- Sistema de orientación inercial
- Medicina nuclear: restauración de imagen computada de emisión de fotones únicos
- Determinación de órbitas
- Estimación del estado del sistema de energía
- Rastreador de radar
- Sistemas de navegación por satélite
- Seismología
- Control sensorial de las unidades de frecuencia de motor AC
- Localización y cartografía simultáneas
- Mejora del discurso
- Odometría visual
- Previsión meteorológica
- Sistema de navegación
- Modelado 3D
- Supervisión de la salud estructural
- Procesamiento sensorial humano
Contenido relacionado
Telecomunicaciones en Italia
Telcos personales
G/M