2. Que es? Para que
sirve
Procesos
estocasticos
Propagacion de
varianza
Propagacion de medias
Procesos no
lineales
Índice
Linealizacion
alrededor de la
trayectoria estimada
Incorporacion
de medida
Formula
Ejemplo
Conclusiones
¿Que veremos hoy?
Esto, ¡Homero!
4. ¿Qué es?
El Filtro de Kalman es un
algoritmo matemático que se
utiliza para estimar el estado
de un sistema dinámico, el
cual puede estar sujeto a
ruido y con mediciones
imperfectas. El filtro de
Kalman utiliza un modelo
matemático del sistema y los
datos de medición para
actualizar continuamente su
estimación del estado actual
del sistema.
Ecuación exacta
Las funciones F, H pueden ser usadas para
calcular la predicción de la observación y el
estado, pero para calcular la covarianza hay
que usar las Jacobianas de las funciones
con el objetivo de linealizarlas
Donde F y H son funciones no lineales, Un el
vector de control y Vn~ Nr(0, Rn) y Wn ~Nd(0, Qn),
de forma análoga al filtro de Kalman
5. El filtro de Kalman se utiliza para
estimar el estado actual de un
sistema dinámico en tiempo real, lo
que es útil en una variedad de
aplicaciones prácticas. La estimación
del estado del sistema puede ser
necesaria en situaciones en las que
las mediciones directas son difíciles
o costosas de obtener, o en las que
las mediciones están sujetas a ruido
o errores.
El filtro de Kalman se utiliza comúnmente en la
industria automotriz, aeroespacial, de defensa
y de control de procesos, entre otras, para
realizar tareas como el seguimiento de objetos
en movimiento, la navegación, el control de la
trayectoria de un avión o cohete, la corrección
de errores en mediciones de sensores y la
optimización de la eficiencia de un proceso de
producción.
¿Para qué sirve?
6. Procesos
estocásticos
Primero que nada ¿qué es estocástico?
... con Garfield
Un
Verás: un proceso estocástico se
define, desde la teoría estadística
(cosa que no explicaré aquí) aquellos
procesos cuya evolución en el
tiempo es aleatoria.
Mmmm ya, y ¿qué tiene que ver eso con los filtros de Kalman?
Un
Dios, no seas como Oddie.
Hablamos de procesos estocásticos porque
partimos de la necesidad de ir más allá de
los sistemas en los que el azar no interviene .
Me explico: un modelo dinámico tiene
variables dominantes que se pueden medir
fácilmente. Pero ¿qué pasa con aquellas que
no se pueden modelar de manera
determinista? Como la velocidad del viento.
Ahí entran los procesos estocásticos
7. Mediciones, estimaciones y
Kalman
Chopper, ¿podemos decir que el filtro de
Kalman es un algoritmo que hace
mediciones?....
Bueno, eso no es precisamente
correcto. Recapitulemos: un filtro de
Kalman es un estimador, el cual,
realiza el tratamiento de una
medida. A las medidas las trata
como un conjunto de datos, a los
cuales, les minimizará su error
cuadrático.
Oh, ya comprendo. Muchas gracias,
Chopper
Tus.... tus halagos no me
hacen para nada feliz ^-^,
jovencito
8. Propagacion de
lavarianza
1 2 3 4 5
50
40
30
20
10
0
Estoy perdido ¿Qué
significa esto Batman?
En pocas palabras niño, se resume en
esto:
1. Significa la estimación de la
incertidumbre en cada iteración del
filtro.
2. Para su implementación es
necesario tener una matriz variable
de covarianza
3. Intenta predecir qué tan erróneas
están siendo las predicciones del
filtro
4. Qué importancia tiene? Mira la
gráfica hijo.
Incertidumbre
Error
en
predicciones
Cuidado: Los números fueron escogidos al azar, únicamente es para su entendimiento
9. Procesosno
lineales
Pero Superman, en que se
diferencia con el filtro del
Kalman?
No te preocupes
ciudadano promedio, yo
te explico.
Veras ciudadano, cuando se
trabaja con el filtro de Kalman se
sabe implícitamente que los
modelos son lineales y tiene una
distribución (Gaussiana), es decir,
normal.
Sin embargo, cuando se trabaja con
sistemas donde sus respectivos
modelados no son lineales, es prudente
utilizar una técnica diferente y saber de
procesos de linealización.
Ahh, ya entiendo, esto es necesario ya
que el filtro de Kalman arroja valores
inexactos y la varianza de la estimación
crece rápidamente, haciendo que los
resultados se alejen cada vez más.
¡¡Perfecto!! Es por eso que, para el filtro
de Kalman extendido, el cual es una
técnica (Ampliación), se puede utilizar el
jacobiano (Técnica de linealizar).
10. Linealización alrededor de una
trayectoria
To create your own,
choose a topic that
interests you.
• 𝑋𝑘 ≈
𝑋𝑘
• 𝑤𝑘 ≈ 0
• 𝑋𝑘+1 = 𝑓(𝑋𝑘, 𝑈𝑘, 𝑊𝑘)
• ≈ 𝑓
𝑋𝑘, 𝑈𝑘, 0 + ቚ
𝜕𝑓
𝜕𝑥
𝑋𝑘,𝑈𝑘,0
∗ 𝑒𝑘 + ቚ
𝜕𝑓
𝜕𝑤
𝑋𝑘,𝑈𝑘,0
∗ 𝑤𝑘
Se puede hacer una aproximación por derivadas parciales
Es el estado, y el estado
estimado
Ruido de proceso
Ecuación exacta
𝑒𝑘 = (𝑋𝑘 −
𝑋𝑘) Error después de medir
11. Linealización alrededor de
una trayectoria
• ≈ 𝑓
𝑋𝑘, 𝑈𝑘, 0 + ቚ
𝜕𝑓
𝜕𝑥
𝑋𝑘,𝑈𝑘,0
∗ 𝑒𝑘 + ቚ
𝜕𝑓
𝜕𝑤
𝑋𝑘,𝑈𝑘,0
Se puede hacer una aproximación por derivadas parciales
“Error antes de medir”
Matriz (nxn)
Donde n es el orden del sistema
A
𝑋𝑘, 𝑈𝑘 = 𝐴𝑘
G
𝑋𝑘, 𝑈𝑘 = 𝐺𝑘
𝑒𝑘+1 ≈ 𝐴𝑘 ∗ 𝑒𝑘 + 𝐺𝑘
Con una linealización variante en el tiempo
Entonces su varianza “antes de medir seria:”
𝐾+1
≈ 𝐴𝑘 ∗
𝑘,𝑃𝑜𝑠𝑡𝑒𝑟𝑖𝑜𝑟𝑖
𝐴𝑘
𝑇
+ 𝐺𝑘 ∗ 𝑊 + 𝐺𝑘
𝑇
variante en el tiempo
12. Incorporación de medida
Para la ecuación de salida se plantea linealizar con:
Se aproxima por medio del
punto de tangencia
cercano a la suposición
De esta manera se realiza la linealización aproximada de la salida, llegando a las siguientes ecuaciones:
Covarianza Varianza de la información
13. Fórmula Final
Primero se inicializan las variables de estados y
matriz de varianza antes de empezar las
mediciones:
¡¡¡Comienzan las
iteraciones!!!
Se mide la salida, y
se empieza a
actualizar el estado
Se realiza la predicción en
bucle abierto del siguiente
estado
Finalmente se actualiza k y
se repite la medición de la
salida
En Matlab se pueden
usar los comandos:
• Correct
• Predict
14. Ejemplo
Ejemplo 1 Filtrado de ruino mediante KF
De acuerdo con los autores: Kim, Youngjoo & Bang, Hyochoong.
(2018). Introduction to Kalman Filter and Its Applications.
Se implementan las ecuaciones (Kalman Filter Algorithm
Sección 2,2) para realizar la implementación en código
C++ para el filtrado de ruido de potenciómetro
15. Ejemplo
Ejemplo 1 Filtrado de ruino mediante KF
Los valore Q y R permiten realizar una regulación del ruido, a medida que
el valor de Q sea mayor la dinámica del sistema va a ser mas rápida, pero
afecta la estabilidad del sistema. Si R es muy alta la respuesta comienza a
ser lenta y la estabilidad mejor
18. Ejemplo 2 Filtrado de ruino mediante KF
http://personales.upv.es/asala/YT/V/ekfml2.html
Link del código:
El Ejemplo expone el comportamiento del EKF aplicado en un
péndulo en diferentes puntos de equilibrio
Aorigen=LinealizacionA_Compilada([0;0],0)
Después se hace su respectiva discretización mediante el
método de euler
Ts=0.06;
EcEstadoDiscreto=@(x,u) x+Ts*dxdt(x,u);
19. http://personales.upv.es/asala/YT/V/ekfml2.html
Link del código:
Aorigen=LinealizacionA_Compilada([0;0],0)
A continuación se realiza la linealización de los estados en el
origen y se haya las matrices B,C y D siendo estas de jacobiano
constantes
LinealizacionB=eval(jacobian(EcEstado_simbolico,u_s))%no
depende de x, hacemos eval y punto, sin compilar.
LinealizacionC=eval(jacobian(EcSalida(x_s,u_s),x_s)) %no
depende de x, hacemos eval y punto, sin compilar.
LinealizacionD=eval(jacobian(EcSalida(x_s,u_s),u_s))%no
depende de x, hacemos eval y punto, sin compilar.
observador= extendedKalmanFilter(EcEstadoDiscreto,EcSalida);
Luego se crea un observador lineal respecto a los estados
seleccionados: se realizan varios procesos con el estado
discreto no lineal y lineal para realizar su comparación.
22. Ejemplo 1 Filtrado de ruino mediante KF
http://personales.upv.es/asala/YT/V/ekfml2.html
Link del código:
Simulación estimada: posición y vs posición linealizada
Error
Observe que la estimación de la posición es muy parecida da la
real para un sistema no lineal
Mientras que al estar linealizada alrededor de un punto de equilibrio, el error va a
depender de la proporción del movimiento, es decir que a medida que este llega a una
variación cercada al punto de equilibrio su estimación será mejor.
23. • El filtro de Kalman extendido es una extensión del filtro de Kalman estándar que permite estimar el
estado de sistemas no lineales. Esto se logra a través de la linealización de la función de estado y de
la función de medición, lo que permite aplicar el filtro de Kalman estándar en un espacio de estado
lineal.
• El filtro de Kalman extendido requiere una mayor cantidad de cómputo en comparación con el filtro
de Kalman estándar, ya que se necesita realizar una linealización en cada iteración del filtro. Esto
puede ser un desafío en sistemas de tiempo real o en sistemas con recursos limitados.
• La efectividad del filtro de Kalman extendido depende de la precisión de las estimaciones iniciales y
de la precisión de las mediciones. Si las estimaciones iniciales son incorrectas o las mediciones son
ruidosas, el filtro puede producir estimaciones incorrectas.
• En general, el filtro de Kalman extendido es una herramienta poderosa para la estimación de
sistemas no lineales y se utiliza ampliamente en aplicaciones de navegación, seguimiento y control
de procesos.
Conclusiones
24. Referencias:
Kim, Youngjoo & Bang, Hyochoong. (2018). Introduction to Kalman
Filter and Its Applications. 10.5772/intechopen.80600.
Alex Becker. (2023). Introduction to Kalman filter. Recuperado
de: https://www.kalmanfilter.net/background2.html
Victor Peligri Alvares. (2019). Universidad de Barcelona. El filtro de
Kalman. Recuperado
de: https://diposit.ub.edu/dspace/bitstream/2445/150978/2/150978
.pdf