Bezpečnostný informačný portál. Kalmanov filter Kalmanov filter pre skalárne merania

Wienerove filtre sú najvhodnejšie na spracovanie procesov alebo segmentov procesov ako celku (blokové spracovanie). Sekvenčné spracovanie vyžaduje aktuálny odhad signálu v každom cykle, berúc do úvahy informácie prijaté na vstupe filtra počas procesu pozorovania.

Pri Wienerovom filtrovaní by si každá nová vzorka signálu vyžadovala prepočet váh všetkých filtrov. V súčasnosti sú vo veľkej miere využívané adaptívne filtre, v ktorých je vch nové informácie slúži na priebežnú korekciu vopred vykonaného odhadu signálu (sledovanie cieľa v radare, automatické riadiace systémy v riadení atď.). Obzvlášť zaujímavé sú adaptívne filtre rekurzívneho typu, známe ako Kalmanov filter.

Tieto filtre sú široko používané v regulačných slučkách v automatických regulačných a riadiacich systémoch. Odtiaľ pochádzali, o čom svedčí aj taká špecifická terminológia používaná pri opise ich práce ako štátneho priestoru.

Jednou z hlavných úloh, ktoré je potrebné vyriešiť v praxi neurónových výpočtov, je získanie rýchlych a spoľahlivých algoritmov učenia neurónových sietí. V tomto ohľade môže byť užitočné použiť algoritmus učenia lineárnych filtrov v spätnoväzbovej slučke. Keďže algoritmy učenia majú iteratívny charakter, takýto filter musí byť sekvenčný rekurzívny odhad.

Problém odhadu parametrov

Jedným z problémov teórie štatistických riešení, ktorý má veľký praktický význam, je problém odhadu stavových vektorov a parametrov systémov, ktorý je formulovaný nasledovne. Predpokladajme, že je potrebné odhadnúť hodnotu parametra vektora $X$, ktorý je pre priame meranie nedostupný. Namiesto toho sa meria iný parameter $Z$ v závislosti od $X$. Úlohou odhadu je odpovedať na otázku: čo možno povedať o $X$ vzhľadom na $Z$. Vo všeobecnom prípade postup optimálneho odhadu vektora $X$ závisí od akceptovaného kvalitatívneho kritéria pre odhad.

Napríklad Bayesovský prístup k problému odhadu parametrov vyžaduje úplnú a priori informáciu o pravdepodobnostných vlastnostiach odhadovaného parametra, čo je často nemožné. V týchto prípadoch sa uchyľuje k metóde najmenších štvorcov (LSM), ktorá vyžaduje oveľa menej a priori informácií.

Uvažujme o aplikácii najmenších štvorcov pre prípad, keď je vektor pozorovania $Z$ spojený s vektorom odhadu parametra $X$ lineárnym modelom a v pozorovaní je šum $V$, ktorý nekoreluje s odhadovaný parameter:

$Z = HX + V$, (1)

kde $H$ je transformačná matica opisujúca vzťah medzi pozorovanými hodnotami a odhadovanými parametrami.

Odhad $X$ minimalizujúci štvorcovú chybu je napísaný takto:

$X_(ots)=(H^TR_V^(-1)H)^(-1)H^TR_V^(-1)Z$, (2)

Nech je šum $V$ nekorelovaný, v takom prípade je matica $R_V$ len maticou identity a rovnica odhadu sa stáva jednoduchšou:

$X_(ots)=(H^TH)^(-1)H^TZ$, (3)

Záznam v matricovej forme výrazne šetrí papier, ale pre niekoho môže byť nezvyčajný. Toto všetko ilustruje nasledujúci príklad, prevzatý z monografie Yu.M. Korshunova „Matematické základy kybernetiky“.
Existuje nasledujúci elektrický obvod:

Pozorované hodnoty sú v tomto prípade hodnoty prístroja $A_1 ​​​​= 1 A, A_2 = 2 A, V = 20 B$.

Okrem toho je známy odpor $R = 5$ Ohm. Je potrebné čo najlepšie odhadnúť z hľadiska kritéria minimálnej strednej štvorcovej chyby hodnoty prúdov $I_1$ a $I_2$. Najdôležitejšou vecou je, že existuje určitý vzťah medzi pozorovanými hodnotami (údaje z prístroja) a odhadovanými parametrami. A tieto informácie prichádzajú zvonku.

V tomto prípade ide o Kirchhoffove zákony, v prípade filtrovania (o ktorom bude reč neskôr) - autoregresný model časovej rady, ktorý predpokladá, že aktuálna hodnota závisí od predchádzajúcich.

Takže znalosť Kirchhoffových zákonov, ktorá nie je v žiadnom prípade spojená s teóriou štatistických rozhodnutí, vám umožňuje vytvoriť spojenie medzi pozorovanými hodnotami a odhadovanými parametrami (tí, ktorí študovali elektrotechniku, môžu skontrolovať, zvyšok bude musieť vezmite ich za slovo):

$$z_1 = A_1 = I_1 + \xi_1 = 1 $$

$$z_2 = A_2 = I_1 + I_2 + \xi_2 = 2 $$

$$z_2 = V/R = I_1 + 2 * I_2 + \xi_3 = 4 $$

Toto je vo vektorovej forme:

$$\začiatok(vmatica) z_1\\ z_2\\ z_3 \end(vmatica) = \začiatok(vmatica) 1 & 0\\ 1 & 1\\ 1 & 2 \end(vmatica) \začiatok(vmatica) I_1\ \ I_2 \end(vmatrix) + \begin(vmatrix) \xi_1\\ \xi_2\\ \xi_3 \end(vmatrix)$$

Alebo $Z = HX + V$, kde

$$Z= \začiatok(vmatica) z_1\\ z_2\\ z_3 \end(vmatica) = \begin(vmatica) 1\\ 2\\ 4 \end(vmatica) ; H= \začiatok(vmatica) 1 & 0\\ 1 & 1\\ 1 & 2 \end(vmatica) ; X= \začiatok(vmatica) I_1\\ I_2 \end(vmatica) ; V= \begin(vmatrix) \xi_1\\ \xi_2\\ \xi_3 \end(vmatrix)$$

Ak vezmeme do úvahy hodnoty šumu ako navzájom nekorelované, zistíme odhad I 1 a I 2 metódou najmenších štvorcov v súlade so vzorcom 3:

$H^TH= \začiatok(vmatica) 1 & 1& 1\\ 0 & 1& 2 \end(vmatica) \začiatok(vmatica) 1 & 0\\ 1 & 1\\ 1 & 2 \end(vmatica) = \ begin(vmatrix) 3 & 3\\ 3 & 5 \end(vmatrix) ; (H^TH)^(-1)= \frac(1)(6) \begin(vmatica) 5 & -3\\ -3 & 3 \end(vmatica) $;

$H^TZ= \začiatok(vmatica) 1 & 1& 1\\ 0 & 1& 2 \koniec(vmatica) \začiatok(vmatica) 1 \\ 2\\ 4 \end(vmatica) = \začiatok(vmatica) 7\ \ 10 \end(vmatica) ; X(vmatrix)= \frac(1)(6) \begin(vmatrix) 5 & -3\\ -3 & 3 \end(vmatrix) \begin(vmatrix) 7\\ 10 \end(vmatrix) = \frac (1)(6) \begin(vmatrix) 5\\ 9 \end(vmatrix)$;

Takže $ I_1 = 5/6 = 0,833 A$; $ I_2 = 9/6 = 1,5 A$.

Úloha filtrovania

Na rozdiel od problému odhadovania parametrov, ktoré majú pevné hodnoty, v probléme filtrácie je potrebné vyhodnocovať procesy, teda nájsť aktuálne odhady časovo premenného signálu skresleného šumom, a teda nedostupného pre priame meranie. Vo všeobecnom prípade typ filtračných algoritmov závisí od štatistických vlastností signálu a šumu.

Budeme predpokladať, že užitočný signál je pomaly sa meniacou funkciou času a šum je nekorelovaný šum. Použijeme metódu najmenších štvorcov, opäť kvôli nedostatku apriórnych informácií o pravdepodobnostných charakteristikách signálu a šumu.

