Filtro de Kalman

Anuncio
El Filtro de Kalman:
La idea fundamental del filtro de Kalman es la actualización.
La llegada de una nueva observación supone un cambio en la mejor estimación
mínimo cuatrática del parámetro x. Se desea calcular los cambios que actualizan la
estimación de x^. El procedimiento será eficiente si se puede expresar la estimación
como una combinación lineal de la estimación anterior x^old y de la nueva observación.
bnew:
x^new = L x^old + K bnew
Lo primero que hay que resaltar es que el procedimiento es recursivo. Se evita
de esta forma el almacenamiento de las observaciones viejas bold, usadas en las
estimaciones de x^ old.
Lo segundo es que la fórmula anterior se puede escribir de distintas formas
equivalentes. Esto hace que la comprensión del filtro de Kalman sea compleja. Para
ayudar a la comprensión de éstas se diferencian las fases de predicción y corrección.
x^new = x^ old + K(bnew – Anew x^old)
De la comparación de ambas expresiones se deduce que L = I – K Anew.
La ganancia de Kalman K multiplica a bnew – Anew x^old , que se interpreta como la
diferencia entre la estimación vieja y la nueva medida. La estimación de la nueva
observación se realiza a través de Anew x^old . La diferencia entre la predicción y la
observación se multiplica por la ganancia del filtro K para proporcionar una corrección
a x^.
La ganancia del filtro, matriz K, contiene los estadísticos de la nueva
observación bnew y la estimación anterior x^old , proporcionando un peso para la misma.
(Es imprescindible que la matriz de covarianzas P se actualice con cada nueva
observación).
La tercera parte es la confianza de la estimación x^.
Esta se define con la matriz de covarianza del error P = Σ x^ para la estimación.
La matriz P proporciona información estadística de x^ basada en las propiedades
estadísticas de b. Ésta no depende de una observación o de sus errores sino que es
función de un conjunto de muestras de las posibles observaciones o de sus errores. Se
asume que posee una distribución Normal (Gausiana) de la que se conoce la matriz de
covarianza Σ e.
La solución mínimo cuadrática de x^ de un sistema estático Ax = b es
ponderada por Σ e-1 , de tal forma que P = (AT Σ e-1 A) -1 es la matriz de covarianzas del
error para x^. Esta es la matriz que se debe actualizar cada vez que se obtiene una nueva
observación bnew con Σ e,new .
Pnew = (I –K A) Pold (I – KA)T + K Σ e,new KT
Para obtener esta expresión con L = I – K Anew se ha considerado que el error
en la nueva observación es estadísticamente independiente de los errores viejos.
La matriz de covarianza para b ,
(bold) es Σ e = (Σ e,old 0 )
(bnew)
( 0 Σ e,new )
1
La cuarta parte posee una importancia fundamental. El problema de mínimos
cuadrados descrito es estático. Se debe actualizar la estimación del mismo x^ vector de
parámetros x, por lo que se convierte en un método recursivo de mínimos cuadrados.
Si se dispone de observaciones exactas x = x^ old = x^ new, se puede solucionar el
problema como un sistema sobredeterminado en esta situación estática:
Aold * x = bold
y (Aold Anew)T * (x) = (bold bnew)T .
A este sistema se le pueden añadir más filas con nuevas observaciones.
Si la mejor estimación x^old a través del sistema es igual a la nueva observación
bnew = Anew x^old , quiere decir que la ganancia K del filtro ha de ser multiplicada por 0,
para que no varíe la estimación.
El filtro de kalman está diseñado para sistemas dinámicos. El nuevo estado xk
generalmente no es el mismo que xk-1 . El estado cambia, y se va a suponer que lo hace
de forma lineal, con su propio error ε k :
Estado: Xk = Fk-1 Xk-1 + ε k .
La expresión que liga el nuevo estado, las observaciones y el error del modelo
con las estimaciones es:
Nuevo estado: Bk = Ak xk + ek
El filtro se va a modelar en dos fases: predicción y corrección.:
Predicción:
Corrección:
x^k|k-1 = Fk-1 x^k-1|k-1 .
x^k|k = x^ k|k-1 + Kk (bk – Ak x^k|k-1 ).
Se desea conocer la matriz de covarianzas del error del segundo paso de
actualización P (o su inversa). La predicción Pk|k-1 se convierte en corrección Pnew = Pk|k
y dicha predicción procede de la ecuación de estado:
Pk|k-1 = Fk-1 Pk-1 FT k-1 + Σ ε,k
El nuevo paso Pk|k combina las nuevas covarianzas Σ e, k con Σ ε, k . Estas describen
el conjunto de los errores de ambos ek y ε k (errores de estado y observaciones).
Se esta considerando que ε k es estadísticamente independiente de todos los ε j y
de todos los ej. Esta consideración hace que toda la matriz Σ de covarianzas sea una
matriz de bloque diagonal, un bloque para cada ek y ε k . Dicho bloque describe los
errores en la ecuación de estado y en la de observaciones.
2
Análisis del sistema A x = b – e .
La expresión representa el sistema de ecuaciones, dependiente del tiempo en el
que el estado inicial es x0 = x^ 0 junto a su matriz de covarianza del error P0|0 . En cada
paso se introducen dos nuevos bloques (filas) en la matriz A y un nuevo bloque
(columna) correspondiente al nuevo xk en el vector de estado desconocido x k .
Ao
-Fo
I
A1
-F1
I
....
....
....
-Fk-1
I
Ak
x0
x1
.
.
.
xk-1
xk
=
b0
0
b1
0
.
.
.
.
.
0
bk
e0
ε1
e1
ε2
-
.
.
.
.
εk
ek
Las dos últimas filas se corresponden con la ecuación de estado y la de
observaciones del filtro de kalman. Este sistema se resuelve recursivamente por el
método de mínimos cuadrados ponderados. Las ponderaciones son las matrices de
covarianzas de los errores ek y ε k . El resultado es el conjunto de las estimaciones del
estado (x^ 0 ,...x^ k ) y sus matrices de covarianzas (P0 ,...Pk ). Estos podrían haberse
obtenido con la fórmula P = (AT Σ −1 A)-1 pero no es así. Las fórmulas recursivas
determinan x^k y Pk a partir de bk , x^ k-1 , Pk-1 , Σε,κ y Σe,k.
Las diferentes maneras de representar los filtros de kalman proceden de las
distintas formas en las que se puede representar la matriz (AT C A). Esta matriz banda
tridiagonal es simétrica, definida positiva y admite factorización de Cholesky L LT .
También se puede factorizar por el método de Gram-Schmidt , ortogonalizando las
columnas de la matriz A, obteniendose así la descomposición Q R.
Todas estas son formas de manipular la matriz completa A. No se debe olvidar
que lo que se desea resolver es el sistema mostrado antes, por medio de mínimos
cuadrados ponderados. El objetivo de las ecuaciones recursivas es hacer más sencillo el
manejo de las expresiones, utilizando sólo los estados para t = k-1 y k. Se determinan
las matrices a partir de la fórmula de actualización. Se hace especial énfasis en la matriz
K llamada ganancia del filtro de Kalman para el estado k.
Hasta el momento sólo se ha estudiado un modelo estático, del que a
continuación se pone un ejemplo:
Un médico toma muestras b1 ,...bk del pulso de un paciente x. Cada medida
posee un error cuadrático (x –bj)2 cuya estimación o varianza es σ2 .
Se desea obtener la mejor aproximación de x^ k y de Pk de forma recursiva a
partir de x^ k-1 y Pk-1 .
3
Las ecuaciones de las medidas son:
x=b1 , x=b2 , ... x=bn o (11...1)T (x) = (b1 b2 ... bk )T
La matriz de covarianzas es Σ b = σ2 * I.
La matriz P-1 = (AT Σ −1 b A) y AT C b son:
P-1 = (1 ...1) I / σ2 (1...1)T = k/ σ2
(1 ...1)( I / σ2 )(b1 b2 ... bk )T = (b1+ b2 ...+ bk )/ σ2
La mejor aproximación, como era de esperar, es la media de las observaciones:
x^k = P(AT C b) = (σ 2 / k) (b1+ b2 ...+ bk )/ σ2 = (b1+ b2 ...+ bk ) / k.
Se itera partiendo con los valores correctos en k-1 :
X^old = (1/k-1) (b1+ b2 ...+ bk-1 ) y Pold = σ2 / (k−1)
Las nuevas medidas reducen P e incrementan P-1 :
Pk –1 = Pk-1 –1 + (1/ σ2 )= (k-1)/ σ2 + 1/ σ2 = k/ σ2 .
Se puede observar que el incremento de Pk
como: AnewT Σ −1 k Anew = (1)( 1/ σ2 )(1).
–1
es 1/ σ2 valor que ha sido obtenido
Kk = Pk Ak T Σ −1 k =( σ2 /k)(1)(1/ σ2 )=(1/k)
x^k = x^ k-1 + 1/k (bk – x^k-1 )= ((k-1)/k) (b1+ b2 ...+ bk-1 /k-1) + (1/k) bk
El mismo problema se puede plantear haciendo que el error de la muestra k sea
distinto de las anteriores σk 2 .
Pk –1 = (k-1)/ σ2 + 1/ σk 2 .
x^k = Pk (b1/ σ2 + b2/ σ2 ...+ bk-1/ σ2 + bk / σk 2 )
Kk = Pk Ak T Σ −1 k = Pk / σk 2 .
x^k = x^ k-1 + Pk (bk – x^k-1 )/ σk 2 .
x^k = Pk (Pk-1 x^k-1 + (bk – x^k-1 )/ σk 2
Modelo de actualizaciones dinámicas:
La primera medida es b0 = A0 x0 + e0 . Se estima x0 usando este conjunto de
observaciones b0 ( x^0 ). La ecuación Ao x0 = b0 probablemente estará sobredeterminada.
La solución mínimo cuadrática ponderada se obtendrá usando la matriz inversa de las
covarianzas C = Σ −1 e,0 (de los residuos de b0 ), de la siguiente manera:
x^0 = (A0 T Σ e, 0−1 A0 )-1 (A0 T Σ e, 0−1 A0 )
El error x0 - x^0 tiene como media 0 y su matriz de covarianzas es:
Σ 0 = (A0 T Σ e, 0−1 A0 )-1
4
C = Σ e−1 donde:
| Σ e,0 0 |
Σe = | 0
Σ e, 1| matriz de covarianza de los residuos
| e0 |
| e1 |
La matriz Σ e es diagonal porque e1 es independiente de e0 . Por lo tanto la matriz
de coeficientes AT Σ e−1 A para x^ 1 es:
Σe =
( A0 T A1 T )
| Σ e,0
| 0
0 | -1 | A0 |
Σ e, 1| | A1 | = A0 T Σ e, 0−1 A0 + A1 T Σ e, 1−1 A1
Teniendo en cuenta que x^1 es la mejor aproximación para el sistema, las
ecuaciones normales se convierten en:
AT Σ e−1 A x^ = AT Σ e−1 b.
Escribiendo P o P1 o Pnew para la matriz inversa (AT Σ e−1 A)-1 , la solución
óptima se escribe:
x^1 = P1 (A0 T A1 T ) Σ e (b0 b1 )T = P1 (A0 T Σ e, 0−1 b0 + A1 T Σ e, 1−1 b1 )
Si se intentan utilizar los valores obtenidos en las estimaciones anteriores, x^0 en
vez de b0 , se pueden ir actualizando los coeficientes de la matriz de ecuaciones
normales por medio de :
P1 –1 = P0 –1 + A1 T Σ e, 1−1 A1
La incorporación de nuevas medidas debería reducir los coeficientes de la matriz
de covarianzas.
Si se escribe la expresión de la estimación x^1 en términos de los datos
conocidos de la observación anterior, se obtiene lo siguiente:
x^1 = P1 (P0 –1 x^0 + A1 T Σ e, 1−1 b1 ) = P 1 (P1 –1 x^0 - A1 T Σ e, 1−1 A1 x^0 + A1 T Σ e, 1−1
b1 ) = x^ 0 + K1 (b1 – A1 x^0 ) è
x^1 = x^ 0 + K1 (b1 – A1 x^0 )
Esta fórmula identifica la matriz de ganancia K, que multiplica a las
innovaciones.
K1 = P1 A1 T Σ e, 1−1
De esta forma se ha convertido el modelo en un sistema recursivo, del que se
conocen las expresiones que estiman por mínimos cuadrados, las varianzas y la
ganancia del filtro.
Pk –1 = Pk-1 –1 + Ak T Σ e, κ−1 Ak
x^k= x^k-1 + Kk (bk – Ak x^k-1 )
Kk = Pk Ak T Σ e, κ−1
5
El siguiente paso consistirá en modelar el sistema por un vector de estado x(t)
dependiente del tiempo. Los cambios serán modelados por un sistema de ecuaciones en
diferencias que supondremos lineales. Este sistema opera en tiempos discretos, en los
que se comete un error por cada paso:
xk = Fk-1 xk-1 + ε k
La matriz conocida F k-1 es la matriz de cambio de estado.
El vector desconocido x k es el estado en cada instante de tiempo.
La ecuación que relaciona las observaciones con el estado es la siguiente:
b k = A k x k + e k para t = 0,1,.....,k
La matriz ponderación o peso es siempre la inversa de la de covarianzas.
Se asume que los errores ε k y e k son independientes y Gaussianos , con media
cero y matrices de covarianzas Σ e,κ y Σ ε,κ ; E{εκ εκΤ} = Σ ε,κ y Ε{ek ,ek Τ} = Σ e,κ .
Ahora el problema de Kalman ya está completamente definido. Este se debe
solucionar construyendo las matrices.
Ao
-Fo
I
A1
-F1
I
....
....
....
-Fk-1
I
Ak
x0
x1
.
.
.
xk-1
xk
=
b0
0
b1
0
.
.
.
.
.
0
bk
e0
ε1
e1
ε2
-
.
.
.
.
εk
ek
La estimación óptima x^ se obtiene resolviendo las ecuaciones normales:
AT Σ −1 A x^ = AT Σ −1 b
La matriz de covarianzas Σ es una banda diagonal, por haber asumido que los
vectores de error son independientes, aunque pueden estar correlados entre ellos. La
solución es un vector que contiene la mejor estimación de toda la secuencia.
x^k = (x^ 0|k ...... x^ k-1|k x^k|k )T
Hay que destacar que para la estimación del estado t=k se ha utilizado toda la
información disponible. Este hecho supone que las estimaciones de los estados iniciales
se ven afectados por las medidas posteriores, por lo que se deben interpretar
independientemente cada uno. A este hecho se le conoce como aplanado de los estados
anteriores.
Se distinguen tres nomenclaturas para los estados:
x^j|k (j < k): Valores aplanados o suavizados.
x^k|k : Valor del filtro de Kalman.
x^k+1|k : Valor predicho.
6
El filtro posee dos pasos: predicción y corrección, que se reflejan en las
siguientes expresiones:
Predicción:
Corrección:
x^k|k-1 = Fk-1 x^k-1|k-1
x^k|k = x^ k|k-1 + Kk (bk – Ak x^k|k-1 )
La matriz de ganancia y de covarianzas predichas y corregidas se expresan:
Pk|k-1 = Fk-1 Pk-1|k-1 Fk-1 T + Σ ε,κ
Kk = Pk|k-1 Ak T (Ak Pk|k-1 Ak T + Σ e, κ)
Pk|k = (I – Kk Ak )Pk|k-1
Covarianza predicción:
Matriz de ganancia:
Covarianza corregida:
Ejemplo comparativo entre mínimos cuadráticos (Gauss ) y el
filtro de Kalman.
Supongamos conocidas una serie de muestras u observaciones (números reales )
de un mismo sistema x. Se suponen independientes las observaciones con
varianza σ2 =1 .
1º) Estimación mínimo cuadrática.
La solución del sistema de n ecuaciones x = bk es la media:
x^n = (b1+ b2 ...+ bn ) /n , con varianza P = 1/n.
2º) Estimación usando el filtro de Kalman, comenzando con el modelo xk =
xk-1 y Fk = 1 constante para todas las ecuaciones.
Aplicando el filtro para las dos primeras ecuaciones se obtiene:
xk = bk y xk = xk-1. Aplicando las ecuaciones normales AT A x^ = AT b
1 0
-1 1
0 1
x0
x1
=
b0
0
b1
2
-1
x^0|1
x^1|1
-1
2
Resolviendo el sistema de ecuaciones de la derecha, (AT A)
obtiene:
x^0|1 = (2b0 +b1 ) / 3
x^1|1 = (b0 +2b1 ) /3
−1
b0
b1
=
= 1/3 (2 1
1
2)
se
Repitiendo el proceso para las tres primeras:
L
1
-1
0
0
0
0
1
1
-1
0
0
0
0
1
1
AT A
2
-1
0
–1 0
3 -1
-1 2
(A T A)-1
1/8
5 2 1
2 4 2
1 2 5
7
x^0|2 = (5b0
+2b1 +b2 ) / 8
x^1|2 = (2b0 +4b1 +2b2 ) /8
x^2|2 = (b0 +2b1 +5b2 ) / 8
Se puede observar cómo cada nueva observación cambia la ponderación del
resto de observaciones en cada paso.
También se puede observar cómo los P1 = 2/3 y P2 =5/8 aumentan, mientras que
en mínimos cuadrados permanecían constantes.
Se observa que los errores estimados en cada paso decrecen.
Asíntotas del modelo:
Se desea conocer cómo se comporta el filtro cuando el número de observaciones
crece, manteniendo Σ ε = 1 y Σ e = 1 y permitirendo distintos valores de σε2 σe2 .
La matriz que se debe estudiar es aquella que es tridiagonal, cuyos elementos
distintos de 0 son: -1, 3, -1 excepto en la primera y última, con sólo los valores 2 en la
diagonal. Esta matriz es simétrica y definida positiva y por lo tanto admite factorización
de Cholesky de la forma L LT . Estas dos matrices son bidiagonales.
Si se considera ahora tan solo la matriz, con los elementos numerados en las filas
primera y última de valor 3 (en la posición correspondiente a la diagonal), se pueden
considerar dos límites: uno para los elementos de la diagonal principal (a y b) y otro
para los de las diagonales secundarias.
a2 + b2 = 3 en la diagonal
ab = -1 fuera de ella.
Sustituyendo: b2 = 1/a2 , en la primera resulta: a4 – 3a2 +1 = 0.
De esta se puede deducir que a2 = (3 + (5)1/2 ) / 2 y b2 = (3 – (5)1/2 ) /2
P/1 + P = (3 – (5)1/2 ) /2 por lo que P (aproximadamente ) = 0.618 .
Se define así la asíntota de P y, por tanto, se modela el comportamiento del filtro
respecto al aumento de observaciones o iteraciones.
A continuación se muestran algunos comportamientos del filtro de Kalman con
series de datos (observaciones) y estadísticos iniciales distintos. Se comparan con la
estimación proporcionada por Gauss con los mínimos cuadrados.
8
En el primer ensayo se dispone de 50 observaciones de un mismo fenómeno y se
conoce, del mismo, que el error estimado en las observaciones es: 0.01 , asimismo se
estima un error en el modelo es: 0.00001 . Se supone un valor inicial Xo = 1 y un Po
=1:
Representación de las observaciones:
Observaciones
1,12
1,1
Observación
1,08
1,06
Observaciones
1,04
1,02
1
0,98
0
10
20
30
40
50
60
Nº Observación
Representación de la estimación de Gauss para cada nueva observación.
Minimos Cuadrados
1,12
1,1
1,08
1,04
Gauss
Observaciones
1,02
1
0,98
0,96
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
9
11
7
5
3
0,94
1
Estimación Gauss
1,06
Nº Observación
9
Representación de la estimación de Gauss frente a la de Kalman.
Gauss vs Kalman
1,06
1,055
1,05
1,045
Estimaciones
1,04
1,035
Gauss
Kalman
1,03
1,025
1,02
1,015
1,01
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
9
11
7
5
3
1
1,005
Nº Observación
Representación de la estimación final de Gauss y de Kalman, con la última
observación.
Gauss-Kalman
1,06
1,055
1,05
1,045
1,035
Kalman
Final Gauss
1,03
1,025
1,02
1,015
1,01
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
11
9
7
5
3
1,005
1
Kalman
1,04
Nº Observación
10
Representación de la Ganacia del filtro.
k kalman
1,2
Ganancia de Kalman
1
0,8
0,6
k kalman
0,4
0,2
49
46
43
40
37
34
31
28
25
22
19
16
13
10
7
4
1
0
Nº Observación
Representación de la matriz de covarianzas de los errores.
Covarianza
0,012
0,01
0,006
Covarianza
0,004
0,002
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
11
9
7
5
3
0
1
Covarianza del error
0,008
Nº Observación
11
En el segundo ensayo se dispone de 50 observaciones de un mismo fenómeno y
se conoce, del mismo, que el error estimado en las observaciones es: 1 , así mismo se
estima un error en el modelo es: 1. Se supone un valor inicial Xo = 1 y un Po =1:
Representación de las observaciones:
Observaciones
1,12
1,1
Observación
1,08
1,06
Observaciones
1,04
1,02
1
0,98
0
10
20
30
40
50
60
Nº Observación
Estimación de Gauss con cada nueva observación:
Minimos Cuadrados
1,12
1,1
1,08
1,04
Gauss
Observaciones
1,02
1
0,98
0,96
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
9
11
7
5
3
0,94
1
Estimación Gauss
1,06
Nº Observación
12
Representación de la estimación de Gauss frente a la de Kalman.
Gauss vs Kalman
1,12
1,1
1,08
Estimaciones
1,06
1,04
Gauss
Kalman
1,02
1
0,98
0,96
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
9
11
7
5
3
1
0,94
Nº Observación
Representación de la estimación final de Gauss y de Kalman, con la última
observación.
Gauss vs Kalman
1,1
1,08
1,04
Filtro Kalman
Estimación Gauss
1,02
1
0,98
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
11
9
7
5
3
0,96
1
Estimaciones
1,06
Nº Observación
13
Representación de la Ganacia del filtro.
K de Kalman
0,7
0,6
Ganancia de Kalman
0,5
0,4
K de Kalman
0,3
0,2
0,1
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
9
11
7
5
3
1
0
Nº Observación
Representación de la matriz de covarianzas de los errores.
Covarianzas
0,7
0,6
0,4
Covarianzas
0,3
0,2
0,1
49
47
45
43
41
39
37
35
33
31
29
27
25
23
21
19
17
15
13
9
11
7
5
3
0
1
Covarizanzas de los errores
0,5
Nº Observación
14
Descargar