6. Kalmanovi Filtry
Rekurzivní Nejmenší Čtverce - RLS¶
Rekurzivní nejmenší čtverce (RLS) je metoda používaná pro odhadování parametrů v lineárních modelech. RLS se vyznačuje svou schopností aktualizovat odhady parametrů v reálném čase na základě nových dat. Tento přístup je zvláště užitečný pro časové řady, kde parametry modelu mohou být považovány za konstantní.
Lineární Model a RLS¶
Uvažujme lineární model:
kde:
- y_t je vektor pozorování v čase t,
- H_t je matice kompatibilního rozměru,
- x je neznámý parametr (vektor),
- \varepsilon_t je náhodný šum s nulovou střední hodnotou a kovariancí R.
Vlastnosti Odhadu¶
RLS algoritmus má několik klíčových vlastností:
- Nevychýlenost: Pokud je chyba \varepsilon_t nestranná (má nulovou střední hodnotu) a počáteční odhad \hat{x}_0 je roven střední hodnotě pravého parametru, pak jsou všechny následující odhady \hat{x}_t nevychýlené.
- Konvergence: S vhodným nastavením zesílení K_t konverguje odhad \hat{x}_t k pravému parametru x.
Aplikace RLS¶
RLS je významný v mnoha aplikacích, kde je potřeba odhadovat parametry modelu v reálném čase nebo kde se data časem mění. Používá se například v systémech pro sledování, v adaptivním řízení nebo v ekonometrických modelech.
Lineární Kalmanův Filtr¶
Kalmanův filtr je efektivní lineární estimátor pro dynamické systémy a časové řady, který efektivně kombinuje informace z modelu systému a pozorování. Při splnění předpokladů linearity a Gaussovského šumu poskytuje nejlepší možný lineární odhad stavu v smyslu minimalizace střední kvadratické chyby. Jeho schopnost dynamicky aktualizovat odhady na základě nových dat ho činí vhodným pro širokou škálu aplikací, včetně navigace a zpracování signálů.
Model Stavu¶
Model dynamiky stavů a model pozorování v Kalmanově filtru se vyvíjejí podle těchto rovnic:
-
Model Dynamiky Stavů
- x_t: Stav systému v čase t.
- A_t: Matice dynamiky systému.
- B_t: Matice řídícího vstupu.
- u_t: Vektor externích vstupů v čase t.
- w_t: Náhodný šum procesu s kovariancí Q_t.
-
Model Pozorování
- y_t: Pozorované hodnoty v čase t.
- H_t: Matice pozorování.
- \varepsilon_t: Náhodný měřicí šum s kovariancí R.
V tomto kontextu, x_t reprezentuje aktuální stav systému, který je odhadován Kalmanovým filtrem na základě dynamiky systému a měření.
Algoritmus Kalmanova Filtru¶
High-Level Přehled¶
- Inicializace: Nastavení počátečního stavu a kovarianční matice.
- Iterační Proces:
- Predikce Stavů: Odhadnutí budoucího stavu na základě současného stavu a modelu dynamiky.
- Korekce Stavů: Aktualizace odhadu stavu pomocí nových pozorování.
Matice a Formulace¶
- Stavová Matice (X):
- Predikovaný Stav (x_t^-): Reprezentuje odhad stavu systému před přijetím nového pozorování. Tento odhad je založen na předchozím odhadu stavu a modelu dynamiky systému.
- Aktualizovaný Stav (x_t^+): Reprezentuje odhad stavu systému po korekci s novým pozorováním. Tento stav vzniká aktualizací predikovaného stavu na základě nových dat.
- Matice Dynamiky Systému (A): Matice A je známa jako matice stavového přechodu nebo dynamiky systému. Slouží k popisu, jak se stav systému vyvíjí v čase, nezávisle na jakýchkoli externích vlivech. V kontextu sledování polohy vozidla by matice A mohla například reprezentovat, jak se poloha a rychlost vozidla mění v čase za předpokladu konstantní rychlosti nebo akcelerace.
- Matice Řídícího Vstupu (B): Matice B zohledňuje vliv externích řídících vstupů nebo akcí na stav systému. V modelu vozidla by matice B mohla představovat, jak akcelerace nebo jiné řídicí vstupy ovlivňují rychlost a následně polohu vozidla.
- Kovarianční Matice Odhadu (P): Vyjadřuje neurčitost (nebo jistotu) odhadu stavu. Rozlišují se dvě formy: P_t^- představuje kovarianční matici odhadu před korekcí, založenou na predikci a modelu systému, a P_t^+, která je kovarianční matice odhadu po korekci, reflektující nejistotu odhadu po zahrnutí nových pozorování.
- Matice Zesílení Kalmanova Filtru (K): Určuje, jak moc nové pozorování ovlivní aktuální odhad stavu.
Inicializace¶
-
Nastavení Počátečního Odhadu Stavu x_0: Nastavuje se výchozí odhad stavu systému.
- Tento krok zahrnuje definování počátečního odhadu stavu systému. Odhad může být založen na předchozích znalostech nebo může být nastaven jako nulový či libovolný vektor, pokud neexistují žádné předchozí informace.
-
Nastavení Počáteční Kovariance Odhadů P_0^+: Iniciální nastavení kovariance odhadů.
- Kovarianční matice P_0^+ kvantifikuje počáteční neurčitost (nebo jistotu) související s počátečním odhadem stavu. Tato matice je obvykle nastavena na vysokou hodnotu, pokud je počáteční odhad nejistý.
Iterační Proces¶
Pro každý časový okamžik t = 1, 2, \ldots:
-
Predikce Stavů (Časový Update)
- Odhad Stavu:
- V tomto kroku se vytváří předpoklad o tom, jak se stav systému vyvinul od posledního měření. Používá se k tomu model systému, který zahrnuje předchozí odhad stavu \hat{x}_{t-1}^+ a případně externí vstupy u_t.
- Kovarianční Matice Odhadu:
- Aktualizuje se kovarianční matice odhadu, což reflektuje, jak neurčitost odhadu stavu roste s časem v důsledku vnitřního šumu systému a nejistoty modelu.
- Odhad Stavu:
-
Korekce (Datový Update) Stavů Pozorováním y_t
- Výpočet Zesílení Kalmanova Filtru K_t:
- Zesílení Kalmanova filtru K_t je klíčové pro optimalizaci odhadu. Zohledňuje současnou neurčitost odhadu (reflektovanou v P_t^-) a spolehlivost nového měření (reflektovanou v R_t).
- Optimální zesílení:
- Efektivita: Optimální zesílení K_t zajišťuje, že Kalmanův filtr efektivně kombinuje informace z minulých odhadů a aktuálních pozorování.
- Přesnost: Díky minimalizaci kovarianční matice odhadu P_t je zajištěna vysoká přesnost odhadů stavů.
- Výpočet Zesílení Kalmanova Filtru K_t:
- Aktualizace Odhadu Stavu:
- Na základě nového měření y_t a odhadu stavu před korekcí \hat{x}_t^- se aktualizuje odhad stavu. Korekce odhadu je vedená rozdílem mezi skutečným pozorováním a predikovaným stavem, váženým zesílením K_t.
- Aktualizace Kovarianční Matice Odhadu:
- Nakonec se aktualizuje kovarianční matice odhadu, aby odrážela změněnou neurčitost odhadu po zahrnutí nového měření. Tento krok snižuje neurčitost odhadu, což je důležité pro zvýšení přesnosti v následujících predikcích.
Vlastnosti Kalmanova filtru¶
- Jsou-li obě šumové složky normálně rozdělené, centrované v nule, nekorelované a bílé, potom je Kalmanův filtr optimální lineární filtr.
- Pokud není zajištěna normalita, je Kalmanův filtr stále nejlepší lineární filtr. To jest, může existovat lepší (např. nelineární) filtr, ale KF je stále nejlepší lineární.
- Pokud jsou šumy korelované nebo barevné, existují různé modifikace.
- Je-li proces nelineární, lze použít rozšířený KF nebo jiné varianty filtru.
Rozšířený Kalmanův filtr - EKF¶
Rozšířený Kalmanův Filtr (EKF) je varianta Kalmanova filtru pro nelineární systémy. EKF lineárně aproximuje nelineární funkce pomocí prvního řádu Taylorovy řady, což umožňuje použití standardního lineárního Kalmanova filtru.
Model Stavu¶
-
Nelineární Model Dynamiky Stavů
- Nelineární vztah stavu a času: kde f je nelineární funkce stavů, u_t jsou externí vstupy, a w_t je procesní šum.
-
Nelineární Model Pozorování
- Nelineární vztah mezi stavem a pozorováním: kde h je nelineární funkce pozorování a \varepsilon_t je měřicí šum.
Algoritmus Rozšířeného Kalmanova Filtru¶
-
Inicializace: Nastavení počátečního odhadu stavu x_0 a kovarianční matice P_0^+.
-
Iterační Proces:
- Predikce Stavů: Odhad budoucího stavu na základě nelineárního modelu dynamiky stavů.
- Linearizace: Použití prvního řádu Taylorovy řady pro aproximaci nelineárních funkcí f a h, což vede k výpočtu "lineárních ekvivalentů" matic A_t a H_t.
- Korekce Stavů: Aktualizace odhadu stavu pomocí nových pozorování s využitím linearizovaných funkcí.
Rozdíly oproti Lineárnímu Kalmanovu Filtru¶
- Nelineární Modely: Zatímco lineární Kalmanův filtr předpokládá lineární vztahy mezi stavy a pozorováními, EKF umožňuje pracovat s nelineárními vztahy.
- Linearizace: EKF používá linearizaci nelineárních funkcí pro zjednodušení výpočtů.
- Aproximace: Kvůli linearizaci je EKF pouze aproximací, a jeho přesnost závisí na míře nelinearity systému a na kvalitě aproximace.
Rozšířený Kalmanův filtr je vhodný pro širokou škálu aplikací, kde je potřeba zpracovávat nelineární dynamiku, jako je navigace vozidel, sledování objektů a mnoho dalších oblastí.
Vlastnosti EKF¶
- Odhad EKF obecně není optimální. Optimalita je zajištěna pouze tehdy, pokud jsou stavové funkce lineární - pak se vše ale zredukuje na lineární stavový model a lineární KF.
- EKF může divergovat, zvl. pokud jsou iniciální stavy nastaveny hodně špatně.
- kovarianční matice odhadů je obvykle podhodnocena, čímž může být filtr inkonzistentní.
- Pokud není model dostatečně dobře znám nebo je nepřesný, je lepší stejně použít Monte Carlo metody.
- Obecně má ale EKF natolik dobré vlastnosti, že je standardem v celé řadě problémů, včetně navigace a GPS.
- V případě potřeby navíc existují vylepšené verze, např. s Taylorovým polynomem druhého řádu. Bohužel s tím ale roste náročnost.
Unscented Kalman filter - UKF¶
Unscented Kalmanův Filtr je rozšířením tradičního Kalmanova filtru pro nelineární systémy. Místo linearizace nelineárních funkcí využívá unscented transformaci (UT) k efektivnímu odhadu stavů.
Unscented Transformace (UT)¶
Unscented transformace je klíčová v UKF. Místo lineární aproximace nelineárních funkcí přistupuje k reprezentaci rozdělení pravděpodobnosti stavové proměnné pomocí sady sigma-bodů. Tyto body jsou navrženy tak, aby zachovávaly klíčové statistické vlastnosti (střední hodnotu a kovarianci) původního rozdělení.
Sigma-body¶
Sigma-body jsou specifické body vybrané tak, aby představovali diskrétní aproximaci hustoty stavové veličiny. Pro stavový vektor x \in \mathbb{R}^n s průměrem \bar{x} a kovarianční maticí P, generujeme 2n sigma-bodů podle vzorce:
kde \sqrt{nP} je maticová odmocnina matice nP, a \left( \sqrt{nP} \right)_i značí i-tý řádek této matice.
Algoritmus UKF¶
Inicializace¶
Zahrnuje nastavení počátečního odhadu stavu x_0 a kovarianční matice P_0^+.
Iterační Proces¶
Pro každý časový krok t = 1, 2, \ldots UKF postupuje podle následujících kroků:
-
Inicializace Sigma-bodů
- Generují se sigma-body z aktuálního odhadu stavu a kovarianční matice. Tyto body reprezentují možné stavy systému.
-
Predikce Stavů
- Každý sigma-bod je transformován pomocí modelu systému f_t. Výsledkem je sada predikovaných sigma-bodů.
- Výpočet průměru a kovariance predikovaných bodů dává predikovaný stav \hat{x}_t^- a kovarianční matici P_t^-.
-
Korekce Stavů Pozorováním y_t
- Volitelná reinicializace sigma-bodů pro korekci
- Vygenerování nové generace sigma-bodů na základě predikovaného stavu a kovarianční matice pro použití v korekčním kroku.
- Korekce stavů pozorováním y_t
- Transformace sigma-bodů pomocí funkce pozorování, výpočet předpovědi pozorování a kovariančních matic, a aktualizace odhadu stavu.
- Volitelná reinicializace sigma-bodů pro korekci