Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Mittauskeskiarvoistus

groovyb [07.01.2010 15:19:02]

#

Tervehdys!

Ongelma on tämä:

kolmea paineanturia luetaan 1000hz nopeudella taustaprosessina, ja tulokset luetaan 10ms välein. tuloksia tulee taulukollinen, (2,100), eli kolme kolumnia, paineanturi 1, 2 ja 3, ja tuloksia 100kipaletta.

näistä sitten otetaan kanavakohtainen keskimediaani, eli lopputuloksena on kolme tulosta, mediaani ekasta anturista, toisesta ja kolmannesta.

näistä sitten piirretään ruutuun käppyrää.

10ms välein ruutuun pamahtaa aina jokaiselta paineanturilta uutta arvoa piirturiin, (oma piirturi jokaisella anturilla). tämän jälkeen alan ottamaan kulmakerrointa ajan suhteen. tämän olen toteuttanut siten että 50 painearvoa lasketaan yhteen ( nykyinen + 49), ja uuden mittatuloksen jälkeen taas sama homma. tästä sitten Uusi mittatulos - edellinen / DT.

Homma toimii muuten mutta kohinaa on silti liikaa. jos vielä keskiarvoistan enemmän, rupeaa softa käymään turhan raskaaksi ja laskutoimituksia ei ehdi 10ms sisällä tekemään, ja reaaliaikaisuus menee päin hemmettiä.

Mitäs vaihtoehtoisia menetelmiä keksitte?

tkarkkainen [08.01.2010 01:11:47]

#

Tuo mediaanifiltterisi tuntuu pienentävän "hyödynnettävän" näytteistystaajuuden kymmenesosaan alkuperäisestä. Onko tuohon jokin syy? Laskentakapasiteetin vähyys?

Ilmeisesti kuvaamasi kulmakerroin ajan suhteen tarkoittaa numeerista derivointia. Se taas on perinteisesti ongelmallinen operaatio, sillä derivaattori korostaa suuria taajuuksia, ja saattaa siten vahvistaa kohinaa huomattavasti suhteessa hyötysignaaliin. Onko tarvitsemasi signaali suodatettu painesignaali vai sen derivaatta?

Lähtisin melkeinpä tarkastelemaan koko järjestelyjä alusta asti: Mistä häiriöt tulevat signaaliin? Voidaanko niiden tasoa pudottaa jo ennen mittausta? Onko AD-muunnoksissa laskostumisenestosuodattimet?

Mediaanisuodatin puree hyvin impulssimaista kohinaa vastaan, mutta millaista mittauksissa esiintyvä kohina sinänsä on? Oletko selvittänyt, millä taajuuskaistalla hyötysignaali on, ja koittanut kehittää muita suodattimia tämän tiedon perusteella? Onko suotimissa otettu huomioon myös vaihesiirto?

Onko tässä muuten jokin säätöjärjestelmä kyseessä? Niissähän yksi tapa selviytyä häiriöisistä mittauksista on kehittää sellainen säätö, jossa ei tarvita sellaista mittaustietoa, jota ei saada riittävän siistiksi :)


Vastausta yritin kirjoittaa, mutta kysymyksiä tuohon taisikin tulla aika paljon :)

Edit: Niin, ja otsikossa puhut keskiarvottamisesta ja viestissä mediaanista. Kummasta on kyse?

groovyb [08.01.2010 08:27:27]

#

häiriöt tulevat paineantureiden venymäluiskista, 0-10v jännite, alueena 0 - 6bar, ja 16bit resoluutiolla. näin kun pieniä mittaeroja luetaan, sekoittuu paineanturin
mv kohinat joukkoon. itse luku tapahtuu suoraan ad muuntimen bufferista.

mediaani on valittu sen takia, että se karsisi mittapiikkejä (1,4,20,17,14,19,70),
eivätkä ne huomioituisi kulmakertoimeen.

yritin rakentaa taajuusmukaista laskua, mutta turhaan. kun luen dataa 10ms välein, suoritan laskelmat ja siirryn loopissa eteenpäin, on jo kulunut yli 10ms, joten seuraava pyyntö tulee "viiveellä". x:n ajat olen ottanut loopin lopussa aina suoraan biossin tick:stä jotta saan tarkan ajan koska uusi mittapiste ja laskelma saapuu, ja käyttänyt sitä derivaattaan.

eli luen ad muuntimesta jo keskiarvoistettua dataa, jonka jälkeen palautan lukutaulukukosta (2,100) keskimediaanin per anturi.


kyseessä on suunnittelemani laite joka tarvitsisi saada valmiiksi, tätä käytetään paineilmatestilaitteiden aikakalibrointiin. yksi vaihtoehto olisi varmaan threadata luku toiseen säikeeseen ja laskenta toiseen, uskoisin että näin olisi mittausvälillä mahdollista poistaa kohinoita enemmän?