Najprv získame odhad aktuálnej hodnoty $x_n$ pomocou posledných $k$ hodnôt časového radu $z_n, z_(n-1),z_(n-2)\dots z_(n-( k-1))$. Pozorovací model je rovnaký ako v probléme odhadu parametrov:

Je jasné, že $Z$ je stĺpcový vektor pozostávajúci z pozorovaných hodnôt časového radu $z_n, z_(n-1),z_(n-2)\dots z_(n-(k-1)) $, $V $ – vektor stĺpca šumu $\xi _n, \xi _(n-1),\xi_(n-2)\bodky \xi_(n-(k-1))$, skresľujúci skutočný signál. A čo znamenajú symboly $H$ a $X$? O akom stĺpcovom vektore $X$, napríklad, môžeme hovoriť, ak všetko, čo je potrebné, je poskytnúť odhad aktuálnej hodnoty časového radu? A čo znamená transformačná matica $H$, nie je vôbec jasné.

Všetky tieto otázky môžu byť zodpovedané iba vtedy, ak sa vezme do úvahy koncept modelu generovania signálu. To znamená, že je potrebný nejaký model pôvodného signálu. Je to pochopiteľné, pri absencii apriórnych informácií o pravdepodobnostných charakteristikách signálu a šumu zostáva len predpokladať. Môžete to nazvať veštením na kávovej usadenine, no odborníci uprednostňujú inú terminológiu. V ich sušiči vlasov sa tomu hovorí parametrický model.

V tomto prípade sa odhadujú parametre tohto konkrétneho modelu. Pri výbere vhodného modelu generovania signálu nezabúdajte, že akákoľvek analytická funkcia môže byť rozšírená v Taylorovom rade. Pozoruhodnou vlastnosťou Taylorovho radu je, že tvar funkcie v akejkoľvek konečnej vzdialenosti $t$ od nejakého bodu $x=a$ je jednoznačne určený správaním sa funkcie v nekonečne malom okolí bodu $x=a $ (hovoríme o jeho derivátoch prvého a vyššieho rádu).

Existencia Taylorovho radu teda znamená, že analytická funkcia má vnútornú štruktúru s veľmi silným prepojením. Ak sa napríklad obmedzíme na troch členov série Taylor, potom bude model generovania signálu vyzerať takto:

$x_(n-i) = F_(-i)x_n$, (4)

$$X_n= \begin(vmatrix) x_n\\ x"_n\\ x""_n \end(vmatrix) ; F_(-i)= \begin(vmatrix) 1 & -i & i^2/2\\ 0 & 1 & -i\\ 0 & 0 & 1 \end(vmatica) $$

To znamená, že vzorec 4 s daným poradím polynómu (v príklade je rovný 2) vytvára spojenie medzi $n$-tou hodnotou signálu v časovej sekvencii a $(n-i)$-tou . Odhadovaný stavový vektor teda v tomto prípade zahŕňa okrem samotnej odhadovanej hodnoty aj prvú a druhú deriváciu signálu.

V teórii automatického riadenia by sa takýto filter nazýval astatický filter druhého rádu. Transformačná matica $H$ pre tento prípad (odhad je založený na súčasných a $k-1$ predchádzajúcich vzorkách) vyzerá takto:

$$H= \begin(vmatrix) 1 & -k & k^2/2\\ - & - & -\\ 1 & -2 & 2\\ 1 & -1 & 0,5\\ 1 & 0 & 0 \ end(vmatrix)$$

Všetky tieto čísla sú získané z Taylorovho radu za predpokladu, že časový interval medzi susednými pozorovanými hodnotami je konštantný a rovný 1.

Problém filtrovania sa teda podľa našich predpokladov zredukoval na problém odhadovania parametrov; v tomto prípade sa odhadujú parametre nami prijatého modelu generovania signálu. A vyhodnotenie hodnôt stavového vektora $X$ sa vykonáva podľa rovnakého vzorca 3:

$$X_(ots)=(H^TH)^(-1)H^TZ$$

V skutočnosti sme implementovali proces parametrického odhadu založený na autoregresnom modeli procesu generovania signálu.

Vzorec 3 sa softvérovo jednoducho implementuje, preto je potrebné vyplniť maticu $H$ a vektorový stĺpec pozorovaní $Z$. Takéto filtre sú tzv konečné pamäťové filtre, pretože na získanie aktuálneho odhadu $X_(not)$ používajú posledných $k$ pozorovaní. Pri každom novom kroku pozorovania sa k aktuálnemu súboru pozorovaní pridá nový súbor pozorovaní a starý sa zahodí. Tento proces hodnotenia sa nazýva posuvné okno.

Rastúce pamäťové filtre

Filtre s konečnou pamäťou majú hlavnú nevýhodu v tom, že po každom novom pozorovaní je potrebné znova prepočítať kompletný prepočet všetkých údajov uložených v pamäti. Okrem toho, výpočet odhadov možno spustiť až po nazhromaždení výsledkov prvých $k$ pozorovaní. To znamená, že tieto filtre majú dlhé trvanie prechodného procesu.

Na odstránenie tohto nedostatku je potrebné prejsť od filtra s trvalou pamäťou na filter s rastúca pamäť. V takomto filtri sa počet pozorovaných hodnôt, ktoré sa majú vyhodnotiť, musí zhodovať s číslom n aktuálneho pozorovania. To umožňuje získať odhady začínajúce od počtu pozorovaní, ktorý sa rovná počtu zložiek odhadovaného vektora $X$. A to je určené poradím prevzatého modelu, teda koľko pojmov z Taylorovho radu je v modeli použitých.

Súčasne, keď sa n zvyšuje, zlepšujú sa vyhladzovacie vlastnosti filtra, to znamená, že sa zvyšuje presnosť odhadov. Priama implementácia tohto prístupu je však spojená so zvýšením výpočtových nákladov. Preto sú rastúce pamäťové filtre implementované ako opakujúci.

Ide o to, že v čase n už máme odhad $X_((n-1)ots)$, ktorý obsahuje informácie o všetkých doterajších pozorovaniach $z_n, z_(n-1), z_(n-2) \dots z_ (n-(k-1))$. Odhad $X_(not)$ sa získa nasledujúcim pozorovaním $z_n$ pomocou informácií uložených v odhade $X_((n-1))(\mbox (ot))$. Tento postup sa nazýva rekurentné filtrovanie a pozostáva z nasledujúcich krokov:

  • podľa odhadu $X_((n-1))(\mbox (ots))$ je odhad $X_n$ predpovedaný vzorcom 4 pre $i = 1$: $X_(\mbox (noca priori)) = F_1X_((n-1)ots)$. Toto je a priori odhad;
  • podľa výsledkov aktuálneho pozorovania $z_n$ sa tento apriórny odhad mení na pravdivý, teda a posteriori;
  • tento postup sa opakuje v každom kroku, počnúc $r+1$, kde $r$ je poradie filtra.

Konečný vzorec rekurzívneho filtrovania vyzerá takto:

$X_((n-1)ots) = X_(\mbox (nocapriori)) + (H^T_nH_n)^(-1)h^T_0(z_n - h_0 X_(\mbox (nocapriori)))$, (6 )

kde pre náš filter druhej objednávky:

Rastúci pamäťový filter, ktorý funguje podľa vzorca 6, je špeciálnym prípadom filtrovacieho algoritmu známeho ako Kalmanov filter.

Pri praktickej implementácii tohto vzorca treba pamätať na to, že apriórny odhad v ňom zahrnutý je určený vzorcom 4 a hodnota $h_0 X_(\mbox (nocapriori))$ je prvou zložkou vektora $X_( \mbox (nocapriori))$.

Rastúci pamäťový filter má jednu dôležitú vlastnosť. Pri pohľade na Formulu 6 je konečné skóre súčtom predpokladaného vektora skóre a korekčného člena. Táto korekcia je veľká pre malé $n$ a znižuje sa, keď sa $n$ zvyšuje, pričom má tendenciu k nule ako $n \rightarrow \infty$. To znamená, že ako n rastie, vyhladzovacie vlastnosti filtra rastú a model v ňom vložený začína dominovať. Ale skutočný signál môže zodpovedať modelu iba na oddelené sekcie, takže presnosť predpovede sa zhoršuje.

