FilterLab šum a odhad stavu

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Kalmanův filtr: nejdřív jedno číslo

Všechny předchozí filtry měly pevné nastavení: napsal jsi N nebo τ a filtr se jím řídil ať se dělo cokoli. Kalmanův filtr místo toho vede účetnictví vlastní nejistoty a váhu si z ní počítá sám. Začneme s jedním stavem, protože v tom je vidět všechno podstatné.

Dva kroky, které se střídají

predikce:  x̂⁻ = A·x̂     P⁻ = A²P + Qmodel řekne, co čekat — a nejistota vzroste
korekce:  K = P⁻P⁻+R     x̂ = x̂⁻ + K(z − x̂⁻)     P = (1−K)P⁻měření přijde — a nejistota klesne

Zesílení K je jediná věc, o kterou tu jde, a ta rovnice se dá přečíst slovy: vem si tolik z měření, kolik odpovídá poměru nejistot. Když si filtr věří (P⁻ malé), K je malé a měření skoro ignoruje. Když senzor šumí (R velké), taky. A když je nejistota veliká, věří měření skoro úplně.

Řešený příklad, který lze zkontrolovat

Welch a Bishop dávají celý příklad s čísly: odhad konstanty x = −0,37727 z měření zatížených šumem 0,1 V ef., tedy R = 0,01, s Q = 1e−5, x̂₀ = 0 a P₀ = 1. Kalkulačka i testy téhle labky ho reprodukují.

20406010⁻⁵2·10⁻⁵5·10⁻⁵10⁻⁴2·10⁻⁴5·10⁻⁴0.0010.0020.0050.010.020.050.100.200.501.0podlaha, kterou dělá Qk=50krok knejistota P
Q = 1,00·10⁻⁵, R = 0,010 → P po 50 krocích 3,39·10⁻⁴, podlaha 3,11·10⁻⁴, ustálené zesílení K = 0,0311.
Tohle je přesně nastavení z Welche a Bishopa — a jejich obrázek 3-2 tvrdí, že P sedne „asi na 0,0002". Podlaha je ale 3,11·10⁻⁴, takže 0,0002 je pod ní a při tomhle Q je nedosažitelné. Stáhni Q na nulu a přesně to číslo dostaneš.
Q není ladicí knoflík na rychlost — je to tvrzení „svět se mezi vzorky změní tak a tak moc". Pod tu nejistotu se filtr nedostane, i kdyby měření přicházela navěky. Q = 0 znamená „konstanta", a tam P klesá k nule jako 1/k.
Svislá osa je nejistota P, logaritmicky. Táhni Q. Červená čára je podlaha, kterou si Q samo nastaví — a všimni si, co se s ní stane při Q = 0.

Q není knoflík na rychlost

Tohle je nejužitečnější věta celé kapitoly. Q je tvrzení „svět se mezi dvěma vzorky změní tak a tak moc". Z něj plyne podlaha, pod kterou nejistota filtru nikdy neklesne:

P = −Q + √(Q² + 4QR)2ustálená nejistota, skalární případ

Ať přijde měření kolikkoli, filtr se pod tuhle hodnotu nedostane — protože sám tvrdí, že se mu mezitím svět pohnul. Jen pro Q = 0 („je to konstanta") klesá P k nule, a to jako 1/k:

1Pk = 1P₀ + kRQ = 0: přesně, uzavřeně

Nález v citovaném zdroji. Popiska obrázku 3-2 u Welche a Bishopa říká, že P po padesáti krocích sedne „asi na 0,0002 V²". Jenže při jejich Q = 1e−5 a R = 0,01 je podlaha 3,11·10⁻⁴ a P k ní klesá shora — 0,0002 je tedy pod ní a nedosažitelné. Je to přesně hodnota pro Q = 0: 1/(1 + 50/0,01) = 1/5001 = 1,9996·10⁻⁴. Text a obrázek se rozcházejí. Vyzkoušej si to v obrázku výš stažením Q na nulu — a hlavně: tenhle rozpor je ta nejlepší ukázka toho, co Q dělá, mnohem názornější než jakákoli poučka.

Vztah k tomu, co už znáš. Ustálený Kalmanův filtr s jedním stavem je exponenciální filtr — jen si α spočítal sám z Q a R místo aby ho dostal. Rozdíl je v přechodu: Kalmanův filtr začíná s velkým K, takže se rychle chytí, a teprve pak se utáhne. Exponenciální filtr má α stejné od začátku a ustaluje se pomalu.

Vzorce v této kapitole

K — Kalmanovo zesílení
K = P⁻/(P⁻+R) [—] Welch & Bishop, tab. 1-2
P⁻ — predikce nejistoty
P⁻ = A²P + Q [—] Welch & Bishop, tab. 1-1
P_∞ — podlaha, kterou dělá Q
P_∞ = (−Q + √(Q²+4QR))/2 [—] pevný bod Riccatiho rovnice
P_k — nejistota při Q = 0
1/P_k = 1/P₀ + k/R [—] odhad konstanty