EE240/2009 Filtragem Estocástica EE240/2009 Tempo Discreto Sistema Linear Ruídos Gaussianos Sistema Não-Linear Ruídos Não Gaussianos Filtro de Partículas Unscented Kalman Filter Extended Kalman Filter Filtro de Kalman Tempo Contínuo Filtro de Fujisaki-Kalliampur-Kunita Filtro de Wonham-Stratonovich Filtro de Zakai Filtro Robusto de Davis EE240/2009 Filtro de Partículas EE240/2009 Dadas as equações de Estado e das Observações: x k f x k 1 , w k Estado: px k | x k 1 pz k | x k Observações: z k gx k , v k zk-2 zk zk-1 p(zk|xk) xk-2 xk-1 p(xk|xk-1) xk Obter: E x k | z 0 , z1 ,...,z N p( x k | z 0 ,z1 ,...,z k ) N = k Filtragem N < k Predição N > k Suavização EE240/2009 Regra de Bayes A AB P( A | B ) = P( A B ) / P ( B ) B P( B | A ) = P( A B ) / P ( A ) P( B | A ) P ( A ) = P( A | B ) P ( B ) Fórmula de Bayes P( B | A ) = P( A | B ) P ( B ) P(A) EE240/2009 z0 p(x0) Update p(x0|z0) p( x 0 | z 0 ) p( z 0 | x 0 ) p( x 0 ) p( z 0 ) P( B | A ) = P( A | B ) P ( B ) P(A) EE240/2009 z0 p(x0) Update Propagate p(x0|z0) p( x 0 | z 0 ) p(x1|z0) p( z 0 | x 0 ) p( x 0 ) p( z 0 ) p( x 1 | z 0 ) p( x 1 | x 0 ) p( x 0 | z 0 )dx 0 EE240/2009 z0 p(x0) z1 Update Propagate p(x0|z0) p( x 0 | z 0 ) p(x1|z0) Update p(x1|z1) p( z 0 | x 0 ) p( x 0 ) p( z 0 ) p( x 1 | z 0 ) p( x 1 | x 0 ) p( x 0 | z 0 )dx 0 p( x 1 | z1 ) p( z1 | x 1 ) p( x 1 | z 0 ) p( z1 | z 0 ) EE240/2009 z0 p(x0) z1 Update Propagate p(x0|z0) p( x 0 | z 0 ) p(x1|z0) Update Propagate p(x1|z1) p(x2|z1) p( z 0 | x 0 ) p( x 0 ) p( z 0 ) p( x 1 | z 0 ) p( x 1 | x 0 ) p( x 0 | z 0 )dx 0 p( x 1 | z1 ) p( z1 | x 1 ) p( x 1 | z 0 ) p( z1 | z 0 ) p( x 2 | z1 ) p( x 2 | x 1 ) p( x 1 | z1 )dx 1 EE240/2009 z0 p(x0) z1 Update Propagate p(x0|z0) p( x 0 | z 0 ) p(x1|z0) zk-1 Update Propagate p(x1|z1) … p(x2|z1) Update Propagate p(xk-1|zk-1) p(xk|zk-1) p( z 0 | x 0 ) p( x 0 ) p( z 0 ) p( x 1 | z 0 ) p( x 1 | x 0 ) p( x 0 | z 0 )dx 0 p( x 1 | z1 ) p( z1 | x 1 ) p( x 1 | z 0 ) p( z1 | z 0 ) p( x 2 | z1 ) p( x 2 | x 1 ) p( x 1 | z1 )dx 1 p( x k 1 | z k 1 ) p( z k 1 | x k 1 ) p( x k 1 | z k 2 ) p( z k 1 | z k 2 ) p( x k | z k 1 ) p( x k | x k 1 ) p( x k 1 | z k 1 )dx k 1 EE240/2009 M M ~ ( m) 1 x k 1 , M m 1 (m) 1 xk 2 , M m 1 x (m) k 1 , wk( m1) M m 1 M M ~ ( m) 1 xk , M m 1 (m) 1 xk 1 , M m 1 x (m) k , wk( m ) M m 1 M (m) 1 xk 1 , M m 1 x EE240/2009 t p(xk) xk EE240/2009 t=0 EE240/2009 t=1 EE240/2009 t=2 EE240/2009 z t=0 pz z EE240/2009 Start! t=0 pz z px x EE240/2009 t=0 pz z px x EE240/2009 t=0 pz z px x EE240/2009 z t=0 pz z px x EE240/2009 z t=0 pz z px x EE240/2009 t=0 pz z px x EE240/2009 t=1 pz z px x EE240/2009 t=1 pz z px x EE240/2009 z t=1 pz z px x EE240/2009 t=1 pz z px x EE240/2009 t=2 pz z px x EE240/2009 t=2 pz z px x EE240/2009 Filtro de Kalman EE240/2009 Problema: Dados: { y1, .. .,yn } correlacionados com x Obter: uma estimativa de x a partir de { y1, .. .,yn } Estimador g(.) xˆ g( y1 , y2 ,..., yn ) g( Y ) Exemplos: 1 n g( y1 , y2 ,..., yn ) yk n k 1 g( y1 , y2 ,..., yn ) n n yk k 1 n 1 g( y1 , y2 ,..., yn ) k 1 yk 1 EE240/2009 Projeção Ortogonal Critério para determinação do g(.): Achar g(.) de modo que se minimize: J[ g ] E[ (x g(Y) )2 | Y ] Projeção Ortogonal: x Seja g(y) = K y Achar K de modo que xˆ g ( y) Minimiza J x xˆ 2 x xˆ 2 y x xˆ | x xˆ x Ky| x Ky x | x 2K y | x K 2 y | y EE240/2009 min J K dJ 0 dK K K* J x xˆ 2 x | x 2K y | x K 2 y | y dJ 2 y | x 2K* y | y 0 dK K K* K xˆ g( y) K y y|x y y|y y|x y|y x ~ x xˆ y x . y x cos(y, x ) y y y y x cos(y, x ) y y xˆ EE240/2009 Problema Original xˆ g ( y1 ,..., yn ) proj x sobre span { y1 ,..., yn } ~ x xˆ y , i 1,...,n x i a, b ~ N(0,2) <a|b>=E[ab] x xˆ | yi 0 x | yi xˆ | yi 0 x | yi xˆ | yi EE240/2009 Expressão para xˆ | yi : xˆ span { y1 ,..., yn } xˆ K1y1 Knyn y1 K1 Kn K1 yn Kn Y xˆ | yi K1y1 Knyn | yi K1 y1 | yi Kn yn | yi K1 y1 | yi Kn yn | yi EE240/2009 x | yi xˆ | yi x | y1 x | yn K1 y1 | y1 y1 | yn Kn yn | y1 yn | yn y1 | y1 y1 | yn P yn | y1 yn | yn K1 Kn x | y1 x | yn P1 xˆ K1 Kn Y x | y1 x | yn P 1Y E xYT P 1Y EE240/2009 Estimação Recursiva Fórmula de Recursão para Projeções Ortogonais Suponha que y1, ... ,yn sejam dados seqüencialmente e que xˆ n estimativa de x | y1 ,, yn Problema: Calcular xˆ n 1 dado xˆ n e yn 1 Proposta: xˆ n 1 an xˆ n bn yn 1 EE240/2009 Lk = span { y1, ... , yk } Lk-1 é subespaço de Lk yˆ k|k 1 : yk projetado sobre Lk-1 yk ~ ˆ k|k 1 yk|k 1 yk y yˆ k|k 1 . Lk-1 Para um z genérico em L, z = z1 + z2 Lk 1 ~ yk|k 1 Lk 1 EE240/2009 Em particular, se z = xˆ k z = z1 + z2 Lk 1 xˆ k = z1 + z2 Lk 1 ~ z z x ~ Portanto, x xˆ k x k 1 2 k x ~ x k z xˆ k z1 Lk z2 Lk-1 EE240/2009 Em particular, se z = xˆ k z = z1 + z2 Lk 1 xˆ k = z1 + z2 Lk 1 ~ z z x ~ Portanto, x xˆ k x k 1 2 k x Lk 1 Lk 1 Lk 1 ~ x k ~ x k -1 Lk 1 Lk z1 ~ x xˆ k 1 x k 1 z1 xˆ k 1 z2 Lk-1 EE240/2009 z 2 proj x sobre ~ yk|k 1 x Fórmula de Projeção de x sobre Y ~ yk |k 1 xˆ E xYT P1Y z 2 E [x ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ~ yk |k 1 Lk xˆ k z1 xˆ k 1 z2 yk Lk-1 xˆ k = z1 + z2 z1 xˆ k 1 inovações xˆ k xˆ k 1 E [x ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ~ yk |k 1 xˆ k xˆ k 1 E [x ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ( yk yˆ k |k 1 ) EE240/2009 Importante! xˆ k xˆ k 1 E [x ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ( yk yˆ k |k 1 ) EE240/2009 Filtro de Kalman Filtro de Kalman Dado um sistema: Obter: xˆ k a partir de { y0 ,..., yk } xk+1 = Axk + Buk +Cwk yk = Hxk + Gvk Ruído de Estado x0 ~N(m,P0) y0 = 0 Ruído de Medida w k vk E [vk vkT ] R E [wk wkT ] Q i.i.d. i.i.d. EE240/2009 Escrevendo xk no lugar de x na fórmula da projeção: xˆ k xˆ k 1 E [x ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ( yk yˆ k |k 1 ) xˆ k |k xˆ k |k 1 E [xk ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ( yk yˆ k |k 1 ) ykT|k 1 ] Cálculo de E [xk ~ ~ yk|k 1 yk yˆ k|k 1 yk E [ yk | y0 ,..., yk 1 ] yk E [ Hxk | y0 ,..., yk 1 ] yk Hxˆ k|k 1 ~ yk|k 1 Hxk Gvk Hxˆ k|k 1 ~ Hx Gv k|k 1 k T ~ E [ xk ~ ykT|k 1 ] E[xk (Hx Gv ) k |k 1 k ] ~ T HT ] E[xk x k |k 1 T ~ ~T E[xˆ k|k 1 x k|k 1 xk |k 1H ] T ~ ~T E[x k |k 1xk|k 1 ]H Pk HT EE240/2009 Escrevendo xk no lugar de x na fórmula da projeção: xˆ k |k xˆ k |k 1 E [xk ~ ykT|k 1 ] E [ ~ yk |k 1 ~ ykT|k 1 ]1 ( yk yˆ k |k 1 ) yk|k 1 ~ ykT|k 1 ] Cálculo de E [ ~ ~ yk|k 1 yk yˆ k|k 1 yk E [ yk | y0 ,..., yk 1 ] yk E [ Hxk | y0 ,..., yk 1 ] yk Hxˆ k|k 1 ~ yk|k 1 Hxk Gvk Hxˆ k|k 1 ~ Hx Gv k|k 1 E ~ yk|k 1 ~ ykT|k 1 ~ ~ E Hx k|k 1 Gvk Hxk |k 1 Gvk T T T T ~ ~T HE x k |k 1xk |k 1 H GE vk vk G HPkHT GRGT k EE240/2009 Por outro lado, xk+1 = Axk + Cwk ˆ k|k xˆ k 1|k Axˆ k|k Cw Já calculado Fórmula de Projeção de x sobre Y xˆ E xYT P1Y ˆ k|k E [ wk ~ w ykT|k 1 ] E [ ~ yk|k 1 ~ ykT|k 1 ]1 ~ yk|k 1 Já calculado EE240/2009 ykT|k 1 ] Cálculo de E [ w k ~ T ~ E [wk ~ ykT|k 1 ] E[ w k (Hx k|k 1 Gvk ) ] ~ T HT w v T GT ] E[ w k x k|k 1 k k 0 Fórmula para o estado: ˆ k|k xˆ k 1|k Axˆ k|k Cw Axˆ k|k Axˆ k|k 1 APkHT HPkHT GRGT 1 [ yk Hxˆ k|k 1 ] Kk PkHT HPkHT GRGT 1 xˆ k 1|k Axˆ k|k 1 AK k [yk Hxˆ k|k 1 ] EE240/2009 ~ ~T Cálculo de Pk 1 E [ xk 1|k xk 1|k ] ~ ˆ k 1|k x k 1|k xk 1 x xk 1 Axˆ k|k 1 Kk [ yk Hxˆ k|k 1 ] Axk Cwk Axˆ k|k 1 KkHxk KkHxˆ k|k 1 A xk xˆ k|k 1 KkH xk xˆ k|k 1 Cwk A KkH xk xˆ k|k 1 Cwk ~ A KkHx k|k 1 Cwk ~ ~T Pk 1 E [ x k 1|k xk 1|k ] T ~ ~ E [ (A KkHx k|k 1 Cwk ) (A KkHxk|k 1 Cwk ) ] T T T ~ ~T A KkHE[x k|k 1xk|k 1 ]A KkH C E [ w k w k ]C A KkHPk A KkHT C Q CT EE240/2009 Kk APkHT HPkHT GRGT 1 xˆ k|k xˆ k|k 1 Kk yk Hxˆ k|k 1 Atualização xˆ k 1|k Axˆ k|k Propagação Pk 1 A KkHPk A KkHT C Q CT Kk-1 xk-1|k-2 xk-1|k-1 yk-1 Kk+1 Kk xk|k-1 xk|k yk xk+1|k xk+1|k+1 yk+1 EE240/2009 4 y 2 0 -2 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 2 x1 1 0 -1 4 x2 2 0 -2 EE240/2009 Mecanização do Filtro de Kalman: xk+1 = Axk + Buk +Cwk yk = Hxk + vk y0 = 0 Atualização: w k vk E [wk wkT ] Q xˆ k Axˆ k Buk Pk APk1 A T CQCT x0 ~ N(m,P0) E [vk vkT ] R Propagação: i.i.d. i.i.d. Kk xˆ k Pk 1 T T Pk H HPk H R xˆ k Kk yk Hxˆ k I KkH Pk EE240/2009 Problemas Numéricos: Simétrico Pk I KkH Pk Positivo Definido Fórmula de Joseph: xˆ k xˆ k Kk yk Hxˆ k xˆ k I KkHxˆ k Kk yk T ] I KkH Pk I KkHT KkE [ yk ykT ]KkT Pk E[ xˆ k xˆ k Pk I KkH Pk I KkHT KkR KkT EE240/2009 Covariança Inversa: Pk Pk 1 H R H T 1 1 Lema de Inversão de Matrizes: ( A BC1D )1 A 1 A 1B( DA1B C )1DA1 Pk Pk PkHT HPkHT R 1HPk HPkHT Kk Pk HT R 1 Pk I KkH Pk EE240/2009 Fatorização da Matriz P: P = S ST Filtro Raiz Quadrada de Potter ~ [10-N,10N ] ~ [10-N/2,10N/2 ] P+ = U+ D+ (U+)T P- = U- D- (U-)T Filtro U-D de Bierman EE240/2009 Erros de Modelamento: xˆ k1 Axˆ k AKk yk Hxˆ k Modelo Medida Pk APk1AT CQCT 1 T T Kk Pk H HPk H R xˆ k xˆ k Kk yk Hxˆ k Q Pk Kk xˆ k xˆ k EE240/2009 y 5 0 -5 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 4 x1 2 0 -2 20 x2 10 0 -10 EE240/2009 Filtro de Kalman Estendido EE240/2009 Filtro de Kalman Linearizado xk 1 f ( xk , uk ) Cwk yk h( xk ) vk w k ~ N(0, Q) e vk ~ N(0, R ), i.i.d. Dado uk. nom xnom , uk ) k 1 f ( xk ynom h( xnom ) k k xk xk xnom yk yk ynom k k nom xk 1 xnom , uk ) Cwk k 1 f ( x k , uk ) f ( x k nom yk ynom h ( x ) h ( x ) vk k k k EE240/2009 xk 1 f ( xnom xk , uk ) f ( xnom , uk ) Cwk k k yk h( xnom xk ) h( xnom ) vk k k Fórmula de Taylor: f ( xnom xk , uk ) f ( xnom , uk ) fx ( xnom , uk )xk o k k k h( xnom xk ) h( xnom ) hx ( xnom )xk o k k k xk 1 fx ( xnom , uk )xk Cwk k yk h( xnom )xk vk k Filtro de Kalman Estendido xk 1 fx ( xˆ k , uk )xk Cwk yk 1 h( xˆ k )xk vk EE240/2009 Muito Obrigado! EE240/2009