Aby sa tomu zabránilo, od niektorých $ n$ sa ukladá zákaz ďalšieho skrátenia opravného termínu. To je ekvivalentné zmene filtračného pásma, to znamená, že pre malé n je filter širokopásmový (menej inerciálny), pre veľké n sa stáva viac zotrvačným.

Porovnajte obrázok 1 a obrázok 2. Na prvom obrázku má filter veľkú pamäť, pričom dobre vyhladzuje, no kvôli úzkemu pásmu odhadovaná dráha zaostáva za skutočnou. Na druhom obrázku je pamäť filtra menšia, horšie sa vyhladzuje, no lepšie sleduje skutočnú trajektóriu.

Literatúra

  1. Yu.M.Korshunov "Matematické základy kybernetiky"
  2. A.V.Balakrishnan "Kalmanova teória filtrácie"
  3. V.N. Fomin "Opakujúci sa odhad a adaptívne filtrovanie"
  4. C.F.N. Cowen, P.M. Grant "Adaptívne filtre"

Tento filter sa používa v rôznych oblastiach – od rádiotechniky až po ekonomiku. Tu rozoberieme hlavnú myšlienku, význam, podstatu tohto filtra. Bude prezentovaný v čo najjednoduchšom jazyku.
Predpokladajme, že potrebujeme zmerať nejaké množstvá nejakého objektu. V rádiotechnike sa najčastejšie zaoberajú meraním napätí na výstupe určitého zariadenia (senzor, anténa a pod.). V príklade s elektrokardiografom (pozri) máme do činenia s meraniami biopotenciálov na ľudskom tele. Napríklad v ekonomike môžu byť meranou hodnotou výmenné kurzy. Každý deň je kurz iný, t.j. každý deň nám "jeho miery" dávajú inú hodnotu. A na zovšeobecnenie môžeme povedať, že väčšina ľudskej činnosti (ak nie všetka) spočíva v neustálom meraní-porovnávaní určitých veličín (pozri knihu).
Povedzme teda, že neustále niečo meriame. Predpokladajme tiež, že naše merania vždy prichádzajú s nejakou chybou - je to pochopiteľné, pretože neexistujú ideálne meracie prístroje a každý dáva výsledok s chybou. V najjednoduchšom prípade možno popísané zredukovať na nasledujúci výraz: z=x+y, kde x je skutočná hodnota, ktorú chceme merať a ktorá by bola nameraná, keby sme mali ideálne meracie zariadenie, y je chyba merania predstavil merací prístroj a z je hodnota, ktorú sme namerali. Úlohou Kalmanovho filtra je teda stále uhádnuť (určiť) z nami nameraného z, aká bola skutočná hodnota x, keď sme dostali naše z (v ktorom „sedí“ skutočná hodnota a chyba merania). Je potrebné odfiltrovať (odfiltrovať) skutočnú hodnotu x zo z - odstrániť skresľujúci šum y zo z. To znamená, že keď máme po ruke iba sumu, musíme uhádnuť, ktoré podmienky dali túto sumu.
Vo svetle vyššie uvedeného teraz všetko formulujeme nasledovne. Nech sú len dve náhodné čísla. Dostávame len ich súčet a z tohto súčtu sme povinní určiť, o aké pojmy ide. Napríklad sme dostali číslo 12 a hovoria: 12 je súčet čísel x a y, otázka je, čomu sa x a y rovnajú. Na zodpovedanie tejto otázky zostavíme rovnicu: x+y=12. Dostali sme jednu rovnicu s dvoma neznámymi, preto, prísne vzaté, nie je možné nájsť dve čísla, ktoré dali tento súčet. Ale o týchto číslach si predsa len môžeme niečo povedať. Môžeme povedať, že to boli buď čísla 1 a 11, alebo 2 a 10, alebo 3 a 9, alebo 4 a 8 atď., je to tiež buď 13 a -1, alebo 14 a -2, alebo 15 a - 3 atď. To znamená, že množinu môžeme určiť súčtom (v našom príklade 12) možnosti, ktoré spolu dávajú presne 12. Jednou z týchto možností je hľadaná dvojica, ktorá práve teraz dala 12. , čo je dané rovnicou x+y=12 (y=-x+12).

Obr.1

Dvojica, ktorú hľadáme, teda leží niekde na tejto priamke. Opakujem, je nemožné vybrať zo všetkých týchto možností tú dvojicu, ktorá skutočne existovala - ktorá dala číslo 12, bez toho, aby sme mali nejaké ďalšie stopy. však v situácii, pre ktorú bol vynájdený Kalmanov filter, existujú také náznaky. O náhodných číslach je niečo známe vopred. Známy je tam najmä takzvaný distribučný histogram pre každú dvojicu čísel. Zvyčajne sa získa po dostatočne dlhých pozorovaniach spádu týchto veľmi náhodných čísel. To znamená, že napríklad zo skúseností je známe, že v 5 % prípadov zvyčajne vypadne dvojica x=1, y=8 (túto dvojicu označíme takto: (1,8)), v 2 % prípadov pár x=2, y=3 ( 2,3), v 1 % prípadov pár (3,1), v 0,024 % prípadov pár (11,1) atď. Tento histogram je opäť nastavený pre všetky páryčísla, vrátane tých, ktoré sú sčítané do 12. Teda pre každú dvojicu, ktorej súčet je 12, môžeme povedať, že napríklad dvojica (1, 11) vypadne v 0,8 % prípadov, dvojica ( 2, 10) - v 1% prípadov, pár (3, 9) - v 1,5% prípadov atď. Z histogramu teda vieme určiť, v akom percente prípadov je súčet členov dvojice 12. Nech je napríklad v 30 % prípadov súčet 12. A vo zvyšných 70 % padnú zvyšné dvojice out - to sú (1,8), (2, 3), (3,1) atď. - tie, ktorých súčet tvoria iné čísla ako 12. Navyše nech napríklad dvojica (7,5) vypadne v 27 % prípadov, kým všetky ostatné dvojice, ktoré dávajú spolu 12, vypadnú v 0,024 % + 0,8 % + 1 % + 1,5 % +…= 3 % prípadov. Podľa histogramu sme teda zistili, že čísla dávajúce spolu 12 vypadnú v 30 % prípadov. Zároveň vieme, že ak vypadlo 12, tak najčastejšie (27 % z 30 %) je dôvodom pár (7,5). Teda ak 12 hodených, môžeme povedať, že v 90% (27% z 30% - alebo, čo je rovnaké, 27 krát z každých 30) je dôvodom hodu 12 pár (7,5). S vedomím, že pár (7.5) je najčastejšie dôvodom na získanie sumy rovnajúcej sa 12, je logické predpokladať, že s najväčšou pravdepodobnosťou teraz vypadol. Samozrejme, stále nie je pravda, že číslo 12 je v skutočnosti tvorené týmto konkrétnym párom, ale nabudúce, ak narazíme na 12 a opäť predpokladáme pár (7,5), tak niekde v 90% prípadov sme 100% správne. Ak však predpokladáme dvojicu (2, 10), budeme mať pravdu iba v 1 % z 30 % prípadov, čo sa rovná 3,33 % správnych tipov v porovnaní s 90 % pri uhádnutí dvojice (7,5). To je všetko - to je zmysel algoritmu Kalmanovho filtra. To znamená, že Kalmanov filter nezaručuje, že sa nepomýli pri určovaní súčtu, ale garantuje, že sa pomýli minimálne toľkokrát (pravdepodobnosť chyby bude minimálna), keďže používa štatistiku. - histogram vypadávania z dvojíc čísel. Treba tiež zdôrazniť, že takzvaná hustota distribúcie pravdepodobnosti (PDD) sa často používa v Kalmanovom filtračnom algoritme. Je však potrebné pochopiť, že význam je rovnaký ako význam histogramu. Histogram je navyše funkcia postavená na základe PDF a je jeho aproximáciou (pozri napríklad ).
V zásade môžeme tento histogram znázorniť ako funkciu dvoch premenných – teda ako akúsi plochu nad rovinou xy. Tam, kde je povrch vyšší, je vyššia aj pravdepodobnosť vypadnutia zodpovedajúceho páru. Obrázok 2 ukazuje takýto povrch.


