Acceleration plus change in Direction

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 3K views
dmtcons
Messages
2
Reaction score
0
I've been working on a hobby site for some time that analyses GPS data, and calculates top speeds etc for sailors.

GPS data is a bit unreliable, so there is necessarily some filtering that occurs, and one filter is on acceleration.

It is unusual for a vessel to accelerate at more than 3m/s^2, for instance.

Recently I've realized that I'm basing all acceleration calculations assuming the vessel is traveling in a straight line. With bad data, this is not necessarily the case. I could have a data point that shows a vessel traveling at 16m/s at 270 degree, then 14m/s at 100 degrees a second later. At the moment, I would be calculating a slight deceleration from this, but in fact this is an invalid point.

I can't seem to find any straightforward reference to how to determine acceleration around a corner. Can someone please point me to a place where I can find this information?

Here's a real example:
data is duration (s), speed (m/s), direction (degrees)
2, 28.9, 155
2, 14.7, 310
2, 18.0, 354
2, 1.02, 270

At the moment, my software doesn't think that the acceleration between points 2 and 3 is unusual, but because of the almost 45 degree turn involved, it should be noticing a big difference.

Dylan.
 
Physics news on Phys.org
You have velocity data and an interval of 2 seconds.

You could always componentize the velocity in Cartesian coords then divide by two to get the average acceleration .

for i<max.points;i++
{

velx(i) = speed(i)*cos(direction(i))
vely(i) = speed(i)*sin(direction(i))

accx(i) = (velx(i)-velx(i-1))/data duration
accy(i) = (vely(i)-vely(i-1))/data duration

accmagnitude = sqrt(accx^2+accy^2)
accdirection = arctan(accy/accx)

}
 
Last edited:
Feldoh,

Thanks for that. I will try out this suggestion tonight and see how it goes.