PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beschleunigungssensor Drift Kompensation



Pepade
02.12.2009, 07:23
Hallo,

ich habe wohl eine Verstaendnissfrage bzgl. der Beschleunigungssensoren und deren Drift-Kompensation. In der Regel haben einige gute Sensoren einen Drift von 9mg rms oder aehnlichem. Wie kompensiere ich den um eine moeglichst gute Weg-Bestimmung respektive eine Positionsbestimmung zu erhalten?


bitte nicht beißen, bin neu hier ;-)

Gruß
Pepade

Elexerion
02.12.2009, 07:39
einen Drift haben eigentlich nur Gyros (und das nicht zu knapp), es sei denn, Dein Accelerator ist nicht temperaturkompensiert.

Gruss
Peer

Pepade
02.12.2009, 07:42
Ja dann der Noise, der existiert... Ich will halt die Strecke bestimmen, die zurueckgelegt wurde... Ein Gyro' hab ich auch, sofern das helfen sollte...

nflatjor555
02.12.2009, 11:39
Falls du mal die Moeglichkeit hast still und flach zu stehen (Beschleunigung x=0, y=0, z=1G), kannst du dann deine Offsets auf 0 setzen.

Elexerion
02.12.2009, 11:58
genau, noise ist nicht Drift. Noise beim Accelerator ist ein Rauschpegel. Den solltest Du z.B. mit Runge-Kutta-Inegration wegmachen oder irgendeinem Tiefpassfilter.
Drift beim Gyro ist durch die integration der Einzelmeßwerte des Gyros bedingt. Hier wird, im Gegensatz zum Accelerator, nur eine Drehrate ausgegeben, also der Winkel/Zeit. Vorhandener Noise erzeugt durch die Integration der Meßwerte über die Zeit einen Drift. Beim Accelerator ist es nur ein "statisches" Problem.

Elexerion
02.12.2009, 12:01
...es ist daher beim Gyro auch notwendig, einen Accelerator mit einzuschalten in die Lageauswertung. Der misst die Erdanziehungskraft absolut und kann somit den Gyro immer wieder auf Level bringen....das ganze Thema ist nicht so ganz einfach...
Für Dein Problem der Wegstrecke ist es mit dem Accelerator bedingt möglich, eine Wegstrecke aufzuzeichnen. Du brauchst halt auf jeden Fall sehr schnelle Abtastzyklen von 500-1000 Hz, um einigermaßen vernünftige Werte zu erhalten, die aber trotzdem mit der Zeit immer ungenauer werden werden.
Außerdem wichtig: Der Sensor muß je nach auftretenden Beschleunigungen den richtigen Beschleunigungsbereich abdecken, damit die Ungenauigkeit im Rahmen bleibt. Es hilft Dir z.B. nichts, wenn der Accelerator einen Wertebereich bis z.B. 0-10 g abdeckt, Du aber nur im Bereich von 0-0.5 g arbeiten wirst. Dann ist außerdem eine Verstärkung des Sensors oft angebracht (OPV), damit Dein Controller seinen Samplingbereich ausnutzen kann.
Das sind so die wichtigsten Punkte, die man einhalten muß.

Ich hoffe, ich habe Dich jetzt nicht zu sehr verwirrt.

Besserwessi
02.12.2009, 17:01
Die Fehler des Accelerometers werden unterteilt ind Nichtlinearität, Rauschen (Noise) und Drift. Dabei ist die Drift zum einen der sehr niederfrequente Teil des Rauschens. Dazu kommt noch eine echte Alterung.

Die Fehler durch das eher hochfrequente Rauschen gleichen sich nach der Integration aus, denn die ganz niedriegen Frequenzen werden per Definition nicht dazugezählt. Es ist dabei egal ob man die Werte schnell oder langsam digitalisiert, solange der analoge Tiefpaß davor passend ausgelegt ist.
Die Drift hat bei vielen Sensoren zu einem großen Teil die Ursache in Temperaturschwankung. Man sollte also wenn möglich auf eine konstante Temperatur achten. Auch eine gute Spannungsregelung hift gegen Drift.
Wenn man die Beschleunigungswert noch inegrieren will, ist ein genau festgelegter Nullpunkt wichtig. Den muß man ggf. auch mal Nachjustieren, wenn man z.B. weiß, dass sich das Fahrzeug gerade nicht bewegt.

Elexerion
02.12.2009, 18:36
...schnell sollte nur gemessen werden, um genaue Werte zu erhalten. Ist der Messintervall zu lang ausgelegt, kann man feine Schwankungen nicht mehr erfassen und der Fehler "galoppiert" davon...

Was willst Du denn messen?

Pepade
04.12.2009, 06:32
Ich will die zurueckgelegte Strecke (X,Y und Z) messen. Ein Messintervall koennte ca. 20-30Sekunden lang sein. Danach kann es auf der Stelle liegen bevor es wieder benutzt wird.

Besserwessi
04.12.2009, 11:25
Wenn man weiss, daß das Gerät stillsteht, kann man die Zeit für einen neuen Nullpunktabgleich nutzen. Über die relativ kurze Meßzeit vom 20-30 Sekunden sollte dann die Drift nicht mehr groß sein.
Im Extremfall könnte man auch danach den Nullpunkt nochmal kontrollieren und die Daten ggf. Rückwirkend korrigieren.

Etwas aufpassen muß man wahrscheinlich das man das Gerät wirklich Eben hinlegt. Auch wenn sich das ganze bei der Bewegung dreht muß man das Berücksichtigen.

Elexerion
04.12.2009, 16:08
Also ein Strecke aus den Beschleunigungswerten genau genug zu messen ist recht schwierig
Denn wenn das Objekt gleichförmig bewegt wird, misst ein Acc nichts! Er misst halt nur Beschleunigungen, nicht Translation. Du kannst zwar aus Beschleunigungen auf eine Geschwindigkeit schliessen und bei Ausbleiben erneuter negativer Beschleunigungen davon ausgehen, dass das Objekt mit gleicher Geschwindigkeit weiterbewegt wird, das ist aber sportlich! und praktisch wohl nur sehr ungenau möglich.
Z.B. können sehr kleine und sehr große Beschleunigungen nur sehr ungenau nebeneinander gemessen werden.
Prinzipiell ist das alles möglich, aber wohl nicht mit den erhältlichen 30-40 Euro Acceleratoren und kleinem Aufwand.

Auf dem Papier mit der "reinen Lehre" ist das alles kein Problem, praktisch aber wird das schwer.
Es kommt natürlich auch auf die erforderliche Genauigkeit an, die Du anstrebst.
Wenn Du mit ein paar Metern Abweichung zufuss und nach 30 Sek. leben kannst, ist es evtl. möglich, genauer wirds wohl nie.

Ach ja, und wie mein Vorredner schrieb: Wenn das Objekt gedreht wird, hast Du es auch noch mit verschobenen Beschleunigungsvectoren der Acceleratoren zu tun. Das Objekt muss also auch noch möglichst in der Ebene gehalten werden.
Sonst wird es immer trickiger und Du musst die recht ungenauen Daten eines Dreiachsgyros mit berücksichtigen und Dir daraus, in Verbindung mit den Acceleratoren, die richtigen Vectoren hinrechnen (klassische Vectorrechnung). Die genaue Lage des Objektes muss zu jeder Zeit genau bekannt sein, sonst stimmt da gar nichts mehr.
Bewegt sich das Objekt z.B. auf Rädern ist das alles kein zu grosses Problem mehr, sollen menschliche Bewegungen gemessen werden, ist das Problem sehr, sehr komplex. Wir haben dann 6 Freiheitsgrade mit zappeligen Bewegungen.
Bei einem Flugzeug kann man da mit dem Kalmanfilter und unter Einbeziehung von 3 Accs und 3 Gyros sowie möglichst vielen zusätzlichen Sensoren (Prandtl-Rohr, Drucksensor, Distanzsensoren, GPS, elektronischer Kompass usw.) sowie diversen Grundannahmen (z.B. ein Flugzeug fliegt meisst in einer Ebene und stabilisiert sich generell selbst durch V-Form der Flächen oder mit einem Co-Pilot-System, ein Flugzeug beschleunigt nicht mal schnell innerhalb von Sekundenbruchteilen, damit kann man dann Noise der Sensoren und "unmögliche" Messwerte usw. rausfiltern) evtl. ein noch nutzbares Signal bekommen.
Eine Wii kann auch immer nur für ein oder zwei Sekunden ein brauchbares Signal ausspucken. Auch hier werden sehr weitreichende Grundannahmen vorausgesetzt.

Du siehst, das Thema ist hochkomplex aber dafür auch sehr spannend, weil es kaum Standartlösungen gibt.
Wenn man es dann geschafft hat, eine Lösung für sein Problem zu finden und die Maschine zum Laufen zu bekommen, ist das schon ein sehr cooles Gefühl.

Gruss
Peer