Forum: Digitale Signalverarbeitung / DSP Warum driftet ein Beschleunigungssensor mit der Zeit weg?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Zyrano D. (kickflip)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

irgendwie habe ich im Netz nichts konkretes gefunden, warum das denn der 
Fall ist. Beispielsweise ein Piezo soll ja mit der Zeit wegdriften und 
Werte ausspucken, obwohl er nur herumliegt. Warum ist das so?

Viele Grüße

von Wollvieh W. (wollvieh)


Bewertung
0 lesenswert
nicht lesenswert
Weil ers kann?

Daß er genau korrekt arbeitet, ist so wahrscheinlich wie das 
Handlaufband einer Rolltreppe exakt gleich schnell wie diese ist. (Im 
Regelfall ist es leicht schneller, im ungeschickten Fall deutlich 
langsamer und man fälllt rückwärts um, wenn man sich festhält.)

von Sensorrauschen (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Das Rauschen des Sensors wird doppelt integriert: a -> v -> x
Zur Veranschaulichung würde ein konstanter additiver Fehler in der 
gemessenen Beschleunigung a einen Fehler im Ort x hervorrufen, der mit 
t^2 wächst.

von Sven B. (scummos)


Bewertung
2 lesenswert
nicht lesenswert
Der Sensor driftet nicht, aber die Geschwindigkeit oder Position die du 
daraus ableitest. Von einem Drift der gemessenen Beschleunigung wüsste 
ich nix.

von Sensorrauschen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Das Rauschen der Beschleunigungsmesswerte an sich ist "nicht so 
schlimm", auch z.B. wenn die Beschleunigung direkt als Messsignal 
verwendet würde.

Das größere Problem ist neben dem doppelten Integral des Rauschens eher 
die doppelte Integration eines Nullpunktfehlers des 
Beschleunigungsmessers. Dieser ist dann nämlich im Vergleich mit dem 
Rauschen eher zeitlich langsam veränderlich, mittelt sich nicht weg und 
führt dann zum beschriebenen Fehler bzw. Drift im Ort der mit t^2 sehr 
schnell wächst.
Fehler durch ungenaue Achsenausrichtung des Sensors und damit falscher 
Kompensation der Gravitation ließen sich durch eine bekannte Messung 
entfernen, aber da kommt dann die Drift des Nullpunkts des 
Beschleunigungsmessers ins Spiel. Sensoren sind nun mal temperatur- und 
ggf. auch druck-, ... abhängig, zumal es sich um ein mikromechanisches 
System handelt.

von Sven B. (scummos)


Bewertung
0 lesenswert
nicht lesenswert
Das Rauschen mittelt sich auch nicht weg, das ist eine verbreitete 
Fehlannahme. Von einer Rauschamplitude X mittelt sich ein sqrt(X) weg, 
und ein sqrt(X) bleibt als Drift übrig. Siehe Random Walk.

von ek13 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Zyrano D. schrieb:
> Hi,
>
> irgendwie habe ich im Netz nichts konkretes gefunden, warum das denn der
> Fall ist. Beispielsweise ein Piezo soll ja mit der Zeit wegdriften und
> Werte ausspucken, obwohl er nur herumliegt. Warum ist das so?
> Viele Grüße

Beitrag "Beschleunigungssensor Drift schätzen"

von Sensorrauschen (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Das Rauschen mittelt sich auch nicht weg
... durch Integration.
Das Rauschen an sich kann ja mittelwertfrei sein.

Hatte ich oben nicht präzise formuliert.

von Yalu X. (yalu) (Moderator)


Bewertung
1 lesenswert
nicht lesenswert
Da der TE nach nach der Drift der Sensoren fragt, und nicht nach der
Drift eines Systems bestehend aus Sensor und integrierender Auswertung,
meint er vermutlich die Alterungsdrift der Sensoren.

Die Alterungsdrift betrifft vor allem MEMS-Sensoren, wobei sich dort die
folgenden physikalischen Größen mit der Zeit ändern:

1. die Federkonstante der schwingenden Teile durch Materialermüdung

2. die Kapazität, über die die Auslenkung der schwingenden Teile
   gemessen wird, durch Oxidation des Siliziums

Im Gegensatz dazu driftet ein Servobeschleunigungssensor prinzipbedingt
praktisch überhaupt nicht.

: Bearbeitet durch Moderator
von Sven B. (scummos)


Bewertung
0 lesenswert
nicht lesenswert
Sensorrauschen schrieb:
> Das Rauschen an sich kann ja mittelwertfrei sein.

Aber was heißt das genau? Auf normalverteiltes Rauschen trifft das zu, 
trotzdem driftet z.B. eine Geschwindigkeit, die du durch Summieren von 
normalverteiltem Rauschen mit Mittelwert 0 erhältst, systematisch weg.

von Hans (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Wenn es richtiges Rauschen ist, sollte der Mittelwert doch null sein.

von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Zyrano D. schrieb:
> Beispielsweise ein Piezo s

Ein piezo ist eine besondere Form von Beschleunigungssensor: wahnsinnig 
schnell und hohe Werte.

Die driften, weil sie Ladungen produzieren und keine statischen Werte.

Normale Beschleunigungssensoren driften nicht annähernd so.

von Hans (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn es richtiges Rauschen ist, sollte der Mittelwert doch null sein.

von Sven B. (scummos)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hans schrieb:
> Wenn es richtiges Rauschen ist, sollte der Mittelwert doch null
> sein.

Ja, hilft dir aber nicht. Es driftet trotzdem, und zwar mit der Wurzel.

Siehe Anhang, Summe über richtiges Rauschen mit Mittelwert 0; bei einer 
Million Werten bist du ungefähr bis 1000 weggedriftet. Kann auch zu 
-1000 driften oder sonstwohin, aber es driftet. Und es driftet immer 
weiter, wenn du mehr Werte nimmst.

plt.plot(np.cumsum(np.random.normal(0, 1, 1000000))); plt.show()

von Abyssaler Einspeiser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Mit einem ordentlichen ADXL wäre das nicht passiert!

von Sven B. (scummos)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier 10 davon, vielleicht ist das anschaulicher.

[plt.plot(np.cumsum(np.random.normal(0, 1, 1000000))) for i in 
range(10)]; plt.show()

von Egon D. (egon_d)


Bewertung
2 lesenswert
nicht lesenswert
Sven B. schrieb:

> Das Rauschen mittelt sich auch nicht weg,

Doch.

> das ist eine verbreitete Fehlannahme.

Eigentlich nicht.

Wenn Du beim Berechnen des Mittelwertes korrekt durch
die Gesamtzahl der summierten Werte dividierst -- so,
wie man das bei jedem arithmetischen Mittelwert macht --,
mittelt sich das Rauschen heraus.

Genau DESHALB kann man Messwerte, denen ein zufälliger
Fehler überlagert ist, durch vielfache Wiederholung und
Mittelwertbildung verbessern.


ABER:

> Von einer Rauschamplitude X mittelt sich ein sqrt(X)
> weg, und ein sqrt(X) bleibt als Drift übrig. Siehe
> Random Walk.

Das passiert bei einfacher Akkumulation (=Integration)
der Messwerte -- und genau das ist ja die Operation,
die von der Beschleunigung zur Geschwindigkeit führt.

Der Einwand, Rauschen mittele sich heraus, führt sehr
elegant auf den Holzweg, weil gar keine Mittelung,
sondern eine Integration vorliegt :)

: Bearbeitet durch User
von Sven B. (scummos)


Bewertung
0 lesenswert
nicht lesenswert
Ja, klar, das ist der Unterschied. Ich hätte präziser sagen sollen: das 
Rauschen mittelt sich in diesem Fall nicht weg.

von Zyrano D. (kickflip)


Bewertung
0 lesenswert
nicht lesenswert
A. S. schrieb:
> Zyrano D. schrieb:
>> Beispielsweise ein Piezo s
>
> Ein piezo ist eine besondere Form von Beschleunigungssensor: wahnsinnig
> schnell und hohe Werte.
>
> Die driften, weil sie Ladungen produzieren und keine statischen Werte.
>
> Normale Beschleunigungssensoren driften nicht annähernd so.

Aber die Ladung eines Piezos ist doch konstant, sobald man sie in Ruhe 
lässt? Wieso driftet denn dann der Weg und die Geschwindigkeit weg?

von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Zyrano D. schrieb:
> Weg und die Geschwindigkeit

jetzt bist Du auch bei Weg und Geschwindigkeit (erstes und zweites 
Integral).

Kannst Du Deine Frage vielleicht ein wenig beschreiben?

Um welchen Sensor geht es Dir? Um welche "Verarbeitung" geht es Dir. Bei 
einem Integral ist z.b. immer auch ein "+C" dabei, dass Dir gehörig in 
die Suppe spuckt.

von Egon D. (egon_d)


Bewertung
0 lesenswert
nicht lesenswert
Zyrano D. schrieb:

> A. S. schrieb:
>> Zyrano D. schrieb:
>>> Beispielsweise ein Piezo s
>>
>> Ein piezo ist eine besondere Form von Beschleunigungssensor:
>> wahnsinnig schnell und hohe Werte.
>>
>> Die driften, weil sie Ladungen produzieren und keine
>> statischen Werte.
>>
>> Normale Beschleunigungssensoren driften nicht annähernd
>> so.
>
> Aber die Ladung eines Piezos ist doch konstant, sobald man
> sie in Ruhe lässt?

Nur theoretisch.
Piezos sind i.d.R. kreuzempfindlich auf die Temperatur
(Pyroelektrizität). Ungleichmäßige Erwärmung gibt recht
heftige elektrische Spannung.


> Wieso driftet denn dann der Weg und die Geschwindigkeit
> weg?

Weil
1. die Geschwindigkeit das INTEGRAL über die Beschleunigung
   ist,
2. aufintegriertes Rauschen NICHT auf Dauer um Null herum
   pendelt, sondern (aus rein mathematischen Gründen) die
   Tendenz hat, nach der einen oder anderen Seite wegzu-
   driften,
3. ein auch noch so kleiner Offset in der Geschwindigkeit
   IMMER zu einer merklichen Drift in der Position führt.

Ein zweifach integrierendes System KANN in der realen
Welt nicht auf Dauer stabil sein. Nicht ohne zusätzliche
Maßnahmen.

von paul (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>> Zyrano D. schrieb:

> Aber die Ladung eines Piezos ist doch konstant, sobald man sie in Ruhe
> lässt? Wieso driftet denn dann der Weg und die Geschwindigkeit weg?

Die Ladung bleibt auch nur dann konstant, wenn sie nicht weg kann. Da 
dort aber irgendwo ein Verstärker ist, wird dort auch ein deutlich von 
unendlich verschiedener Widerstand sein, durch denen Ladungen 
verschwinden.

von Jan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sensoren können auch driften ohne dass die Werte integriert werden... 
Temperatur, Federkonstanten, Kapazitätsänderungen über Laufzeit, 
Feuchtigkeit, alles fiese Gründe. Auch die Asics können fehlerhaft 
designt sein.

von Hp M. (nachtmix)


Bewertung
0 lesenswert
nicht lesenswert
Zyrano D. schrieb:
> Beispielsweise ein Piezo soll ja mit der Zeit wegdriften und
> Werte ausspucken, obwohl er nur herumliegt. Warum ist das so?

Vielleicht ist der Sensor völlig in Ordnung, aber du wohnst in 
Bielefeld.
https://de.wikipedia.org/wiki/Kontinentaldrift

von Detlef _. (detlef_a)


Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Das Rauschen mittelt sich auch nicht weg, das ist eine verbreitete
> Fehlannahme. Von einer Rauschamplitude X mittelt sich ein sqrt(X) weg,
> und ein sqrt(X) bleibt als Drift übrig. Siehe Random Walk.

plot(cumsum(randn(1,1e7)))

Tatsächlich, erstaunlich. Für mich völlig kontraintuitiv, ne Falle, 
hätte gewettet, dass es nicht driftet.

Hast Du nen link, wo das mal durch die Mathematikmühle gedreht wird?

Cheers
Detlef

von Michi F. (newstorm)


Bewertung
0 lesenswert
nicht lesenswert
Detlef _. schrieb:
> Sven B. schrieb:
>> Das Rauschen mittelt sich auch nicht weg, das ist eine verbreitete
>> Fehlannahme. Von einer Rauschamplitude X mittelt sich ein sqrt(X) weg,
>> und ein sqrt(X) bleibt als Drift übrig. Siehe Random Walk.
>
> plot(cumsum(randn(1,1e7)))
>
> Tatsächlich, erstaunlich. Für mich völlig kontraintuitiv, ne Falle,
> hätte gewettet, dass es nicht driftet.
>
> Hast Du nen link, wo das mal durch die Mathematikmühle gedreht wird?
>
> Cheers
> Detlef

Ich finde die Erklärung vom MIT ganz gut:
https://www.mit.edu/~kardar/teaching/projects/chemotaxis(AndreaSchmidt)/random.htm

von Jan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das z.B. ist das Problem bei Gyroskopen, durch die Integration von 
einfachem, weißen Rauschen mit Erwartungswert 0 entsteht über längere 
Zeiträume ein Random Walk, bei dem der absolute Fehler unbeschränkt 
wächst. Selbst wenn also der Offset der Rate == 0 ist!

Auch der Erwartungswert des Integrals einer Zufallsvariable mit EW = 0 
und Varianz = const ist 0, da Integral und Erwartungswert Operatoren 
linear sind.

Vielerorts steht dann (z.B. 
https://de.wikipedia.org/wiki/Random_Walk#Eindimensionaler_Fall, zwar 
für diskrete Binomialverteilungen, aber mMn kann man das auf weißes 
Rauschen auch anwenden): man keine Aussage über das Verhalten über die 
Zeit machen. Nur über den mittleren quadratischen Abstand, also der 
Varianz.
Die Varianz eines random walks steigt proportional mit der Zeit t. Der 
Erwartungswert bleibt aber bei 0.
Ziemlich paradox, finde ich auch.

Aber es sind halt Zufallsvariablen, da tickt die Welt etwas anders. Und 
du guckst dir bei einem cumsum(randn(1e6,1)) auch nur einen möglichen 
Pfad an, eine mögliche Realisierung des Zufallsprozesses an. Machst du 
das zig Mal, siehst du, dass der Prozess symmetrisch um 0 ist und du 
kannst auch die Standardabweichung (Wurzel der Varianz) mal einzeichnen, 
die immer größer wird.

In dem Link oben steht z.B. "Die relative Abweichung {\displaystyle 
{\sqrt {n}}/n}{\sqrt  {n}}/n geht gegen null, die absolute Abweichung 
{\displaystyle {\sqrt {n}}}\sqrt{n} wächst hingegen unbeschränkt."

Mir fehlt ebenfalls das letzte Klick. Aber vielleicht hilft es schon 
etwas.

Weitere Quellen:
https://www.matheplanet.com/default3.html?call=viewtopic.php?topic=136036&ref=https%3A%2F%2Fwww.google.com%2F
https://en.wikipedia.org/wiki/Random_walk#Gaussian_random_walk
https://www.mit.edu/~kardar/teaching/projects/chemotaxis(AndreaSchmidt)/random.htm

von Detlef _. (detlef_a)


Bewertung
1 lesenswert
nicht lesenswert
Jan schrieb:

> Auch der Erwartungswert des Integrals einer Zufallsvariable mit EW = 0
> und Varianz = const ist 0, da Integral und Erwartungswert Operatoren
> linear sind.

> Ziemlich paradox, finde ich auch.

> Die Varianz eines random walks steigt proportional mit der Zeit t. Der
Erwartungswert bleibt aber bei 0.

> Aber es sind halt Zufallsvariablen, da tickt die Welt etwas anders.

Ja, sehr wahr, bizarre Welt.

Letzlich bin ich in dieser Welt schon mal schwer gescheitert:

Ich habe mir eine verjitterte clock genommen, deren Jitter gaussverteilt 
ist. Dann habe ich mit viel Mühe und Nachhilfe die Verteilung des 
Kehrwerts der Zufallsvariablen 'Jitter' berechnet und dachte dann, dass 
sei das Spektrum des verjitterten Signals ( Frequenz ist 1/Periodendauer 
). Das ist mitnichten der Fall, weil der Jitter 'komisches' Rauschen 
ist, das die Voraussetzungen der Theorie nicht erfüllt. Aber wenigstens 
kann ich jetzt die Verteilungsdichten von Funktionen von 
Zufallsvariablen berechnen.

math rulez!
Cheers
Detlef

von WolleRoseKaufe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
mal ne frage. Was kann man eigentlich gegen den Drift tun? Wenn ich die 
position bestimmen will und 2mal integriere, dann krieg ich mit der Zeit 
ja einen riesigen Fehler rein...

von Detlef _. (detlef_a)


Bewertung
0 lesenswert
nicht lesenswert
WolleRoseKaufe schrieb:
> mal ne frage. Was kann man eigentlich gegen den Drift tun? Wenn ich die
> position bestimmen will und 2mal integriere, dann krieg ich mit der Zeit
> ja einen riesigen Fehler rein...

Suchstichwort ist 'DC removal' oder 'DC suppression'. Hochpass oder 
Filter mit einer reellen Null bei zn=1 und einem reellen Pol nahebei, 
z.B. zp=0.8 .

Cheers
Detlef

von WolleRoseKaufe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke. Ja gut, wenn das signal tatsächlich langsam verändert wird haut 
der hochpass das raus...

von Jan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Häufig reicht das aber nicht.
Du musst den Sensor Kalibrieren. Über Winkel und Temperatur, damit 
werden Offset und Skalierung Parameter kalibriert. Im Idealfall bleibt 
dann fast Nur noch Rauschen übrig. Aber wie oben beschrieben führt auch 
Rauschen, wenn es integriert wird zum Drift.

Da kannst du ohne zusätzliche Informationen rein gar nix machen IMO. 
Zusätzliche Informationen = gps oder eine andere absolute 
Positionsinformation, Informationen über die Applikation, es gab mal 
jmd, der hat mit einer imu und „zero velocity update“ brauchbare 
Positionen berechnen können.

Allgemein - der Beschleunigungssensor misst auch die Schwerkraft, die 
ist Orientierungsabhängig, die musst du auch erstmal raus rechnen...

Es ist schwierig.

von Sven B. (scummos)


Bewertung
0 lesenswert
nicht lesenswert
Es gibt keine realisierbare Möglichkeit aus einem Beschleunigungssensor 
driftfrei die Position zu berechnen.

Alle Systeme, die so etwas tun, haben zusätzliche Sensorik zur 
Driftkorrektur, oft Odometer oder GPS.

von Detlef _. (detlef_a)


Bewertung
0 lesenswert
nicht lesenswert
Sven B. schrieb:
> Es gibt keine realisierbare Möglichkeit aus einem Beschleunigungssensor
> driftfrei die Position zu berechnen.
>
> Alle Systeme, die so etwas tun, haben zusätzliche Sensorik zur
> Driftkorrektur, oft Odometer oder GPS.

Aber die Drift läßt sich sehr stark reduzieren. 
Trägheitsnavigationssysteme benutzen Beschleunigungssensoren zweimal 
aufintegriert zur Positionsbestimmung, um London zu treffen reichte das. 
In Vor-GPS Zeiten lagen die INS nach 6000km über den Atlantik angeblich 
einen halben daneben.

Cheers
Detlef

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.