obr.2

Ako vidíte, nad čiarou x + y = 12 (čo sú varianty párov dávajúce spolu 12) sú povrchové body v rôznych výškach a najvyššia výška je vo variante so súradnicami (7,5). A keď narazíme na sumu rovnajúcu sa 12, v 90% prípadov je príčinou vzniku tejto sumy dvojica (7,5). Tie. práve tento pár, ktorého súčet je 12, má najväčšiu pravdepodobnosť výskytu, za predpokladu, že súčet je 12.
Preto je tu opísaná myšlienka Kalmanovho filtra. Práve na ňom sú postavené najrôznejšie jeho úpravy - jednokrokové, viackrokové rekurentné atď. Pre hlbšie štúdium Kalmanovho filtra odporúčam knihu: Van Tries G. Theory of detection, estimation and modulation.

p.s. Pre tých, ktorí majú záujem o vysvetlenie pojmov matematiky, čo sa nazýva „na prstoch“, môžeme odporučiť túto knihu a najmä kapitoly z jej časti „Matematika“ (samotnú knihu alebo jednotlivé kapitoly si môžete zakúpiť na to).

1

Bola vykonaná štúdia o použití Kalmanovho filtra v modernom vývoji komplexu navigačné systémy. Je uvedený a analyzovaný príklad konštrukcie matematický model, ktorý využíva rozšírený Kalmanov filter na zlepšenie presnosti určovania súradníc bezpilotných prostriedkov. Zvažuje sa čiastočný filter. Vyrobené krátka recenzia vedeckých prác použitie tohto filtra na zlepšenie spoľahlivosti a odolnosti voči chybám navigačných systémov. Tento článok nám umožňuje dospieť k záveru, že použitie Kalmanovho filtra v polohovacích systémoch UAV sa praktizuje v mnohých moderných vývojoch. Existuje obrovské množstvo variácií a aspektov tohto použitia, ktoré tiež poskytujú hmatateľné výsledky pri zlepšovaní presnosti, najmä v prípade zlyhania štandardných satelitných navigačných systémov. Toto je hlavný faktor vplyvu tejto technológie na rôzne vedecké oblasti súvisiace s vývojom presných navigačných systémov odolných voči poruchám pre rôzne lietadlá.

Kalmanov filter

navigácia

bezpilotné lietadlo (UAV)

1. Makarenko G.K., Aleshechkin A.M. Skúmanie algoritmu filtrovania pri určovaní súradníc objektu zo signálov satelitných rádiových navigačných systémov Doklady TUSUR. - 2012. - Číslo 2 (26). - S. 15-18.

2. Bar-Shalom Y., Li X. R., Kirubarajan T. Odhad s aplikáciami

na sledovanie a navigáciu // Teória Algoritmy a softvér. - 2001. - Zv. 3. - S. 10-20.

3. Bassem I.S. Navigácia bezpilotných lietadiel (UAV) založená na videní (VBN) // UNIVERZITA V CALGARY. - 2012. - Zv. 1. - S. 100-127.

4. Conte G., Doherty P. Integrovaný navigačný systém UAV založený na porovnávaní leteckých snímok // Aerospace Conference. - 2008. -Zv. 1. - S. 3142-3151.

5. Guoqiang M., Drake S., Anderson B. Návrh rozšíreného kalmanovho filtra pre uav lokalizáciu // In Information, Decision and Control. - 2007. - Zv. 7. – S. 224–229.

6. Optimalizácia trajektórie Ponda S.S pre lokalizáciu cieľa pomocou malých bezpilotných vzdušných prostriedkov // Massachusetts Institute of Technology. - 2008. - Zv. 1. - S. 64-70.

7. Wang J., Garrat M., Lambert A. Integrácia gps/ins/vision senzorov na navigáciu bezpilotných vzdušných prostriedkov // IAPRS&SIS. - 2008. - Zv. 37. – S. 963-969.

Jednou z naliehavých úloh modernej navigácie bezpilotných lietadiel (UAV) je úloha zvýšiť presnosť určovania súradníc. Tento problém je vyriešený použitím rôznych možností integrácie navigačných systémov. Jedným z moderných variantov integrácie je kombinácia navigácie gps/glonass s rozšíreným Kalmanovým filtrom (Extended Kalmanfilter), rekurzívne odhadujúca presnosť pomocou neúplných a zašumených meraní. V súčasnosti existujú a vyvíjajú sa rôzne variácie rozšíreného Kalmanovho filtra, vrátane rôznorodého množstva stavových premenných. V tejto práci ukážeme, aké efektívne môže byť jeho využitie v modernom vývoji. Uvažujme o jednej z charakteristických reprezentácií takéhoto filtra.

Zostavenie matematického modelu

AT tento príklad budeme hovoriť len o pohybe UAV v horizontálnej rovine, inak budeme uvažovať o takzvanom 2d lokalizačnom probléme. V našom prípade je to odôvodnené skutočnosťou, že pre mnohé prakticky sa vyskytujúce situácie môže UAV zostať približne v rovnakej výške. Tento predpoklad je široko používaný na zjednodušenie modelovania dynamiky lietadla. Dynamický model UAV je daný nasledujúcim systémom rovníc:

kde () - súradnice UAV v horizontálnej rovine ako funkcia času, smeru UAV, uhlovej rýchlosti UAV av pozemnej rýchlosti UAV fungujú a budú sa považovať za konštantné. Sú navzájom nezávislé, so známymi kovarianciami a , rovné a , v tomto poradí a používajú sa na simuláciu zmien zrýchlenia UAV spôsobených vetrom, pilotnými manévrami atď. Hodnoty a sú odvodené od maximálnej uhlovej rýchlosti UAV a experimentálnych hodnôt zmien lineárnej rýchlosti UAV, - symbol Kronecker.

Tento systém rovníc bude približný kvôli nelinearite v modeli a kvôli prítomnosti šumu. Najjednoduchšou aproximáciou je v tomto prípade Eulerova aproximácia. Diskrétny model dynamického pohybového systému UAV je uvedený nižšie.

diskrétny stavový vektor Kalmanovho filtra, ktorý umožňuje aproximáciu hodnoty spojitého stavového vektora. ∆ - časový interval medzi meraniami k a k+1. () a () - sekvencie hodnôt bieleho Gaussovho šumu s nulovým priemerom. Matica kovariancie pre prvú sekvenciu:

Podobne pre druhú sekvenciu:

Po vykonaní príslušných substitúcií v rovniciach systému (2) dostaneme:

Sekvencie a sú navzájom nezávislé. Sú to tiež sekvencie bieleho gaussovského šumu s nulovým priemerom s kovariančnými maticami, resp. Výhodou tohto tvaru je, že ukazuje zmenu diskrétneho šumu medzi každým meraním. V dôsledku toho získame nasledujúci diskrétny dynamický model:

(3)

Rovnica pre:

= + , (4)

kde x a y sú súradnice UAV v časovom bode k a je to Gaussova postupnosť náhodných parametrov s nulovou strednou hodnotou, ktorá sa používa na nastavenie chyby. Predpokladá sa, že táto postupnosť je nezávislá od () a ().

Výrazy (3) a (4) slúžia ako základ pre odhad polohy UAV, kde k-té súradnice získané pomocou rozšíreného Kalmanovho filtra. Modelovanie zlyhania navigačných systémov vo vzťahu k tento typ filter vykazuje značnú účinnosť.

Pre väčšiu názornosť uvádzame malý jednoduchý príklad. Nechajte niektoré UAV lietať rovnomerne, s určitým konštantným zrýchlením a.

Kde x je súradnica UAV v čase t a δ je nejaká náhodná premenná.

Predpokladajme, že máme gps senzor, ktorý prijíma údaje o polohe lietadla. Dovoľte nám predstaviť výsledok modelovania tohto procesu v softvérovom balíku MATLAB.

Ryža. 1. Filtrovanie údajov snímača pomocou Kalmanovho filtra

