PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GP2D12 - Gute Messergebnisse



l3aum
30.08.2008, 17:52
Hallo Community,

ich habe eine Funktion gefunden, mit der die Abstandsmessung auf wenige Millimeter genau wird.

Die Referenzspannung ist auf 2,5 Volt eingestellt.
Mit folgender Funktion funktionert es sehr gut. Größte Abweichung beträgt bei mir < 2 Cm.


volt = 0.002443 * adc ;
abstand = 3,109908 * volt ^4 - 34,772169 * volt ^3 + 130,767711 * volt ^2 - 213,016079 * volt + 147,071446

Ich hoffe ich konnte helfen. Wäre nett wenn ihr die Funktion einsetzt und es mal ausprobiert. bitte Feedback :)

pongi
30.08.2008, 18:13
Du hast also die Kennlinie mit einer Polynomfunktion nachgebildet? Hab ich auch gemacht, bei mir hats auch gut funktioniert.

l3aum
30.08.2008, 18:58
Genau das habe ich gemacht. Habe leider beim googlen nichts gefunden. Also musste ich es selbst machen

Manf
30.08.2008, 20:46
Hier wäre noch etwas zum Thema:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=174&postdays=0&postorder=asc&highlight=gp2d12&start=0

oberallgeier
30.08.2008, 22:34
Uiii, eine hübsche, saubere, genaue Rechnung! Aber ist das nicht etwas viel Rechnerei, noch dazu in floating point? Ich habe bei einem GP2D120 die Rechnung mit integer (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=384168#384168) durchgeführt - ich hatte einfach für floating point garnicht die Zeit zur Verfügung. Dabei komme ich auf eine Genauigkeit im Bereich von 1%. Allerdings verliere ich den Einbruch im Nahbereich ! ! ! ... aber den muss ich messtechnisch nicht erfassen. Die Anpassung im Excel-Diagramm sieht bei mir recht gut aus, und die Nachmessung am realen GP2Dx auch.

Anmerkung: für Mathe-nichtsosehr-Liebhaber die den Link benutzen: 38512 * x hoch (-1,0791) ist soviel wie 38412 dividiert durch x hoch 1,0791 - - - - und das hatte ich gerundet auf 25600 / x - - - - eben alles Integerzahlen.

Manf
31.08.2008, 08:09
ich habe eine Funktion gefunden, mit der die Abstandsmessung auf wenige Millimeter genau wird.

Hier sind die Messwerte eines anderen GP2D12. Die Messwerte Deiner Wandler hast Du ja nicht angegeben. Du könntest also Deine Messwerte einmal hiermit vergleichen.
(Eine Angabe in 8-stelligen Zahlen ist immer ein Bisschen verdächtig bei einem solchen Teil und auch bei dem Messverfahren.)

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=34344#34344

oberallgeier
31.08.2008, 08:47
... Die Messwerte Deiner Wandler hast Du ja nicht angegeben ...Bei meinem einfachen Zweiradprojektchen hatte sich meine Anfangsbefürchtung bewahrheitet: Die Messergebnisse der endgültigen Konfiguration sind mit den Ergebnissen der früheren Teilprojekte nicht deckungsgleich. Es waren also bei meinem Projekt noch Justierungen des Codes nach endgültiger Fertigstellung und vollständigen Inbetriebnahme der kompletten Hardware erforderlich. Vermutlich ist das aber fast allgemeingültig. Leider fehlt mir noch eine Initialisierungsroutine, die entsprechende Anpassungen selbst vornimmt - aber dann beisst sich ja die sprichwörtliche Katze in den sprichwörtlichen, eigenen Schwanz.

@Manf: Dein zeitlicher Gedächtnishorizont ist bemerkenswert gross :).

pongi
31.08.2008, 08:57
Ich hab das ganze so gemacht: zuerst die Kennlinie selbst aufgestellt (Messen der Spannung bei bekannten Entfernungen), das dann in Excel eingetippt, und damit dann eine Polynomannäherung 5-ten Grades gemacht, womit (laut Excel) die Original-Kennlinie zu 99,8% genau nachgebildet wird.

Da ich mit den Sensoren eine Karte um den Bot aufbauen wollte, und das mit einer Mega8 sowieso schwer möglich ist, hat bei mir der Bot mit Integer gerechnet (das reicht, damit er selbst Hindernisse erkennt, die es ausweichen sollte), und ansonsten direkt ADCW an den PC weitergesendet, was man dann mit der genauen Rechnung weiterverarbeiten konnte.