Você está na página 1de 47

Filtros de software e aplicaes

Filtro de Kalman estendido e ltro de partculas


Matheus V. Portela
3 de dezembro de 2013
Matheus V. Portela Filtros
O que um ltro?
Matheus V. Portela Filtros
Denio formal
ltro - s.m.
Priberam: Aquilo que deixa passar apenas uma parte de algo.
Wikipdia: Entende-se por ltro algo que seleciona o que
passa por ele, deixando passar apenas o que no ltrado.
Matheus V. Portela Filtros
Filtros eletrnicos
Filtro passa-baixa Filtro passa-alta
Matheus V. Portela Filtros
Filtros digitais
Filtro digital
Matheus V. Portela Filtros
Filtro de Kalman
Matheus V. Portela Filtros
Filtro de Kalman
Aplicaes pela NASA
NASA Ames Research Center
Apollo 1
Apollo 15
Matheus V. Portela Filtros
Programa de nibus espaciais
VANTs
Submarinos da marinha americana
Msseis teleguiados
Matheus V. Portela Filtros
Filtro de Kalman
Diagrama esquemtico
Modelo:
x
t
= A
t
x
t1
+B
t
u
t
+
t
z
t
= C
t
x
t
+
t
Matheus V. Portela Filtros
Filtro de Kalman
Algoritmo
Previso:

t
= A
t

t1
+B
t
u
t

t
= A
t

t1
A
T
t
+R
t
Atualizao:
K
t
=

t
C
T
t
(C
t

t
C
T
t
+Q
t
)
1

t
=
t
+K
t
(z
t
C
t

t
)

t
= (I K
t
C
t
)

t
Matheus V. Portela Filtros
Filtro de Kalman
Simulao em MATLAB
function [new_mean, new_cov] = kalman_filter(mean, cov, u,
z, A, B, C, R, Q)
% Prediction phase
m = A*mean + B*u;
S = A*cov*A + R;
% Update phase
K = S*C*pinv(C*S*C + Q);
new_mean = m + K*(z - C*m);
I = eye(size(K, 1), size(C, 2));
new_cov = (I - K*C)*S;
end
Matheus V. Portela Filtros
Filtro de Kalman
Simulao em MATLAB
x(t) = V exp(t/1000)
Matheus V. Portela Filtros
Filtro de Kalman
Vantagens
Estatisticamente timo
Simples implementao
Computacionalmente eciente
Processamento em tempo real
Matheus V. Portela Filtros
Filtro de Kalman
Desvantagens
Modelo linear
Representao do estado por meio de uma gaussiana
Estatisticamente timo apenas com determinadas condies
Matheus V. Portela Filtros
EKF
Extended Kalman Filter (Filtro de Kalman Estendido)
Desenvolvido pela NASA
Matheus V. Portela Filtros
EKF
Aproximao por srie de Taylor
Sistema linear
Matheus V. Portela Filtros
EKF
Aproximao por srie de Taylor
Sistema no-linear
Matheus V. Portela Filtros
EKF
Aproximao por srie de Taylor
EKF
Matheus V. Portela Filtros
EKF
Aproximao por srie de Taylor
EKF com varincia grande
Matheus V. Portela Filtros
EKF
Aproximao por srie de Taylor
EKF com varincia pequena
Matheus V. Portela Filtros
EKF
Diagrama esquemtico
Modelo:
x
t
= g(u
t
, x
t1
) +
t
z
t
= h(x
t
) +
t
Matheus V. Portela Filtros
EKF
Algoritmo
Previso:

t
= g(u
t
,
t1
)

t
= G
t

t1
G
T
t
+R
t
Correo:
K
t
=
t
H
T
t
(H
t

t
H
T
t
+Q
t
)
1

t
=
t
+K
t
(z
t
h(
t
))

t
= (I K
t
H
t
)

t
Matheus V. Portela Filtros
EKF
Simulao em MATLAB
function [new_mean, new_cov] = ekf(mean, cov, u, z, R, Q)
% Jacobians
G = calculate_G(u);
H = calculate_H(mean);
% Prediction phase
m = g(u, mean);
S = G*cov*G + R;
% Update phase
K = S*H*pinv(H*S*H + Q);
new_mean = m + K*(z - h(m));
I = eye(size(K, 1), size(H, 2));
new_cov = (I - K*H)*S;
end
Matheus V. Portela Filtros
EKF
Simulao em MATLAB
x(t) = V exp(t/1000)
Matheus V. Portela Filtros
EKF
Vantagens
Modelos no-lineares
Performance satisfatria
Utilizado extensivamente em sistemas de navegao e GPS
Matheus V. Portela Filtros
EKF
Desvantagens
Estatisticamente no-timo
Condies iniciais erradas podem causar divergncia
Modelo do estado por meio de gaussianas
Matheus V. Portela Filtros
EKF
Alternativas
Robust Extended Kalman Filter
Unscented Kalman Filter
Information Filter
Mtodos no-paramtricos
Matheus V. Portela Filtros
Filtro de partculas
Mtodo sequencial de Monte Carlo
Anos 50: Ideias iniciais
Anos 70: Engenheiros de
controle
Anos 90: Gordon et al., "A
novel approach to
nonlinear/non-Gaussian
Bayesian State estimation"
Aproxima distribuies
no-gaussianas por meio de
mtodos de amostragem
Cassino de Monte Carlo
Matheus V. Portela Filtros
Filtro de partculas
Partculas
Matheus V. Portela Filtros
Filtro de partculas
Amostragem
Amostragem por rejeio
Matheus V. Portela Filtros
Filtro de partculas
Amostragem sequencial por importncia
Matheus V. Portela Filtros
Filtro de partculas
Amostragem sequencial por importncia
Matheus V. Portela Filtros
Filtro de partculas
Amostragem sequencial por importncia
Matheus V. Portela Filtros
Filtro de partculas
Algoritmo
function Algorithm Particle_lter(
t1
, u
t
, z
t
)

t
=
t
=
for m = 1 to M do
sample x
[m]
t
p(x
t
|u
t
, x
[m]
t1
)
w
[m]
t
= p(z
t
|x
[m]
t
)

t
=
t
+ x
[m]
t
, w
[m]
t

end for
for m = 1 to M do
draw i with probability w
[i]
t
add x
[i]
t
to
t
end for
return
t
end function
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Simulao em MATLAB
Matheus V. Portela Filtros
Filtro de partculas
Vantagens
Multimodal
No-linear
No-paramtrico
No exige estimativas iniciais
Matheus V. Portela Filtros
Filtro de partculas
Desvantagens
Computacionalmente (muito!) exigente
Matheus V. Portela Filtros
Perguntas?
Matheus V. Portela Filtros
Obrigado!
Matheus V. Portela Filtros

Você também pode gostar