Predizione e regolarizzazione (smoothing) alla Kalman

Transcript

Predizione e regolarizzazione (smoothing) alla Kalman
Predizione e regolarizzazione (smoothing)
alla Kalman
per gli studenti del corso di
Stima e identificazione
Luigi Chisci, 22 Maggio 2012
Si consideri il sistema dinamico
{
x𝑑+1 = A𝑑 x𝑑 + B𝑑 u𝑑 + D𝑑 w𝑑
y 𝑑 = C𝑑 x 𝑑 + v 𝑑
(0.1)
con le solite ipotesi statistiche standard sui disturbi w𝑑 e v𝑑 . Il problema della stima dello
β–³
stato x𝑑 basata sulle osservazioni yπ‘˜ = {y1 , y2 , . . . , yπ‘˜ } prende il nome di
⎧
se 𝑑 > π‘˜

⎨ predizione
filtraggio
se 𝑑 = π‘˜

⎩ regolarizzazione (smoothing) se 𝑑 < π‘˜
Il filtro di Kalman propriamente detto determina, in modo ricorsivo, ad ogni istante
temporale 𝑑 sia la stima filtrata xΜ‚π‘‘βˆ£π‘‘ che la stima predittiva ad un passo x̂𝑑+1βˆ£π‘‘ .
Predizione
Ci si concentra adesso sul problema della predizione, ovvero della determinazione della
stima xΜ‚π‘‘βˆ£π‘˜ e della relativa covarianza Pπ‘‘βˆ£π‘˜ per 𝑑 > π‘˜. Esistono, in particolare, tre tipologie
di predizione alle quali si può essere interessati:
βˆ™ Predizione a punto fisso: si vuole determinare xΜ‚π‘‘βˆ£π‘˜ e Pπ‘‘βˆ£π‘˜ , fissato 𝑑 e partendo
da j<t, per π‘˜ = 𝑗, 𝑗 + 1, . . . , 𝑑 βˆ’ 1;
βˆ™ Predizione ad intervallo fisso: si vuole determinare xΜ‚π‘‘βˆ£π‘˜ e Pπ‘‘βˆ£π‘˜ , fissato π‘˜, per
𝑑 = π‘˜ + 1, π‘˜ + 2, . . . ;
βˆ™ Predizione ad anticipo fisso: si vuole determinare x̂𝑑+β„“βˆ£π‘‘ e P𝑑+β„“βˆ£π‘‘ , fissato l’anticipo
β„“ > 0, per ogni 𝑑 > 0.
Predizione a punto fisso
Definendo la matrice di transizione dello stato
β–³
Φ𝑑,π‘˜ = Aπ‘‘βˆ’1 β‹… β‹… β‹… Aπ‘˜ = Φ𝑑,π‘˜+1 Aπ‘˜ = Aπ‘‘βˆ’1 Ξ¦π‘‘βˆ’1,π‘˜
è immediato constatare che
xΜ‚π‘‘βˆ£π‘˜ = Φ𝑑,π‘˜ xΜ‚π‘˜βˆ£π‘˜ +
π‘‘βˆ’1
βˆ‘
Φ𝑑,𝑖+1 B𝑖 u𝑖 = Φ𝑑,π‘˜+1 xΜ‚π‘˜+1βˆ£π‘˜ +
𝑖=π‘˜
da cui si ha
π‘‘βˆ’1
βˆ‘
Φ𝑑,𝑖+1 B𝑖 u𝑖
𝑖=π‘˜+1
xΜ‚π‘‘βˆ£π‘˜+1 = Φ𝑑,π‘˜+1 xΜ‚π‘˜+1βˆ£π‘˜+1 +
π‘‘βˆ’1
βˆ‘
Φ𝑑,𝑖+1 B𝑖 u𝑖
𝑖=π‘˜+1
(
Per la covarianza si ha:
β–³
)
π‘‘βˆ’1
βˆ‘
= Φ𝑑,π‘˜+1 xΜ‚π‘˜+1βˆ£π‘˜ + Lπ‘˜+1 eπ‘˜+1 +
Φ𝑑,𝑖+1 B𝑖 u𝑖
𝑖=π‘˜+1
)
(
= xΜ‚π‘‘βˆ£π‘˜ + Φ𝑑,π‘˜+1 Lπ‘˜+1 yπ‘˜+1 βˆ’ Cπ‘˜+1 xΜ‚π‘˜+1βˆ£π‘˜
[
]
β–³
Pπ‘‘βˆ£π‘˜+1 = 𝐸 xΜƒπ‘‘βˆ£π‘˜+1 xΜƒπ‘‡π‘‘βˆ£π‘˜+1 = Pπ‘‘βˆ£π‘˜ βˆ’ Φ𝑑,π‘˜+1 Lπ‘˜+1 Sπ‘˜+1 Lπ‘‡π‘˜+1 Φ𝑇𝑑,π‘˜+1
β–³
𝑇
Sβˆ’1
dove Lπ‘˜+1 = Pπ‘˜+1βˆ£π‘˜ πΆπ‘˜+1
π‘˜+1 è il guadagno di correzione del filtro di Kalman e Sπ‘˜+1 =
β–³
Rπ‘˜+1 +Cπ‘˜+1 Pπ‘˜+1βˆ£π‘˜ Cπ‘‡π‘˜+1 la matrice di covarianza dell’innovazione eπ‘˜+1 = yπ‘˜+1 βˆ’Cπ‘˜+1 xΜ‚π‘˜+1βˆ£π‘˜ .
Riassumendo, si hanno dunque le seguenti ricorsioni del predittore a punto fisso:
{
)
(
xΜ‚π‘‘βˆ£π‘˜+1 = xΜ‚π‘‘βˆ£π‘˜ + Φ𝑑,π‘˜+1 Lπ‘˜+1 yπ‘˜+1 βˆ’ Cπ‘˜+1 xΜ‚π‘˜+1βˆ£π‘˜
(0.2)
Pπ‘‘βˆ£π‘˜+1 = Pπ‘‘βˆ£π‘˜ βˆ’ Φ𝑑,π‘˜+1 Lπ‘˜+1 Sπ‘˜+1 Lπ‘‡π‘˜+1 Φ𝑇𝑑,π‘˜+1
Predizione ad intervallo fisso
Per la predizione ad intervallo fisso si nota che:
{
x̂𝑑+1βˆ£π‘˜ = A𝑑 xΜ‚π‘‘βˆ£π‘˜ + B𝑑 u𝑑
P𝑑+1βˆ£π‘˜ = A𝑑 Pπ‘‘βˆ£π‘˜ A𝑇𝑑 + D𝑑 Q𝑑 D𝑇𝑑
(0.3)
Predizione ad anticipo fisso
Combinando in sequenza il passo di predizione (0.3) ed il passo di correzione (0.2) si
β–³
ottengono le ricorsioni di aggiornamento della predizione ad anticipo β„“ = 𝑑 βˆ’ π‘˜ fisso:
{
x̂𝑑+1βˆ£π‘˜+1 = A𝑑 xΜ‚π‘‘βˆ£π‘˜ + B𝑑 u𝑑 + Φ𝑑+1βˆ£π‘˜+1 Lπ‘˜+1 eπ‘˜+1
(0.4)
P𝑑+1βˆ£π‘˜+1 = A𝑑 Pπ‘‘βˆ£π‘˜ A𝑇𝑑 + D𝑑 Q𝑑 D𝑇𝑑 βˆ’ Φ𝑑+1βˆ£π‘˜+1 Lπ‘˜+1 Sπ‘˜+1 Lπ‘‡π‘˜+1 Φ𝑇𝑑+1βˆ£π‘˜+1
2
Regolarizzazione (smoothing)
Ci si concentra adesso sul problema della regolarizzazione, ovvero della determinazione
della stima xΜ‚π‘‘βˆ£π‘˜ e della relativa covarianza Pπ‘‘βˆ£π‘˜ per 𝑑 < π‘˜. Esistono, in particolare, tre
tipologie di regolarizzazione alle quali si può essere interessati:
βˆ™ Regolarizzazione a punto fisso: si vuole determinare xΜ‚π‘‘βˆ£π‘˜ e Pπ‘‘βˆ£π‘˜ , fissato 𝑑 e
partendo da j>t, per π‘˜ = 𝑗, 𝑗 + 1, . . . ;
βˆ™ Regolarizzazione a ritardo fisso: si vuole determinare xΜ‚π‘‘βˆ£π‘‘+β„“ e Pπ‘‘βˆ£π‘‘+β„“ , fissato il
ritardo β„“ > 0, per ogni 𝑑 β‰₯ 0;
βˆ™ Regolarizzazione ad intervallo fisso: si vuole determinare xΜ‚π‘‘βˆ£π‘˜ e Pπ‘‘βˆ£π‘˜ , fissato
π‘˜ > 0, per 𝑑 = 0, 1, . . . , π‘˜.
Regolarizzazione a punto fisso
Un possibile approccio alla regolarizzazione a punto fisso è il seguente. Si definisce lo
stato esteso:
]
[
xπ‘˜
β–³
sπ‘˜ =
πƒπ‘˜
β–³
dove 𝝃 π‘˜ = x𝑑 rappresenta lo stato all’istante 𝑑, obiettivo della regolarizzazione. Poiché
[
]𝑇
[
]𝑇
sπ‘˜+1 = xπ‘‡π‘˜+1 , 𝝃 π‘‡π‘˜+1 = xπ‘‡π‘˜+1 , x𝑇𝑑 , è immediato verificare le sequenti equazioni nello
stato esteso:
⎧
]
]
[
]
[
[
Dπ‘˜
Bπ‘˜
Aπ‘˜ 0

⎨ sπ‘˜+1 =
wπ‘˜ = ν“π‘˜ sπ‘˜ + ν“‘π‘˜ uπ‘˜ + ν““ π‘˜ wπ‘˜
uπ‘˜ +
sπ‘˜ +
0
0
0 I
(0.5)

⎩ y = [C 0] s + v
= ν“’ π‘˜ sπ‘˜ + v π‘˜
π‘˜
π‘˜
π‘˜
π‘˜
Applicando al sistema (0.5) il filtro di Kalman, quest’ultimo fornisce in uscita la predizione
ad un passo dello stato esteso:
]
[
[
]
xΜ‚π‘˜+1βˆ£π‘˜
xΜ‚π‘˜+1βˆ£π‘˜
=
sΜ‚π‘˜+1βˆ£π‘˜ =
xΜ‚π‘‘βˆ£π‘˜
πƒΛ†π‘˜+1βˆ£π‘˜
e la corrispondente matrice di covarianza
β–³
ν“Ÿ π‘˜+1βˆ£π‘˜ = 𝐸 sΜƒπ‘˜+1βˆ£π‘˜ sΜƒπ‘‡π‘˜+1βˆ£π‘˜ =
[
]
[
Pπ‘˜+1βˆ£π‘˜
Pπ‘˜+1βˆ£π‘˜
𝑇
Pπ‘˜+1βˆ£π‘˜
Pπ‘‘βˆ£π‘˜
]
dove
[
]
[
]
[
]
Pπ‘˜+1βˆ£π‘˜ = 𝐸 xΜƒπ‘˜+1βˆ£π‘˜ xΜƒπ‘‡π‘˜+1βˆ£π‘˜ , Pπ‘˜+1βˆ£π‘˜ = xΜƒπ‘‘βˆ£π‘˜ xΜƒπ‘‡π‘˜+1βˆ£π‘˜ , Pπ‘‘βˆ£π‘˜ = xΜƒπ‘‘βˆ£π‘˜ xΜƒπ‘‡π‘‘βˆ£π‘˜
3
Pertanto, per la regolarizzazione a punto fisso si può procedere nel seguente modo. Inizialmente si applica il filtro di Kalman al sistema originario, con le misure yπ‘‘βˆ’1 e uπ‘‘βˆ’2 ,
per determinare xΜ‚π‘‘βˆ£π‘‘βˆ’1 e Pπ‘‘βˆ£π‘‘βˆ’1 . Successivamente si applica il filtro di Kalman al sistema
esteso (0.5), a partire dall’istante 𝑑 con la seguente inizializzazione:
]
]
[
[
Pπ‘‘βˆ£π‘‘βˆ’1 Pπ‘‘βˆ£π‘‘βˆ’1
xΜ‚π‘‘βˆ£π‘‘βˆ’1
, ν“Ÿ π‘‘βˆ£π‘‘βˆ’1 =
sΜ‚π‘‘βˆ£π‘‘βˆ’1 =
Pπ‘‘βˆ£π‘‘βˆ’1 Pπ‘‘βˆ£π‘‘βˆ’1
xΜ‚π‘‘βˆ£π‘‘βˆ’1
Definendo il guadagno di Kalman relativo al sistema esteso (0.5)
[
]
K
(
)
π‘˜
βˆ’1
ν“šπ‘˜ = ν“π‘˜ ν“Ÿ π‘˜βˆ£π‘˜βˆ’1 ν“’ π‘‡π‘˜ Rπ‘˜ + ν“’ π‘˜ ν“Ÿ π‘˜βˆ£π‘˜βˆ’1 ν“’ π‘‡π‘˜
=
Kπ‘˜
e sfruttando la forma particolare delle matrici ν“π‘˜ , ν“‘π‘˜ , ν“’ π‘˜ , ν““ π‘˜ si ottiene il seguente algoritmo di regolarizzazione a punto fisso.
Algoritmo FPKS (Fixed-Point Kalman Smoother)
Dati xΜ‚π‘‘βˆ£π‘‘βˆ’1 e Pπ‘‘βˆ£π‘‘βˆ’1 , si procede ciclicamente come segue per π‘˜ = 𝑑, 𝑑 + 1, 𝑑 + 2, . . . :
Sπ‘˜ = Rπ‘˜ + Cπ‘˜ Pπ‘˜βˆ£π‘˜βˆ’1 Cπ‘‡π‘˜
Kπ‘˜ = Aπ‘˜ Pπ‘˜βˆ£π‘˜βˆ’1 Cπ‘‡π‘˜ Sβˆ’1
π‘˜
Kπ‘˜ = Pπ‘˜βˆ£π‘˜βˆ’1 Cπ‘‡π‘˜ Sβˆ’1
π‘˜
)
(
xΜ‚π‘‘βˆ£π‘˜ = xΜ‚π‘‘βˆ£π‘˜βˆ’1 + Kπ‘˜ yπ‘˜ βˆ’ Cπ‘˜ xΜ‚π‘˜βˆ£π‘˜βˆ’1
)
(
xΜ‚π‘˜+1βˆ£π‘˜ = Aπ‘˜ xΜ‚π‘˜βˆ£π‘˜βˆ’1 + Bπ‘˜ uπ‘˜ + Kπ‘˜ yπ‘˜ βˆ’ Cπ‘˜ xΜ‚π‘˜βˆ£π‘˜βˆ’1
Pπ‘˜+1βˆ£π‘˜ = Pπ‘˜βˆ£π‘˜βˆ’1 (Aπ‘˜ βˆ’ Kπ‘˜ Cπ‘˜ )
Pπ‘˜+1βˆ£π‘˜ = Aπ‘˜ Pπ‘˜βˆ£π‘˜βˆ’1 Aπ‘‡π‘˜ + Dπ‘˜ Qπ‘˜ Dπ‘‡π‘˜ βˆ’ Kπ‘˜ Sπ‘˜ Kπ‘‡π‘˜
𝑇
Pπ‘‘βˆ£π‘˜ = Pπ‘‘βˆ£π‘˜βˆ’1 βˆ’ Kπ‘˜ Sπ‘˜ Kπ‘˜
Regolarizzazione a ritardo fisso
Un possibile approccio alla regolarizzazione a ritardo fisso è il seguente. Si definisce lo
stato esteso:
⎀
⎑
x𝑑
⎒ xπ‘‘βˆ’1 βŽ₯
βŽ₯
⎒
s𝑑 = ⎒
βŽ₯ ∈ IR𝑛(β„“+2)
..
⎦
⎣
.
xπ‘‘βˆ’β„“βˆ’1
dove β„“ è il ritardo di regolarizzazione (in realtà, come si vedrà in seguito, è il massimo
ritardo che interessa considerare). Partendo dal sistema originario, è immediato constatare
4
come lo stato esteso così definito evolva in accordo alle seguenti equazioni di stato
⎧
⎀
⎑
⎀
⎑
⎀
⎑

D𝑑
B𝑑
A𝑑 0 β‹… β‹… β‹… 0



⎒ 0 βŽ₯
⎒ 0 βŽ₯
⎒ I

0 β‹…β‹…β‹… 0 βŽ₯

βŽ₯
⎒
βŽ₯
⎒
βŽ₯
⎨ s𝑑+1 = ⎒
u
+
s
+
⎒ ..
.. βŽ₯ 𝑑 ⎒ .. βŽ₯ 𝑑 ⎒ .. βŽ₯ w𝑑 = 퓐𝑑 s𝑑 + 퓑𝑑 u𝑑 + ν““w𝑑
⎣ . ⎦
⎣ . ⎦
⎣ .
. ⎦


0
0
0 β‹…β‹…β‹… I 0




⎩ y = [C 0 β‹… β‹… β‹… 0] s + v
= ν“’ 𝑑 s𝑑 + v 𝑑
𝑑
𝑑
𝑑
𝑑
(0.6)
Il predittore di Kalman ad un passo associato al sistema esteso (0.6) assume la forma
)
(
(0.7)
ŝ𝑑+1βˆ£π‘‘ = 퓐𝑑 sΜ‚π‘‘βˆ£π‘‘βˆ’1 + 퓑𝑑 u𝑑 + ν“šπ‘‘ y𝑑 βˆ’ ν“’ 𝑑 sΜ‚π‘‘βˆ£π‘‘βˆ’1
dove
ŝ𝑑+1βˆ£π‘‘
⎑
⎒
⎒
⎒
=⎒
⎒
⎣
x̂𝑑+1βˆ£π‘‘
xΜ‚π‘‘βˆ£π‘‘
xΜ‚π‘‘βˆ’1βˆ£π‘‘
..
.
xΜ‚π‘‘βˆ’β„“βˆ£π‘‘
⎑
⎀
⎒
βŽ₯
⎒
βŽ₯
⎒
βŽ₯
βŽ₯ , sΜ‚π‘‘βˆ£π‘‘βˆ’1 = ⎒
⎒
βŽ₯
⎣
⎦
xΜ‚π‘‘βˆ£π‘‘βˆ’1
xΜ‚π‘‘βˆ’1βˆ£π‘‘βˆ’1
xΜ‚π‘‘βˆ’2βˆ£π‘‘βˆ’1
..
.
xΜ‚π‘‘βˆ’β„“βˆ’1βˆ£π‘‘βˆ’1
⎑
⎀
⎒
βŽ₯
⎒
βŽ₯
⎒
βŽ₯
βŽ₯ , ν“šπ‘‘ = ⎒
⎒
βŽ₯
⎣
⎦
K𝑑
(1)
K𝑑
(2)
K𝑑
..
.
(β„“+1)
K𝑑
⎀
βŽ₯
βŽ₯
βŽ₯
βŽ₯
βŽ₯
⎦
Si noti, in particolare, che i due blocchi superiori di ν“šπ‘‘ non sono altro che il guadagno del
(1)
predittore di Kalman ad un passo K𝑑 ed il guadagno del correttore di Kalman L𝑑 = K𝑑 .
Sfruttando la forma particolare della matrici di stato 퓐𝑑 , 퓑𝑑 , ν“’ 𝑑 , ν““ 𝑑 in (0.6), (0.7) fornisce
le seguenti equazioni ricorsive:
⎧
x̂𝑑+1βˆ£π‘‘ = A𝑑 xΜ‚π‘‘βˆ£π‘‘βˆ’1 + B𝑑 u𝑑 + K𝑑 e𝑑






xΜ‚π‘‘βˆ£π‘‘ = xΜ‚π‘‘βˆ£π‘‘βˆ’1 + L𝑑 e𝑑




(2)


⎨ xΜ‚π‘‘βˆ’1βˆ£π‘‘ = xΜ‚π‘‘βˆ’1βˆ£π‘‘βˆ’1 + K𝑑 e𝑑
(0.8)
..
..

.
.




(β„“)


xΜ‚π‘‘βˆ’β„“+1βˆ£π‘‘ = xΜ‚π‘‘βˆ’β„“+1βˆ£π‘‘βˆ’1 + K𝑑 e𝑑




(β„“+1)

⎩ xΜ‚
e
= xΜ‚
+K
π‘‘βˆ’β„“βˆ£π‘‘
π‘‘βˆ’β„“βˆ£π‘‘βˆ’1
𝑑
𝑑
che permettono di aggiornare la stima preditiva x̂𝑑+1βˆ£π‘‘ , la stima filtrata xΜ‚π‘‘βˆ£π‘‘ e le stime regolarizzate con ritardo 𝑖, xΜ‚π‘‘βˆ’π‘–βˆ£π‘‘ , per 𝑖 = 1, 2, . . . , β„“. Si noti, in particolare, che (0.8) fornisce
tutte le stime regolarizzate fino al ritardo massimo β„“. Poiché la complessità computazionale per ciclo di elaborazione del filtro di Kalman è 𝑂(𝑛3 ), dove 𝑛 è la dimensione del
vettore di stato, il regolarizzatore con ritardo β„“ > 0 risulta avere un carico computazionale,
rispetto al filtro, aumentato di un fattore moltiplicativo 𝑂(β„“ + 2)3 .
5
Regolarizzazione ad intervallo fisso
La regolarizzazione ad intervallo fisso è effettuata off-line supponendo di avere a disposizione le osservazioni {y1 , y2 , . . . , yπ‘˜ } sull’intervallo temporale di interesse e di volere
determinare da queste le stime xΜ‚π‘‘βˆ£π‘˜ per 𝑑 = 0, 1, . . . , π‘˜. Un modo possibile per affrontare
questo problema, analogo a quello impiegato per la regolarizzazione a ritardo fissato, è
]𝑇
[
quello di introdurre lo stato esteso s𝑑 = x𝑇𝑑 , xπ‘‡π‘‘βˆ’1 , . . . , xπ‘‡π‘‘βˆ’π‘˜ ma, poiché solitamente π‘˜ è
molto grande, questo approccio risulta computazionalmente molto oneroso e difficilmente
applicabile in pratica. Un metodo molto più efficiente è quello di procedere in due fasi
come segue:
βˆ™ nella prima fase si elaborano in avanti i dati, nell’intervallo
( filtro di)
( [0, π‘˜], con) un
Kalman memorizzando tutte le stime e relative covarianze xΜ‚π‘‘βˆ£π‘‘βˆ’1 , Pπ‘‘βˆ£π‘‘βˆ’1 e xΜ‚π‘‘βˆ£π‘‘ , Pπ‘‘βˆ£π‘‘
per 𝑑 = 1, 2, . . . , π‘˜;
βˆ™ nella seconda fase si rielaborano i dati all’indietro, nello stesso intervallo, utilizzando
le stime e covarianze memorizzate nella prima fase.
Un algoritmo di stima che opera in questo modo è presentato in [?, pp. 334-338] ed è
riportato di seguito.
Algoritmo FIKS (Fixed-Interval Kalman Smoother)
)
(
1. Date le condizioni iniziali xΜ‚(1∣0 , P1∣0 , si determinano
)ricorsivamente in avanti, me) (
diante un filtro di Kalman, xΜ‚π‘‘βˆ£π‘‘βˆ’1 , Pπ‘‘βˆ£π‘‘βˆ’1 e xΜ‚π‘‘βˆ£π‘‘ , Pπ‘‘βˆ£π‘‘ per 𝑑 = 1, 2, . . . , π‘˜.
2. Per 𝑑 = π‘˜ βˆ’ 1, . . . , 1, 0 si procede all’indietro nel seguente modo:
K𝑑 = Pπ‘‘βˆ£π‘‘ A𝑇𝑑 Pβˆ’1
𝑑+1βˆ£π‘‘
)
(
xΜ‚π‘‘βˆ£π‘˜ = xΜ‚π‘‘βˆ£π‘‘ + K𝑑 x̂𝑑+1βˆ£π‘˜ βˆ’ x̂𝑑+1βˆ£π‘‘
) 𝑇
(
Pπ‘‘βˆ£π‘˜ = Pπ‘‘βˆ£π‘‘ βˆ’ K𝑑 P𝑑+1βˆ£π‘‘ βˆ’ P𝑑+1βˆ£π‘˜ K𝑑
6