Na obr. 1 ukazuje, aké efektívne môže byť použitie Kalmanovho filtrovania.

V reálnej situácii však majú signály často nelineárnu dynamiku a abnormálny šum. Práve v takýchto prípadoch sa používa rozšírený Kalmanov filter. V prípade, že rozptyly šumu nie sú príliš veľké (t. j. postačí lineárna aproximácia), aplikácia rozšíreného Kalmanovho filtra poskytuje riešenie problému s vysokou presnosťou. Ak však šum nie je Gaussovský, rozšírený Kalmanov filter nemožno použiť. V tomto prípade sa zvyčajne používa čiastočný filter, ktorý využíva numerické metódy na prevzatie integrálov založených na metódach Monte Carlo s Markovovými reťazcami.

Filter častíc

Predstavme si jeden z algoritmov, ktoré rozvíjajú myšlienky rozšíreného Kalmanovho filtra – čiastočný filter. Čiastočné filtrovanie je suboptimálna metóda filtrovania, ktorá funguje pri kombinovaní Monte Carlo na množine častíc, ktoré predstavujú rozdelenie pravdepodobnosti procesu. Tu je častica prvkom prevzatým z predchádzajúcej distribúcie odhadovaného parametra. Hlavnou myšlienkou čiastočného filtra je, že na vyjadrenie odhadu distribúcie možno použiť veľké množstvo častíc. Čím väčší je počet použitých častíc, tým presnejšie bude súbor častíc reprezentovať predchádzajúce rozdelenie. Časticový filter sa inicializuje vložením N častíc z predchádzajúcej distribúcie parametrov, ktoré chceme odhadnúť. Filtračný algoritmus predpokladá, že tieto častice prechádzajú špeciálny systém a potom váženie pomocou informácií získaných meraním týchto častíc. Výsledné častice a ich pridružené hmotnosti predstavujú zadnú distribúciu hodnotiaceho procesu. Cyklus sa opakuje pre každé nové meranie a hmotnosti častíc sa aktualizujú, aby reprezentovali následné rozdelenie. Jedným z hlavných problémov tradičného prístupu k filtrovaniu častíc je, že výsledkom je zvyčajne niekoľko častíc, ktoré sú veľmi ťažké, na rozdiel od väčšiny ostatných, ktoré majú veľmi nízku hmotnosť. To vedie k nestabilite filtrovania. Tento problém možno vyriešiť zavedením vzorkovacej frekvencie, kde sa odoberie N nových častíc z distribúcie tvorenej starými časticami. Výsledok hodnotenia sa získa získaním vzorky priemernej hodnoty množstva častíc. Ak máme viacero nezávislých vzoriek, potom priemer vzorky bude presným odhadom priemeru, ktorý definuje konečný rozptyl.

Aj keď časticový filter nie je optimálny, potom keďže počet častíc má tendenciu k nekonečnu, účinnosť algoritmu sa blíži k Bayesovskému pravidlu odhadu. Preto je žiaduce mať čo najviac častíc na získanie najlepší výsledok. Bohužiaľ to vedie k silnému nárastu zložitosti výpočtov a následne núti hľadať kompromis medzi presnosťou a rýchlosťou výpočtov. Počet častíc by sa teda mal zvoliť na základe požiadaviek na problém hodnotenia presnosti. Ďalším dôležitým faktorom pre fungovanie časticového filtra je obmedzenie vzorkovacej frekvencie. Ako už bolo spomenuté, vzorkovacia frekvencia je dôležitým parametrom filtrovania častíc a bez nej sa algoritmus nakoniec stane degenerovaným. Myšlienka je taká, že ak sú hmotnosti rozložené príliš nerovnomerne a prah vzorkovania sa čoskoro dosiahne, častice s nízkou hmotnosťou sa vyradia a zvyšná množina vytvorí novú hustotu pravdepodobnosti, pre ktorú je možné odobrať nové vzorky. Výber prahu vzorkovacej frekvencie je pomerne náročná úloha, pretože tiež vysoká frekvencia spôsobuje, že filter je príliš citlivý na šum a príliš nízky spôsobuje veľkú chybu. Ďalším dôležitým faktorom je hustota pravdepodobnosti.

Algoritmus filtrovania častíc vo všeobecnosti vykazuje dobrý výkon pri určovaní polohy pre stacionárne ciele a pre relatívne pomaly sa pohybujúce ciele s neznámou dynamikou zrýchlenia. Vo všeobecnosti je algoritmus filtrovania častíc stabilnejší ako rozšírený Kalmanov filter a menej náchylný na degeneráciu a vážne poruchy. V prípadoch nelineárneho, negaussovského rozdelenia tento algoritmus filtrovanie ukazuje veľmi dobrú presnosť umiestnenia cieľa, zatiaľ čo rozšírený Kalmanov algoritmus filtrovania sa za takýchto podmienok nedá použiť. Medzi nevýhody tohto prístupu patrí vyššia zložitosť v porovnaní s rozšíreným Kalmanovým filtrom, ako aj skutočnosť, že nie je vždy zrejmé, ako zvoliť správne parametre pre tento algoritmus.

Sľubný výskum v tejto oblasti

Použitie modelu Kalmanovho filtra podobného tomu, ktorý sme uviedli, je možné vidieť v , kde sa používa na zlepšenie výkonu integrovaného systému (model GPS + počítačového videnia na prispôsobenie sa geografickej základni) a poruchovú situáciu Simuluje sa aj satelitná navigácia. Pomocou Kalmanovho filtra sa výrazne zlepšili výsledky prevádzky systému v prípade poruchy (napr. chyba pri určovaní výšky sa znížila asi dvojnásobne a chyby pri určovaní súradníc pozdĺž rôznych osí sa znížili takmer 9-krát). Podobné použitie Kalmanovho filtra je uvedené aj v .

Zaujímavý problém z pohľadu súboru metód je riešený v . Používa tiež 5-stavový Kalmanov filter s určitými rozdielmi v zostavovaní modelu. Získaný výsledok prevyšuje výsledok nášho modelu vďaka použitiu dodatočných prostriedkov integrácie (používajú sa fotografie a termosnímky). Aplikácia Kalmanovho filtra v tomto prípade umožňuje znížiť chybu pri určovaní priestorových súradníc daného bodu na hodnotu 5,5 m.

Záver

Na záver poznamenávame, že použitie Kalmanovho filtra v polohovacích systémoch UAV sa praktizuje v mnohých moderných vývojoch. Existuje obrovské množstvo variácií a aspektov tohto použitia, až po súčasné použitie niekoľkých podobných filtrov s rôznymi stavovými faktormi. Jednou z najperspektívnejších oblastí pre vývoj Kalmanových filtrov je práca na vytvorení modifikovaného filtra, ktorého chyby budú reprezentované farebným šumom, čím sa stane ešte cennejším pre riešenie reálnych problémov. V odbore je tiež veľký záujem o čiastočný filter, pomocou ktorého je možné filtrovať negaussovský šum. Táto rôznorodosť a hmatateľné výsledky pri zlepšovaní presnosti, najmä v prípade zlyhania štandardných satelitných navigačných systémov, sú hlavnými faktormi ovplyvňujúcimi túto technológiu v rôznych vedeckých oblastiach súvisiacich s vývojom presných navigačných systémov odolných voči poruchám pre rôzne lietadlá.

Recenzenti:

Labunets V.G., doktor technických vied, profesor, profesor katedry teoretické základy Rádiotechnická Uralská federálna univerzita pomenovaná po prvom prezidentovi Ruska B. N. Jeľcin, Jekaterinburg;

Ivanov V.E., doktor technických vied, profesor, prednosta. Katedra technológie a komunikácie, Uralská federálna univerzita pomenovaná po prvom prezidentovi Ruska B. N. Jeľcin, Jekaterinburg.

Bibliografický odkaz

Gavrilov A.V. POUŽITIE FILTRA KALMAN NA RIEŠENIE PROBLÉMOV S RAFINOVANÍM UAV SÚRADNÍC // Súčasné problémy veda a vzdelanie. - 2015. - č. 1-1 .;
URL: http://science-education.ru/ru/article/view?id=19453 (Prístup: 02/01/2020). Dávame do pozornosti časopisy vydávané vydavateľstvom "Academy of Natural History"

