MEMS-Beschleunigungsmesserkalibrierung

7

Ich versuche einen MEMS-Beschleunigungsmesser zu kalibrieren. Ich konnte es für die aktuelle Achse kalibrieren, die parallel zur Schwerkraft verläuft und korrekt 1 g anzeigt. Die anderen beiden Achsen, die 0,00 g betragen sollten, zeigen stattdessen + -0,02 g. Wenn beispielsweise die x-Achse des Beschleunigungsmessers parallel zur Schwerkraft ist, sollte sie (1 g, 0 g, 0 g) und nicht wie jetzt (1 g, 0,02 g, -0,01 g) anzeigen.

Wie könnte ich diese Werte beseitigen, z. B. den Beschleunigungsmesser weiter kalibrieren?

BEARBEITEN : Das Datenblatt des Beschleunigungsmessers sagt nichts über die Kalibrierung aus, außer dass die IC-Schnittstelle werkseitig auf Empfindlichkeit (So) und Null-g-Pegel (Aus) kalibriert ist (Seite 20).

Primož Kralj
quelle
2
Haben Sie Ihre Fehler mit denen auf Seite 18 verglichen? Sie erhalten maximal 20 mg in Ruhe. Dies scheint innerhalb der angegebenen Toleranz zu liegen:±70 mg
Josh Vander Hook
Sie haben dort einen gültigen Punkt! Aber warum erhalte ich Fehler nur auf Achsen senkrecht zur Schwerkraft (0 g) und nicht auf Achsen parallel zur Schwerkraft (1 g)? Ist das nicht seltsam?
Primož Kralj
Ich würde mich nicht beschweren, wenn eine Achse besser abschneidet als die anderen. Viel Spaß beim Roboter.
Josh Vander Hook
Es spielt keine Rolle, welche Achse - x, y und z 1,00 g zeigen, sondern nur und nur dann, wenn sie parallel zur Schwerkraft sind. Ich hoffe, ich habe mich nicht falsch ausgedrückt, indem ich sagte, dass nur eine Achse den richtigen Wert zeigt - es hängt davon ab, ob die Achse parallel zur Schwerkraft ist oder nicht! Fall für nur eine Achse, sagen Sie x: Wenn es parallel zur Schwerkraft ist, zeigt es 1,00 g (das ist gut); wenn senkrecht zur Schwerkraft 0,02 g angezeigt werden (nicht gut). Dies tritt für alle drei Achsen auf. Ändert diese Information eine Ihrer Antworten?
Primož Kralj
Wenn (Fehler <Toleranz des Geräts), ist die Lebensdauer gut. Ich kann Ihnen nicht helfen, den verbleibenden .02g-Fehler zu entfernen, es sei denn, Sie möchten ihn subtrahieren, da er immer angezeigt zu werden scheint.
Josh Vander Hook

Antworten:

6

Es ist möglicherweise eine Vorspannung im Beschleunigungsmesser. Die gemessenen Nicht-Null-Ergebnisse (wie Ihre) sind die Abweichung. Keine Ahnung, ob das Ausmaß dieser Verzerrungen richtig ist, dh Sie haben möglicherweise mehr Fehler, als Sie von einer Verzerrung erwarten sollten. Um klar zu sein, können Sie diese Verzerrung von Ihrer Schätzung der Beschleunigung abziehen. Sie sollten jedoch sicher sein, dass sich die Tendenz nicht mit der Zeit ändert. Dann brauchen Sie ausgefeiltere Methoden. siehe: Übersicht über INS oder einige Literatur und typische Beschleunigungsmesserspezifikationen .

Hilft Ihr Datenblatt? Es gibt wahrscheinlich einen Abschnitt über Kalibrierungsschemata. Zum Beispiel :

"In einem No-Turn- oder Einzelpunkt-Kalibrierungsschema ist das Teil so ausgerichtet, dass sich eine Achse, typischerweise die z-Achse, im 1 g-Schwerkraftfeld befindet und die verbleibenden Achsen, typischerweise die x- und y-Achse, befinden sich in einem 0 g-Feld. Die Ausgabe wird dann gemessen, indem der Durchschnitt einer Reihe von Proben genommen wird. Die Anzahl der gemittelten Proben ist eine Wahl des Systemdesigners, aber ein empfohlener Startpunkt sind Daten im Wert von 0,1 Sekunden für Datenraten von 100 Hz oder mehr. Dies entspricht 10 Abtastwerten bei einer Datenrate von 100 Hz. Für Datenraten unter 100 Hz wird empfohlen, mindestens 10 Abtastwerte zusammen zu mitteln. Diese Werte werden als X0g, Y0g und Z + 1g gespeichert für die 0 g-Messungen auf der x- und y-Achse bzw. die 1 g-Messung auf der z-Achse "

BEARBEITEN: Vergleichen Sie diesen Fehler auch mit der angegebenen Genauigkeit Ihres Sensors. Es stellte sich heraus, dass dieser kleine Fehler kein Problem und nicht unerwartet war.

Josh Vander Hook
quelle
Sollte die Verzerrung nicht beseitigt werden, da ich dieses Matlab-Skript verwendet habe ? Grundsätzlich habe ich die (x,y,z)Ausgabe an neun verschiedenen Positionen gemessen und dann die Skalierungsfaktormatrix und den Bias-Vektor berechnet, die ich in den Code aufgenommen habe. Was ist, wenn die Fehler in senkrechten Achsen darauf zurückzuführen sind, dass sie falsch ausgerichtet sind? Möglicherweise sind die Achsen von MEMS überhaupt nicht orthogonal, was die Abweichung verursacht. Ich bin mir nicht sicher, ob das Skript sich darum kümmern soll oder nicht.
Primož Kralj