Korkeuden mittaamisesta
Testailin ilmanpainemittarisirua BMP085, Boschilta, noin 5 e/kpl, kytkemällä sen Arduino-mikroprosessoriin. Sillä on tarkoitus mitata pyörälläajon reitin korkeusprofiilia paljon tarkemmin kuin GPS antaa. Nimellinen resoluutio yhdessä havainnossa on 1 pascal, eli 0.01 millibaaria eli 1/100 000 ilmakehää. Kun merenpinnan tason läheisyydessä liikutaan 8.34 cm ylös tai alas, niin ilmanpaine muuttuu yhden pascalin.
Mittariin liittyy spesifikaatioiden mukaan monenlaista tarkkuustietoa (joiden ymmärtämiseen perin juurin en ole vielä löytänyt aikaa). Käytännön mittauksessa samalla korkeudella mittauksia kymmeniä tai jopa satoja kertoja sekunnissa toistaen tulee havainnon hajonnaksi eli standardipoikkeamaksi noin 4-7 pascalia, joka korkeudeksi muunnettuna olisi noin 30cm - 60cm.
Yhden mittauksen perusteella reitin korkeustiedon tarkkuus ei pysty kilpailemaan pääkaupunkiseudun reittioppaan kanssa. Mutta kun toistetaan mittausta esim. 4 millisekunnin väliajoin ja lasketaan keskiarvoa, niin keskiarvon tarkkuus paranee suunnilleen siten, että kun mittausten lukumäärä nelikertaistuu, niin keskiarvon suhteellinen virhe (ja sen hajonta) puolittuu. Jos esim. tehtäisiin 16 mittausta toisistaan riippumattomasti samalla paikalla nopsaan, niin niistä lasketun keskiarvoistetun korkeustiedon virhe (keskiarvon hajonta) olisi neljäsosa ylläolevasta, eli noin 7-15 cm.
Jos lähdetään tarkalleen tunnetulta korkeudelta ajelemaan, niin reitin korkeusmuutosten talletus muutaman sentin tarkkuudella oikein ainakin muutamien kymmenien minuuttien ajan tuntuisi tämän perusteella mahdolliselta. Tarkkuuden saamista hankaloittaa se, että ilmanpaine saattaa muuttua samalla paikalla esim. 100 pascalia tunnissa (1 millibaari/h ), ja siis on talletettava uusia vertailupisteita aika ajoin ja esim. takaisin samaan paikkaan palatessa merkitään vallitsevan ilmanpaineen muutos. Voidaan interpoloida se väliajankohtiin. (merkinnät ja muut temput tekee mikroprosessori ohjelmoidusti tietysti) .Tarkkuutta rajoittaa myös se, että jos ajetaan nopeasti korkeudeltaa kovin äkkinäisesti vaihtelevalla reitillä, niin ei ehdi ottaa samalla korkeudella kovin monta näytettä. Mutta eiköhän tuokin pulma ratkea.
Tehdyssä kolmessa mittaustestissä useiden tuntien väliajoin BMP085 ilmoitti absoluuttisen paineen joka kerran noin 100 pascalia (=1 millibarin) pienemmäksi kuin ilmatieteen laitoksen raportoimat merenpinnan korkeudelle muutetut havainnot. Aika tarkka tulos silti, ja Boschin lupausten mukainen. Aiotussa käytössä absoluuttisella virheellä ei ole juurikaan merkitystä, vain suhteellisella.
Mittari BMP085 on kytkettynä Arduinoon, joka voidaan ohjelmoida keskiarvoistamaan näytteitä ajonopeuden ja maaston mukaan optimaalinen määrä.
Alla kuva pienokaisesta. Eikös hän ole aika söpö?
[attachment=0]bmp085.png[/attachment]
BMP085 mittaa myös lämpötilan 0.1 asteen resoluutiolla, joten eipä tarvitse erillistä lämpömittaria. Nyt sitten jäljellä isoja epävarmuustekijöitä sisältävistä mittaustehtävistä on kuumalankamittaus ilmanvirtauksen nopeuden selvittämiseen. Sen kimppuun seuraavaksi. Muta merkitään muistiin gps:stä yksi juttu ensin.
GPS:n vaakasijaintien tarkentaminen
GPS antaa arvion yhden mittauksen x- ja y- arvojen (pituuspiiri, leveyspiiri) virheestä. Jos samalla paikalla toistetaan riippumattomasti mittauksia, niin käsittääkseni toistomittausten keskiarvo antaa vähemmän virheellisen arvon kuin yksi mittaus. Siis sama keskiarvoistamisperiaate kuin edellä korkeuden yhteydessä.
Kun pyörä kuitenkin liikkuu mittausten välillä, niin voisi arvella, että keskiarvoistaminen johtaa aivan mielettömiin lukemiin. Mutta laitteistossa olevat lisäanturit tarjoavat tähän tyylikkään ratkaisun. E72-1 kännykässä on asentoanturi ja kompassi. Kännykkä on pyörässä kiinni kulkusuuntaan nähden vakioasennossa. Lisäksi on miroprosessorin tiedossa vanteen pulssianturista mittausajankohtien välillä kuljettu matka.
Aluksi yksinkertaisuuden vuoksi oletetaan tiedettävän, että polkupyörä kulkee hoipertelematta täsmälleen itäsuuntaan ( x kasvaa, y pysyy vakiona) nopeudella 5 m/s koko gps-mittaussarjan ajan. Olkoon mittaussarjassa 16 gps-havaintoa, 1 sekunnin väliajoin.
Koska y on vakio, niin gps:n antamat 16 y-arvoa voidaan keskiarvoistaa. Keskiarvoistetun y:n virhe on vain 1/4 yhden havainnon virheestä (jos siis mittausvirheet ovat toisistaan riippumattomia). Keskiarvoinen y voidaan ilmoittaa sarjan jokaisen y-koordinaatin tarkemmaksi arvoksi. Tämähän kävi helposti!
x:n oikeat arvot muuttuvat pyörän liikkeen takia 5 m kohti itää joka sekunti. Viimeinen arvo on 5 m * (16-1) = 75 m idempänä kuin ensimmäinen. Jos halutaan arvioida ensimmäisen eli läntisimmän sijainnin x-koordinaatti, niin kustakin gps-mittauksen antamasta x-koordinaatista on vähennettävä alkupisteestä lähtien kuljettu metrimäärä. Näin saatiin 16 havaintoa alkupisteen sijainnille. Keskiarvoistetaan ne. Alkupisteen sijainnin virhe on nyt enää 1/4 yhden havainnon virheestä. Muiden pisteiden x-koordinaatit tarkentuvat myös, kun käytetään alkupisteen keskiarvoistettua x-koordinaattia, johon lisätään 5 m:n monikerta (tarkasti mitattu).
Vaikka ylläkuvattu esimerkki on yksinkertaistettu, niin lienee helppo huomata, että olennaisesti sama periaate voidaan soveltaa myös muihin reittimuotoihin kuin suoraan viivaan lännestä itään vakionopeudella. Mikä tahansa suora viiva tunnettuun suuntaa on helppo intuitiivisesti laskea samoin, ja itse asiassa mikä tahansa (muista antureista) tarkoin tunnettu käyrä käy laskentaan.
Näin gps:n arvot saadaan tarkennettua huomattavasti. Lienee niin, että kaupallisissa autonavigaattoreissa sovelletaan tämmöistä, kun ne ilmeisesti pystyvät tunnistamaan kaistasijainninkin, vaikka yksi gps-havainto (ainakin kännyssäni E72-1) saattaa sisältää 10-30 metrin epätarkkuuden.
Unelmoin mittaustarkkuudesta, joka sallisi luotettavasti tietää, kumpaa laitaa erillisellä pyörätiellä ajettiin. Siis noin 1-2 metrin tarkkuudesta.