' schrieb:Um die Gechwindigkeit auf Null zu bekommen ist eine negative Beschleunigung, auch Abbremsung genannt, noetig, sonst bleibt die Geschwindigkeit konstant, wenn die Beschleunigung Null wird. Vielleicht solltest du erst die Physik hinter deinem Programm verstehen um zum richtigen Loesungsansatz zu kommen. ^_^
Physikalisch ist das ja völlig richtig, aber so wie ich die Frage verstanden habe, geht es darum, für die Berechnung von Weg s(t) und/oder Geschwindigkeit v(t) in den Formeln die richtigen Anfangsbedingungen zu setzen, damit das richtige Ergebnis herauskommt. Es geht nicht darum, den zu untersuchenden Körper mit negativen Beschleunigungswerten zu manipulieren.
Hier mal die Berechnungsformeln, wobei als Anfangszeitpunkt immer to=0 angenommen wird:
(I steht für Integral über der Zeit von 0 bis t)
Für Geschwindigkeit und Weg gilt
v(t) = vo + I(a(t))
s(t) = so + vo*t + I(I(a(t)))
Anfangsbedingungen sind s0 und so, womit s(t=0) und v(t=0) gemeint ist. Sie sollten richtig gesetzt und bei der Berechnung berücksichtigt werden. Die Beschleunigung selbst wird als Anfangswert überhaupt nicht gebraucht und muß für die Berechnungen nicht auf Null gesetzt werden! In den Formeln wäre für diesen Wert überhaupt kein Platz!
Und trotzdem ist bei der Beschleunigung noch etwas zu beachten: Wenn sich das Testobjekt in dauerhafter Ruhe ist, dann soll das im berechneten Verlauf auch so herauskommen. Das funktioniert aber nicht, wenn der Beschleunigungssensor einen Offsetfehler hat, was leider in der Regel der Fall ist. Die Beschleunigungsdaten sind also vom Offsetfehler zu bereinigen. Falls der Offsetfehler temperaturabhängig kann es sogar notwendig sein, mittels Testläufen den Offsetfehler immer wieder zu aktualisieren.
Unter Einbeziehung des Offsets a_offs (Offset ist keine Anfangsbedingung!) würde die Formel lauten:
s(t) = so + vo*t + I(I(a(t)-a_offs))
Der Offset läßt sich messtechnisch leicht ermitteln:
Wenn das Testobjekt in Ruhe ist, wird über die Zeit T gemessen und mit den nicht offset-bereinigten Daten der Weg s berechnet (der eigentlich Null sein sollte)
Der Offset berechnet sich dann zu:
a_offs = 2s/T^2 (abgeleitet aus der Formel für gleichförmige Bechleunigung s=a*t^2/2)
Oder einfach a(t) eine zeitlang bei ruhendem Testobjekt messen, und dann dann Mittelwert von a bilden: Das ist der Offset.