Kalman-filteret er et effektivt rekursivt filter , der estimerer tilstandsvektoren for et dynamisk system ved hjælp af en række ufuldstændige og støjende målinger. Opkaldt efter Rudolf Kalman .
Kalman-filteret er meget udbredt i tekniske og økonometriske applikationer, fra radar- og visionsystemer til makroøkonomiske modelparameterestimater [1] [2] . Kalman-filtrering er en vigtig del af kontrolteori og spiller en stor rolle i skabelsen af kontrolsystemer. Sammen med en lineær-kvadratisk controller tillader Kalman-filteret at løse problemet med lineær-kvadratisk Gaussisk kontrol . Kalman-filteret og den lineær-kvadratiske controller er en mulig løsning på de mest fundamentale problemer inden for kontrolteori.
I de fleste applikationer overstiger dimensionen af objektets tilstandsvektor dimensionen af observationsdatavektoren . Samtidig gør Kalman-filteret det muligt at evaluere objektets fuldstændige interne tilstand.
Kalman-filteret er beregnet til rekursiv undervurdering af tilstandsvektoren for et a priori kendt dynamisk system, det vil sige for at beregne den aktuelle tilstand af systemet, er det nødvendigt at kende den aktuelle måling såvel som den tidligere tilstand af filteret sig selv. Kalman-filtret er således, ligesom andre rekursive filtre, implementeret i tid, ikke i frekvensrepræsentation, men i modsætning til andre lignende filtre, fungerer Kalman-filtret ikke kun med tilstandsestimater, men også med estimater af usikkerheden (fordelingstæthed) af tilstandsvektoren, baseret på Bayes-formlen for betinget sandsynlighed .
Algoritmen fungerer i to trin. På forudsigelsesstadiet ekstrapolerer Kalman-filteret værdierne af tilstandsvariablerne såvel som deres usikkerheder. På det andet trin, ifølge måledataene (opnået med en vis fejl), forfines ekstrapoleringsresultatet. På grund af algoritmens trinvise karakter kan den spore objektets tilstand i realtid (uden at se fremad, ved kun at bruge aktuelle målinger og information om den tidligere tilstand og dens usikkerhed).
Der er en misforståelse om, at den korrekte drift af Kalman-filteret angiveligt kræver en Gaussisk fordeling af inputdataene. I Kalmans originale arbejde blev resultaterne af den minimale filterkovarians opnået på basis af ortogonale projektioner uden antagelsen om Gaussiske målefejl [3] . Det blev derefter blot vist, at for det specielle tilfælde af Gauss-fejlfordelingen, giver filteret et nøjagtigt estimat af den betingede sandsynlighed for systemtilstandsfordelingen.
Et tydeligt eksempel på filterets muligheder er at opnå optimale, løbende opdaterede estimater af et objekts position og hastighed baseret på resultaterne af en tidsserie af unøjagtige målinger af dets placering. I radar er opgaven for eksempel at spore et mål, bestemme dets placering, hastighed og acceleration, mens måleresultaterne kommer gradvist og er meget støjende. Kalman-filteret bruger en probabilistisk måldynamikmodel, der specificerer den type objekt, der sandsynligvis vil bevæge sig, hvilket reducerer påvirkningen af støj og giver gode estimater af objektets position i det nuværende, fremtidige eller tidligere tidspunkt.
Kalman-filteret fungerer med konceptet med systemtilstandsvektoren (et sæt parametre, der beskriver systemets tilstand på et eller andet tidspunkt) og dets statistiske beskrivelse. I det generelle tilfælde er dynamikken i en tilstandsvektor beskrevet af sandsynlighedstæthederne for fordelingen af dens komponenter på hvert tidspunkt. I nærværelse af en vis matematisk model af observationerne af systemet, såvel som en model af a priori ændring i parametrene for tilstandsvektoren (nemlig som en Markov-dannelsesproces ), kan man skrive en ligning for a posteriori sandsynlighedstæthed for tilstandsvektoren til enhver tid. Denne differentialligning kaldes Stratonovich-ligningen . Stratonovich - ligningen i generel form er ikke løst. En analytisk løsning kan kun opnås i tilfælde af en række begrænsninger (antagelser):
Det klassiske Kalman-filter er en ligning til beregning af det første og andet moment af den posteriore sandsynlighedstæthed (i betydningen vektoren af matematiske forventninger og matrixen af varianser, inklusive gensidige) under givne begrænsninger. I lyset af det faktum, at for en normal sandsynlighedstæthed, den matematiske forventning og spredningsmatrixen fuldstændigt definerer sandsynlighedstætheden, kan vi sige, at Kalman-filteret beregner den posteriore sandsynlighedstæthed af tilstandsvektoren i hvert tidspunkt, og derfor fuldstændigt. beskriver tilstandsvektoren som en tilfældig vektormængde.
De beregnede værdier af matematiske forventninger i dette tilfælde er optimale estimater i henhold til kriteriet om rod-middel-kvadrat-fejl, hvilket forårsager dens brede anvendelse.
Der er flere varianter af Kalman-filteret, som adskiller sig i tilnærmelser og tricks, der skal anvendes for at reducere filteret til den beskrevne form og reducere dets dimension:
Derudover er der analoger til Kalman-filteret, der helt eller delvist bruger den kontinuerlige tidsmodel:
Filteret er opkaldt efter den ungarske matematiker Rudolf E. Kalman , som emigrerede til USA, selvom Thorvald Nicolai Thiele [4] [5] og Peter Swerling udviklede en lignende algoritme tidligere (Thiele betragtede kun nogle bestemte omgivelser, mens Swerlings algoritme er praktisk talt identisk med Kalman). Richard S. Bucy fra University of Southern California bidrog til teorien, der førte til det såkaldte Kalman-Bucy-filter. Stanley F. Schmidt anses for at være den første til at implementere Kalman-filteret under Kalmans besøg på Ames Research Center , så Kalman så anvendeligheden af hans ideer til problemet med baneestimering for Apollo-programmet , hvilket i sidste ende førte til inklusion af dette filter i Apollo navigationssystem. Kalman-filteret blev først beskrevet og delvist udviklet af Swerling (1958), Kalman (1960) og Kalman og Bucy (1961).
Kalman-filtre viste sig at være afgørende for implementeringen af den amerikanske flådes nukleare ballistiske missil-ubådsnavigationssystemer i krydsermissilnavigationssystemer, såsom Tomahawks . Det blev også brugt i navigations- og kontrolsystemerne i NASAs rumfærgeprojekt , bruges i ISS ' kontrol- og navigationssystemer .
Det digitale Kalman-filter kaldes undertiden Stratonovich-Kalman-Bucy-filteret, da det er et specialtilfælde af et mere generelt ikke-lineært filter udviklet noget tidligere af den sovjetiske matematiker R. L. Stratonovich [6] [7] [8] [9] . Faktisk dukkede nogle af ligningerne for særlige tilfælde af det lineære filter op i disse artikler af Stratonovich, udgivet før sommeren 1960, da Kalman mødte Stratonovich under en konference i Moskva.
Kalman-filtre er baseret på tidssamplede lineære dynamiske systemer . Sådanne systemer er modelleret af Markov-kæder ved hjælp af lineære operatorer og termer med normalfordeling . Systemets tilstand er beskrevet af en vektor med endelig dimension - tilstandsvektoren . Ved hvert tidstrin virker den lineære operator på tilstandsvektoren og overfører den til en anden tilstandsvektor (deterministisk tilstandsændring), en normal støjvektor (vilkårlige faktorer) og i det generelle tilfælde en kontrolvektor, der simulerer virkningen af styresystem tilføjes. Kalman-filteret kan ses som en analog af skjulte Markov-modeller med den forskel, at variablerne, der beskriver systemets tilstand, er elementer i et uendeligt sæt af reelle tal (i modsætning til det endelige sæt af tilstandsrummet i skjulte Markov-modeller ). Derudover kan skjulte Markov-modeller bruge vilkårlige fordelinger til efterfølgende tilstandsvektorværdier, i modsætning til Kalman-filteret, som bruger en normalfordelt støjmodel. Der er et strengt forhold mellem Kalman-filterets ligninger og den skjulte Markov-model. En gennemgang af disse og andre modeller er givet af Roweis og Chahramani (1999) [10] .
Når man bruger Kalman-filteret til at opnå estimater af procestilstandsvektoren fra en række støjende målinger, er det nødvendigt at repræsentere modellen af denne proces i overensstemmelse med filterstrukturen - i form af en matrixligning af en bestemt type. For hvert trin k i filteroperationen er det nødvendigt at bestemme matricerne i overensstemmelse med beskrivelsen nedenfor : udviklingen af processen Fk ; observationsmatrix H k ; kovariansmatrixen for processen Qk ; målestøj kovariansmatrix Rk ; i nærvær af kontrolhandlinger - matrixen af deres koefficienter B k .
System (proces) modellen indebærer, at den sande tilstand på tidspunktet k opnås fra den sande tilstand på tidspunktet k −1 i overensstemmelse med ligningen
,hvor
I øjeblikket k udføres observationen (målingen) z k af den sande tilstandsvektoren x k , som er forbundet med ligningen
,hvor Hk er målematricen , der relaterer den sande tilstandsvektor og vektoren for udførte målinger, vk er den hvide Gaussiske målestøj med nul matematisk forventning og kovariansmatrixen Rk :
Starttilstanden og vektorerne for tilfældige processer på hvert trin { x 0 , w 1 , …, w k , v 1 , …, v k } betragtes som uafhængige .
Mange virkelige dynamiske systemer kan ikke beskrives nøjagtigt af denne model. I praksis kan den dynamik, der ikke tages i betragtning i modellen, alvorligt ødelægge filterets ydeevne, især når man arbejder med et ukendt stokastisk signal ved indgangen. Desuden kan dynamik, der ikke tages i betragtning i modellen, gøre filteret ustabilt . På den anden side vil uafhængig hvid støj som et signal ikke få algoritmen til at divergere. Opgaven med at adskille målestøj fra dynamikker, der ikke er redegjort for i modellen, er vanskelig; den løses ved hjælp af teorien om robuste styresystemer .
Kalman-filteret er en type rekursivt filter . For at beregne estimatet af systemets tilstand for den aktuelle arbejdscyklus har det brug for et estimat af tilstanden (i form af et estimat af systemets tilstand og et estimat af fejlen ved bestemmelse af denne tilstand) ved tidligere arbejdscyklus og målinger ved den aktuelle cyklus. Denne egenskab adskiller den fra pakkefiltre, som kræver viden om historikken for målinger og/eller evalueringer i den aktuelle driftscyklus. Yderligere vil vi under optegnelsen forstå estimatet af den sande vektor i øjeblikket n under hensyntagen til målingerne fra det øjeblik, arbejdet begyndte og op til øjeblikket m inklusive.
Filtertilstanden er sat af to variable:
Hver iteration af Kalman-filteret er opdelt i to faser: ekstrapolation (forudsigelse) og korrektion. Under ekstrapolering modtager filteret et foreløbigt estimat af systemets tilstand (i russisk litteratur er det ofte betegnet med , hvor det betyder "ekstrapolation", og k er nummeret på det trin, hvor det blev opnået) for det aktuelle trin i henhold til det endelige tilstandsestimat fra det foregående trin (eller et foreløbigt estimat for næste trin ifølge den endelige vurdering af det aktuelle trin, afhængigt af fortolkningen). Dette foreløbige estimat kaldes også det forudgående tilstandsestimat, da observationer af det tilsvarende trin ikke bruges til at opnå det. I korrektionsfasen suppleres a priori ekstrapoleringen med relevante strømmålinger for at korrigere estimatet. Det justerede estimat kaldes også det posteriore tilstandsestimat, eller blot tilstandsvektorestimatet . Normalt veksler disse to faser: ekstrapolering udføres baseret på resultaterne af korrektionen indtil næste observation, og korrektionen udføres sammen med de observationer, der er tilgængelige på næste trin osv. Et andet scenarie er dog også muligt: hvis for nogle årsagen til, at observationen viste sig at være utilgængelig, kan korrektionsstadiet springes over og ekstrapoleres fra det ujusterede estimat (a priori ekstrapolation). Tilsvarende, hvis uafhængige målinger kun er tilgængelige i separate arbejdscyklusser, er korrektioner stadig mulige (normalt ved at bruge en anden observationsmatrix H k ).
Overvej derefter betjeningen af det klassiske optimale Kalman-filter.
Ekstrapolation (forudsigelse) af systemets tilstandsvektor i henhold til estimatet af tilstandsvektoren og den anvendte kontrolvektor fra trin ( k − 1 ) til trin k : | |
Kovariansmatrix for ekstrapoleret tilstandsvektor : |
Afvigelse af observationen opnået i trin k fra den observation, der forventes i ekstrapolationen: | |
Kovariansmatrix for afvigelsesvektoren (fejlvektor): | |
Den Kalman-optimale forstærkningsmatrix dannet baseret på kovariansmatricerne for den tilgængelige tilstandsvektorekstrapolation og de opnåede målinger (via afvigelsesvektorens kovariansmatrix): | |
Korrektion af den tidligere opnåede ekstrapolation af tilstandsvektoren - opnåelse af et estimat af systemets tilstandsvektor: | |
Beregning af kovariansmatrixen til estimering af systemtilstandsvektoren: |
Udtrykket for kovariansmatrixen til estimering af systemtilstandsvektoren er kun gyldigt, når der anvendes den reducerede optimale vektor af koefficienter. Generelt har dette udtryk en mere kompleks form.
Hvis modellen er absolut nøjagtig og de oprindelige betingelser og er absolut nøjagtigt specificerede , så bevares følgende værdier efter et vilkårligt antal filteriterationer, det vil sige, de er invarianter:
Matematiske forventninger til estimater og ekstrapolationer af systemtilstandsvektoren, fejlmatricer er nulvektorer:
hvor er den matematiske forventning .
De beregnede kovariansmatricer for ekstrapolationer, estimater af systemets tilstand og fejlvektoren falder sammen med de sande kovariansmatricer:
Forestil dig en trolley stående på uendeligt lange skinner uden friktion . Til at begynde med hviler den i position 0, men under indflydelse af tilfældige faktorer har den en tilfældig acceleration . Vi måler vognens position hvert ∆t sekund , men målingerne er unøjagtige. Vi ønsker at få skøn over vognens position og dens hastighed. Ved at anvende Kalman-filteret på dette problem bestemmer vi alle de nødvendige matricer.
I denne opgave er matricerne F , H , R og Q ikke tidsafhængige, så vi udelader deres indeks.
Trolleyens koordinater og hastighed er beskrevet af en vektor i det lineære tilstandsrum
hvor er hastigheden (den første afledede af koordinaten med hensyn til tid).
Vi antager, at mellem ( k −1 )-th og k - th cyklusser bevæger vognen sig med en konstant acceleration a k , fordelt efter normalloven med nul matematisk forventning og standardafvigelse σ a . Ifølge newtonsk mekanik kan man skrive
hvor
Kontrolmatrixen er skrevet som en vektor
.Kontrolvektoren degenererer til en skalar a k .
Kovariansmatrix af tilfældige påvirkninger
( σ a er en skalar).Ved hver arbejdscyklus måles vognens position. Lad os antage, at målefejlen v k har en normalfordeling med nul matematisk forventning og standardafvigelse σ z . Derefter
,hvor
,og observationsstøjens kovariansmatrix har formen
.Trolleyens startposition er kendt nøjagtigt:
, .Hvis vognens position og hastighed kun kendes tilnærmelsesvis, kan variansmatricen initialiseres med et tilstrækkeligt stort tal L , således at dette tal overstiger variansen af koordinatmålinger:
, .I dette tilfælde vil filteret i de første driftscyklusser bruge måleresultaterne med mere vægt end den tilgængelige a priori-information.
Ved definition af kovariansmatrixen P k | k
.Vi erstatter udtrykket for at evaluere tilstandsvektoren
og skriv udtrykket for fejlvektoren
og målevektor
.Vi udtager målefejlvektoren v k
.Da målefejlvektoren v k ikke er korreleret med andre argumenter, får vi udtrykket
.I overensstemmelse med egenskaberne for kovariansen af vektorer transformeres dette udtryk til formen
.Udskiftning af udtrykket for kovariansmatrixen for tilstandsvektorekstrapolation med Pk | k −1 og definitionen af kovariansmatrixen for observationsstøj på R k , får vi
.Det resulterende udtryk er gyldigt for en vilkårlig matrix af koefficienter, men hvis det er matrixen af koefficienter, der er Kalman optimal, så kan dette udtryk for kovariansmatricen simplificeres.
Kalman-filteret minimerer summen af kvadrater af de forventede tilstandsvektorestimeringsfejl.
Tilstandsvektorestimeringsfejlvektor
.Opgaven er at minimere summen af matematiske forventninger til kvadraterne af komponenterne i denne vektor:
,hvilket svarer til at minimere sporet af kovariansmatrixen af tilstandsvektorestimatet P k | k . Lad os erstatte de tilgængelige udtryk i udtrykket for kovariansmatrixen for tilstandsvektorestimeringen og fuldføre den til det fulde kvadrat:
. |
Bemærk, at det sidste led er kovariansmatrixen for en tilfældig variabel, så dens spor er ikke-negativ. Sporingsminimum nås, når den sidste term er sat til nul:
Det hævdes, at denne matrix er den ønskede og, når den bruges som en matrix af koefficienter i Kalman-filteret, minimerer summen af middelkvadraterne af tilstandsvektorestimeringsfejl.
Udtrykket for kovariansmatrixen af tilstandsvektorestimeringen P k | k ved brug af den optimale matrix af koefficienter vil have formen:
. |
Denne formel er beregningsmæssigt enklere og bruges derfor næsten altid i praksis, men den er kun korrekt, når du bruger den optimale matrix af koefficienter. Hvis der på grund af lav beregningsnøjagtighed er et problem med beregningsstabilitet, eller der specifikt anvendes en ikke-optimal koefficientmatrix, skal den generelle formel for tilstandsvektorestimeringskovariansmatrixen anvendes.
Kalman-Bucy-filteret (opkaldt efter Richard Snowden-Bucy) er en kontinuert-tidsversion af Kalman-filteret [11] [12] , der er afhængig af følgende kontinuerlige dynamiske tilstandsmodel:
, .Her og vil repræsentere intensiteterne af to udtryk (med karakteristika af hvid støj) og hhv.
Filteret består af to differentialligninger, hvoraf den ene bruges til at estimere systemets tilstand, og den anden til at estimere kovariansen:
,hvor Kalman-koefficienten opnås ved formlen
.Bemærk, at i udtrykket for kovariansen af observationen repræsenterer støj på samme tid kovariansen af forudsigelsesfejlen , og disse kovarianser er kun ens for tilfældet med kontinuerlig tid [13] .
Forskellen mellem forudsigelses- og korrektionstrin i diskret Kalman-filtrering gælder ikke for det kontinuerlige tilfælde.
Den anden differentialligning for kovarians er et eksempel på Riccati-ligningen .
De fleste fysiske systemer har en kontinuerlig tidsmodel for udviklingen af systemets tilstand og en diskret målemodel til at forfine tilstanden. Derfor kan filtermodellen repræsenteres som følger:
,hvor
. Initialisering VejrudsigtPrognoseligningerne er taget fra Kalman-Bucy filteret med kontinuerlig tid ved . Forudsigelsen af tilstanden og kovariansen opnås ved at integrere differentialligningerne med startværdien taget fra det foregående korrektionstrin.
RettelseKorrektionsligningerne er identiske med dem fra det diskrete Kalman-filter.
I øjeblikket udføres hovedkritikken af Kalman-filteret på følgende områder [14] :
Følgelig er positionen for tilhængere af dette filters optimalitet, at [15] :