Kalibracijska funkcija

Vse v zvezi s senzorji, takimi ali drugačnimi,... tudi sw

Kalibracijska funkcija

OdgovorNapisal/-a Kroko » 18 Sep 2019, 11:11

Recimo, da imam tabelo petih meritev:

0% = 0.05
25% = 0.56
50% = 0.77
75% = 0.9
100% = 1

Kako bi naredil funkcijo, s katero bi lahko poljubno preračunaval vrednosti naprej in nazaj?
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4465
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 646 krat
Prejel zahvalo: 1467 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kalibracijska funkcija

OdgovorNapisal/-a Kroko » 18 Sep 2019, 11:15

A je to tole:
http://mathworld.wolfram.com/LagrangeIn ... omial.html

Ali pa se v praksi uporablja kaj drugega?
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4465
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 646 krat
Prejel zahvalo: 1467 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kalibracijska funkcija

OdgovorNapisal/-a S53DZ » 18 Sep 2019, 11:41

Jap, če ti linearna interpolacija ni dovolj.
Vedeti je treba, da so višjega reda bolj divje in lahko odstopajo na ozkih segmentih.
Glede na podano pohlevno tabelo ni pričakovati večjega divjanja tudi pri polinomu tretjega reda.
Moje mnenje.
Uporabniški avatar
S53DZ
 
Prispevkov: 1154
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 203 krat
Prejel zahvalo: 389 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 41

Re: Kalibracijska funkcija

OdgovorNapisal/-a marko » 18 Sep 2019, 11:48

Mislim, da je to to ja.
Poglej si tule malo bolj "življenjski" opis raznih interpolacij :) Mi je že prišlo prav nekajkrat..

http://paulbourke.net/miscellaneous/interpolation/
Če ti v življenju ne gre in si nesrečen, se spomni na lastnike Renaultov.
marko
 
Prispevkov: 1022
Pridružen: 18 Jan 2015, 02:00
Zahvalil se je: 117 krat
Prejel zahvalo: 129 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 69

Re: Kalibracijska funkcija

OdgovorNapisal/-a Kroko » 18 Sep 2019, 12:29

Odlično, Hvala. Že dela.
Untitled-1.png
Untitled-1.png (4.48 KiB) Videno 297 krat

Modro so dejanske vrednosti, rdeče pa interpolacija na osnovi zgornje tabele.

Uporabljeno bo pa tole za nastavljanje PWM signala glede na S parameter v g-kodi. Na primer za laser.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4465
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 646 krat
Prejel zahvalo: 1467 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kalibracijska funkcija

OdgovorNapisal/-a s54mtb » 18 Sep 2019, 13:22

Priporocam, da ne uporabljas polinomov. Na prvi pogled je videti zelo dobro, samo hitro pobegne. Priporocam PWL metodo, kjer uporabis daljice znotraj merilnega podrocja. Druga moznost je, da vzames po tri tocke iz intervala in cez napnes kvadratno funkcijo. S tem zmanjsas nelinearnost, malo vec je racunanja, koliko pridobis, si moras pa sam preracunat. Stvari postanejo zanimive, ko imas vec kot en parameter.
Namesto "Zahvali se" sprejemam tudi šalco kofeta: https://www.buymeacoffee.com/s54mtb
Uporabniški avatar
s54mtb
 
Prispevkov: 10174
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1412 krat
Prejel zahvalo: 3488 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 234

Re: Kalibracijska funkcija

OdgovorNapisal/-a MitjaN » 18 Sep 2019, 13:37

MitjaN
 
Prispevkov: 77
Pridružen: 24 Feb 2015, 12:45
Zahvalil se je: 3 krat
Prejel zahvalo: 33 krat
Uporabnika povabil: aly
Število neizkoriščenih povabil: 6

Re: Kalibracijska funkcija

OdgovorNapisal/-a zanka » 18 Sep 2019, 16:55

s54mtb je napisal/-a:Priporocam, da ne uporabljas polinomov. Na prvi pogled je videti zelo dobro, samo hitro pobegne. Priporocam PWL metodo, kjer uporabis daljice znotraj merilnega podrocja. Druga moznost je, da vzames po tri tocke iz intervala in cez napnes kvadratno funkcijo. S tem zmanjsas nelinearnost, malo vec je racunanja, koliko pridobis, si moras pa sam preracunat. Stvari postanejo zanimive, ko imas vec kot en parameter.

Tako je, dejansko se uporabljajo zlepki največ kubičnih polinomov, kajti večanje stopnje vodi v katastrofo.

Ti Lagrangeovi polinomi so dobri samo za teorijo. Seveda je "kakovost" odvisna tudi od izbora točk.
Uporabniški avatar
zanka
 
Prispevkov: 2345
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 105 krat
Prejel zahvalo: 215 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 42

Re: Kalibracijska funkcija

OdgovorNapisal/-a s54mtb » 18 Sep 2019, 17:11

Se to... kubni so v primeru enega parametra y=f(x). Pri vec kot enem je vsota stopenj 3/ Npr. pri y=f(x1,x2) je korekcija kombinacija kvadratne in linearne. Eden od vplivov je ponavadi ali zelo majhen ali linearen. Ce to ni, je nekaj narobe ze v osnovnem principu (kot bi npr. s senzorjem vlage meril temperaturo kot glavno velicino).
Namesto "Zahvali se" sprejemam tudi šalco kofeta: https://www.buymeacoffee.com/s54mtb
Uporabniški avatar
s54mtb
 
