17.04.2015 Views

El Filtro de Kalman - Departamento de Electrónica - Universidad de ...

El Filtro de Kalman - Departamento de Electrónica - Universidad de ...

El Filtro de Kalman - Departamento de Electrónica - Universidad de ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Índice<br />

Observadores <strong>de</strong> Estado en Procesos Estocásticos:<br />

<strong>El</strong> <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Profesor: Daniel Pizarro Pérez<br />

Sistemas <strong>El</strong>ectrónicos <strong>de</strong> Control<br />

5 o Ingeniería <strong>de</strong> Telecomunicación<br />

<strong>Departamento</strong> <strong>de</strong> <strong>El</strong>ectrónica, <strong>Universidad</strong> <strong>de</strong> Alcalá<br />

Alcalá <strong>de</strong> Henares, Febrero 2009<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Índice<br />

Índice<br />

1 Observadores <strong>de</strong> estado en sistemas <strong>de</strong>terministas<br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

2 <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Sistema lineal discreto <strong>de</strong> transición <strong>de</strong> estados<br />

Todo sistema discreto, lineal e invariante en el tiempo se<br />

pue<strong>de</strong> <strong>de</strong>scribir mediante el siguiente sistema:<br />

{<br />

X k+1 = G · X k + H · U k<br />

, (1)<br />

Y k = C · X k + D · U k<br />

don<strong>de</strong>:<br />

k ∈ Æ := índice <strong>de</strong> tiempo.<br />

X k ∈ Ê n := vector <strong>de</strong> estados.<br />

U k ∈ Ê r := vector <strong>de</strong> control.<br />

Y k ∈ Ê m := vector <strong>de</strong> medida.<br />

G ∈ Ê n×n := matriz <strong>de</strong> transición <strong>de</strong> estados.<br />

H ∈ Ê n×r .<br />

C ∈ Ê m×n .<br />

D ∈ Ê m×r .<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Sistema lineal discreto <strong>de</strong> transición <strong>de</strong> estados<br />

D<br />

U[k]<br />

H<br />

X[k+1]<br />

1<br />

z<br />

X[k]<br />

C<br />

Y[k]<br />

G<br />

Figura: Esquema <strong>de</strong> bloques <strong>de</strong>l sistema<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Estabilidad: Autovalores <strong>de</strong> la matriz G<br />

⎛<br />

⎞<br />

λ 1 0 · · · 0<br />

G = P ·<br />

0 λ2 .<br />

⎜ .<br />

⎝ . .. ⎟ 0 ⎠ · P−1 (2)<br />

0 · · · 0 λ n<br />

Estable ↔ |λ i | < 1<br />

Solución Temporal:<br />

∑k−1<br />

X k = G k · X 0 + G k−l−1 · H · U l (3)<br />

l=0<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Controlabilidad en V.V.E.E: Regulador<br />

Controlabilidad: ¿ Se pue<strong>de</strong> controlar X k mediante U k ?<br />

rango ( H G · H · · · G n−1 · H ) < n (4)<br />

Sistema <strong>de</strong> Regulación: U k = −KX k , K ∈ Ê r×n<br />

D<br />

U[k]<br />

H<br />

X[k+1]<br />

1<br />

z<br />

X[k]<br />

C<br />

Y[k]<br />

G<br />

K<br />

Figura: Mo<strong>de</strong>lo <strong>de</strong> regulador<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Controlabilidad en V.V.E.E: Servo<br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Controlabilidad:<br />

ServoSistema <strong>de</strong> Regulación: U k = −K r X k + K i Y i ,<br />

K r ∈ Ê r×n , K i ∈ Ê n×m X[k+1] X[k]<br />

D<br />

Ki<br />

T<br />

z−1<br />

U[k]<br />

H<br />

1<br />

z<br />

C<br />

Y[k]<br />

Integrador<br />

G<br />

Kr<br />

Figura: Mo<strong>de</strong>lo <strong>de</strong> servo<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Observabilidad en V.V.E.E<br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Cualquier control requiere X k pero sólo se mi<strong>de</strong> Y k .<br />

Observabilidad: ¿ Es posible conocer X k a partir <strong>de</strong> Y k ?<br />

⇔ rango ( C ∗ G ∗ · C ∗ · · · (G ∗ ) n−1 · C ∗) = n (5)<br />

Esquema general <strong>de</strong> un observador <strong>de</strong> estados:<br />

Figura: Observador<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Observadores <strong>de</strong> estado: Observador <strong>de</strong> Predicción<br />

Observador <strong>de</strong> predicción:<br />

Estimación-Corrección<br />

ˆX k = G · ˆX k−1 + H · U<br />

} {{ k−1<br />

}<br />

Estimación<br />

+ K e (Y k−1 − C · ˆX k−1 )<br />

} {{ }<br />

Corrección<br />

(6)<br />

Ke ∈ Ê n×m := es la matriz <strong>de</strong> corrección.<br />

<strong>El</strong> estado X k se obtiene como función <strong>de</strong> información en k −1.<br />

Los autovalores <strong>de</strong> G − Ke · C controlan estabilidad y<br />

velocidad <strong>de</strong> predicción.<br />

La información Y k presente no se usa para estimar X k .<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Observadores <strong>de</strong> estado: Observador <strong>de</strong> Predicción<br />

1<br />

Y[k]<br />

2<br />

U[k]<br />

H<br />

X_e[k+1] X_e[k] C X[k]<br />

1<br />

C<br />

z<br />

G<br />

Ke<br />

1<br />

X_e[k]<br />

Figura: Observador <strong>de</strong> predicción<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Observadores <strong>de</strong> estado: Observador Actualizado<br />

Observador actualizado:<br />

Estimación-Corrección<br />

Estimación:<br />

Corrección:<br />

˜X k = G · ˆX k−1 + H · U k−1 (7)<br />

ˆX k = ˜X k + K e (Y k − C · ˜X k ) (8)<br />

Ke ∈ Ê n×m := es la matriz <strong>de</strong> corrección.<br />

<strong>El</strong> estado X k se obtiene como función <strong>de</strong> información en k.<br />

Los autovalores <strong>de</strong> G − Ke · C · G controlan estabilidad y<br />

velocidad <strong>de</strong> predicción.<br />

La información Y k ’actualizada’ se usa para estimar X k .<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Observadores <strong>de</strong> estado: Observador Actualizado<br />

1<br />

Y[k]<br />

2<br />

H<br />

Z[k+1]<br />

1<br />

z<br />

Z[k]<br />

C<br />

C Z[k]<br />

U[k]<br />

G<br />

Ke<br />

1<br />

X_e[k]<br />

Figura: Observador actualizado<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ruido aleatorio en la medida<br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

¿ Qué ocurre cuando Y k está contaminada con ruido ?<br />

Y k = C · X k + V k V k = N(0, Σ V ) (9)<br />

Cualquier medida real siempre contiene ruido.<br />

<strong>El</strong> ruido se suele mo<strong>de</strong>lar con una distribución Gaussiana<br />

(Teorema Central Límite).<br />

Densidad <strong>de</strong> Probabilidad<br />

1.5<br />

1<br />

0.5<br />

σ=0.5<br />

σ=1<br />

σ=1.5<br />

σ=2<br />

σ=2.5<br />

σ=3<br />

σ=3.5<br />

σ=4<br />

Densidad <strong>de</strong> Probabilidad<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

3<br />

0<br />

−10 −8 −6 −4 −2 0 2 4 6 8 10<br />

Valor<br />

2<br />

1<br />

0<br />

−1<br />

Valor eje y<br />

−2<br />

−3 −3<br />

−2<br />

1<br />

0<br />

−1<br />

Valor eje x<br />

2<br />

3<br />

(a) Gaussiana 1D<br />

(b) Gaussiana 2D<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Sea un sistema en V.V.E.E <strong>de</strong>finido por:<br />

( ) ( 0,65 0,05 1<br />

G =<br />

H = C =<br />

0,05 0,65 0)<br />

( 1 0 ) ( 1<br />

X 0 =<br />

0)<br />

λ1 = 0,6 y λ 2 = 0,7 el sistema es estable.<br />

( ) 1 0,65<br />

(C ∗ , G ∗ · C ∗ ) = , rango= 2 ⇒ observable.<br />

0 0,05<br />

Diseño observador actualizado.<br />

( )<br />

1<br />

Configuración ’<strong>de</strong>ad-beat’, λ e 1 = λe 2 = 0 K e =<br />

13<br />

( ) 0,79<br />

Configuración λ e 1 = λe 2 = 0,3 , K e =<br />

3,79<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Resultados observador ’<strong>de</strong>ad beat’ sin ruido en la medida<br />

40<br />

Error absoluto en la estimación<br />

|error 1<br />

|<br />

|error 2<br />

|<br />

45<br />

40<br />

Estado vs Estimación <strong>de</strong> X 2<br />

X 1<br />

X 1<br />

Est<br />

X 2<br />

X 2<br />

Est<br />

35<br />

35<br />

30<br />

30<br />

Valor <strong>de</strong> X<br />

25<br />

20<br />

Valor <strong>de</strong> X<br />

25<br />

20<br />

15<br />

15<br />

10<br />

10<br />

5<br />

5<br />

0<br />

0 1 2 3 4 5 6 7 8 9 10<br />

Tiempo k<br />

(c) Error <strong>de</strong> estimación<br />

0<br />

1 2 3 4 5 6 7 8 9 10<br />

Tiempo k<br />

(d) Evolución <strong>de</strong> la estimación<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Resultados observador λ e 1 = λe 2 = 0,3<br />

sin ruido en la medida<br />

Error absoluto en la estimación<br />

Estado vs Estimación <strong>de</strong> X 2<br />

35<br />

|error 1<br />

|<br />

|error 2<br />

|<br />

30<br />

X 1<br />

X 1<br />

Est<br />

30<br />

20<br />

X 2<br />

X 2<br />

Est<br />

25<br />

10<br />

Valor <strong>de</strong> X<br />

20<br />

15<br />

Valor <strong>de</strong> X<br />

0<br />

−10<br />

10<br />

−20<br />

5<br />

−30<br />

0<br />

0 1 2 3 4 5 6 7 8 9 10<br />

Tiempo k<br />

(e) Error <strong>de</strong> estimación<br />

−40<br />

1 2 3 4 5 6 7 8 9 10<br />

Tiempo k<br />

(f) Evolución <strong>de</strong> la estimación<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Resultados observador ’Dead beat’ con ruido en la medida Σ v = 2<br />

Error absoluto en la estimación<br />

Estado vs Estimación <strong>de</strong> X 2<br />

|error 1<br />

|<br />

60<br />

100<br />

|error 2<br />

|<br />

40<br />

90<br />

80<br />

20<br />

70<br />

0<br />

Valor <strong>de</strong> X<br />

60<br />

50<br />

Valor <strong>de</strong> X<br />

−20<br />

−40<br />

40<br />

30<br />

20<br />

−60<br />

−80<br />

X 1<br />

X 1<br />

Est<br />

X 2<br />

X 2<br />

Est<br />

10<br />

−100<br />

0<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(g) Error <strong>de</strong> estimación<br />

−120<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(h) Evolución <strong>de</strong> la estimación<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Resultados observador λ e 1 = λe 2 = 0,3 con ruido en la medida<br />

Σ v = 2<br />

Error absoluto en la estimación<br />

Estado vs Estimación <strong>de</strong> X 2<br />

|error 1<br />

|<br />

60<br />

100<br />

|error 2<br />

|<br />

40<br />

90<br />

80<br />

20<br />

70<br />

0<br />

Valor <strong>de</strong> X<br />

60<br />

50<br />

40<br />

Valor <strong>de</strong> X<br />

−20<br />

−40<br />

X 1<br />

X 1<br />

Est<br />

X 2<br />

X 2<br />

Est<br />

−60<br />

30<br />

20<br />

−80<br />

10<br />

−100<br />

0<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(i) Error <strong>de</strong> estimación<br />

−120<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(j) Evolución <strong>de</strong> la estimación<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Resultados observador λ e 1 = λe 2 = 0,6 con ruido en la medida<br />

Σ v = 2<br />

Error absoluto en la estimación<br />

Estado vs Estimación <strong>de</strong> X 2<br />

|error 1<br />

|<br />

60<br />

100<br />

|error 2<br />

|<br />

40<br />

90<br />

80<br />

20<br />

70<br />

0<br />

Valor <strong>de</strong> X<br />

60<br />

50<br />

40<br />

Valor <strong>de</strong> X<br />

−20<br />

−40<br />

X 1<br />

X 1<br />

Est<br />

X 2<br />

X 2<br />

Est<br />

−60<br />

30<br />

20<br />

−80<br />

10<br />

−100<br />

0<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(k) Error <strong>de</strong> estimación<br />

−120<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(l) Evolución <strong>de</strong> la estimación<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Observador con ruido en la medida<br />

Recordatorio V.V.E.E<br />

Análisis <strong>de</strong> sistemas en V.V.E.E<br />

Diseño <strong>de</strong> Observadores <strong>de</strong> Estado<br />

Ejemplos:<br />

Influencia <strong>de</strong> K e y Σ v<br />

Cuanto más rápido es el observador λ 1 = λ 2 → 0, mayor error<br />

en la estimación.<br />

¿Existe un valor óptimo para K e ?<br />

¿ Como se pue<strong>de</strong> calcular ese valor en función <strong>de</strong> Σ V ?.<br />

FILTRO DE KALMAN<br />

<strong>El</strong> filtro <strong>de</strong> <strong>Kalman</strong> obtiene K e tal que:<br />

Minimiza la covarianza <strong>de</strong> la estimación<br />

E[(X k − ˆX k )(X k − ˆX k ) T ].<br />

Es la solución <strong>de</strong> Máxima Verosimilitud <strong>de</strong> K e .<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

<strong>El</strong> <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong> es llamado por el nombre <strong>de</strong> su autor<br />

Rudolph E. <strong>Kalman</strong>.<br />

En 1960 publica su famoso artículo [Kal60] ’A New Approach<br />

to Linear Filtering and Prediction Problems ’.<br />

Des<strong>de</strong> entonces ha sido ampliamente usado en diversos<br />

campos científicos.<br />

Navegación.<br />

Aplicaciones en visión por computador.<br />

Localización en robótica.<br />

Economía.<br />

Biología.<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Proceso a estimar<br />

Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Proceso Estocástico Lineal.<br />

{<br />

X k+1 = G · X k + H · U k + W k<br />

Y k = C · X k + V k<br />

, (10)<br />

don<strong>de</strong>:<br />

k ∈ Æ := índice <strong>de</strong> tiempo.<br />

X k ∈ Ê n := vector <strong>de</strong> estados.<br />

U k ∈ Ê r := vector <strong>de</strong> control.<br />

Y k ∈ Ê m := vector <strong>de</strong> medida.<br />

W k ∈ Ê n := ruido aleatorio <strong>de</strong>l proceso. N(0, Σ W )<br />

V k ∈ Ê m := ruido aleatorio <strong>de</strong> medida. N(0, Σ V )<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Proceso a estimar<br />

Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Condición <strong>de</strong> partida importante<br />

Todos los procesos estocásticos involucrados <strong>de</strong>ben tener<br />

distribución gaussiana.<br />

W k = N(0, Σ W y V k = N(0, Σ V ).<br />

X 0 = N(X 0 , Σ 0 ).<br />

Consecuencia<br />

X k e Y k son también gaussianos.<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Objetivos <strong>de</strong>l filtro <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

¿ Cual es el valor <strong>de</strong> K e para que ˆX k sea la ’mejor’ estimación<br />

posible ?:<br />

Estimador <strong>de</strong> <strong>Kalman</strong><br />

Estimación:<br />

Corrección:<br />

˜X k = G · ˆX k−1 + H · U k−1 (11)<br />

ˆX k = ˜X k + K e (Y k − C · ˜X k ) (12)<br />

La <strong>de</strong>finición <strong>de</strong> ’mejor’ tiene dos respuestas:<br />

<strong>El</strong>egir K e minimizando la varianza <strong>de</strong>l estimador.<br />

mínE[(X k − ˆX k )(X k − ˆX k ) T ]. (Origen Computacional)<br />

<strong>El</strong>egir K e tal que el estimador y su varianza coinci<strong>de</strong>n con las<br />

<strong>de</strong> p(X k |Y 1:k ). (Origen Probabiĺıstico).<br />

En el filtro <strong>de</strong> <strong>Kalman</strong> ambas coinci<strong>de</strong>n.<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Origen Computacional <strong>de</strong>l <strong>Filtro</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Dado el sistema (10) se preten<strong>de</strong>:<br />

I<strong>de</strong>a intuitiva<br />

Encontrar K e tal que minimice Σ k = E[(X k − ˆX k )(X k − ˆX k ) T ]:<br />

Σ k se obtiene en función <strong>de</strong> K E , Σ V , Σ W y Σ k−1 .<br />

K e se obtiene así diferenciando ∂Σ k<br />

∂K e<br />

= 0<br />

La matriz K e resultante es conocida como la ’Ganancia <strong>de</strong><br />

<strong>Kalman</strong>’:<br />

don<strong>de</strong> ˜Σ k = GΣ k−1 G T + Σ W .<br />

K e = ˜Σ k C T (C ˜Σ k C T + Σ V ) −1 , (13)<br />

¡¡¡ K e no necesita autovalores para calcularse !!!<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Origen Probabiĺıstico <strong>de</strong>l <strong>Filtro</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

¿Por qué la K e que minimiza E[(X k − ˆX k )(X k − ˆX k ) T ] es <strong>de</strong><br />

Máxima Verosimilitud ?<br />

ˆX k y Σ k coinci<strong>de</strong>n con la media y la varianza <strong>de</strong> la distribución<br />

’a posteriori’:<br />

p(X k |Y 1:k ) = N(ˆX k ,E[(X k − ˆX k )(X k − ˆX k ) T ]) (14)<br />

Don<strong>de</strong> p(X k |Y 1:k ) correspon<strong>de</strong> con la distribución<br />

condicionada <strong>de</strong> X k dadas todas las medidas hasta el presente.<br />

Representa toda la información posible que se pue<strong>de</strong> tener <strong>de</strong><br />

X k conocidas las medidas.<br />

¡¡ <strong>El</strong> filtro <strong>de</strong> <strong>Kalman</strong> representa la mejor estimación<br />

posible !!<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Descripción <strong>de</strong>l proceso<br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Se divi<strong>de</strong> en dos fases:<br />

Fase <strong>de</strong> Estimación:<br />

Se calculan ˜X k y ˜Σ k sin incluir la última medida.<br />

˜X k = G ˆX k−1 + HU k−1<br />

˜Σ k = GΣ k−1 G T (15)<br />

+ Σ W<br />

Fase <strong>de</strong> Corrección:<br />

Se calculan ˆX k , Σ k y K e .<br />

K e = ˜Σ k C T (C ˜Σ k C T + Σ V ) −1<br />

ˆX k = ˜X k + Ke(Y k − C ˜X k )<br />

Σ k = (I − K e C)˜Σ k<br />

(16)<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Consi<strong>de</strong>raciones <strong>de</strong>l <strong>Filtro</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

<strong>El</strong> estado inicial X 0 <strong>de</strong>be ir acompañado <strong>de</strong> un término <strong>de</strong><br />

varianza Σ 0 .<br />

Σ 0 es intuitivamente la incertidumbre inicial que se tiene en<br />

X 0 .<br />

Σ W representa la incertidumbre que asociamos al mo<strong>de</strong>lo<br />

(G,H,C,D).<br />

<strong>El</strong> filtro <strong>de</strong> <strong>Kalman</strong> solo es óptimo para procesos gaussianos.<br />

Σ k da una i<strong>de</strong>a sobre la incertidumbre en la estimación.<br />

Σ W y Σ V <strong>de</strong>ben calcularse previamente a utilizar el filtro.<br />

(métodos <strong>de</strong> i<strong>de</strong>ntificación <strong>de</strong> ruido)<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Ejemplo:<br />

Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Sea un sistema en V.V.E.E <strong>de</strong>finido por:<br />

( ) ( 0,65 0,05 1<br />

G =<br />

H =<br />

0,05 0,65 0)<br />

X 0 =<br />

( ( )<br />

5 10 0<br />

, Σ<br />

5)<br />

0 =<br />

0 10<br />

Consi<strong>de</strong>ramos ruido en el mo<strong>de</strong>lo nulo. P W =<br />

C = ( 1 0 )<br />

( ) 0, 0<br />

0, 0<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Resultados <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong> con ruido en la medida Σ v = 2<br />

Error absoluto en la estimación<br />

Estado vs Estimación <strong>de</strong> X 2<br />

100<br />

|error 1<br />

|<br />

|error 2<br />

|<br />

60<br />

X 1<br />

X 1<br />

Est<br />

90<br />

40<br />

X 2<br />

X 2<br />

Est<br />

80<br />

20<br />

70<br />

0<br />

Valor <strong>de</strong> X<br />

60<br />

50<br />

Valor <strong>de</strong> X<br />

−20<br />

−40<br />

40<br />

−60<br />

30<br />

20<br />

−80<br />

10<br />

−100<br />

0<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

−120<br />

0 5 10 15 20 25 30 35 40<br />

Tiempo k<br />

(m) Error <strong>de</strong> estimación<br />

(n) Evolución <strong>de</strong> la estimación<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Comparación <strong>Kalman</strong> con observador λ 1 = λ 2 = 0,6 y Σ v = 2<br />

Estado vs Estimacion <strong>de</strong> X 1<br />

Estado vs Estimacion <strong>de</strong> X 2<br />

30<br />

4.5<br />

25<br />

4<br />

3.5<br />

20<br />

3<br />

Valor <strong>de</strong> X<br />

15<br />

Valor <strong>de</strong> X<br />

2.5<br />

10<br />

X 1<br />

Observador 0.6<br />

<strong>Kalman</strong><br />

2<br />

X 2<br />

Observador 0.6<br />

<strong>Kalman</strong><br />

1.5<br />

5<br />

1<br />

0<br />

0 5 10 15<br />

Tiempo k<br />

(ñ) Estimación X(1)<br />

0.5<br />

0 5 10 15<br />

Tiempo k<br />

(o) Estimación X(2)<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Utilidad <strong>de</strong>l ruido <strong>de</strong>l mo<strong>de</strong>lo<br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

La matriz Σ W permite otorgar inmunidad al filtro <strong>de</strong> <strong>Kalman</strong><br />

ante variaciones <strong>de</strong>l mo<strong>de</strong>lo.<br />

Las variaciones gaussianas en un mo<strong>de</strong>lo no es <strong>de</strong>masiado<br />

realista.<br />

<strong>El</strong> filtro <strong>de</strong> <strong>Kalman</strong> se comporta bien cuando no son<br />

gaussianas.<br />

En la práctica Σ W se usa para representar lo que se <strong>de</strong>sconoce<br />

<strong>de</strong>l mo<strong>de</strong>lo. (G,H,C mal i<strong>de</strong>ntificadas).<br />

¡En ese caso Σ W se tiene que estimar heurísticamente !<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Ejemplo:<br />

Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Sea un sistema en V.V.E.E <strong>de</strong>finido por:<br />

( ) ( 0,65 0,05 1<br />

G =<br />

H =<br />

0,05 0,65 0)<br />

C = ( 1 0 )<br />

I<strong>de</strong>ntificación ( errónea <strong>de</strong>)<br />

G para el observador:<br />

0,65 + 0,15 0,05<br />

G =<br />

0,05 0,65<br />

( ( )<br />

5 10 0<br />

X 0 = , Σ<br />

5)<br />

0 =<br />

0 10<br />

Consi<strong>de</strong>ramos ruido aprox en el mo<strong>de</strong>lo. P W =<br />

( σ 2 )<br />

, 0<br />

0, 0<br />

¿ Para que valor <strong>de</strong> σ se consigue una mejor estimación ?<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Ejemplo <strong>de</strong> observador con ruido en la medida<br />

Comparación <strong>Kalman</strong> con ruido en el mo<strong>de</strong>lo<br />

Estado vs Estimacion <strong>de</strong> X 1<br />

Estado vs Estimacion <strong>de</strong> X 2<br />

40<br />

5<br />

35<br />

4.5<br />

Valor <strong>de</strong> X<br />

30<br />

25<br />

20<br />

Real<br />

σ 2 =0.001<br />

σ 2 =0.1<br />

σ 2 =1<br />

σ 2 =5<br />

σ 2 =10<br />

Valor <strong>de</strong> X<br />

4<br />

3.5<br />

3<br />

2.5<br />

Real<br />

σ 2 =0.001<br />

σ 2 =0.1<br />

σ 2 =1<br />

σ 2 =5<br />

σ 2 =10<br />

15<br />

2<br />

10<br />

1.5<br />

5<br />

1<br />

0<br />

0 5 10 15 20 25 30 35 40 45 50<br />

Tiempo k<br />

(p) Estimación X(1)<br />

0.5<br />

0 5 10 15 20 25 30 35 40 45 50<br />

Tiempo k<br />

(q) Estimación X(2)<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo: Sistema <strong>de</strong> Tracking<br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

I<strong>de</strong>a<br />

Se preten<strong>de</strong> obtener la posición en un plano <strong>de</strong> un objeto a<br />

partir <strong>de</strong> una medida contaminada con ruido Σ V :<br />

En la mayoría <strong>de</strong> las aplicaciones reales no se conoce un<br />

mo<strong>de</strong>lo <strong>de</strong> movimiento G y H <strong>de</strong>sconocidas.<br />

¿Cómo se utiliza el filtro <strong>de</strong> <strong>Kalman</strong> ?<br />

Se utiliza un mo<strong>de</strong>lo <strong>de</strong> movimiento lineal para G y se estima<br />

posición y velocidad X k = (x k ,y k ,v x ,v y )<br />

⎛ ⎞<br />

1 0 1 0<br />

G = ⎜0 1 0 1<br />

⎟<br />

⎝0 0 1 0⎠<br />

0 0 0 1<br />

{<br />

x k = x k−1 + v x<br />

y k = y k−1 + v y<br />

(17)<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo: Sistema <strong>de</strong> Tracking<br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

I<strong>de</strong>a<br />

X 0 = (x 0 , y 0 , v x,0 , v y,0 ) se inicializa con alguna estimación <strong>de</strong><br />

la posición y velocidad inicial (si existe). Suele ser la primera<br />

medida Y 0 = HX 0 .<br />

Σ 0 es la incertidumbre que esperamos inicialmente (Suele ser<br />

diagonal).<br />

Σ W se ajusta experimentalmente para velocidad <strong>de</strong><br />

convergencia.<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo: Sistema <strong>de</strong> Tracking<br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

Resultados <strong>de</strong> tracking<br />

400<br />

Trayectoria <strong>de</strong>l Robot<br />

Trayectoria Real<br />

Velocidad<br />

400<br />

Trayectoria <strong>de</strong>l Robot<br />

Trayectoria Real<br />

Trayectoria Medida<br />

Estimación <strong>Kalman</strong><br />

200<br />

200<br />

0<br />

0<br />

Posición en Y (mm)<br />

−200<br />

Posición en Y (mm)<br />

−200<br />

−400<br />

Incertidumbre inicial Σ 0<br />

−400<br />

−600<br />

−600<br />

−800<br />

−800<br />

−1800 −1600 −1400 −1200 −1000 −800 −600 −400 −200 0<br />

Posición en X (mm)<br />

(r) Posición en el plano real<br />

−1000<br />

−1800 −1600 −1400 −1200 −1000 −800 −600 −400 −200 0 200<br />

Posición en X (mm)<br />

(s) Posición en el plano estimada<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Conclusiones<br />

Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

<strong>El</strong> filtro <strong>de</strong> <strong>Kalman</strong> presenta una solución al observador <strong>de</strong> estado<br />

que es óptima’ <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista estadístico.<br />

Sólo tiene vali<strong>de</strong>z teórica cuando el sistema es lineal y los procesos<br />

aleatorios gaussianos.<br />

En la práctica se usa en multitud <strong>de</strong> procesos <strong>de</strong> estimación que no<br />

cumplen las condiciones <strong>de</strong> partida.<br />

Se diseña mediante la <strong>de</strong>scripción estadística <strong>de</strong> los procesos<br />

involucrados. No necesita un diseño <strong>de</strong> autovalores.<br />

Consta <strong>de</strong> una fase <strong>de</strong> predicción y otra <strong>de</strong> corrección don<strong>de</strong> a<strong>de</strong>más<br />

<strong>de</strong> la estimación, se calcula la varianza <strong>de</strong> la estimación.<br />

Su aplicación a diversas áreas científicas corroboran su aplicabilidad.<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>


Bibliografía<br />

Introduction<br />

<strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Orígenes<br />

Descripción <strong>de</strong>l <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong><br />

Ejemplo:<br />

Conclusiones<br />

R. Brown and P. Hwang.<br />

Introduction to Random Signals and Applied <strong>Kalman</strong> Filtering.<br />

John Wiley and Sons, 1992.<br />

Gary Bishop and Greg Welch.<br />

An introduction to the kalman filter.<br />

Technical report, University of North Carolina, Department of<br />

Computer Science., 2001.<br />

Rudolph Emil <strong>Kalman</strong>.<br />

A new approach to linear filtering and prediction problems.<br />

Transactions of the ASME–Journal of Basic Engineering,<br />

82:35–45, 1960.<br />

Profesor: Daniel Pizarro Pérez<br />

Estimación estocástica: <strong>Filtro</strong> <strong>de</strong> <strong>Kalman</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!