Gå til innhold

C#: Trenger hjelp til en ulinjær tankpeilealoritme


Anbefalte innlegg

Hei, har planer om å lage et lite program som rekner om tankpeilinger i cm til liter, i C#.

Problemet er tanker der en ikke kan bruke linjære funksjoner.

 

post-151876-1242604411_thumb.jpg

Her er en peiletabell til f.eks en vanntank, som ser slik ut:

000 cm -	0 l
010 cm -   50 l
020 cm -   95 l
030 cm -  135 l
040 cm -  175 l
050 cm -  220 l
060 cm -  265 l
070 cm -  315 l
080 cm -  375 l
090 cm -  445 l
100 cm -  525 l
110 cm -  605 l

Har lagt med et bilde av tanken også.

 

Jeg trenger hjelp til en mest mulig effektiv algoritme, der jeg kan skrive in et vannivå på f.eks 37 cm, og få ut hvor mange liter det tilsvarer. Tror interpolering er stikkordet her.

 

Noen som kan hjelpe meg litt på vei?

Endret av caid
Lenke til kommentar
Videoannonse
Annonse

Så lenge du ikek har noe matematisk uttrykk for takens areal i alle nivåene så må du vel antagligvis lage deg en tabell anntar jeg, som representerer arealet for den angitte høyden. Så er det jo bare å legge sammen alle lagene f.o.m. bunnen t.o.m. anngitt høyde. Er "utsnittet" i tanken lineært eller om den følger en viss matematisk formel så kan du jo gjøre anntagelser i arealet du tar vekk. Er f.eks. utsnittet sirkelformet så kan du jo veldig enkelt bruke SIN og COS for å finne ut hvor mye av totalarealet som er "skåret" vekk. Er utsnittet mere som en jevn parabel så vil det jo være kjappt å måle seg frem til hvilken formel du må bruke. Er den derimot uregelmessig så må du vel sette opp en rekke med målinger og bruke dette når du beregner arealet. I så fall må du ha tette målinger for å få det så nøyaktig som mulig

 

Når du har disse arealene så er det bare å summere dem opp

Lenke til kommentar

Joda, planen var hele tiden at tabellene for tankene skulle legges inn i en xml fil, laget bare et lite bilde også, for å enklere vise hva jeg var ute etter ;)

 

Jeg ville brukt en kurvefunksjon for interpolering tror jeg.

 

Tror jeg går for splinefunksjonen som er brukt i dette eksempelet: SplineInterpolation

Polynom eksempelet ser ut til å gi litt for store svingninger.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...