Hallo zusammen, Ich habe einen Tankgeber am Atmega644P über einen Spannungsteiler angeschlossen. Soweit funktioniert das ganze auch. Allerdings sind die Ergebnisse meiner Berechnungsformel leider nicht linear. Folgende ADC Werte erhalte Ich: Tank voll - 290 (soll 22liter entsprechen, Wert ist korrekt) Tank 3/4 - ca 500 (soll 16,5 liter entsprechen, Berechnung ergibt nur ca 14l) Tank halbvoll - 600 (soll 11 liter entsprechen, Berechnung ergibt nur ca 8,2l) Tank 1/4 - ca 700 (soll 5,5l entsprechen, Berechnung ergibt nur ca 3,5l) Tank leer - 780 (soll 0liter entsprechen, Wert ist korrekt) Meine derzeitige c Formel lautet: tank_tmp = (780-adc_wert)*0.0448979591836735; Der Faktor 0.044... ist wie folgt entstanden: 780 (min Wert) - 290 (max Wert) = 490 Schritte 22 liter (Tank voll) geteilt durch 490 Bauart bedingt hat der Tankgeber bei Tank leer den größten Widerstand. Wie kann ich die Werte "korrigieren" ? Danke schon mal. Gruß
Die ADC-Werte sind ja ganz nett: Sie sagen, was aus deiner Schaltung herauskommt. Sie sagen aber nicht, mit welcher Spannung gearbeitet wird und wie die Widerstände mit dem Geberwiderstand verschaltet sind. Zeig doch mal eine kleine Skizze, sonst wird das Raten zu nervig.
Moin ist das ein Moped-Tank? Das wird dann nie linear. Gruß Holger
Oder sage einfach welche Widerstandswerte des Gebers sich für die Zustände leer, 1/4, 1/2, 3/4, voll ergeben. Dann lässt sich da schon was machen!
Frank S. schrieb: > Wie kann ich die Werte "korrigieren" ? Ein Tank muss ja nicht linear sein, die Höhe des Schwimmers (oder was du sonst als Tanksensor hast, du schreibst es ja nicht) kann durchaus unlinear mit dem Tankvolumen zusammenhängen. Das kann eine Tabelle lösen, mit stückweiser Interpolation.
MaWin schrieb: > Ein Tank muss ja nicht linear sein, die Höhe des Schwimmers (oder was du > sonst als Tanksensor hast, du schreibst es ja nicht) kann durchaus > unlinear mit dem Tankvolumen zusammenhängen. Kann nicht nur, sondern ist es praktisch immer.
Das haben wir festgestellt: 1) Tankgeber sind nicht unbedingt linear. Bei alten Autos war die Anzeige ähnlich: Entweder ging es zu schnell von voll auf halb, oder zu langsam - und dafür schnell von halb auf leer. Die waren nicht korrigiert. 2) Ein Spannungsteiler verändert das nochmal. 3) Wenn man den Widerstandsverlauf des Tankgebers kennt, und die Anschaltung (Spannungsteiler) an den ADC, lässt sich der Füllstand aber mit etwas Berechnung deutlich genauer anzeigen. 4) Wenn Frank S. (blaueslicht) keine Daten liefert, kann man ihm aber nicht helfen.
Frank S. schrieb: > Meine derzeitige c Formel lautet: > tank_tmp = (780-adc_wert)*0.0448979591836735; Wie soll man denn mit ca.-Werten eine vernünftige Formel aufstellen. Hast du nun Werte für "Tank 3/4" und "Tank 1/4" oder nicht. Zumindest der für "Tank 3/4" scheint arg aus der Reihe zu fallen.
Versuchs doch mal so: Tank leermachen und ADC-Messergebnis aufschreiben. Einen Liter Sprit reinkippen, aufschreiben, und das ganze widerholen bis der Tank voll ist. Wenn du dann die Kennlinie ADC-Messwert/Liter zeichnest, solltest du sehen, dass die Kennlinie krumm ist, da Tanks selten eine regelmäßige Form haben. Oder du nimmst statt einem Faktor (deine ~0,045) mehrere, jeweils zwischen 1, 0,75, 0,5, 0,25 und 0 Tank berechnet. Das sollte ausreichend genau sein.
Moin, hätt ich gewusst dass es so viele Nachtaktive hier gibt, wäre ich noch ein bissel wach geblieben :) Es ist ein Tankgeber mit Schwimmer (30-180 Ohm) in Reihe mit einem 75 Ohm Widerstand an 5V, was auch AREF ist. Sieht genauso aus, nur die Werte sind nicht gleich: http://www.ebay.de/itm/Tankanzeige-Tankgeber-Tankuhr-Universal-12-24V-Boot-Traktor-Schlepper-240-33-Ohm-/281147480180?pt=Bootsteile_Zubeh%C3%B6r&hash=item4175b21874 Der Tank ist Rechteckig (Bootstank) und das Poti des Gebers soll mittig im Tank platziert werden. Der Schwimmer soll dann den maximalen Weg von oben nach unten gehen können. Berechnet habe ich folgende Spannungswerte über den Tankgeber: 1,49V voll bis 3,55V leer. Stimmt auch einigermaßen mit der Realität überein. Tank 1/1 - 32 Ohm 3/4 - 57 Ohm 1/2 - 96 Ohm 1/4 - 145 Ohm 0 - 186 Ohm Wie Oldie bereits schrieb, ist das Problem dass die Anzeige zu schnell von voll auf halb geht.
Frank S. schrieb: > Wie Oldie bereits schrieb, ist das Problem dass die Anzeige zu schnell > von voll auf halb geht. Das Problem ist, dass du mit einer linearen Gleichung keinen nichtlinearen Zusammenhang modellieren kannst.
Oldie schrieb: > Das haben wir festgestellt: > > 1) Tankgeber sind nicht unbedingt linear. > Bei alten Autos war die Anzeige ähnlich: > Entweder ging es zu schnell von voll auf halb, > oder zu langsam - und dafür schnell von halb auf > leer. Die waren nicht korrigiert. > > 2) Ein Spannungsteiler verändert das nochmal. Wenn du damit auf die Linearität des Systems anspielst - Das kann nicht sein. Der Spannungsteiler ist ein (bis auf geringe parasitäre Effekte die bei dir kaum zum Tragen kommen) eine hochgradig lineare Schaltung. Der Spannungsteiler ändert nichts an der Linearität oder Nichtlinearität. > 3) Wenn man den Widerstandsverlauf des Tankgebers > kennt, und die Anschaltung (Spannungsteiler) an > den ADC, lässt sich der Füllstand aber mit etwas > Berechnung deutlich genauer anzeigen. Das nennt man Modellbildung.
Frank S. schrieb: > Meine derzeitige c Formel lautet: > tank_tmp = (780-adc_wert)*0.0448979591836735; Mit der Nachkomma-Genauigkeit könntest du deinen Tankinhalt auf das Atom genau ausmessen, vermutlich noch darunter ;-) Ob das deine Controller-Arithmetik das auch so genau kann (Rundungsfehler) oder ob du eine derartig feine Auflösung brauchst, oder ob dein Tankinhalt wirklich so exakte 22,00000000000000000000 Liter Inhalt hat, weißt nur du allein. ein Schritt (diskreter Wert) kann halt nur 22 Liter / 490 Schritte = 0,4489 ... also, ca. 45 Milli-Liter auflösen. also ergäbe ein Meßwert in Voll-Aussteuerung einem Tankinhalt von 22,00000000000002e+16 Liter ("genau" berechnet), bzw. 22,050 Liter ("gerundet") Da kannst du locker mit Integer-Arithmetik rechnen ....
123 schrieb: > Wenn du damit auf die Linearität des Systems anspielst - Das kann nicht > sein. Der Spannungsteiler ist ein (bis auf geringe parasitäre Effekte > die bei dir kaum zum Tragen kommen) eine hochgradig lineare Schaltung. > Der Spannungsteiler ändert nichts an der Linearität oder > Nichtlinearität. Das System ist aber nicht einfach nur ein Spannungsteiler. Bei einem variablen Widerstand(Potigeber) gegen Masse in Serie mit einem Festwiderstand ist Ua=Uref*Rvar/(Rfest+Rvar), mit Rvar als Eingangsgröße, und das ist alles andere als linear.
:
Bearbeitet durch User
Gerhard W. schrieb: > und das ist alles andere als linear. Eben, darum: Mike schrieb: > Das Problem ist, dass du mit einer linearen Gleichung keinen > nichtlinearen Zusammenhang modellieren kannst.
Gerhard W. schrieb: > Das System ist aber nicht einfach nur ein Spannungsteiler. Bei einem > variablen Widerstand(Potigeber) gegen Masse in Serie mit einem > Festwiderstand ist Ua=Uref*Rvar/(Rfest+Rvar), mit Rvar als > Eingangsgröße, und das ist alles andere als linear. Das sind alles Widerstände, egal ob Poti oder Reihenwiderstand. Ich sehe hier kein einziges nichtlineares Bauelement. Wodurch soll hier eine Nichtlinearität auftreten? Vorausgesetzt natürlich, daß das Poti nicht logarithmisch ist, was ich aber bei einem Tankgeber nicht annehme. Selbst der Tank ist rechteckig, hat also keine Verjüngungen oder sonstige Verformungen.
Der Tank hat doch einen Inhalt von xxx Kubik zentimetern. Bei "hoch 3" (Kubik) kann der Zusammenhang zwischen Füllhöhe und Inhalt doch nicht linear sein, oder bin ich noch nicht ganz wach? MfG Paul
?!? schrieb: > Wodurch soll hier eine > Nichtlinearität auftreten? Vorschlag: Nimm Excel und mach dir eine Tabelle für den Füllstand von 0 bis 1 mit Schrittweite 1/10. Dann zeichne ein Diagramm. Sieh dir die Kurve an. Sie ist stetig aber nicht linear.
?!? schrieb: > Wodurch soll hier eine Nichtlinearität auftreten? Thema verfehlt Es geht um die Linearität zwischen Widerstand bzw. Spannung und Literzahl.
Paul Baumann schrieb: > Bei "hoch 3" (Kubik) kann der Zusammenhang zwischen Füllhöhe und Inhalt > doch nicht linear sein Der Tank wird doch nicht aus eine Ecke heraus gefüllt ...
Mike schrieb: > ?!? schrieb: >> Wodurch soll hier eine Nichtlinearität auftreten? > > Thema verfehlt > > Es geht um die Linearität zwischen Widerstand bzw. Spannung und > Literzahl. Ganz und gar nicht, ich habe nur auf den Einwurf von Gerhard geantwortet, der mehrere Widerstände anführte und dann sagte, daß diese "alles andere als linear" seien. Beim Gesamtsystem ist mir schon klar, daß zum Beispiel auch durch den Kreisbogen, den der Schwimmer zwischen seiner oberen und unteren Stellung beschreibt, eine Nichtlinearität reinkommt.
?!? schrieb: > Ganz und gar nicht, ich habe nur auf den Einwurf von Gerhard > geantwortet, der mehrere Widerstände anführte und dann sagte, daß diese > "alles andere als linear" seien. Nochmals, ganz langsam geschrieben: Es ist kein klassisches Poti sondern es sind ein Festwiderstand und ein veränderlicher Widerstand. Und das ergibt auch mit einem linearen Widerstand eine gekrümmte Kennlinie. Glaub es, probiere es aus oder rechne es.
Gerhard W. schrieb: > ?!? schrieb: > Ganz und gar nicht, ich habe nur auf den Einwurf von Gerhard > geantwortet, der mehrere Widerstände anführte und dann sagte, daß diese > "alles andere als linear" seien. Dann versuche mal, die Gleichung
1 | Ua=Uref*Rvar/(Rfest+Rvar) |
mit Rvar als unabhängiger Variable in die Form
1 | y = mx + b |
zu bringen.
Und jetzt mit Werten aus deinem anderen Post, oben rechts im Diagramm steht die Formel die der gepunkteten Linie entspricht.
ge-nka schrieb: > Unbenannt.PNG Und wie kommst du auf die Werte für die Spannung? Bestimmt nicht mit o.g. Spannungsteilergleichung. Du drehst die mit deinem Excel-Sheet im (falschen) Kreis. Guck dir mal deinen Korrelationskoeffizienten an. Spätestens der sollte dich bei Auswertung von Messungen nachdenklich stimmen.
Georg G. schrieb: > ?!? schrieb: >> Wodurch soll hier eine >> Nichtlinearität auftreten? > > Vorschlag: Nimm Excel und mach dir eine Tabelle für den Füllstand von 0 > bis 1 mit Schrittweite 1/10. Dann zeichne ein Diagramm. Sieh dir die > Kurve an. Sie ist stetig aber nicht linear. Excel kann dir dann auch zusätzlich mit Regression die Formel darstellen die es idealerweise beschreibt.
Dennis Heynlein schrieb: > Georg G. schrieb: >> ?!? schrieb: >>> Wodurch soll hier eine >>> Nichtlinearität auftreten? >> >> Vorschlag: Nimm Excel und mach dir eine Tabelle für den Füllstand von 0 >> bis 1 mit Schrittweite 1/10. Dann zeichne ein Diagramm. Sieh dir die >> Kurve an. Sie ist stetig aber nicht linear. > > Excel kann dir dann auch zusätzlich mit Regression die Formel darstellen > die es idealerweise beschreibt. Sorry zu spät gelesen :)
Da sind die Formeln die in Zellen stecken, wurde natürlich angenommen 3,55V ist 100% und 1,49 0% und dann die Zwischenschritte berechnet 25%, 50%, 75%. deswegen ist die Kurve so linear. mehr Input aus dem Satz konnte man nicht rauskitzeln: Berechnet habe ich folgende Spannungswerte über den Tankgeber: 1,49V voll bis 3,55V leer. Stimmt auch einigermaßen mit der Realität überein. Und ADC wurde dann mit 1023/5*U(inV) berechnet.(wurde angenommen, dass die Referenzspannung 5V beträgt)
Frank S. schrieb: > Berechnet habe ich folgende Spannungswerte über den Tankgeber: 1,49V > voll bis 3,55V leer. Stimmt auch einigermaßen mit der Realität überein. > > Tank > 1/1 - 32 Ohm > 3/4 - 57 Ohm > 1/2 - 96 Ohm > 1/4 - 145 Ohm > 0 - 186 Ohm ge-nka schrieb: > Da sind die Formeln die in Zellen stecken, wurde natürlich angenommen > 3,55V ist 100% und 1,49 0% und dann die Zwischenschritte berechnet 25%, > 50%, 75%. > deswegen ist die Kurve so linear. Die linearen Zwischenwerte entstammen leider einem völlig unpassenden Modell und stimmen nur bei den beiden Punkten mit den Meßdaten überein. Man muss schon die Spannungsteilergleichung mit den Fixpunkten 1,49V @ 32Ω und 3,55V @ 186Ω benutzen. Wenn man am Spannungsteiler 5V anliegen hat und den oberen Widerstand zu 75Ω wählt kommen genau die genannten Fixpunkte raus Tank 1/1 32 Ω 1,49 V 22,0 l 3/4 57 Ω 2,15 V 16,5 l 1/2 96 Ω 2,80 V 11,0 l 1/4 145 Ω 3,28 V 5,5 l 0 186 Ω 3,55 V 0,0 l
Mike schrieb: > Blitzmerker, lies mal weiter oben ... Gelesen, nur hat sich noch niemand direkt über die Gleitkomma Verarbeitung gewundert.
Rudolph schrieb: > Mike schrieb: >> Blitzmerker, lies mal weiter oben ... > > Gelesen, nur hat sich noch niemand direkt über die Gleitkomma > Verarbeitung gewundert. Doch, hier zum Bleistift: Wegstaben Verbuchsler schrieb: > Mit der Nachkomma-Genauigkeit könntest du deinen Tankinhalt auf das Atom > genau ausmessen, vermutlich noch darunter ;-)
Er kann es ja auch ohne Gleitkommazahlen berechnen: ((780-290)*449)/10 = 22001 Milliliter Auf eine Ungenauigkeit von 1ml kommt es doch bestimmt nicht an. Er muss ja nicht unbedingt ein Polynom nutzen, es reicht doch wenn er mehrere lineare Teilabschnitte aus den Werten der Tabelle definiert.
:
Bearbeitet durch User
Mike J. schrieb: > Er kann es ja auch ohne Gleitkommazahlen berechnen: > ((780-290)*449)/10 = 22001 Milliliter Eine Division durch 10 ist für den µC nun leider immer noch eine eher mühselige Operation. Wenn dann sollte man die Konstanten so wählen, dass man durch eine glatte Zweierpotenz teilen kann. Damit sollte der Atmega644P es locker schaffen, den Tankinhalt ein paarhundert Mal pro Sekunde zu berechnen.
Mike schrieb: > den Tankinhalt ein paarhundert Mal pro > Sekunde zu berechnen. Wobei es sich empfiehlt, immer über 1000 Messungen oder mehr zu mitteln. Die Brühe schwappt nämlich ein wenig hin und her.
@Frank Oh, Wunder! Ein Gefäß, das einen Querschnitt hat, der konstruktiven und crashtechischen Gesichtspunkten folgt. Ein Geber, der bestimmt schon viel von Bögen und Winkelfunktionen gehört hat, aber noch nie etwas von Linearität. Ein Poti, das zwar Wasser- und Benzindicht ist, bei Erschütterung, Wärme und Kälte funktioniert, aber noch nie was von ppm und Genauigkeit gehört hat. ... und das Ergebnis ist nicht linear. - Eine Riesensauerei ist das aber auch. Vielleicht solltest Du Atmel verklagen;-)
Georg G. schrieb: > Wobei es sich empfiehlt, immer über 1000 Messungen oder mehr zu mitteln. > Die Brühe schwappt nämlich ein wenig hin und her. Ha ha, ihr seid ja ganz schön gemein. @ Frank S. (blaueslicht) An den ADC-Pin vom Spannungsteiler wird noch ein 100nF Kondensator gegen Masse gelötet und eine Messung pro Minute sollte für diese Zwecke ausreichen.
Frank S. schrieb: > Es ist ein Tankgeber mit Schwimmer (30-180 Ohm) in Reihe mit einem 75 > Ohm Widerstand an 5V, was auch AREF ist. > Ich habe einen Tankgeber am Atmega644P über einen Spannungsteiler > angeschlossen. Soweit funktioniert das ganze auch. Allerdings sind die > Ergebnisse meiner Berechnungsformel leider nicht linear. Wie anderweitig im Thread bereits klargestellt (auch wenn es natürlich wie immer Idioten gibt, die es nicht checken, aber trotzdem meinen, ihren Senf zum Thread beitragen zu müssen), liegt das daran, daß der Zusammenhang tatsächlich auch nicht linear ist. > Der Tank ist Rechteckig (Bootstank) Rechtecke sind Flächengebilde und haben dementsprechend unabhängig von Form und Größe immer exakt das Volumen 0, da ihnen schlicht die Ausdehnung in die dritte Dimension fehlt. Du meintest eigentlich: quaderförmig oder, etwas allgemeiner: prismatisch. Das beseitigt aber nur eine der vielen Nichtlinearitäten in deinem Zusammenhang. Selbst wenn man die nicht systematischen Nichtlinearitäten in den Skat drückt (ADC-Wandlerkennlinie, Sensorpoti-Kennlinie) und sie näherungsweise als linear annimmt, so verbleiben doch immer noch zwei systematische nichtlineare Teilzusammenhänge: 1) Füllstandsmesser mit Schwimmer sind üblicherweise so konstruiert, daß der Schwimmer eine Kreisbahn beschreibt. Nur wenn die Schwimmerstange sehr lang im Vergleich zur Schwimmerauslenkung ist, könnte man hier von einem näherungsweise linearen Zusammenhang ausgehen. Da Tank-Konstrukteure aber aus mehreren Gründen üblicherweise dazu neigen, das Verhältnis zwischen Oberfläche und Volumen eines Tanks zu minimieren, den also tendenziell immer in Richtung Kugel optimieren, ist fast immer auch die Länge der Schwimmerstange in der gleichen Größenordnung wie die Auslenkung des Schwimmers. Und dann ist der Zusammenhang eben nicht mehr mit hinreichender Genauigkeit linear, sondern er folgt einer trigonometrischen Funktion. 2) Deine Schaltung selber ist auch nichtlinear. Vcc o------- | _ | |R1 |_|75 | *-----o Vm | _ | |R2 |_|30..180 | --- Nach den Gesetzen eines Spannungsteilers gilt: R2 R1 + R2 -- = ------- Vm Vcc Umstellen nach R2: R1 * Vm R2 = -------- Vcc - Vm Das ist ganz offensichtlich KEINE lineare Gleichung, denn sie läßt sich auf keine denkbare Weise in eine von deren Normalformen überführen. Auch wenn dein ADC-Wert also linear von Vm abhängt UND der variable Widerstand R2 linear vom Volumen des Füllstands abhängt, so ist also doch der Gesamtzusammenhang mit absoluter Sicherheit nichtlinear. > Wie kann ich die Werte "korrigieren" ? Ganz einfach: 1) Eine Gleichung aufstellen, die korrekt den systematischen Gesamtzusammenhang beschreibt. Dazu ist im Minimum neben den dir von anderen im Verlaufe des Threads mühsam aus der Nase gezogenen Angaben noch Detailwissen über die Sensorkonstruktion nötig. Also: Länge der Schwimmerstange und Höhe der Schwimmerauslenkung. 2) Anwendung eines geeigneten Optimierungsverfahrens auf diese Gleichung unter Verwendung der bekannten Lösungen (also deiner 5 Beispielmeßwerte). Wenn du dazu zu faul oder zu doof bist, dann bleibt dir nur das im Thread bereits beschriebene "Auslitern" zur Gewinnung einer Wertetabelle, die den Zusammenhang für deine Zwecke hinreichend genau beschreibt und ggf. die Interpolation zwischen den Stützpunkten aus dieser Wertetabelle. Diese Lösung ist zwar im Allgemeinen die Lösung der Dummen, die in der Schule in Mathe nicht aufgepaßt haben, sie hat aber auch einen ganz wichtigen Vorteil: Sie funktioniert auch dann noch recht gut (und mit zunehmender Zahl Stützstellen immer besser), wenn der Tankkörper kein Prisma und auch sonst kein regulärer, mit einfachen Formeln beschreibbarer Körper ist. Deswegen ist es garnicht so ungewöhnlich, daß auch Leute sie verwenden, die ihre Hausaufgaben immer gemacht haben. Das werden die mit wachsender Wahrscheinlichkeit machen, je irregulärer die Form des Tanks ist.
Mike J. schrieb: > An den ADC-Pin vom Spannungsteiler wird noch ein 100nF Kondensator gegen > Masse gelötet und eine Messung pro Minute sollte für diese Zwecke > ausreichen. Bei dem niederohmigen Messteiler aber bitte mit Vorwiderstand. Sonst ist die Zeitkonstante erbärmlich klein. Georg G. schrieb: > Mike schrieb: >> den Tankinhalt ein paarhundert Mal pro Sekunde zu berechnen. > > Wobei es sich empfiehlt, immer über 1000 Messungen oder mehr zu mitteln. Die Umrechnung braucht dabei aber nur einmal statt zu finden ;-)
> Wobei es sich empfiehlt, immer über 1000 Messungen oder mehr zu mitteln.
Unsinn!
Außer bei einem Crash tut sich bei einem Tank, in kurzer Zeit nichts.
Ich unterstelle dabei allerdings, dass der 100KW Motor nicht an einem
Schnapsglas hängt.
Bei guten Mikrokontrollern finden 1000 Messungen im Millisekundenbereich
statt, also noch weniger als einmal Schwapp vor und zurück.
Natürlich ist es nicht verboten einen Messzyklus vom 0,001 Schwapp zu
initialisieren und das Ergebnis jede alle 1/100 Sekunde auszugeben.
Praktiker schrieb: > Die Umrechnung braucht dabei aber nur einmal statt zu finden Denkt denn niemand an den armen Prozessor? Was macht der in der restlichen Zeit? Muss er sich langweilen? SCNR :-)
Georg G. schrieb: > Muss er sich langweilen? Ne, der kann Fließkommaberechnungen machen. Man kann bei Excel auch polynomische Trendlinien anfordern. Z.B 2. Grades. Das gibt dann eine Multiplikation und eine Addition mehr. Das sollte die Nichtlinearität verbessern.
DirkB schrieb: > Man kann bei Excel auch polynomische Trendlinien anfordern. Z.B 2. > Grades. > Das gibt dann eine Multiplikation und eine Addition mehr. Ein Polynom zweiten Grades ist zur Beschreibung der Abhängigkeit wohl kaum geeignet. Abschnittsweise Spline Interpolation mit kubischen Splines wäre eine geeignete Methode, um den funktionalen Zusammenhang zu approximieren. http://de.wikipedia.org/wiki/Spline-Interpolation
Ich mache das in solchen trivialen Fällen immer mit 17 Stützpunkten und linearer Interpolation dazwischen. Hier würden sogar locker die 5 Stützpunkte vom ersten Post reichen. Dann muss man mit ein wenig Nachdenken überhaupt nicht teilen. Denn ein /16 oder ein /4 kann einfach optimiert werden...
:
Bearbeitet durch Moderator
Lothar Miller schrieb: > Ich mache das in solchen trivialen Fällen immer mit 17 Stützpunkten und > linearer Interpolation dazwischen. Hier würden sogar locker die 5 > Stützpunkte vom ersten Post reichen. Sei vorsichtig mit dem, was du sagst, Lothar :-) c-hater schrieb: > Wenn du dazu zu faul oder zu doof bist, dann bleibt dir nur das im > Thread bereits beschriebene "Auslitern" zur Gewinnung einer > Wertetabelle, die den Zusammenhang für deine Zwecke hinreichend genau > beschreibt und ggf. die Interpolation zwischen den Stützpunkten aus > dieser Wertetabelle.
Man kann auch mit 8 Personen eine Kuh melken: 4 fassen je eine Zitze des Euters und die anderen 4 heben und senken die Kuh. Man könnte ein Aufgabe verhältnismäßig schnell und einfach lösen -muß man aber nicht.... ;-) MfG Paul
Paul Baumann schrieb: > Man kann auch mit 8 Personen eine Kuh melken: 4 fassen je eine Zitze > des Euters und die anderen 4 heben und senken die Kuh. LOL Ich sehe es auch so. Man kann es einfach oder schwer machen. Wie einfach es sein darf, ergibt sich indirekt aus der Genauigkeitsanforderung. Die ist aber nicht beschrieben. Oft reicht eine lineare Interpolation zwischen den 5 Werten (voll, 3/4, 1/2, 1/4, leer). Ich würe eventuell noch "ganz leer" hinzunehmen, wenn "leer" eigentlich den Beginn der Reserve kennzeichnet.
Am Wichtigsten ist doch das letzte Zehntel (oder von mir aus Sechzehntel) ;-) damit es besser rechnen läßt. des Tankinhaltes, weil das entscheidend ist, ob ich 10 Meter vor der nächsten Tankstelle auf der Piste stehenbleibe oder nicht. Es ist immer das Gleiche: Man kann es treiben, aber auch übertreiben. MfG Paul
:
Bearbeitet durch User
Carsten R. schrieb: > Wie einfach > es sein darf, ergibt sich indirekt aus der Genauigkeitsanforderung. So ist es. Und offensichtlich hat die erzielte Genauigkeit dem TO wohl nicht gereicht, denn auf eben die Verbesserung der Genauigkeit zielte sein Frage im OP ja wohl ganz offensichtlich ab. Wer lesen kann, ist klar im Vorteil...
c-hater schrieb: > Und offensichtlich hat die erzielte Genauigkeit dem TO wohl > nicht gereicht, ... ... und zwar genau, weil er es gegenüber der vorgeschlagenen jeweils linearen Interpolation zwischen den 5 Stützpunkten mit einer linearen Approximation nur zwischen den beiden Endpunkten der Füllstandskennlinie versucht hat. Wenn du dir den Verlauf der Kurve einmal ansiehst, würdest du auch verstehen, warum diese Art der Interpolation über eine konkav Funktion keine vernünftige Genauigkeit liefern kann, sondern dazwischen Fehler von mehreren Litern produziert. Es kommt für die Anwendung sicher nicht auf Milliliter an.
c-hater schrieb: > Wer lesen kann, ist klar im Vorteil... Ich hab es schon gelesen. Er hat ein Problem damit, daß die "Kontrollstellen" nicht auf einer Linie zwischen Minimum und Maximum liegen. Verwendet man jedoch diese Kontrollstellen als Stützpunkte zwischen denen man interpoliert, so hat man schon erheblich genauere Ergebnisse. Aber er hat nirgends geschrieben wie genau es denn nun werden soll! Wenn man alle 25% eine Stützstelle hat, so wird selbst eine liniare Interpolation zwischen den Stützstellen wohl kaum einen Fehler von 10% aufweisen. Solange die tatsächliche Kennlinie nicht völlig verrückt verläuft, kann man mit wenigen Stützstellen akzeptabel genaue Ergebnisse erzielen, ohne daß man die Interna des Tanks und des Tankgebers kennen müßte. Die Genauigkeit ließe sich simpelst durch weitere Stützstellen den Anforderungen anpassen. Nebenbei: Es ist schon erstaunlich mit wie wenigen Stützstellen man einen Sinus mit linearer Interpolation annähern kann, wenn man die Stützstellen richtig platziert.
:
Bearbeitet durch User
Mathematiker schrieb: > c-hater schrieb: >> Und offensichtlich hat die erzielte Genauigkeit dem TO wohl >> nicht gereicht, ... > > ... und zwar genau, weil er es gegenüber der vorgeschlagenen jeweils > linearen Interpolation zwischen den 5 Stützpunkten mit einer linearen > Approximation nur zwischen den beiden Endpunkten der Füllstandskennlinie > versucht hat. Wenn du dir den Verlauf der Kurve einmal ansiehst, würdest > du auch verstehen, warum diese Art der Interpolation über eine konkav > Funktion keine vernünftige Genauigkeit liefern kann, sondern dazwischen > Fehler von mehreren Litern produziert. Es kommt für die Anwendung sicher > nicht auf Milliliter an. Genau so sieht es aus. Moin zusammen, es würde mir schon reichen wenn halbe Liter einigermaßen korrekt abgebildet werden. Momentan sind es tatsächlich mehrere liter Abweichung. Sorry, aber diese wohl entscheidende Info hatte ich wohl vergessen :( Ich weiss, dass der Tankgeber keine Präzisionsmessgerät ist und dass der Rest der Schaltung, der Code sowie 1000 andere Faktoren auch immens mit rein funken. Letztendlich habe ich nur nach einem Weg (Denkanstoß) gesucht, die Werte der Realität etwas anzunähern. Ich werde vermutlich die Lösung mit den Stützpunkten und linearer Interpolation dazwischen anwenden. Sollte für diesen Zweck sicher ausreichen und mich hoffentlich zum richtigen Zeitpunkt auf dem Wasser bei Spritmangel warnen können. Danke für die vielen Tips und Anregungen. Bin als Anfänger, der so etwas aus Spass in seiner Freizeit macht, dankbar für jede Hilfe. by the way: der Wert 0.044... wurde einfach 1:1 aus calc.exe kopiert und hatte keine tiefere Genauigkeitsbewandnis...
:
Bearbeitet durch User
Menno, der Lösungsweg über einen 3...5-Punkt-Abgleich, mit Interpolation war doch nun wirklich vorhersehbar. Ist schon niedlich, wie hier manche Schmalspurdenker gleich Verschwörungstheorien gegenüber Poti-Linearitäten aufgebaut haben, weil die Schwimmer-Betätigung eines Potis in einem realem nicht-ideal-rechteckigem Tank nun mal nicht-linear sein muss. Sind das schon Folgen vom 8/9-Abitur? Oder ist das die allgemeine praxisferne Verblödung?
Oldie schrieb: > 1) Tankgeber sind nicht unbedingt linear. > Bei alten Autos war die Anzeige ähnlich: > Entweder ging es zu schnell von voll auf halb, > oder zu langsam - und dafür schnell von halb auf > leer. Die waren nicht korrigiert. Gerade bei älteren Fahrzeugen wurde das zumindest teilweise durch die Skalenteilung des verwendeten Meßinstruments korrigiert. Gruss Harald
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.