Universidade Nova de Lisboa Departamento de Engenharia Electrotécnica
Filtro de Kalman Em Tempo Discreto Sistemas de Decisão Texto de Apoio
Por: Paulo Gil 2002
Índice 1. Introdução.................................................................................................. 3 2. Caracterização Computacional..................................................................4 3. Algoritmo ..................................................................................................7 4. Aspectos de Sintonização..........................................................................8
[email protected]
2
1. Introdução
O filtro de Kalman trata do problema da estimação recursiva do vector de estados x ∈ ℜn de um sistema dinâmico estocástico representado no espaço de estados pelas seguintes equações às diferenças: x(k + 1) = A(k ) x (k ) + B (k )u (k ) + w(k ) y (k ) = C (k ) x(k ) + v (k )
em que u ∈ ℜm representa o vector de entrada e y ∈ ℜ p o vector de observações (saídas). As variáveis aleatórias independentes w ∈ ℜ n e v ∈ ℜ p representam, respectivamente, o ruído do processo (incerteza do modelo) e o ruído sobre as leituras, sendo estas variáveis caracterizadas pelas seguintes distribuições probabilísticas: p (w) ~ N (0,W ) p (v ) ~
(0,V )
O Problema Formal “Assumindo uma estimativa inicial para o vector de estado xˆ0 e para a matriz de covariância P 0 ∈ ℜ n×n , obter uma estimativa óptima do vector de estado, num dado instante k , xˆ (k | k ) , dada um sucessão de medidas corrompidas { y (0 ),…, y (k )}”. Nota: Neste sentido o filtro de Kalman apresenta-se como um observador óptimo.
[email protected]
3
2. Caracterização Computacional
Seja xˆ (k | k − 1) uma estimativa do vector de estado no instante k obtida a partir de informação disponível no instante k − 1 (trata-se pois de uma predição temporal) e xˆ (k | k ) a actualização desta estimativa com base na leitura efectuada no instante k (Figura 1). u (k )
y (k )
Sistema
Filtro de Kalman
ˆ(k ) x
Figura 1 – Filtro de Kalman como observador. Considerem-se os seguintes erros de estimação: e(k | k − 1) = x(k | k ) − xˆ (k | k − 1) e(k | k ) = x(k | k ) − xˆ (k | k )
Pode-se então definir as seguintes matrizes de covariância:
[ P (k | k ) = E [e(k | k )e
]
P (k | k − 1) = E e(k | k − 1)eT (k | k − 1)
[email protected]
T
(k | k )]
4
Estas matrizes de covariância reflectem o nível de incerteza relativamente às respectivas estimativas de xˆ . No filtro de Kalman o mecanismo de correcção das estimativas obtidas por predição temporal tem a seguinte forma: xˆ (k | k ) = xˆ (k | k − 1) + K (k )[ y (k ) − C (k ) xˆ (k | k − 1)]
A diferença [ y (k ) − C (k ) xˆ (k | k − 1)] é designada por resíduo e a matriz K (k )
denominada ganho de Kalman.
A matriz de ganho de Kalman é obtida por minimização da matriz de covariância P (k | k ) , sendo a sua expressão matemática dada por:
]1
[
K (k ) = P (k | k − 1) C T (k ) C (k ) P (k | k − 1) C T (k ) + V (k )
−
Da expressão de K (k ) pode inferir-se o seguinte: •
À medida que a variância do ruído sobre a saída, V (k ) , diminui o ganho de Kalman aumenta de modo a pesar mais severamente o resíduo:
lim K (k ) =
V →0
•
1 C (k )
À medida que a matriz de covariância do erro P (k | k − 1) diminui o ganho de Kalman vai pesar cada vez menos o resíduo: lim K (k ) = 0
P ( k |k −1)→0
[email protected]
5
Outra forma de encarar a ponderação do resíduo pelo ganho de Kalman: •
Quando a variância do ruído sobre a saída diminui, a leitura actual y (k ) é cada vez mais confiável e menos a predição da saída;
•
A diminuição de P (k | k − 1) implica uma maior certeza sobre a estimativa, assumindo, por outro lado, a leitura menor confiança.
[email protected]
6
3. Algoritmo
O filtro Kalman compreende duas etapas fundamentais: Actualização Temporal - predição temporal das estimativas do
•
vector de estado e da matriz de covariância a partir de informação do processo no instante k − 1 ; Actualização pela Leitura - Correcção das estimativas com
•
base na leitura mais recente (no instante k ).
1
Inicialização xˆ (0) = 0 P (0) = diag (α )
2
Predição xˆ (k + 1 | k ) = A(k ) xˆ (k | k ) + B (k )u (k ) P (k + 1 | k ) = A(k ) P (k | k ) AT (k ) + W (k )
3
Correcção
[
]1
K (k ) = P (k | k − 1) C T (k ) C (k ) P (k | k − 1) C T (k ) + V (k )
−
xˆ (k | k ) = xˆ (k | k − 1) + K (k )[ y (k ) − C (k ) xˆ (k | k − 1)] P (k | k ) = ( I − K (k ) C (k )) P (k | k − 1)
[email protected]
7
4. Aspectos de Sintonização
Para se poder implementar o filtro de Kalman é necessário o conhecimento prévio das variâncias do ruído do processo e do ruído sobre a saída. A obtenção da variância do ruído sobre a saída pode ser efectuada a partir de uma sucessão de leituras obtidas em diferido. No caso da matriz W , esta fonte de ruído pretende exprimir a incerteza que se possui sobre o modelo. Um modelo pouco rigoroso pode perfeitamente ser utilizado desde que se injecte uma incerteza elevada. Quando W (k ) = W e V (k ) = V são constantes o ganho de Kalman e a respectiva matriz de covariância convergem para um valor constante.
[email protected]
8