2016-03-22 16 views
2

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: Acceleration, velocity and distance chart

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

+0

Wie ist das Zeitintervall Ihrer Messungen? – Shai

+0

Die Abtastrate beträgt 50 ms. –

Antwort

0

Es tut mir leid, dass ich um Hilfe gebeten habe, ich dachte, meine Formeln wären in Ordnung, aber sie taten es nicht. Nach dem Schritt von meiner Endlösung Schritt Berechnungen ist:

1) Geschwindigkeit:

v(i) = v(i-1) - x(i-1)-(x(i)+x(i-1))/2; 

2) Entfernung:

s(i) = s(i-1) + v(i-1)+(v(i)+v(i-1))/2; 

Und Diagramm ist:

Acceleration,Velocity,Position chart

Entschuldigung noch einmal Zeit. Ich hoffe, das hilft jemandem, Geschwindigkeit und Distanz zu berechnen. Es hat mir sicherlich als Lektion geholfen, meinen Code beim nächsten Mal besser zu studieren, bevor ich um Hilfe bat.

Verwandte Themen