Random Forest je jeden z mojich obľúbených algoritmov na dolovanie údajov. Po prvé, je neuveriteľne všestranný, dá sa použiť na riešenie regresných aj klasifikačných problémov. Vyhľadajte anomálie a vyberte prediktory. Po druhé, toto je algoritmus, ktorý je naozaj ťažké nesprávne aplikovať. Jednoducho preto, že na rozdiel od iných algoritmov má málo prispôsobiteľných parametrov. A predsa je vo svojej podstate prekvapivo jednoduchý. Zároveň je pozoruhodne presný.

Aká je myšlienka takého úžasného algoritmu? Myšlienka je jednoduchá: povedzme, že máme nejaký veľmi slabý algoritmus, povedzme . Ak vytvoríme veľa rôznych modelov pomocou tohto slabého algoritmu a spriemerujeme výsledok ich predpovedí, potom bude konečný výsledok oveľa lepší. Ide o takzvané súborové učenie v akcii. Algoritmus náhodného lesa sa preto nazýva „náhodný les“, pre prijaté údaje vytvára mnoho rozhodovacích stromov a potom spriemeruje výsledok ich predpovedí. Dôležitým bodom je tu prvok náhodnosti pri vytváraní každého stromu. Je predsa jasné, že ak vytvoríme veľa rovnakých stromov, tak výsledok ich spriemerovania bude mať presnosť jedného stromu.

ako pracuje? Predpokladajme, že máme nejaké vstupné údaje. Každý stĺpec zodpovedá nejakému parametru, každý riadok zodpovedá nejakému dátovému prvku.

Môžeme si náhodne vybrať množstvo stĺpcov a riadkov z celého súboru údajov a zostaviť z nich rozhodovací strom.


štvrtok 10. mája 2012

štvrtok 12. januára 2012


To je vlastne všetko. 17-hodinový let sa skončil, Rusko zostalo v zámorí. A cez okno útulného 2-izbového bytu sa na nás pozerá San Francisco, slávne Silicon Valley, Kalifornia, USA. Áno, to je práve dôvod, prečo v poslednej dobe veľa nepíšem. Presťahovali sme sa.

Všetko to začalo v apríli 2011, keď som mal telefonický rozhovor so Zyngou. Potom mi to všetko pripadalo ako nejaká hra, ktorá nemá nič spoločné s realitou a ani som si nevedel predstaviť, k čomu to povedie. V júni 2011 Zynga pricestovala do Moskvy a urobila sériu pohovorov, zvažovalo sa asi 60 kandidátov, ktorí prešli telefonickým pohovorom a z nich sa vybralo asi 15 ľudí (neviem presný počet, niekto si to neskôr rozmyslel, niekto okamžite odmietol). Rozhovor sa ukázal byť prekvapivo jednoduchý. Žiadne programovacie úlohy pre vás, žiadne zložité otázky o tvare poklopov, testovala sa hlavne schopnosť chatovať. A vedomosti sa podľa mňa hodnotili len povrchne.

A potom začala hádka. Najprv sme čakali na výsledky, potom ponuku, potom schválenie LCA, potom schválenie žiadosti o vízum, potom dokumenty z USA, potom linku na veľvyslanectve, potom dodatočnú kontrolu, potom víza. Miestami sa mi zdalo, že som pripravený všetko zahodiť a skórovať. Občas som pochyboval, či túto Ameriku potrebujeme, pretože ani Rusko nie je zlé. Celý proces trval asi pol roka, nakoniec sme v polovici decembra dostali víza a začali sa pripravovať na odlet.

Pondelok bol môj prvý deň v novej práci. Kancelária má všetky podmienky nielen pracovať, ale aj bývať. Raňajky, obedy a večere od vlastných kuchárov, kopa pestrého jedla napchatého vo všetkých kútoch, posilňovňa, masáže a dokonca aj kaderníctvo. To všetko je pre zamestnancov úplne zadarmo. Mnohí sa dostávajú do práce na bicykli a niekoľko miestností je vybavených na uskladnenie vozidiel. Vo všeobecnosti som v Rusku nikdy nič také nevidel. Všetko má však svoju cenu, hneď nás upozornili, že budeme musieť veľa pracovať. Čo je podľa ich štandardov „veľa“, mi nie je veľmi jasné.

Dúfam však, že aj napriek množstvu práce sa mi v dohľadnej dobe podarí obnoviť blogovanie a možno porozprávať niečo o americkom živote a práci programátora v Amerike. Počkaj a uvidíš. Zatiaľ vám všetkým prajem veselé Vianoce a šťastný nový rok a do skorého videnia!


Pre príklad použitia si vytlačte dividendový výnos Ruské spoločnosti. Ako základnú cenu berieme záverečnú cenu akcie v deň uzavretia registra. Z nejakého dôvodu tieto informácie nie sú dostupné na webovej stránke Trojky a sú oveľa zaujímavejšie ako absolútne hodnoty dividend.
Pozor! Spustenie kódu trvá dlho, pretože pre každú akciu musíte odoslať požiadavku na servery finam a získať jej hodnotu.

výsledok<- NULL for(i in (1:length(divs[,1]))){ d <- divs if (d$Divs>0)( skúste(( úvodzovky<- getSymbols(d$Symbol, src="Finam", from="2010-01-01", auto.assign=FALSE) if (!is.nan(quotes)){ price <- Cl(quotes) if (length(price)>0) (dd<- d$Divs result <- rbind(result, data.frame(d$Symbol, d$Name, d$RegistryDate, as.numeric(dd)/as.numeric(price), stringsAsFactors=FALSE)) } } }, silent=TRUE) } } colnames(result) <- c("Symbol", "Name", "RegistryDate", "Divs") result


Podobne môžete vytvárať štatistiky za minulé roky.

Na internete, vrátane Habrého, nájdete množstvo informácií o Kalmanovom filtri. Je však ťažké nájsť ľahko stráviteľné odvodenie samotných vzorcov. Bez záveru je celá táto veda vnímaná ako druh šamanizmu, vzorce vyzerajú ako anonymný súbor symbolov, a čo je najdôležitejšie, mnohé jednoduché tvrdenia, ktoré ležia na povrchu teórie, sú nepochopiteľné. Účelom tohto článku bude hovoriť o tomto filtri v najprístupnejšom jazyku.
Kalmanov filter je výkonný nástroj na filtrovanie údajov. Jeho hlavným princípom je, že pri filtrovaní sa využívajú informácie o fyzike samotného javu. Povedzme, že ak filtrujete údaje z tachometra auta, potom vám zotrvačnosť auta dáva právo vnímať príliš rýchle skoky rýchlosti ako chybu merania. Kalmanov filter je zaujímavý, pretože je v istom zmysle najlepším filtrom. Nižšie si podrobnejšie rozoberieme, čo presne znamenajú slová „najlepší“. Na konci článku ukážem, že v mnohých prípadoch sa dajú vzorce zjednodušiť do takej miery, že z nich nezostane takmer nič.

Likebez

Pred zoznámením sa s Kalmanovým filtrom navrhujem pripomenúť niekoľko jednoduchých definícií a faktov z teórie pravdepodobnosti.

Náhodná hodnota

Keď hovoria, že je daná náhodná premenná, myslia tým, že táto premenná môže nadobúdať náhodné hodnoty. Nadobúda rôzne hodnoty s rôznymi pravdepodobnosťami. Keď hodíte, povedzme, kockou, vypadne diskrétny súbor hodnôt: . Pokiaľ ide napríklad o rýchlosť blúdiacej častice, potom sa, samozrejme, musíme zaoberať súvislým súborom hodnôt. „Vynechané“ hodnoty náhodnej premennej budú označené ako , ale niekedy použijeme rovnaké písmeno, ktoré označuje náhodnú premennú: .
V prípade spojitej množiny hodnôt je náhodná premenná charakterizovaná hustotou pravdepodobnosti , ktorá nám diktuje, že pravdepodobnosť, že náhodná premenná „vypadne“ v malom okolí bodu dĺžky, sa rovná . Ako vidíme z obrázku, táto pravdepodobnosť sa rovná ploche tieňovaného obdĺžnika pod grafom:

