PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kalibrierung von Magnetfeld-Sensoren



erlak36
16.02.2015, 22:18
Hallo,

wisst ihr wie man Magnetfeld-Sensoren kalibriert? Ja bei Android mit *#01*# kann man es immer wieder neu kalibrieren.

Aber mir geht es allgemein. Denn ich habe meine Sensoren nicht in in einem Smartphone sondern externes Sensorkit.

Beim auswerten meiner RohDaten sehe ich, dass sie extrem verschoben sind.

Gibt es da Alghorithmen, die ich in Matlab oder in einer anderen Sprache programmieren kann?
Letzendlich löst Android es auch softwaretechnisch.

Kann man den Code von Android einsehen?

gruß erlak

Peter(TOO)
17.02.2015, 00:34
Hallo erlak,

wisst ihr wie man Magnetfeld-Sensoren kalibriert?

Dazu braucht man Magnetfelder mit bekannter stärke.


Beim auswerten meiner RohDaten sehe ich, dass sie extrem verschoben sind.

Kommt jetzt darauf an, was man korrigieren muss:
linear. nur Offset und Verstärkungsfehler, Skalieren:
x = (R+O)*K
R = Rohwert
O = Offset
K = Konstanter Faktor um die Versstärkung anzupassen.

Wenn es noch genauer sein soll, muss man u.U. O noch abhängig von der Temperatur wählen, bzw. berechnen.

Um Linearitätsfehler zu korrigieren, gibt es unterschiedliche Möglichkeiten und beliebig komplizierte Formeln.
Programmtechnisch am einfachsten sind Tabellen.
Bei z.B. einem Thermometer misst du beim Kalibrieren alle 10°C den Rohwert und legst den in einer Tabelle ab.
Beim Messen schaust du dann zwischen welchen beiden 10er Schritten der Messwert liegt und interpolierst linear.

Falls eine einfache nennenswerte Verbesserung mit einer Formel möglich ist, steht die meistens im Datenblatt.

Ein Teil des Messfehlers geht aber auf Alterung, Temperatur und was weiss ich noch zurück. sind also mehr zufällige Werte, welche man nicht korrigieren kann, bzw. eine Kalibrierung nur sehr kurzzeitig stimmt.

MfG Peter(TOO)

Rabenauge
17.02.2015, 12:02
In Handys wird wohl lediglich die "hard-iron"-Kalibrierung gemacht.
Heisst nix anderes, als dass der Sensor auf die Umgebungsbedingungen "kalibriert" wird, Nötig ist das dann, wenn sich magnetfeldmässig andere Bedingungen ergeben, z.B. nen Lautsprecher in der Nähe ist, oder ne Freileitung.
In meinem Monstertruck (der hat nen HMC 5883l drin) hab ich die auch gemacht, da sich dort in der Umgebung ansonsten zu viele Störungen ergäben, beispielsweise ist einer der Antriebsmotoren nicht mal 20 cm entfernt.

http://forum.arduino.cc/index.php?PHPSESSID=v6cevd5fe24f7c2a0md30740l5&topic=201453.15 dort die ganze Geschichte dazu. Seinerzeit war er noch in nem Spielzeugauto am werkeln, aber mit der selben Vorgehensweise läuft er nun im Monstertruck -ausreichend- genau (nur ausreichend heisst, dass etwa drei bis fünf Grad Genauigkeit erreicht werden, das genügt mir, da es nen unverhältnismässig hoher Aufwand wäre, es genauer zu bekommen und ich ja fürs Grobe ohnehin noch nen GPS an Bord habe).
Diese Kalibrierung muss immer wieder gemacht werden, wenn man am Aufbau was ändert- schon nen strom führendes Käbelchen in der Umgebung beeinflusst den Kompass spürbar- genau das aber kann man so weg"kalibrieren".