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 ...
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>