Aufheben des Effekts der konstanten Gravitationsbeschleunigung in einem Datenlogger

Wie ist es in einem Design, das nicht nur Beschleunigungsmesserwerte (X + Y + Z), sondern auch Kreiselwerte (X + Y + Z) aufzeichnet, möglich, die durch die Schwerkraft verursachten Beschleunigungsmesserwerte zu entfernen?

Ich habe viele Datensätze von Crawdad gefunden , die bessere Messwerte liefern, die nicht von der besagten durch die Schwerkraft verursachten Leerlaufbeschleunigung beeinflusst werden.

Ich habe einen Datenlogger vorbereitet , um die Bewegung eines bestimmten Tieres aufzuzeichnen. Im Leerlauf habe ich festgestellt, dass die Z-Achse kontinuierlich 9,81 ms^-2 aufzeichnet. Ich würde gerne wissen, ob es eine Methode gibt, mit der ich die Wirkung dieser unerwünschten Gravitationskomponente reduzieren kann. Ich beabsichtige nur, die Beschleunigung aufzuzeichnen, die durch die Bewegung der Tiere verursacht wird. Alle anderen Vorschläge sind sehr willkommen.

Die gebräuchlichsten Methoden bestehen darin, ihn auf einer Achse zu lokalisieren und mit einem Hochpassfilter zu filtern, oder einen Zustandsschätzer zu verwenden, um den Gravitationsvektor zu verfolgen und ihn zu subtrahieren. Leider kann ein praktischer Beschleunigungsmesser nicht den Unterschied messen, ob man mit 10 m/s^2 nach oben beschleunigt wird oder auf dem Boden sitzt.
Vielleicht bin ich hier dumm, aber wenn sich der Beschleunigungsmesser nicht bewegt (in einem konstanten G-Feld gehalten wird), haben Sie keinen Versatz.
Soweit ich weiß, ist das kein einfaches Problem. Sie müssen wissen, welcher Weg unten ist (im Koordinatensystem Ihres Sensors), und dann 1 g abziehen. Aber um zu wissen, wo unten ist, müssen Sie wahrscheinlich die Daten verarbeiten, um eine fortlaufende Schätzung der Lage (in Bezug auf das Gravitationsfeld), der Rotationsgeschwindigkeit und der Beschleunigung zu generieren. Dann können Sie die Gravitationskomponente der Beschleunigung abziehen. Ich denke, Sie sollten Ihre Anwendung jedoch genauer erläutern. Es könnte einige "Abkürzungen" geben. Annahmen hinzugefügt, um den Prozess zu vereinfachen.
Wenn Sie nicht genau sagen möchten, um welche Art von Tier es sich handelt, sagen Sie zumindest, ob es sich um ein langsames Tier handelt oder ob es sich häufig ausruht, dreht es sich jemals um? Kann es fliegen?

Antworten (1)

Je nachdem, ob Sie protokollierte Daten oder Echtzeitdaten verarbeiten, variiert die Methode. Was Sie brauchen, ist davon auszugehen, dass das Objekt nicht ständig beschleunigt, was durch die Tatsache bewiesen werden kann, dass das Tier auf der Erde bleibt.
Sie können einen gleitenden Durchschnittsfilter verwenden, um den Mittelwert (Schwerkraftverzerrung) von jeder Probe zu subtrahieren. Sie tun dies in Matlab, indem Sie filtfilt() verwenden, das den Anfangs- und Endzustand basierend auf den Datenwerten richtig abgleicht. Als Filter können Sie einen einfachen mittelnden FIR-Filter mit gleichen Abgriffen oder einen geeigneteren FIR-Filter entwerfen. Ein guter Grund, filtfilt() zu verwenden, ist, dass es hin und her filtert, wodurch die Filterverzögerung aufgehoben wird und alle Signale in exakter Phase bleiben. Sie machen dasselbe mit Gyro und fusionieren dann beide Daten miteinander.