Stellen wir ein einfaches mathematisches Modell eines Beschleunigungsmessers zusammen - daraus können wir einige Kalibrierungsoptionen erarbeiten.
Ohne Berücksichtigung von Nichtlinearität und anderen unangenehmen Effekten ist die Ausgangsmessung eines Beschleunigungsmessers gegeben durch:
f^= M f+bein+nein
wo f^ ist die tatsächliche Messung, bein ist die Vorspannung des Beschleunigungsmessers, nein ist ein zufälliger Rauschvektor, f ist die wahre spezifische Kraft (dh Beschleunigung) und M. ist die Skalierungsfaktor / Fehlausrichtungsmatrix.
Die einzelnen Elemente der SFA-Matrix sind:
M =⎡⎣⎢S.xγyxS.xγx yS.yyγzyγx zγyzS.zz⎤⎦⎥
Jeder Skalierungsfaktor wird also durch ein dargestellt S. und jede Querachsenempfindlichkeit wird durch a dargestellt γ.
Wenn der Skalierungsfaktor 1 ist und keine Empfindlichkeit über die Achsenachse vorliegt, ist dies idealerweise die resultierende Matrix M = I..
Wenn wir es so darstellen, können wir ein Vergütungsmodell entwickeln. Wenn wir es zufällig wissenM. und bein und annehmen nein Um klein zu sein (dh nahe Null), können wir die "wahre" Beschleunigung aus den Messungen gut abschätzen:
f=M.- 1(f^- -bein)
Der Trick ist natürlich, zu trainieren M. und bein.
Ich werde ein Verfahren beschreiben, das als Sechs-Positionen-Test bezeichnet wird und eine einfache und kostengünstige Möglichkeit darstellt, einen Beschleunigungsmesser zu kalibrieren. Schritt 1 ist die Montage des Beschleunigungsmessers in einer rechteckigen Box mit perfekt90∘Seiten (oder so nah wie möglich). Stellen Sie dies auf eine perfekt ebene Fläche (oder wieder so nah wie möglich) - Sie wären überrascht, wie gut Sie dies tun können.
An diesem Punkt wissen wir, wie hoch der Wert sein sollte: Schwerkraft auf dem Z-Beschleunigungsmesser:
f1=⎡⎣⎢00G⎤⎦⎥
Das wird also:
f^1= M.f1+bein+nein
Bemerken, dass
f^1 wird geschlossen, aber nicht das gleiche wie
f1
Wenn wir die Box auf den Kopf stellen, wirkt die Kraft - g::
f2=⎡⎣⎢00- g⎤⎦⎥
Und wenn auf einer Seite platziert:
f3=⎡⎣⎢0- g0⎤⎦⎥
Und so weiter für die restlichen drei Seiten.
Schreiben wir nun eine der Gleichungen in Langschrift:
f^1= M.f1+bein+nein=⎡⎣⎢S.x xfx+γx yfy+γx zfz+bxγyxfx+S.yyfy+γyzfz+byγx zfx+γyzfy+S.zzfz+bz⎤⎦⎥
Und noch längere Hand (für die erste):
f^1=⎡⎣⎢fxS.x x+fyγx y+fzγx z+ 0γyx+ 0S.yy+ 0γyz+ 0γx z+ 0γyz+ 0S.zz+ 1bx+ 0by+ 0bz0S.x x+ 0γx y+ 0γx z+fxγyx+fyS.yy+fzγyz+ 0γx z+ 0γyz+ 0S.zz+ 0bx+ 1by+ 0bz0S.x x+ 0γx y+ 0γx z+ 0γyx+ 0S.yy+ 0γyz+fxγx z+fyγyz+fzS.zz+ 0bx+ 0by+ 1bz⎤⎦⎥
So können wir einen gestapelten Vektor der Unbekannten erstellen
z = A β
Wo
z =⎡⎣⎢⎢⎢⎢⎢f^1f^2⋮f^6⎤⎦⎥⎥⎥⎥⎥
Und
β=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢S.x xγx yγx zγyxS.yyγyzγx zγyzS.zzbxbybz⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
Die Entwurfsmatrix lautet (für einen Satz von Messungen):
EIN^1=⎡⎣⎢fx00fy00fz000fx00fy00fz000fx00fy00fz100010001⎤⎦⎥
Sobald dies eingerichtet ist, kann man nach lösen β(und damit Empfindlichkeit und Vorspannung) über kleinste Quadrate .
Ein ähnliches Verfahren kann mit einem Roboterarm durchgeführt werden, wenn Sie die Winkel genau steuern können. Er antwortet lediglich mit der Kenntnis der genauen Schwerkraft in diesem Winkel, der, wenn Sie den Winkel kennen, leicht zu berechnen ist.