TIINA SOKURI VINO KALMANIN SUODATIN Kandidaatintyö Tarkastaja: Simo Ali-Löytty Palautettu: 30.10.2012
II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Teknis-luonnontieteellinen koulutusohjelma TIINA SOKURI: Vino Kalmanin suodatin Kandidaatintyö, 19 sivua, 2 liitesivua Lokakuu 2012 Pääaine: Matematiikka Tarkastaja: Simo Ali-Löytty Avainsanat: Vino Kalmanin suodatin, Kalmanin suodatin, suljettu vino-normaalijakauma, normaalijakauma Kalmanin suodatin on algoritmi, jolla voidaan rekursiivisesti laskea haluttu tilan estimaatti kun tiedossa on tilamalli, mittausmalli, mallien virheiden kovarianssit, mittaukset ja tieto alkutilan odostusarvosta ja kovarianssista. Estimaatti voidaan laskea, vaikka mittausdata olisi kohinaista ja sisältäisi epätarkkuuksia. Kalmanin suodattimen tapauksessa oletus alkutilan ja kohinoiden normaalisuudesta on hyvin olennainen, ja tämä rajoittaa algoritmin käyttöä, sillä monet sovellukset eivät toteuta tätä vaatimusta. Kun halutaan laajentaa Kalmanin suodattimen käyttömahdollisuuksia, otetaan käyttöön epäsymmetrisyys eli vinous käytettyyn tilamalliin. Epäsymmetrisyys johtuu usean muuttujan normaalijakauman laajennuksesta suljettuun vino-normaalijakaumaan uusien vinoutta säätelevien parametrien avulla. Työssä on tarkoitus esitellä vino Kalmanin suodatin perustellusti ja todistaa siihen liittyvä propositio. Työssä esitellään lyhyesti myös moniulotteinen normaalijakauma, Kalmanin suodatin ja suljettu vino-normaalijakauma. Moniulotteista normaalijakaumaaa ja suljettua vino-normaalijakaumaa havainnollistetaan kaksiulotteisessa tapauksessa MATLAB-ohjelmistolla piirretyillä kuvilla. Lopuksi vinon Kalmanin suodattimen algoritmi toteutetaan MATLAB-ohjelmistolla ja visualisoidaan ratkaisua sekä verrataan laskettua tilan estimaattia Kalmanin suodattimella laskettuun tilan estimaattiin yhden satunnaisen reitin tapauksessa.
III ALKUSANAT Tämä tekniikan kandidaatintyö on tehty Tampereen teknillisen yliopiston Matematiikan laitokselle. Haluan kiittää kandidaatintyön ohjaajaa TkT Simo Ali-Löyttyä haastavasta kandidaatintyön aiheesta sekä avusta ja kannustuksesta työn tekemisessä.
IV SISÄLLYS 1. Johdanto..................................... 1 2. Suodatuksen teoreettinen tausta........................ 2 2.1 Moniulotteinen normaalijakauma..................... 2 2.2 Kalmanin suodatin............................. 3 3. Vino Kalmanin suodatin............................. 6 3.1 Suljettu vino-normaalijakauma...................... 6 3.2 Kalmanin suodatin ja suljetut vino-normaalijakaumat......... 8 3.3 Vinon Kalmanin suodattimen algoritmi................. 11 4. Algoritmin toteutus ja visualisointi....................... 16 4.1 Yleistä algoritmin toteutuksesta..................... 16 4.2 Visualisointi ja vertailu Kalmanin suodattimeen............. 16 5. Yhteenveto.................................... 18 Lähteet....................................... 19 A.Vinon Kalmanin suodattimen toteutus MATLAB-ohjelmistolla....... 20
V TERMIT JA SYMBOLIT µ, v Vektoreita x Asiayhteydestä riippuen joko vektori, tilan stokastinen prosessi tai satunnaismuuttuja x k x y y k Tila ajanhetkellä t k Priori-tila Asiayhteydestä riippuen joko vektori, mittauksien stokastinen prosessi tai satunnaismuuttuja Mittaus ajanhetkellä t k y 1:k Mittaukset ajanhetkillä t 1, t 2,..., t k F, Σ Matriiseja F T F F 1 detf R n R n m x : Ω R n N n µ, Σ x N n µ, Σ Ex Vx φ n x; µ, Σ φ x k y 1:k 1 φ wk 1 Φ n x; µ, Σ CSN n,m µ, Σ, D, ν, M n,m t x y φ y k x k Matriisin F transpoosi Matriisin F vasen inverssi Matriisin F inverssi Matriisin F determinantti n-ulotteisten reaalivektoreiden joukko n m -ulotteisten reaalimatriisien joukko Joukkoonkuulumisoperaattori Satunnaismuuttuja x on kuvaus joukosta Ω joukkoon R n n-ulotteinen normaalijakauma, jonka odotusarvo on µ ja kovarianssi Σ Satunnaismuuttuja x noudattaa n-ulotteista normaalijakaumaa parametrein µ ja Σ Satunnaismuuttujan x odotusarvo Satunnaismuuttujan x kovarianssi Normaalijakauman N n µ, Σ tiheysfunktio Priori-estimaattorin x k y 1:k 1 tiheysfunktio Tilamallin virheen tiheysfunktio Normaalijakauman N n µ, Σ kertymäfunktio n-ulotteinen suljettu vino-normaalijakauma, jonka parametrit ovat µ R n, Σ R n n, D R m n, ν R m ja R m m Suljetun vino-normaalijakauman CSN n,m µ, Σ, D, ν, momentit generoiva funktio Tilan x ehdollinen jakauma ehdolla mittaukset y Mittauksen y k uskottavuus ehdolla tila x k
1 1. JOHDANTO Paikannuksessa tieto käyttäjän tarkasta paikasta on tärkeä saada selville helposti ja nopeasti. Paikan estimaatti voidaan ratkaista käyttäen vain nykyisiä mittauksia. Kuitenkin tarkempi estimaatti saadaan käyttämällä suodatusta, jossa hyödynnetään sekä aikaisempia että nykyisiä mittauksia, kun ratkaistaan tilan estimaattia. Eräs tällainen suodatusalgoritmi on nimetty Rudolf E. Kálmánin mukaan Kalmanin suodattimeksi. Kalmanin suodattimen etuna on laskennan rekursiivisuus, joten algoritmia voi käyttää reaaliajassa. Kalmanin suodattimen algoritmin soveltamiseen tarvitaan tieto prosessin alkutilasta. Lisäksi tarvitaan tieto prosessin dynamiikasta eli siitä, miten prosessin tila muuttuu ajan kuluessa, sekä tieto siitä, kuinka mittaukset riippuvat sen hetkisestä tilasta. Dynaaminen systeemi oletetaan lineaariseksi ja kohinat sekä alkutila normaalisti jakautuneiksi. Tarkempi kuvaus Kalmanin suodattimesta ja sen oletuksista sekä esitys algoritmista tiivistetyssä muodossa on luvussa 2. Monet sovellukset ovat sellaisia, etteivät ne noudata normaalijakaumaa. Esimerkkinä sisätiloissa tehtävässä paikannuksessa voimme saada tiedon siitä, että olemme seinän oikealla puolella. Kuitenkaan seinän paikka ei ole täysin tiedossa, ja on todennäköisempää, ettemme ole aivan seinässä kiinni. Tällöin oletus tilan estimaatin normaalisuudesta ei kuvaa todellista tilannetta. Esimerkiksi tällaisessa tilanteessa voidaan käyttää oletusta, jonka mukaan tilan jakaumassa on vinoutta. Eräs tällainen jakauma on suljettu vino-normaalijakauma. Suljettu vino-normaalijakauma on normaalijakauman laajennus, jonka vinoutta säädellään ylimääräisillä parametreillä. Vinouden lisäämistä ja suljetun vinonormaalijakauman ominaisuuksia on käsitelty luvussa 3. Luvun lopussa vinon Kalmanin suodattimen algoritmi on esitetty tiivistetyssä muodossa. Kalmanin suodattimen ja vinon Kalmanin suodattimen käyttöä on havainnollistettu luvussa 4, jossa sama paikannusongelma on ratkaistu sekä Kalmanin suodattimen että vinon Kalmanin suodattimen avulla käyttäen MATLAB-ohjelmistoa. Vinon Kalmanin suodattimen algoritmin toteutuksessa käytetty MATLAB-koodi on esitetty liitteessä.
2 2. SUODATUKSEN TEOREETTINEN TAUSTA Suodatukseksi kutsutaan tilan ehdollisen jakauman ratkaisemista aikasarjassa, jonka avulla voidaan ratkaista haluttu estimaatti [1, s. 40]. Tämä tapahtuu käyttämällä kaikkia aikaisempia mittauksia nykyisten mittausten lisäksi kun lasketaan tilan estimaattia. Tässä luvussa on tarkoitus esitellä eräs tällainen tilan estimaatin ratkaiseva algoritmi, nimeltään Kalmanin suodatin ja sen oletukset. Oletuksiin liittyy keskeisesti moniulotteinen normaalijakauma, joka esitetään seuraavana. 2.1 Moniulotteinen normaalijakauma Moniulotteinen normaalijakauma eli moniulotteinen Gaussin jakauma on yleistys yksiulotteisesta normaalijaukaumasta korkeampiin dimensioihin. Määrittelemme moniulotteisen normaalijakauman seuraavasti: Määritelmä 1. Olkoon x : Ω R n, µ R n ja Σ R n n symmetrinen ja positiivisesti definiitti matriisi. Tällöin satunnaismuuttuja x noudattaa n-ulotteista normaalijakaumaa parametrein µ ja Σ, merkitsemme tätä x N n µ, Σ, jos sen tiheysfunktio on φ n x; µ, Σ = 1 2πΣ exp det x µt Σ 1 x µ 2, x R n. 2.1 Olkoon x N n µ, Σ. Tällöin normaalijakauman parametrit ovat satunnaismuuttujan x odotusarvo µ = E x ja kovarianssimatriisi Σ = V x. Tiheysfunktio 2.1 voidaan tulkita geometrisesti normaalijakauman tasa-arvopintoina, jotka ovat R n :n ellipsoideja, joiden puoliakseleiden pituudet ovat verrannollisia kovarianssimatriisin Σ ominaisarvojen neliöjuuriin [2, s. 21]. Kaksiulotteista normaalijakaumaa on havainnollistettu seuraavassa kuvassa.
2. Suodatuksen teoreettinen tausta 3 Kuva 1. Kuvassa A on esitetty tiheysfunktio kaksiulotteiselle normaalijakaumalle, 1.9090 0.3749 0.0815 jonka parametrit ovat µ = ja Σ =. Kuvassa B on 0.7225 0.0815 0.6710 esitetty saman normaalijakauman tasa-arvopinnat. Normaalijakauma voidaan määritellä myös positiivisesti semidefiniiteille kovarianssimatriiseille Σ [2, s.21]. Tässä työssä keskitytään kuitenkin vain positiivisesti definiitteihin kovarianssimatriiseihin Σ. 2.2 Kalmanin suodatin Kalmanin suodatin on algoritmi, joka estimoi tilaa x k hyödyntäen aikaisempia ja nykyisiä mittauksia y 1, y 2,..., y k. Jotta aikaisempia mittauksia voitaisiin käyttää, on otettava käyttöön tilamalli x k = G k 1 x k 1 + w k 1, 2.2
2. Suodatuksen teoreettinen tausta 4 joka kertoo kuinka seuraava tila riippuu edellisestä tilasta [1, s. 39]. Yhtälössä 2.2 x k on tila, G k 1 R n n on tilansiirtomatriisi ja w k 1 on tilamallin virhe. Alaindeksillä k N \ {0} viitataan ajanhetkeen t k. Tilamallin virheen kovarianssimatriisia merkitään matriisilla Q k 1, joka oletetaan positiivisesti definiitiksi. Tulkitaan tila x k stokastiseksi. Tällöin tilaestimaatin laskeminen tapahtuu kaksivaiheisesti. Ratkaistaan kullakin ajanhetkellä t k tilan x k ehdollinen jakauma ehdolla mittaus y k. Mittausyhtälö y k = F k x k + v k 2.3 koostuu mittausmatriisista F k R d n ja mittausvirheestä v k. Rajoitutaan tässä työssä tapaukseen, jossa mittausmatriisi on neliömatriisi. Mittausmallin virheen kovarianssimatriisia merkitään matriisilla R k, joka oletetaan positiivisesti definiitiksi. Tilamallin ja mittausyhtälöiden lisäksi ehdollisen jakauman laskemiseen tarvitaan tieto alkutilasta x 0. Merkitään alkutilan odotusarvoa vektorilla ˆx 0 ja kovarianssimatriisia vakiomatriisilla P 0. Kun tilan ehdollinen jakauma on saatu ratkaistua, voidaan siitä laskea toivottu estimaatti, joka on optimaalinen toivotun kriteerin suhteen [1, s. 39-40]. Ajallisesti ei ole järkevää käyttää koko mittaushistoriaa joka ajanhetkellä estimoinnissa, vaan estimointi olisi pystyttävä ratkaisemaan rekursiivisesti. Näin voidaan menetellä, kun otetaan käyttöön muutamia riippumattomuusoletuksia. Oletetaan, että virheet w k 1 ja v k ovat keskenään riippumattomia, valkoista kohinaa, nollakeskeisiä ja riippumattomia alkutilasta x 0. Algoritmia, joka pystyy ratkaisemaan estimoinnin näillä oletuksilla, kutsutaan Kalmanin suodattimeksi Rudolf E. Kálmánin mukaan [1, s. 40]. Yhden tulkinnan mukaan Kalmanin suodattimen tarkoituksena on siis ratkaista paras lineaarinen harhaton estimaatti tilalle x k. Käytetään tässä työssä kuitenkin tulkintaa, jonka mukaan Kalmanin suodatin ratkaisee tilan x k ehdollisen jakauman ehdolla mittaukset y 1:k [3, s.1]. Priori-estimaattorille x k y 1:k 1 pätee [3, s.1], kun merkitään priori-estimaattorin tiheysfunktiota merkinnällä φ x k y 1:k 1, φ x k y 1:k 1 = ja posteriori-estimaattorille pätee [3, s.1] φ x k y 1:k = missä on siirtymätiheysfunktio φ x k x k 1 φ x k 1 y 1:k 1 dxk 1 φ y k x k φ x k y 1:k 1 φ yk x k φ x k y 1:k 1 dxk, 2.4 φ x k x k 1 = φ wk 1 x k G k 1 x k 1
2. Suodatuksen teoreettinen tausta 5 ja uskottavuus φ y k x k = φ vk y k F k x k. Seuraavassa on esitetty Kalmanin suodatin tiivistetyssä muodossa. Algoritmi 1. Kalmanin suodatin Tilamalli: x k = G k 1 x k 1 + w k 1 V w k 1 = Q k 1. Mittausyhtälö: y k = F k x k + v k V v k = R k. Mittaukset: y 1:m = {y 1, y 2,..., y m }. Alkutila: estimaatti ˆx 0 ja kovarianssimatriisi P 0. 1. Asetetaan k = 1. 2. Ratkaistaan posteriorijakauman parametrit: ˆx k = G k 1ˆx k 1, P k = G k 1P k 1 G T k 1 + Q k 1, K k = P k F k T Fk P k F k T 1 + R k, ˆx k = ˆx k + K k yk F kˆx k ja P k = I K k F k P k. 3. Lopetetaan, jos k = m, muutoin asetetaan k = k+1 ja palataan kohtaan 2.
6 3. VINO KALMANIN SUODATIN Edellisessä luvussa esiteltyä Kalmanin suodatinta hyödynnetään laajasti tilamallien posteriori-tilan laskennassa. Moniulotteisessa tapauksessa oletus jakauman normaalisuudesta on hyvin olennainen. Kuitenkaan monet sovellukset eivät toteuta tätä vaatimusta. Eräs tapa laajentaa Kalmanin suodattimen käytettävyyttä on lisätä vinoutta tilamalliin [4, s. 383]. Seuraavassa esitellään lyhyesti vino-normaalijakauma sekä perusteellisemmin Vino Kalmanin suodatin, joka ratkaisee tilamallin, jossa alkutila x 0 noudattaa suljettua vino-normaalijakaumaa, ja sen algoritmi. 3.1 Suljettu vino-normaalijakauma Suljettu vino-normaalijakauma on normaalijakauman laajennus, jonka vinoutta säädellään ylimääräisillä parametreillä. Tällä jakaumalla on monia Gaussisilta jakaumilta periytyviä ominaisuuksia [5, s. 3]. Määritellään seuraavassa suljettu vinonormaalijakauma. Määritelmä 2. Olkoon satunnaisvektorin x dimensio n. Tällöin satunnaisvektorin x sanotaan noudattavan suljettua moniulotteista vino-normaalijakaumaa, käytämme tälle merkintää x CSN n,m ˆx, P, D, ν,, jos sen tiheysfunktio on muotoa 1 Φ m 0; ν, + DP D T φ n x; ˆx, P Φ m D x ˆx ; ν,, x R n, 3.1 missä ˆx R n ja ν R m ovat vektoreita, ja P R n n ja R m m ovat kovarianssimatriiseja, D R m n, ja φ n x; ˆx, P ja Φ n x; ˆx, P ovat n-dimensioiset normaalijakauman tiheysfunktio ja kertymäfunktio odotusarvolla ˆx ja kovarianssimatriisilla P. Kaksiulotteista suljettua vino-normaalijakaumaa on havainnollistettu seuraavassa kuvassa.
3. Vino Kalmanin suodatin 7 Kuva 2. Kuvassa A on esitetty tiheysfunktio kaksiulotteiselle vino-normaalijakaumalle, 1 1 0.3 10 0 jonka parametrit ovat ˆx =, P =, D =, v = 0 0.3 1 0 1 10 1 0 ja =. Kuvassa B on esitetty saman vino-normaalijakauman 0.01 0 1 tasa-arvopinnat. Kuvaan on myös merkitty tähdellä numeerisesti laskettu arvio jakauman odotusarvosta. Kun D = 0, tiheysfunktio 3.1 redusoituu moniulotteisen normaalijakauman tiheysfunktioksi. Parametriin D viitataan muotoparametrinä. Momentit generoiva funktio M n,m t suljetulle vino-normaalijakaumalle on [6, s. 4] M n,m t = Φ m DP t; ν, + DP D T exp ˆx T t + 1 t T P t. 3.2 Φ m 0; ν, + DP D T 2 Koska riippumattomien satunnaismuuttujien summan momentit generoiva funktio on muuttujien momentit generoivien funktioiden tulo [7, s. 5], ei kahden suljettua vino-normaalijakaumaa noudattavan n,m -dimensioisen satunnaismuuttujan summa yleisesti noudata n,m-dimensioista suljettua vino-normaalijakaumaa [4, s. 384]. Voidaan kuitenkin osoittaa [6, s. 10], että kahden suljettua vino-normaalijakaumaa
3. Vino Kalmanin suodatin 8 noudattavan n,m -dimensioisen satunnaismuuttujan summa noudattaa n,2m-dimensioista suljettua vino-normaalijakaumaa. Siten suljettu vino-normaalijakauma on suljettu summauksen suhteen mikäli sallitaan dimension m vaihtelu. Tämä ominaisuus ei ole toivottu tilamallien tapauksessa, sillä tilamallit perustuvat peräkkäisiin operaatioihin, jolloin matriisien D ja koko kasvaa jokaisella iteraatiokierroksella. Tämän vuoksi lisätään malliin vinoutta toisella tavalla. Tätä on tarkasteltu seuraavassa. 3.2 Kalmanin suodatin ja suljetut vino-normaalijakaumat Eräs tapa saavuttaa kahden suljettua vino-normaalijakaumaa noudattavan satunnaismuuttujan suljettu summaus on määrittää, milloin mittaukset ja tilavektori noudattavat suljettua vino-normaalijakaumaa [4, s. 385]. Tämä voidaan ilmaista myös kysymyksenä siitä, millaista häiriötä yhtälöihin 2.2 ja 2.3 pitäisi sisällyttää, jotta summa noudattaisi suljettua vino-normaalijakaumaa. Jotta tähän tavoitteeseen päästäisiin, tarvitaan avuksi seuraavat kaksi lemmaa. Lemman 1 mukaan vino-normaalijakauma on suljettu skalaarimuunnoksissa. Lemma 1. Olkoon y suljettua vino-normaalijakaumaa CSN n,m ŷ, P, D, ν, noudattava satunnaisvektori ja F r n-dimensioinen matriisi siten että F T F on eisingulaarinen. Jos satunnaisvektori x on määritelty lineaarimuunnoksella x = F y, niin myös x noudattaa suljettua vino-normaalijakaumaa. Merkitään tätä merkinnällä x = F y CSN n,m F ŷ, F P F T, DF, ν,, missä F on matriisin F vasen inverssi ja F = F 1 kun F on n n-dimensioinen ei-singulaarinen matriisi. Todistus. Oletetaan, että satunnaisvektori x on määritelty lineaarimuunnoksella x = F y. Tällöin vektorin x momentit generoivalle funktiolle pätee M x t = E e tt x = E e tt F y = E e F T t T y = M y F T t = Φ m DP F T t; ν, + DP D T exp ŷ T F T t + 1 t T F P F T t Φ m 0; ν, + DP D T 2 Φ m DF F P F T t ; ν, + DF F P F T DF T = Φ m 0; ν, + DF F P F T DF T exp F ŷ T t + 1 t T F P F T t, 2 kun muistetaan, että I = F F ja että F L T = L T F T, kun L on n s-dimensioinen matriisi. Viimeisen muodon havaitaan olevan samaa muotoa yhtälön 3.2 kans-
3. Vino Kalmanin suodatin 9 sa, kun x noudattaa suljettua vino-normaalijakaumaa parametrein x CSN n,m F ŷ, F P F T, DF, ν,. Lemman 2 mukaan suljettu vino-normaalijakauma pysyy suljettuna vino-normaalijakaumana, kun jakaumaan lisätään Gaussista kohinaa. Lemma 2. Olkoon x suljettua vino-normaalijakaumaa CSN n,m ˆx, P, D, ν, noudattava satunnaisvektori ja z n-dimensioinen Gaussinen satunnaisvektori, jolla on odotusarvo µ ja kovarianssimatriisi Σ. Tällöin satunnaisvektoreiden summa x + z noudattaa suljettua vino-normaalijakaumaa missä x + z CSN n,m ˆx x+z, P x+z, D x+z, ν x+z, x+z, ˆx x+z = ˆx + µ, P x+z = P + Σ, D x+z = DP P + Σ 1, ν x+z = ν ja x+z = + D D x+z P D T. Todistus. Oletetaan, että satunnaisvektori x noudattaa suljettua vino-normaalijakaumaa CSN n,m ˆx, P, D, ν, ja että z on n-dimensioinen Gaussinen satunnaisvektori. Tällöin satunnaisvektorin x momentit generoiva funktio on yhtälön 3.2 mukainen. Merkitään yleisesti tunnetun Gaussisen satunnaisvektorin momentit generoiva funktiota merkinnällä M g t = exp µ T t + 1 t T Σt. 2 Koska riippumattomien vektoreiden summan momentit generoiva funktio on vektoreiden momentit generoivien funktioiden tulo, voidaan kirjoittaa M x+z t = M n,m t M g t = Φ m DP t; ν, + DP D T Φ m 0; ν, + DP D T = Φ m DP t; ν, + DP D T Φ m 0; ν, + DP D T exp ˆx T t + 1 t T P t exp µ T t + 1 t T Σt 2 2 exp ˆx + µ T t + 1 t T P + Σ t. 2
3. Vino Kalmanin suodatin 10 Jotta satunnaisvektoreiden summa x + z noudattaisi lemmassa annettua suljettua vino-normaalijakaumaa, asetetaan ˆx x+z = ˆx + µ ja P x+z = P + Σ. Lisäksi sopivilla parametreillä D x+z, ν x+z ja x+z kertymäfunktioiden Φ m DP t; ν, + DP D T ja Φ m Dx+z P x+z t, ν x+z, x+z + D x+z P x+z Dx+z T tulisi olla yhtä suuret. Nämä nähdään seuraavasti: Muotoparametrille D x+z pätee, kun muistetaan, että P x+z = P + Σ, D x+z = DP P + Σ 1 = DP P 1 x+z D x+z P x+z = DP. Parametri ν x+z saadaan asettamalla ν x+z = ν. Lisäksi havaitaan, että kun sijoitetaan lemman mukaiset D x+z ja x+z lausekkeeseen x+z + D x+z P x+z D T x+z, että x+z + D x+z P x+z D T x+z = + D D x+z P D T + DP P 1 x+zp x+z DP P + Σ 1 T = + D DP P + Σ 1 P D T + DP P + Σ 1 P D T = + DP D T. Siis x + z CSN n,m ˆx x+z, P x+z, D x+z, ν x+z, x+z. Lemmojen 1 ja 2 perusteella voidaan johtaa seuraava propositio. Propositio 3. Oletetaan, että systeemin alkutila x 0 noudattaa suljettua vino-normaalijakaumaa CSN n,m ˆx 0, P 0, D 0, ν 0, 0. Jos häiriö w k 1 ja mittausvirhe v k ovat riippumattomia ja identtisesti jakautuneita Gaussisia vektoreita, joilla on kovarianssimatriisit Q k 1 ja R k, niin sekä tilavektori x k että mittausvektori y k noudattavat suljettua vino-normaalijakaumaa parametrein x k CSN h,m ˆx k, P k, D k, ν k, k ja y k CSN d,m Ψ k, Γ k, E k, γ k, Θ k. Näiden jakaumien parametrit toteuttavat seuraavat yhtälöt kun k = 1,2,..., ˆx k = G k 1ˆx k 1, Ψ k = F kˆx k, P k = G k 1 P k 1 G T k 1 + Q k 1, Γ k = F k P k F T k + R k, D k = D k 1 P k 1 G T k 1P 1 k, E k = D k P k F T k Γ 1 k, ν k = ν k 1, γ k = ν k, k = k 1 + D k 1 D k G k 1 P k D T k 1, Θ k = k + D k E k F k P k D T k, aina kun G T k 1 G k 1 ja F T k F k ovat ei-singulaarisia matriiseja. ja
3. Vino Kalmanin suodatin 11 Todistus. Oletetaan, että yhtälön 2.2 mukainen tilamalli on voimassa ja että häiriö w k 1 on riippumaton ja identtisesti jakautunut Gaussinen vektori, jolla on kovarianssimatriisi Q k 1. Tällöin soveltamalla ensin lemmaa 1 ja tämän jälkeen lemmaa 2, saadaan proposition mukaiset parametrit tilavektorille x k. Samoin kun oletetaan, että yhtälön 2.3 mukainen mittausyhtälö on voimassa ja että mittausvirhe v k on riippumaton ja identtisesti jakautunut Gaussinen vektori, jolla on kovarianssimatriisi R k, ja sovelletaan lemmoja 1 ja 2, saadaan proposition mukaiset parametrit mittausvektorille y k. Tämä propositio näyttää, että alkutila x 0 ja Gaussinen häiriö ovat keskeisiä, kun halutaan saada tila- ja mittausvektorit, jotka noudattavat suljettua vino-normaalijakaumaa [4, s. 386]. Vinoutta on kuitenkin vaikea toteuttaa klassisissa lineaarisissa tilamalleissa. Erityisesti mittausvektorin vinous etenisi paremmin ajassa, jos vinous toteutettaisiin erikseen jokaiseen aika-askeleeseen, eikä yksin omaan alkutilaan x 0 [4, s. 386]. Tätä tapaa ei käsitellä tarkemmin tässä työssä. 3.3 Vinon Kalmanin suodattimen algoritmi Käytetään Bayesilaista formulointia vinon Kalmanin suodattimen eri askeleiden johtamisessa. Keskeistä on, että tilavektorin arvot voidaan määrittää suoraan hyödyntämällä Bayesin teoreemaa mittauksiin y 1:k = {y 1,..., y k }. Yleisesti Kalmanin suodattimessa ehdollinen jakauma x k 1 y 1:k 1 noudattaa normaalijakaumaa ajanhetkellä t k 1. Vinon Kalmanin suodattimen tapauksessa ehdollinen jakauma noudattaa ajanhetkellä t k 1 suljettua vino-normaalijakaumaa xk 1 y 1:k 1 CSNn,m ˆx k 1, P k 1, ˆD k 1, ˆν k 1, ˆ k 1, 3.3 missä ˆ. edustaa ehdollisen jakauman x k 1 y 1:k 1 parametrejä. Tämän jälkeen siirrytään ajassa eteenpäin ajanhetkeen t k kaksivaiheisesti: ennen havaintoja y k ja havaintojen y k jälkeen. Oletetaan nyt, että systeemin alkutila x 0 noudattaa suljettua vino-normaalijakaumaa CSN n,m ˆx 0, P 0, D 0, ν 0, 0 ja että häiriö w k 1 ja mittausvirhe v k ovat nollakeskisiä, riippumattomia ja identtisesti jakautuneita Gaussisia vektoreita, joilla on kovarianssimatriisit Q k 1 ja R k. Seuraava propositio kerää yhteen vinon Kalmanin suodattimen eri askeleet, joita tarvitaan oletusten mukaista mallia noudattavan tilan posteriori-estimaattorin laskennassa. Propositio 4. Oletetaan, että systeemin alkutila x 0 noudattaa suljettua vino-normaalijakaumaa CSN n,m ˆx 0, P 0, D 0, ν 0, 0 ja että häiriö w k 1 ja mittausvirhe v k ovat nollakeskisiä, riippumattomia ja identtisesti jakautuneita Gaussisia vektoreita, joilla on kovarianssimatriisit Q k 1 ja R k. Tällöin posteriorijakauman parametrit
3. Vino Kalmanin suodatin 12 tilalle x k, määritelty yhtälöllä 3.3, saadaan ratkaistua seuraavan syklisen proseduurin avulla: missä ˆx k = ˆx k + K k yk F kˆx k, ˆx k = G k 1ˆx k 1, P k = G k 1P k 1 G T k 1 + Q k 1, K k = P k F k T Fk P k F k T 1 + R k, P k = I K k F k P k, ˆD k = ˆD k 1 P k 1 G T k 1 P k ˆν k = ˆν k 1 ja ˆ k = ˆ k 1 + 1, ˆDk 1 ˆD k G k 1 P k 1 ˆDT k 1. Tämä yhtälöryhmä muodostaa Vinon Kalmanin suodattimen algoritmin. Todistus. Aputulos: Jos kovarianssimatriisit P 1 ja P 2 ovat positiivisesti definiittejä, niin missä φ n x; µ, P 1 φ n y; F x, P 2 = φ n x; µ, P 3 φ n y; F µ, P 4, µ = µ + K y F µ, P 3 = I KF P 1, K = P 1 F T P 1 4 ja Yhtälön 2.2 mukaan voidaan kirjoittaa P 4 = F P 1 F T + P 2. [3, s.12] xk y 1:k 1 = Gk 1 x k 1 + w k 1 y 1:k 1 = G k 1 xk 1 y 1:k 1 + wk 1. [4, s.396] Oletuksen mukaan häiriö w k 1 noudattaa normaalijakaumaa ja yhtälön 3.3 mukaan xk 1 y 1:k 1 noudattaa suljettua vino-normaalijakaumaa, joten lemmojen 1 ja 2 mukaan x k y 1:k 1 noudattaa myös suljettua vino-normaalijakaumaa parametrein
3. Vino Kalmanin suodatin 13 CSN ˆx k, P k, ˆD k, ˆν k, ˆ k, missä ˆx k = G k 1ˆx k 1, P k = G k 1P k 1 G T k 1 + Q k 1, ˆD k = ˆD k 1 G k 1G k 1 P k 1 G T k 1 P k = ˆD k 1 P k 1 G T k 1 P 1 k, ˆν k = ˆν k 1, ja ˆ k = ˆ k 1 + 1 ˆDk 1 ˆD k G k 1 P k 1 ˆDT k 1. Määritelmän 2 mukaan ehdollisen jakauman x k y 1:k 1 tiheysfunktio on φ 1 x k y 1:k 1 = Φ m 0; ˆν k, ˆ k + ˆD k P ˆD φ n xk ; ˆx k k T k, P k Φ m ˆDk xk ˆx k ; ˆνk, ˆ k. Tavoitteena on ratkaista tilan x k posteriori-jakauma, eli φ x k y 1:k. Yhtälön 2.4 mukaan tilan x k posteriorijakauma on φ x k y 1:k = φ y k x k φ x k y 1:k 1 φ yk x k φ x k y 1:k 1 dxk. Koska φ y k x k = φ n y; F k x k, R k [8, s.83], voidaan osoittajalle kirjoittaa φ y k x k φ φ n y; F k x k, R k φ n xk ; ˆx x k y 1:k 1 = k, P k Φ m 0; ˆν k, ˆ k + ˆD k P ˆD k k T Φ m ˆDk xk ˆx k ; ˆνk, ˆ k. Kahden normaalijakauman tiheysfunktion tulo voidaan aputuloksen mukaan kirjoittaa muotoon φ n y; F k x k, R k φ n xk ; ˆx k, P k = φn y; Fkˆx k, P φ n x k ; ˆx k, P k,
3. Vino Kalmanin suodatin 14 missä ˆx k = ˆx k + K k yk F kˆx k, P k = P k K kf k P k, K k = P k F k T Rk + F k P k F k T ja Näin osoittaja saadaan muotoon P = F k P k F T k + R k. φ y k x k φ φ n y; F k x k, R k φ n xk ; ˆx x k y 1:k 1 = k, P k Φ m 0; ˆν k, ˆ k + ˆD k P ˆD k k T Φ m ˆDk xk ˆx k ; ˆνk, ˆ k = φ n y; Fkˆx k, F kp k F k T + R k φn x k ; ˆx k, P k Φ m 0; ˆν k, ˆ k + ˆD k P ˆD k k T Φ m ˆDk xk ˆx k ; ˆνk, ˆ k. 1 Kun tämä lauseke sijoitetaan nimittäjän integraaliin, saadaan φ x k y 1:k = φ y k x k φ x k y 1:k 1 φ yk x k φ x k y 1:k 1 dxk = = φ ny;f k ˆx k,f kp k F k T +R kφ nx k ;ˆx,P k Φ m ˆD kx k ˆx k ;ˆν k, ˆ k Φ m0;ˆν k, ˆ k + ˆD k P ˆD k k T φny;f k ˆx k,f kp k F k T +R kφ nx k ;ˆx,P k Φ m ˆD kx k ˆx k ;ˆν k, ˆ k dx k Φ m0;ˆν k, ˆ k + ˆD k P k ˆD T k φ nx k ;ˆx,P k Φ m ˆD kx k ˆx k ;ˆν k, ˆ k Φ m0;ˆν k, ˆ k + ˆD k P ˆD k k T. φnxk ;ˆx,P k Φ m ˆD kx k ˆx k ;ˆν k, ˆ k Φ m0;ˆν k, ˆ k + ˆD k P ˆD dx k k T k Nyt havaitaan, että osoittajassa ja nimittäjässä on suljetun vino-normaalijakauman CSN ˆx k, P k, ˆD k, ˆν k, ˆ k tiheysfunktio. Vino-normaalijakauman tiheysfunktio integroituu ykköseksi, joten päädytään tulokseen φ x k y 1:k CSN ˆx k, P k, ˆD k, ˆν k, ˆ k. Propositiosta 4 huomataan, ettei vinouden lisääminen pohjimmiltaan muuta klassisia Kalmanin suodattimen operaatioita. Ainoa ero klassiseen Kalmanin suodattimeen on yhtäsuuruudet, jotka koskevat uusia parametrejä ˆD k, ˆν k ja ˆ k. Nämä para-
3. Vino Kalmanin suodatin 15 metrit karakterisoivat lisätyn vinouden ja niiden etuna on se, että ne ovat helposti toteutettavissa [4, s. 391]. Huomionarvoista on myös, että estimaattorit parametrille ν ovat ajan suhteen invariantteja, mikä tukee propositiossa 3 löydettyä tulosta. Alkuperäisessä Naveau el al. julkaisussa [4, s.391] havaittiin tämän työn yhteydessä olevan pieni kirjoitusvirhe vinon Kalmanin suodattimen esittelevässä propositiossa 7, sillä parametrin ˆ k lausekkeesta puuttuu viimeisen tulontekijän ˆD k 1 kohdalta transpoosi. Mikäli tilanne olisi kuten alkuperäisessä julkaisussa, ei matriisitulo P k 1 ˆDk 1 olisi määritelty, sillä määritelmän 2 mukaan matriisi P k 1 R n n ja ˆD k 1 R m n. Seuraavassa on esitetty vinon Kalmanin suodattimen algoritmi pelkistettynä. Algoritmi 2. Vino Kalmanin suodatin Tilamalli: x k = G k 1 x k 1 + w k 1 V w k 1 = Q k 1. Mittausyhtälö: y k = F k x k + v k V v k = R k. Mittaukset: y 1:m = {y 1, y 2,..., y m }. Alkutila: x 0 CSN n,m ˆx, P 0, D 0, ν 0, 0 1. Asetetaan k = 1. 2. Ratkaistaan posteriorijakauman parametrit: ˆx k = G k 1ˆx k 1, P k = G k 1P k 1 G T k 1 + Q k 1, K k = P k F k T Fk P k F k T 1 + R k, ˆx k = ˆx k + K k yk F kˆx k, P k = I K k F k P k, ˆD k = ˆD k 1 P k 1 G T k 1 P k ˆν k = ˆν k 1 ja ˆ k = ˆ k 1 + 1, ˆDk 1 ˆD k G k 1 P k 1 ˆDT k 1. 3. Lopetetaan, jos k = m, muutoin asetetaan k = k+1 ja palataan kohtaan 2.
16 4. ALGORITMIN TOTEUTUS JA VISUALISOINTI Edellisessä luvussa esitetty vinon Kalmanin suodattimen algoritmi toteutettiin ja visualisoitiin MATLAB-ohjelmistolla. Käytössä oli ohjelmiston versio R2009b. Algoritmin toteutuksessa käytetty MATLAB-koodi on esitetty liitteessä. Algoritmin toteutuksen lisäksi vinolla Kalmanin suodattimella laskettua tilan estimaattia verrattiin Kalmanin suodattimella laskettuun tilan estimaattiin yhden satunnaisen kaksiulotteisen reitin tapauksessa. Tarkempaa ja analyyttisempaa algoritmien vertailua ei tässä työssä suoriteta. 4.1 Yleistä algoritmin toteutuksesta Vinon Kalmanin suodattimen algoritmi, joka on esitetty edellisessä luvussa algoritmina 2, toteutettiin MATLAB-ohjelmistolla erillisenä funktiona Liite A, johon syötetään alkutilan parametrit ˆx, P 0, D 0, ν 0 ja 0, tilamallin tilansiirtomatriisi G k 1, tilamallin virheen kovarianssimatriisi Q k 1, mittausyhtälön mittausmatriisi F k, mittausmallin virheen kovarianssimatriisi R k ja mittaukset y 1:k. Funktio laskee posteriorijakauman parametrien ˆx k, P k, D k, ν k ja k arvot ajanhetkillä t 1, t 2,..., t k. Algoritmin askeleet 1-3 toteutettiin for-silmukassa, joka käy läpi indeksin k arvot 1,..., k. Tällä samalla MATLAB-funktiolla voidaan myös laskea Kalmanin suodattimen posteorijakauman parametrit, sillä vino Kalmanin suodatin on yleistys Kalmanin suodattimesta, kuten edellisissä luvuissa on todettu. Tällöin parametri D asetetaan nollaksi ja vino Kalmanin suodatin redusoituu Kalmanin suodattimeksi. 4.2 Visualisointi ja vertailu Kalmanin suodattimeen Visualisointia varten generoitiin MATLAB-ohjelmistolla satunnainen kaksiulotteinen kymmenen askeleen pituinen reitti, jonka alkutila noudattaa suljettua vinonormaalijakaumaa, jonka parametrit ovat ˆx =, P =, D = 1 1 0.3 0 0.3 1 10 0 10 1 0, v = ja =. Reitin alkutilaksi kiinnitettiin tämän suljetun vino-normaalijakauman huippupiste, jonka arvioitiin kuvan 2 0 1 0.01 0 1 avulla
4. Algoritmin toteutus ja visualisointi 17 1.4 olevan x 0 = ja jonka kovarianssimatriisin numeeriseksi arvioksi saatiin 0.6 0.3749 0.0815 P 0 =. Tämän jälkeen laskettiin paikan estimaatit liitteen A 0.0815 0.6710 MATLAB-funktiolla. Tästä saatu kuva on esitetty alla. 5 4 2 3 3 2 3 2 4 5 5 5 2 1 0 1 4 1 1 4 1 9 6 6 6 0 99 10 10 7 8 8 8 8 7 7 7 todellinen reitti mitattu reitti alkutila todellinen alkupiste KF reitti SKF reitti 10 1 8 6 4 2 0 2 4 6 8 10 Kuva 3. Kuvassa on esitetty kaksiulotteinen satunnainen reitti, jonka alkutila on 1.4 x 0 =. Kuvaan on merkitty eri värein myös mitattu reitti ja Kalmanin suodattimella laskettu reitti KF reitti sekä vinolla Kalmanin suodattimella 0.6 laskettu reitti SKF reitti. Kuten kuvasta havaitaan, eivät erot Kalmanin suodattimella ja vinolla Kalmanin suodattimella lasketuissa tilan estimaateissa ole kovin suuria tämän reitin kohdalla. Tässä työssä on vain tarkoitus visualisoida vinoa Kalmanin suodatinta ja sen antamaa ratkaisua, joten tarkempaa reittien vertailua ei suoriteta.
18 5. YHTEENVETO Tässä kandidaatintyössä esiteltiin vino Kalmanin suodatin, joka on yleistys Rudolf E. Kálmánin mukaan nimetystä Kalmanin suodattimesta. Kalmanin suodatimessa oletus alkutilan ja kohinoiden normaalisuudesta on olennainen ja algoritmin käyttöä rajoittava tekijä. Kun laajennetaan moniulotteista normaalijakaumaa uusilla vinoutta säätelevillä parametreillä ja laajennetaan Kalmanin suodattimen algoritmia, saadaan lisättyä suodattimen käyttömahdollisuuksia. Esimerkiksi sisätiloissa tehtävä paikannus voi hyötyä vinouden lisäämisestä käytettyyn tilamalliin. Työssä havaittiin, että suljettu vino-normaalijakauma on suljettu skalaarimuunnoksissa ja että kun vino-normaalijakaumaan lisätään Gaussista kohinaa, pysyy jakauma suljettuna vino-normaalijakaumana. Käyttämällä Bayesilaista formulointia pystyttiin johtamaan vinon Kalmanin suodattimen eri askeleet. Vinon Kalmanin suodattimen esittelevä propositio myös todistettiin. Lopuksi algoritmi esitettiin tiivistetyssä muodossa. Vertaamalla vinon Kalmanin suodattimen algoritmia Kalmanin suodattimen algoritmiin havaittiin, ettei vinouden lisääminen muuta pohjimmiltaan klassisia Kalmanin suodattimen operaatioita. Ainoa ero ovat yhtäsuuruudet, jotka koskevat uusia vinoutta sääteleviä parametrejä. Lopuksi vinon Kalmanin suodattimen algoritmi toteutettiin MATLAB-ohjelmistolla ja ratkaisua visualisoitiin yhden satunnaisen reitin tapauksessa. Reitille laskettiin myös Kalmanin suodattimen mukaiset tilan estimaatit. Vertailussa havaittiin, etteivät erot tämän kyseisen reitin tapauksessa olleet merkittäviä. Jos haluttaisiin suorittaa tarkempia vertailuja, voisi useampia reittejä estimoida molemmilla suodattimilla. Vertailulla voitaisiin nähdä, soveltuisiko vino Kalmanin suodatin paremmin esimerkiksi sisätiloissa tehtävään paikannukseen.
19 LÄHTEET [1] Ali-Löytty, S., Collin, J. ja Sirola, N. Paikannuksen matematiikka. [verkkodokumentti]. 2010. [viitattu 9.5.2012]. Saatavissa: http://urn.fi/urn:nbn:fi: tty-2011041510672. [2] Kaleva, O. Matemaattinen tilastotiede. [verkkodokumentti]. 2010. [viitattu 7.5.2012]. Saatavissa: http://math.tut.fi/~kaleva/mathstat.pdf. [3] Ali-Löytty, S. On the Convergence of the Gaussian Mixture Filter. Tampere University of Technology [tutkimusraportti]. 892008. [viitattu 21.5.2012]. Saatavissa: http://math.tut.fi/posgroup/aliloytty_report89a.pdf. [4] Naveau, P., Genton, M. and Shen, X. A skewed Kalman filter. Journal of Multivariate Analysis [verkkolehti]. 9420052, pp. 382-400. [viitattu 25.5.2012]. Saatavissa: http://www.stat.tamu.edu/~genton/2005.ngs.jmva.pdf. [5] Flecherm, C., Naveau, P. and Allard, D. Estimating the Closed Skew-Normal distributions Parameters Using Weigted Moments. Statistics & Probability Letters [tutkimusraportti]. 79200919, pp. 1977-1984. [viitattu 25.5.2012]. Saatavissa: ciam.inra.fr/biosp/sites/ciam.inra.fr.biosp/files/rr2009_40. pdf. [6] González-Farías, G., Domínguez-Molina, A. and Gupta, A. Additive properties of skew normal random vectors. Journal of Statistical Planning and Inference [verkkolehti]. 12620041, pp. 521-534. [viitattu 30.5.2012]. Saatavissa: http:// ac.els-cdn.com/s0378375803002805/1-s2.0-s0378375803002805-main. pdf?_tid=90be440e-1e0c-11e2-92f3-00000aacb35d&acdnat=1351105189_ 6d1b25b69a126c308498b1b12ba48f8d. [7] Millson, J. Moment Generating Functions. University of Maryland [verkkodokumentti]. 2005. [viitattu 24.7.2012]. Saatavissa: http://www2.math.umd.edu/ ~millson/teaching/momentgeneratingfunctions.pdf. [8] Ali-Löytty, S. Kalmanin suodatin ja sen laajennukset paikannuksessa. Diplomityö. Tampere 2004. Tampereen teknillinen yliopisto. [viitattu 23.7.2012]. Saatavissa: http://urn.fi/urn:nbn:fi:tty-201012141388.
20 A. VINON KALMANIN SUODATTIMEN TOTEUTUS MATLAB-OHJELMISTOLLA function [ x1, P1, D1, v1, L1 ] = skewkalman x, P,D, v, L,Y, F,R,G,Q % SKEWKALMAN l a s k e e e s t i m a a t i n t i l a l l e x, joka noudattaa % s u l j e t t u a vino normaalijakaumaa. % Input : % x = a l k u t i l a % P,D, v, L = a l k u t i l a n parametrit % Y = m i t t a u k s e t % F = m i t t a u s m a t r i i s i % R = m i t t a u s m a l l i n virheen k o v a r i a n s s i m a t r i i s i % G = t i l a n s i i r t o m a t r i i s i % Q = t i l a m a l l i n v i rheen k o v a r i a n s s i m a t r i i s i. % M i t t a u s m a l l i. % y_{k}=f x_{k}+v % T i l a m a l l i. % x_{k+1} = G x_{k}+w % Mittausten dimensio. s = size Y ; % Output : x1 = [ ] ; P1 = [ ] ; D1 = [ ] ; v1 = [ ] ; L1 = [ ] ; % For l o o p p i posteriorijakauman parametrien r a t k a i s e m i s e e n
A. Vinon Kalmanin suodattimen toteutus MATLAB-ohjelmistolla 21 % r e k u r s i i v i s e s t i. for k = 1 : s 2 D0 = D; P0 = P; Ph= G P G +Q; P = Ph Ph F R+F Ph F ^ 1 F Ph ; D = D P0 G Ph^ 1; L = L+D0 D G P0 D0 ; x = G x+ph F R+F Ph F ^ 1 Y :, k F G x ; x1 = [ x1 x ] ; P1 = [ P1 P ] ; D1 = [ D1 D ] ; v1 = [ v1 v ] ; L1 = [ L1 L ] ; end end