Prispevkov: 10174
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1412 krat
Prejel zahvalo: 3488 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 234

Re: Kalibracijska funkcija

OdgovorNapisal/-a Kroko » 19 Sep 2019, 18:05

Se sicer strinjam. Le v mojem primeru ima Lagrange največ četrto stopnjo, pa tudi vrednosti v tabeli so lepo naraščujoče. Mislim, da ni za pričakovati, da bo pobegnil. Ko imaš koeficiente se ga tudi hitro računa.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4465
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 646 krat
Prejel zahvalo: 1467 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kalibracijska funkcija

OdgovorNapisal/-a zanka » 19 Sep 2019, 19:33

Glede na to, da imaš ravno 5 točk, bo polinom 4. stopnje točen v teh točkah. Višje stopnje lahko dobiš le če imaš več točk.

Verjetno ima tvoj polinom koeficiente pri sodih potencah manjše kot koeficiente pri lihih potencah neznanke.
Uporabniški avatar
zanka
 
Prispevkov: 2345
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 105 krat
Prejel zahvalo: 215 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 42

Re: Kalibracijska funkcija

OdgovorNapisal/-a Kroko » 19 Sep 2019, 22:13

Za tole gre:
CNC kontroler generira PWM signal. Duty cycle lahko šofiram v G-kodi s S parametrom. S tem PWM-jem nastavljam moč laserju. G-koda je generirana iz fotografije.
Želim, da mi laser "ujame" vse odtenke sivine vendar še zdaleč ni linearen. Zato sem si zamislil "kalibracijo". Uporabnik bo vnesel, koliko laser naredi "sivne" pri 0%, 25%, 50%, 75% in 100% duty ciklu.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4465
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 646 krat
Prejel zahvalo: 1467 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kalibracijska funkcija

OdgovorNapisal/-a Kroko » 19 Sep 2019, 22:17

Kot "pobeg" je verjetno mišljeno tole:
Untitled-1.png
Untitled-1.png (20.76 KiB) Videno 122 krat

Slika je iz fotošopa.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4465
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 646 krat
Prejel zahvalo: 1467 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Kalibracijska funkcija

OdgovorNapisal/-a xfce » 19 Sep 2019, 23:27

Kroko je napisal/-a:Za tole gre:
CNC kontroler generira PWM signal. Duty cycle lahko šofiram v G-kodi s S parametrom. S tem PWM-jem nastavljam moč laserju. G-koda je generirana iz fotografije.
Želim, da mi laser "ujame" vse odtenke sivine vendar še zdaleč ni linearen. Zato sem si zamislil "kalibracijo". Uporabnik bo vnesel, koliko laser naredi "sivne" pri 0%, 25%, 50%, 75% in 100% duty ciklu.


Bo to uporabnik ocenjeval na oko? Verjetno se nikakor ne spača preveč komplicirati z metodo interpolacije, ker je veliko večja težava dobit dobre podatke :)

Mogoče bi dal prednost rešitvi, kako uporabnik kalibrira stoj. Mogoče bi naredil g kodo, ki nariše kvadratke in jih potem uporabnik sortira .. oz mu daš 20 primerjav, kjer primerja ali je enako, bolj sivo, manj sivo in potem s svojim algoritmom generiraš funkcijo, ki določa moč.

Sicer se mi pa zdi pa kakor vem je pri laserju tako, da praktično nič ne žge, ko pa povpršino rahlo ožge, da je črna gre pa naprej blazno hitro. Tako, da je vse skupaj bolj loterija :) Da ne govorim o kakšnih letnicah na lesu :D


Ena moja stara koda za linearno intepolacijo na podhranjenem 8 bitniku :)

Koda: Izberi vse
static uint16_t harray[50] = {
2300,468,
2350,519,
2400,571,
2450,622,
2500,672,
2550,721,
2600,769,
2650,815,
2700,860,
2750,904,
2800,945,
2850,985,
2900,1022,
2950,1058,
3000,1091,
3050,1122,
3100,1151,
3150,1178,
3200,1202,
3250,1225,
3300,1245,
3350,1264,
3400,1281,
3450,1296,
3500,1310,
};

 uint16_t interpolate(uint16_t *arrptr,uint16_t size, uint16_t inX){

    uint16_t calcres = 0;
    uint8_t          x = 0;
    int16_t a,b,c,d;
    int16_t midres1, midres2;

            while(x<=size){
            if ((inX >=arrptr[x]) && (inX <=arrptr[x+2])){
                calcres = arrptr[x+1];
                a = (arrptr[x]-inX);
                b = (arrptr[x+3]-arrptr[x+1]);
                c = (arrptr[x]-arrptr[x+2]);
             
                midres1 = a*b;
                midres2 = c;
                calcres += (uint16_t)(midres1/midres2);
               
             x=size+1;
           
             
            }
            x=x+2;
        }
   
return (uint16_t)calcres;
   
}


hi_inp = interpolate(harray,50,voltage)
Uporabniški avatar
xfce
 
Prispevkov: 720
Pridružen: 14 Feb 2015, 12:38
Kraj: Poljane nad Škofjo loko
Zahvalil se je: 100 krat
Prejel zahvalo: 214 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 42


Vrni se na Senzorji

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost