Forum: Digitale Signalverarbeitung / DSP / Machine Learning Beschleunigungssensoren messen


von X. A. (wilhem)


Angehängte Dateien:

Lesenswert?

Hallo!
      ich bin neu hier. Ich hätte nämlich eine Frage bezüglich DSV.
Ich habe folgende Beschleunigunssensoren (ADXL335) deren Analogausgänge 
durch Arduino erfassen und danach verarbeiten möchte.

Gut...laut Shannons Theorem, die Abtastfrequenz muss mindestens 2 Mal 
die höchste Signalfrequenz sein, um AntiAliasing zu vermeiden. Also: F 
>= 2*f.
Nun frage ich mich....woher weiß ich, welche ist die höchste auftretende 
Frequenz in den Beschleunigungssensoren?!??!?!

Aus dem Datenblatt der Sensoren habe ich folgendes gefunden (siehe im 
Anhang). Dennoch woher weiß ich welche Frequenzen durchlassen soll und 
welche unterdrücken?

Mein Projekt ist ein Autopilot für RC-Flugzeugmodelle, die durch 
darartigen Sensoren (und Gyro) und Arduino stabilisiert werden sollten. 
Das Problem ist, dass ich nicht weißt, ab welche Grenzfrequenz des 
Signals, soll das Signal unterdrückt werden.

Wenn ich drüber überlege, würde ich sagen, dass ich aus dem Flugzeug her 
wissen soll, welche Frequenzen sich im Flug erzeugen werden könnten. Und 
daher mich entscheinen, wie ich mein Filter realisieren werden kann. 
Dennoch bin ich nicht sicher...

Könnt ihr mir einen guten Tipp geben?!?!

Danke!
Gruß
Dav

von Werner (Gast)


Lesenswert?

Motorvibrationen wirst du sicher nicht ausregeln können. Insofern kannst 
du ein Antialiasing-Filter einsetzen, dessen Grenzfrequenz deine 
Vibrationen vom Wandler fernhält und sich aus der Agilität deines 
Modells ergibt.

von SNR (Gast)


Lesenswert?

In der Regel wird bei sowas eine Kombination aus Gyroskopen und 
Beschleunigungssensoren eingesetzt (Stichwort: Inertial Measurement Unit 
(IMU))[1]

Problematisch dabei ist, dass man mit Beschleunigungssensoren im 
dynamischen Fall nicht die Roll, Nick, Gier-Winkel messen kann, da durch 
fremde Beschleunigungen oder Vibrationen (außer der Erdanziehung) nicht 
der Winkel über dier ARCTAN-Funktion berechnet werden kann. Es entstehen 
enorme Fehler.
Des Weiteren driften die Offsetspannungen der Beschleunigungs- und 
Gyrosensoren für gewöhnlich erheblich mit der Temperatur oder Zeit.

Um dem entgegen zu wirken wird für gewöhnlich eine Sensordatenfussion 
mittels Kalmanfilter durchgeführt. Ein zweites Stichwort ist die 
Direction-Cosine-Matrix.

Um Deinem eigentlichen Problem noch auf die schliche zu kommen ein 
Gedanke dazu:
* Warum baust Du den Sensor nicht einfach ein und hängst einen einfachen 
Logger mit dazu rein der das auf ne SD o.ä. mitloggt ?
Dann könnte man eine komplette statistische Auswertung dazu machen.

Ansonsten schau Dich mal bei den Quadkopter-Leuten um, die machen dass 
auch alle so.


[1] http://de.wikipedia.org/wiki/Inertialsensor
[2] http://de.wikipedia.org/wiki/Roll-Nick-Gier-Winkel

von X. A. (wilhem)


Lesenswert?

Danke Werner und SNR,
                     vielen vielen Dank.
Zuerst wollte ich sagen, dass ich in Arduino schon ein Kalmanfilter 
geschrieben habe, dessen Aufgabe ist, das Driften der Gyro zu 
"überwinden" und die Ausgangwerte der Beschleunigungssensoren zu 
"stabilisieren".

Auf dem "Schreibtisch" bekommen ich sehr gute Ergebnisse. Im Flug... Das 
Problem jedoch besteht darin, dass ich nur letztlich mit DSV (Ich lerne 
nun dieses Fach an der Uni) beschäftige. Und Konzepte wie 
Nyquistfrequenz, Aliasing, Tiefpaßfilter vor dem A/D vorschalten 
usw..waren mir absolut unbekannt.

Nun...besitzte ich zumindest dieses Wissen, dennoch stelle ich mich nun 
solche Fragen, wie die ich euch gestellt habe.

Ich finde den Tipp von SNR wirklich hilfreich. Am besten bau ich in 
Arduino ein Modul mit SD Karte un logge alle Daten im Flug ein. Deren 
Auswrtung zufolge kann ich mithilfe eines Tiefpasses die Werte 
irgendwie..."fitlern".

ich danke euch herzlich für eute Tipps...bitte falls euch etwas anderes 
einfällt, sag mir bitte Bescheid.
Bislang wünsche ich euch einen  wunderschönen super Tag :)

Gruß!
David

von SNR (Gast)


Lesenswert?

Allerdings musst Du auch da das Nyquist-Kriterium einhalten!Du musst 
also einen Tiefpass vor schalten und hoch genug ab tasten um kein 
Aliasing zu bekommen (oder zumindest so hoch das die Amplitude der 
Spiegelfrequenzen nicht stören).
Dann kannst Du eine Auswertung machen und dann evtl langsamer Abtasten.

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
Noch kein Account? Hier anmelden.