Pomerne často sa v živote náhodne premenné rozdeľujú podľa Gaussa, kedy je hustota pravdepodobnosti .

Vidíme, že funkcia má tvar zvončeka so stredom v bode a s charakteristickou šírkou rádovo .
Keďže hovoríme o Gaussovom rozložení, bolo by hriechom nespomenúť, odkiaľ pochádza. Rovnako ako čísla sú pevne zavedené v matematike a objavujú sa na najneočakávanejších miestach, tak aj Gaussovo rozdelenie zapustilo hlboké korene v teórii pravdepodobnosti. Jedno pozoruhodné tvrdenie, ktoré čiastočne vysvetľuje Gaussovu všadeprítomnosť, je nasledovné:
Nech existuje náhodná premenná s ľubovoľným rozložením (v skutočnosti existujú určité obmedzenia pre túto svojvoľnosť, ale nie sú vôbec rigidné). Vykonajte experimenty a vypočítajme súčet „vypadnutých“ hodnôt náhodnej premennej. Urobme veľa týchto experimentov. Je jasné, že zakaždým dostaneme inú hodnotu sumy. Inými slovami, tento súčet je sám o sebe náhodná premenná s vlastným istým distribučným zákonom. Ukazuje sa, že pre dostatočne veľké má distribučný zákon tohto súčtu tendenciu ku Gaussovmu rozdeleniu (mimochodom, charakteristická šírka „zvončeka“ rastie ako ). Prečítajte si viac na wikipédii: centrálna limitná veta. V živote sa veľmi často vyskytujú veličiny, ktoré sú tvorené veľkým počtom rovnomerne rozdelených nezávislých náhodných premenných, a preto sú rozdelené podľa Gaussa.

Priemerná

Priemerná hodnota náhodnej premennej je to, čo dostaneme v limite, ak vykonáme veľa experimentov a vypočítame aritmetický priemer zo znížených hodnôt. Priemerná hodnota sa označuje rôznymi spôsobmi: matematici radi označujú (očakávania) a zahraniční matematici (očakávania). Fyzika to isté cez alebo. Cudzím spôsobom označíme:.
Napríklad pre Gaussovo rozdelenie je priemer .

Disperzia

V prípade Gaussovho rozdelenia môžeme jasne vidieť, že náhodná premenná uprednostňuje vypadnutie v nejakom okolí svojej strednej hodnoty. Ako je možné vidieť z grafu, charakteristický rozptyl hodnôt objednávky je . Ako môžeme odhadnúť toto rozšírenie hodnôt pre ľubovoľnú náhodnú premennú, ak poznáme jej rozdelenie. Môžete nakresliť graf jeho hustoty pravdepodobnosti a odhadnúť charakteristickú šírku okom. Ale radšej ideme algebraickou cestou. Priemernú dĺžku odchýlky (modulu) zistíte z priemernej hodnoty: . Táto hodnota bude dobrým odhadom charakteristického rozpätia hodnôt. Vy a ja však veľmi dobre vieme, že používanie modulov vo vzorcoch je bolesť hlavy, takže tento vzorec sa na odhad charakteristického rozptylu používa len zriedka.
Jednoduchší spôsob (jednoduchý z hľadiska výpočtov) je nájsť . Táto veličina sa nazýva rozptyl a často sa označuje ako . Koreň rozptylu sa nazýva štandardná odchýlka. Smerodajná odchýlka je dobrý odhad šírenia náhodnej premennej.
Napríklad pre Gaussovo rozdelenie môžeme predpokladať, že vyššie definovaný rozptyl je presne rovný , čo znamená, že štandardná odchýlka je rovná , čo veľmi dobre súhlasí s našou geometrickou intuíciou.
V skutočnosti sa tu skrýva malý podvod. Faktom je, že v definícii Gaussovho rozdelenia je pod exponentom výraz . Táto dvojka v menovateli je práve preto, aby sa smerodajná odchýlka rovnala koeficientu. To znamená, že samotný vzorec Gaussovho rozdelenia je napísaný vo forme špeciálne upravenej na skutočnosť, že budeme brať do úvahy jeho smerodajnú odchýlku.

Nezávislé náhodné premenné

Náhodné premenné môžu, ale nemusia byť závislé. Predstavte si, že hodíte ihlu na rovinu a zapíšete si súradnice oboch jej koncov. Tieto dve súradnice sú závislé, spája ich podmienka, že vzdialenosť medzi nimi sa vždy rovná dĺžke ihly, hoci ide o náhodné veličiny.
Náhodné premenné sú nezávislé, ak je výsledok prvej úplne nezávislý od výsledku druhej. Ak sú náhodné premenné a nezávislé, potom sa priemerná hodnota ich súčinu rovná súčinu ich priemerných hodnôt:

Dôkaz

Napríklad mať modré oči a skončiť školu so zlatou medailou sú nezávislé náhodné premenné. Ak modrookí, povedzme zlatí medailisti , potom modrookí medailisti Tento príklad nám hovorí, že ak náhodné premenné a sú dané ich hustotou pravdepodobnosti a , tak nezávislosť týchto veličín je vyjadrená v tom, že hustota pravdepodobnosti (prvá hodnota vypadla a druhá ) sa zistí podľa vzorca:

Z toho hneď vyplýva, že:

Ako vidíte, dôkaz sa vykonáva pre náhodné premenné, ktoré majú spojité spektrum hodnôt a sú dané hustotou pravdepodobnosti. V iných prípadoch je myšlienka dôkazu podobná.

Kalmanov filter

Formulácia problému

Označme hodnotou, ktorú budeme merať a následne filtrovať. Môže to byť súradnica, rýchlosť, zrýchlenie, vlhkosť, stupeň zápachu, teplota, tlak atď.
Začnime jednoduchým príkladom, ktorý nás privedie k formulácii všeobecného problému. Predstavte si, že máme rádiom riadené auto, ktoré môže ísť len dopredu a dozadu. So znalosťou hmotnosti auta, tvaru, povrchu vozovky atď. sme vypočítali, ako ovládací joystick ovplyvňuje rýchlosť pohybu.

Potom sa súradnice stroja zmenia podľa zákona:

V reálnom živote nemôžeme pri výpočtoch brať do úvahy malé poruchy pôsobiace na auto (vietor, hrbole, kamienky na ceste), takže skutočná rýchlosť auta sa bude líšiť od vypočítanej. Na pravú stranu zapísanej rovnice sa pridá náhodná premenná:

Na aute máme nainštalovaný GPS senzor, ktorý sa snaží zmerať skutočné súradnice auta a, samozrejme, nevie to zmerať presne, ale meria ich s chybou, ktorá je tiež náhodnou veličinou. Výsledkom je, že zo senzora dostaneme chybné údaje:

Problém je v tom, že ak poznáte nesprávne hodnoty snímača, nájdite dobrú aproximáciu skutočných súradníc stroja.
Pri formulácii všeobecného problému môže za súradnicu čokoľvek (teplota, vlhkosť ...) a termín zodpovedný za riadenie systému zvonku budeme označovať ako (v príklade so strojom). Rovnice pre hodnoty súradníc a snímačov budú vyzerať takto:

Poďme diskutovať podrobne o tom, čo vieme:

Je užitočné poznamenať, že úloha filtrovania nie je úlohou vyhladzovania. Naším cieľom nie je vyhladiť údaje zo snímača, ale získať čo najbližšiu hodnotu k skutočným súradniciam.

Kalmanov algoritmus

Budeme uvažovať indukciou. Predstavte si, že v -tom kroku sme už našli filtrovanú hodnotu zo snímača, ktorá dobre aproximuje skutočné súradnice systému. Nezabudnite, že poznáme rovnicu, ktorá riadi zmenu neznámej súradnice:

preto bez toho, aby sme zatiaľ získali hodnotu zo senzora, môžeme predpokladať, že v kroku sa systém vyvíja podľa tohto zákona a senzor bude ukazovať niečo blízko . Bohužiaľ, zatiaľ nevieme povedať nič presnejšie. Na druhej strane pri kroku budeme mať na ruke nepresné čítanie snímača.
Kalmanova myšlienka je nasledovná. Aby sme dosiahli čo najlepšiu aproximáciu skutočných súradníc, musíme si vybrať šťastné médium medzi nepresným odčítaním snímača a našou predpoveďou toho, čo sme očakávali, že uvidí. Načítanému snímaču dáme váhu a predpokladaná hodnota bude mať váhu:

Koeficient sa nazýva Kalmanov koeficient. Závisí od kroku iterácie, takže správnejšie by bolo napísať , no zatiaľ, aby sme nezaťažovali výpočtové vzorce, jeho index vynecháme.
Kalmanov koeficient musíme zvoliť tak, aby výsledná optimálna hodnota súradnice bola čo najbližšie k skutočnej hodnote. Napríklad, ak vieme, že náš senzor je veľmi presný, potom budeme jeho čítaniu viac dôverovať a hodnote prisúdime väčšiu váhu (blízko jednej). Ak snímač naopak nie je vôbec presný, zameriame sa skôr na teoreticky predpovedanú hodnotu .
Vo všeobecnosti, aby ste našli presnú hodnotu Kalmanovho koeficientu, musíte jednoducho minimalizovať chybu:

Na prepísanie výrazu pre chybu používame rovnice (1) (tie v modrom rámčeku):

Dôkaz

Teraz je čas diskutovať o tom, čo znamená výraz minimalizovať chybu? Koniec koncov, chyba, ako vidíme, je sama o sebe náhodná premenná a zakaždým nadobúda iné hodnoty. V skutočnosti neexistuje univerzálny prístup k definovaniu toho, čo znamená, že chyba je minimálna. Tak ako v prípade rozptylu náhodnej veličiny, keď sme sa snažili odhadnúť charakteristickú šírku jej rozptylu, aj tu zvolíme najjednoduchšie kritérium pre výpočty. Minimalizujeme priemer zo štvorcovej chyby:

Napíšeme posledný výraz:

Dôkaz

Zo skutočnosti, že všetky náhodné premenné zahrnuté vo výraze pre sú nezávislé, vyplýva, že všetky „krížové“ členy sa rovnajú nule:

Použili sme skutočnosť, že potom vzorec pre rozptyl vyzerá oveľa jednoduchšie: .

Tento výraz nadobudne minimálnu hodnotu, keď (prirovnanie derivácie k nule):

Tu už píšeme výraz pre Kalmanov koeficient s krokom indexu , teda zdôrazňujeme, že závisí od kroku iterácie.
Získanú optimálnu hodnotu dosadíme do výrazu, pre ktorý sme minimalizovali. My dostávame;

Naša úloha je vyriešená. Získali sme iteračný vzorec na výpočet Kalmanovho koeficientu.
Zhrňme naše nadobudnuté poznatky do jedného rámca:

Príklad

Matlab kód

zmazať všetko; N=100% počet vzoriek a=0,1% zrýchlenie sigmaPsi=1 sigmaEta=50; k=1:N x=k x(1)=0 z(1)=x(1)+normrnd(0,sigmaEta); pre t=1:(N-1) x(t+1)=x(t)+a*t+normrnd(0,sigmaPsi); z(t+1)=x(t+1)+normrnd(0,sigmaEta); koniec; %kalman filter xOpt(1)=z(1); eOpt(1)=sigmaEta; pre t=1:(N-1) eOpt(t+1)=sqrt((sigmaEta^2)*(eOpt(t)^2+sigmaPsi^2)/(sigmaEta^2+eOpt(t)^2+ sigmaPsi^2)) K(t+1)=(eOpt(t+1))^2/sigmaEta^2 xOpt(t+1)=(xOpt(t)+a*t)*(1-K(t +1))+K(t+1)*z(t+1) koniec; plot(k,xopt,k,z,k,x)

Analýza

Ak sledujeme, ako sa Kalmanov koeficient mení s krokom iterácie, potom môžeme ukázať, že sa vždy ustáli na určitej hodnote. Napríklad, keď sa RMS chyby snímača a modelu navzájom týkajú desať ku jednej, potom graf Kalmanovho koeficientu v závislosti od kroku iterácie vyzerá takto:

V nasledujúcom príklade si rozoberieme, ako nám to môže výrazne uľahčiť život.

Druhý príklad

V praxi sa často stáva, že o fyzikálnom modeli toho, čo filtrujeme, nevieme vôbec nič. Napríklad chcete filtrovať hodnoty z vášho obľúbeného akcelerometra. Dopredu neviete, akým zákonom zamýšľate otočiť akcelerometer. Najviac informácií, ktoré môžete získať, je odchýlka chyby snímača. V takejto ťažkej situácii môže byť všetka neznalosť modelu pohybu zahnaná do náhodnej premennej:

Ale úprimne povedané, takýto systém už nespĺňa podmienky, ktoré sme uložili na náhodnú premennú , pretože teraz je tam skrytá všetka nám neznáma fyzika pohybu, a preto nemôžeme povedať, že v rôznych časových bodoch sa chyby modely sú na sebe nezávislé a ich stredné hodnoty sú nulové. V tomto prípade vo všeobecnosti nie je teória Kalmanovho filtra použiteľná. Tejto skutočnosti však nebudeme venovať pozornosť, ale hlúpo použijeme všetok ten kolos vzorcov, výber koeficientov a podľa oka, aby filtrované údaje vyzerali pekne.
Existuje však aj iná, oveľa jednoduchšia cesta. Ako sme videli vyššie, Kalmanov koeficient sa vždy stabilizuje na hodnotu . Preto namiesto výberu koeficientov a hľadania Kalmanovho koeficientu pomocou zložitých vzorcov môžeme tento koeficient považovať vždy za konštantu a vybrať len túto konštantu. Tento predpoklad nepokazí takmer nič. Po prvé, už ilegálne používame Kalmanovu teóriu a po druhé, Kalmanov koeficient sa rýchlo ustáli na konštantu. Nakoniec bude všetko veľmi jednoduché. Nepotrebujeme vôbec žiadne vzorce z Kalmanovej teórie, stačí si vybrať prijateľnú hodnotu a vložiť ju do iteračného vzorca:

Nasledujúci graf zobrazuje údaje z fiktívneho snímača filtrované dvoma rôznymi spôsobmi. Za predpokladu, že nevieme nič o fyzike javu. Prvý spôsob je úprimný, so všetkými vzorcami z Kalmanovej teórie. A druhý je zjednodušený, bez vzorcov.

Ako vidíme, metódy sú takmer rovnaké. Malý rozdiel je pozorovaný len na začiatku, keď sa Kalmanov koeficient ešte nestabilizoval.

Diskusia

Ako sme videli, hlavnou myšlienkou Kalmanovho filtra je nájsť taký koeficient, aby bola filtrovaná hodnota

v priemere by sa najmenej líšila od skutočnej hodnoty súradnice . Vidíme, že filtrovaná hodnota je lineárnou funkciou čítania senzora a predchádzajúcej filtrovanej hodnoty. A predchádzajúca filtrovaná hodnota je zase lineárnou funkciou čítania senzora a predchádzajúcej filtrovanej hodnoty. A tak ďalej, kým sa reťaz úplne nerozvinie. To znamená, že filtrovaná hodnota závisí od všetky predchádzajúce hodnoty snímača lineárne:

Preto sa Kalmanov filter nazýva lineárny filter.
Dá sa dokázať, že Kalmanov filter je najlepší zo všetkých lineárnych filtrov. Najlepšie v tom zmysle, že stredná druhá mocnina chyby filtra je minimálna.

Viacrozmerný prípad

Celú teóriu Kalmanovho filtra možno zovšeobecniť na multidimenzionálny prípad. Vzorce tam vyzerajú trochu desivejšie, ale samotná myšlienka ich odvodenia je rovnaká ako v jednorozmernom prípade. Môžete si ich pozrieť v tomto výbornom článku: http://habrahabr.ru/post/140274/ .
A v tomto nádhernom video príklad, ako ich použiť.