mediaanilla juuri yritän tehdä suodatuksen jossa "yli alueen" mittadata suodattuu pois. aluksi keskiarvoistin taulukon, mutta esim anturituloksella 4,5,9,80,10,9,7,6.... tuo piikki 80 sisältyy AVG arvoon ja taas painettiin metsään. mediaanilla se suodattuu paremmin.

häiriötasoa ei voi tiputtaa enää. yksinkertaisesti luen niin matalaa resoluutioväliä että se lähenee kohinan voimakkuutta. 6000mbar / 16 bit mittavälillä nuo mV heittelyt anturissa jo näkyvät suodatusyrityksistä huolimatta :(

tkarkkainen [08.01.2010 16:59:33]

#

Olisi mukava nähdä varsinaista käppyrää eri vaiheista. Eli suodattamaton, suodatettu jne. Toisaalta jos voisit antaa AD-muuntimen lähtödataa jostakin mittauksesta, voisi testailla eri suodatusmahdollisuuksia itsekin ennen kuin neuvoo ihan päin puuta.

Kuvailemasi kohina tosiaan kuulostaa mediaanifiltterin leipälajilta. Toisaalta, onko se ainoa kohinatyyppi, joka mittaustasi häiritsee? Katso mediaanifiltterin antamaa tulosta. Näkyykö siinä vielä teräviä impulsseja? Jos ei, suotimesi toimii. Jos kohina häiritsee silti, tarvitset muunlaisen suotimen mediaanifiltterin ohelle suodattamaan muunlaista kohinaa. Huomaa, että mediaanifiltteri on epälineaarinen, joten suoritusjärjestyksellä voi olla suurikin merkitys.

Sanot saavasi AD-muuntimesta jo valmiiksi keskiarvoistettua dataa. Tarkoittaako tämä sitä, että muuntimessa itsessään on softasuodin, vai että ennen muunnosta käytetään analogista suodinta? AD-muunnettava signaali pitää alipäästösuodattaa analogisesti siten, että muunnokseen ei oteta mukaan sellaisia signaaleita, joiden taajuus on suurempi kuin Fs/2. Sellaiset taajuudet nimittäin ikävästi laskostuvat taajuusalueelle 0...Fs/2, ja häiritsevät siten mittausta.

Tarkasta myös, että EMC-asiat ovat kunnossa analogipuolella. Tässä Freescalen appnotessa saattaisi myös olla jotain ideoita: http://www.freescale.com/files/sensors/doc/app_note/AN1646.pdf

Toivottavasti tästä oli edes jotain apua...

groovyb [08.01.2010 17:45:21]

#

terve!

Keskiarvoistus tapahtuu ohjelmallisesti. tässä sekvenssi:

Luku muuntimen puskurista - > 2,100 taulukkoon - > jokainen anturi omaan taulukkoon - > taulukosta mediaani -> piste käppyrään. käppyrästä 10ms välein lasken 50mittauksen paineet yhteen, ja vähennän tuloksen edellisen 10ms tuloksen panelukemasta, ja jaan tulokset näiden pisteiden aikaerolla.


kuvaa en valitettavasti nyt saa, kotosalla jo. maanantaina voin linkkiä laittaa.

hajontaa on liikaa keskimediaaninkin avulla, pakko joku muu ratkaisu keksiä.
heiluntaa on +-2mbar mediaanista huolimatta :(

tkarkkainen [10.01.2010 03:18:10]

#

Kuinka suurta painetta käytännössä mittaat? Mittausalueestahan tuo 2 mbar ei ole paljoa.

Ehkä odottelen kuvaa, ennen kuin arvailen enempää.

hk [13.01.2010 19:43:50]

#

Jos todellinen mitattava arvo nousee tai laskee jollain aikavälillä suhteellisen tasaisesti, (mukaanlukien ei lainkaan) niin silloin lineaarinen regressio tällä välillä on tehokas tapa saada hyvinkin kohinaisesta signaalista lähes oikeaa arvoa. Tämä toimii aika hyvin minkä muotoisella käyrällä vain, kun vedetään riittävän lyhyitä jaksoja suoriksi, jos se on mittaustaajuuden takia mahdollista.

Muuhunkin säännölliseen muotoon voidaan käyrää tietysti tasata suoraankin, jos tiedetään, että mitattavassa ilmiössä sellaista säännöllisyyttä on. Jos arvo oikesti pompii miten sattuu, niin siihen ei pure mikään muu keino kuin mittaustarkkuden parantaminen, koska kaikki tasaussysteemit lähtevät siitä oletuksesta, että suurimmat vaihtelut ovat virheitä. Suora yliarvojen leikkaaminen toimii vain, kun operoidaan niin pienellä aikavälillä, että tiedetään mahdollisen muutoksen määrä. Jotain ennakkotietoa ja mielellään mahdollisimman paljonkin täytyy olla mitattavasta ilmiöstä ja / tai mittausvirheiden luonteesta, jotta tulosta voidaan tilastollisin keinoin parantaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta