Ich verwende den Beschleunigungsmesser in einem Android-Gerät, um bestimmte Bewegungen zu verfolgen und zu erkennen, wobei ich nur eine Achse verwende, da die Bewegungen entlang dieser Achse linear sind.
Ich verwende einen einfachen Filter, um das Rauschen aus den Beschleunigungsmesserdaten zu entfernen:
ouput = ouput + alpha * (input - output)
Das Ergebnis sieht so aus, wie ich es erwarten würde und scheint für meine Zwecke brauchbar zu sein:
Ich möchte die Geschwindigkeit aus den Beschleunigungsmesserdaten berechnen, die ich bekomme, aber hier stoße ich auf Probleme, wie hier zu sehen ist:
Wie bei der Beschleunigung sieht auch der Geschwindigkeitsverlauf plausibel aus, geht aber nicht nach jeder Wiederholung auf Null zurück und fällt in negative Werte ab.
Im Moment schreibe ich nur die Rohdaten des Beschleunigungsmessers in eine Datei und modifiziere und analysiere sie später mithilfe von Tabellenkalkulationen, sodass diese Berechnungen alle von Hand durchgeführt werden.
V = V0 + A * dt
, um die Geschwindigkeit zu berechnen.
V0
ist anfangs Null, dann wird es auf den vorherigen Wert gesetztA
ist die angepasste Beschleunigung (dh accel - grav
)dt
ist das Intervall, die Differenz zwischen dem aktuellen und dem vorherigen ZeitstempelIch dachte, dass das Problem vielleicht darin besteht, dass die Beschleunigung auch nicht auf Null zurückkehrt und stattdessen leicht unter Null bleibt (wie im ersten Bild oben zu sehen ist), was zu viele negative Werte hinzufügt, die sich in der Berechnung ausbreiten. Also habe ich grav
eine kleinere Nummer eingestellt, und es scheint einen Sweet Spot zu geben. In diesem Beispiel führen große Werte für grav
dazu, dass die Geschwindigkeit ins Negative abfällt, kleine Werte kehren den Effekt um, wobei die Geschwindigkeitskurve zu höheren positiven Werten hin ansteigt. Ungefähr grav = 9.3
(9,32 in diesem Bild) scheint die Grafik am plausibelsten zu sein. Dieses Intervall ist sehr klein, 9,28 und 9,35 zeigen bereits eine deutliche Tendenz nach oben bzw. unten.
Was könnte der Grund dafür sein? Woher kommt die ~9,32? Warum ist es nicht die ~9,55, die ich während der anfänglichen bewegungslosen Phase beobachte? Gibt es eine Möglichkeit, die Berechnungen zu ändern, um konsistentere Werte zu erhalten? Beispielsweise sollte zwischen jeder Wiederholung eine kurze Pause liegen V = 0
.
Kalibrieren und validieren. Dies sind zwei Wörter, die Sie benötigen, wenn Sie Berechnungen physikalischer Parameter aus Messungen durchführen. Sie müssen wissen, wie das Gerät auf bekannte Beschleunigungen reagiert, um festzustellen, ob die Zahlen, die Sie erhalten, auf der Ebene, auf der Sie sie verwenden möchten, aussagekräftig sind. Am einfachsten wäre es, wenn der Hersteller Ihnen solche Angaben machen würde. Leider werden Geräte dieser Art heutzutage oft ohne jegliche Dokumentation geliefert.
Die Tatsache, dass Sie 9,3 bis 9,5 für die Schwerkraft erhalten, ist bezeichnend. Es deutet darauf hin, dass Sie entweder ein Offset- oder ein Skalierungsproblem haben. Eine Möglichkeit, dies zu überprüfen, wäre, die Werte abzulesen, während das Gerät auf einem Tisch liegt, es dann umzudrehen und erneut abzulesen. Ein Offset wird als Differenz von oben nach unten angezeigt. Bei einem Skalierungsproblem werden in beide Richtungen niedrige Werte angezeigt.
Wenn Sie eine Möglichkeit haben, das Gerät in eine Situation mit bekannter Beschleunigung zu versetzen, würde dies ebenfalls helfen. Vielleicht ein Plattenspieler oder so? Einige dieser Geräte könnten jedoch getäuscht werden, indem sie sich in einem zu engen Kreis drehen.
Die stetige Drift deutet darauf hin, dass Sie ein Antwortproblem haben könnten. Es ist möglicherweise nicht linear mit der Beschleunigung. Eine schmale, aber hohe Spitze kann zum Beispiel abgeschnitten werden. Das Testen auf solche wird ziemlich kompliziert. Sie würden bekannte Beschleunigungsprofile benötigen und dann sehen, wie das Gerät reagiert. Die Korrektur dafür fügt noch mehr Komplikationen hinzu.
Dies sollte ein Kommentar sein, aber ich wollte eine Grafik einfügen.
Es wäre hilfreich, Details der Bewegung zu haben, die Sie beobachten.
Haben Sie überprüft, ob die Beschleunigungen entlang der beiden anderen orthogonalen Achsen Null sind?
Die Fläche unter einem Beschleunigungs-Zeit-Diagramm gibt Ihnen die Geschwindigkeitsänderung an.
Der blaue Bereich stellt also die positive Geschwindigkeitsänderung dar und sieht bei Betrachtung kleiner aus als der rote Bereich, der die negative Geschwindigkeitsänderung darstellt.
Die Gesamtgeschwindigkeitsänderung ist also negativ.
Wenn Sie vermuten, dass die Gesamtgeschwindigkeitsänderung Null ist, ist der Nullpunkt der Beschleunigung dann an der falschen Stelle, dh die Beschleunigungsachse ist versetzt?
Benutzer191954
Benutzer199112