Ich arbeite an grundlegenden Abstandsberechnung mit Beschleunigungsmesser durch Ziehen Objekt auf einer einzigen Achse für Physik-Klasse in MATLAB und haben Probleme mit dem Plotten von Daten.Plot Geschwindigkeit und Distanz berechnet mit Beschleunigungsmesser
Meine Schritte sind:
1) Nach Gerät Kalibrierung Null g auf jeder Achse zu lesen, zu beseitigen wir Driftfehler:
X_real = X_sample - X_calibrated;
if(X_real <= X_drift)
{
X_real = 0;
}
Wo X_drift 2 mg (aus Datenblatt des Beschleunigungsmessers ist)
2) berechnen Geschwindigkeit:
velocity = 0; % On start
% Integration
v(i) = v(i-1) - x(i-1)-(x(i)+x(i-1)+x(i-2)+x(i-3))/4;
%Check if we stopped
if(x(i-1)==0 && x(i)==0)
v(i)=0;
end
%Check if velocity is under 0 (Not allowed)
if(v(i) < 0)
v(i)=0;
end
velocity = velocity + v(i);
3) berechnen Entfernung:
distance = 0; % On start
%Integration
s(i) = s(i-1) + v(i-1) + (v(i)-v(i-1)-v(i-2)-v(i-3))/4;
distance = distance + s(i);
Danach Prüfung durch Ziehen Beschleunigungsmesser auf dem Tisch 20 cm bekam ich diese Ergebnisse:
velocity = 0.09 m/s
distance = 0.21 m
time = 3.2s
Fehler von 1 cm für den Unterricht in Ordnung ist.
Diagramm sagt etwas anderes:
Ich versuchte, Abstand danach zu plotten: s(i) = s(i)+s(i-1);
Und bekam 21 cm auf Diagramm, aber nach 6 s nach 4 s, wo es sein sollte. Was mache ich falsch?
* UPDATE: Position y Wert ist in mm nicht cm! Sorry
Wie ist das Zeitintervall Ihrer Messungen? – Shai
Die Abtastrate beträgt 50 ms. –