Naive ping-pong motion timing

The “ping-pong” in the title is catchy but a misnomer. The following derives the travel time across a line segment with max speed and acceleration. Starting from one of the endpoints and reversing direction at the opposite produces ping-pong-esque motion when repeated, hence the title.

Note: Assumes max speed is actually reached but is easily adapted otherwise

(0) This was derived from my $DAY_JOB1 so let’s use real values to motivate the example

D := 1 m = 1000 mm
V := 100 mm/sec = 6000 mm/min
A := 50 mm/sec^2
N := 1000 segments

(1) Our total time is then acceleration/deceleration plus max speed time. The former are the same since we’re going from 0 => max speed or max speed => 0.

T = N * (T_accel + T_cruise + T_decel)
  = N * (2*T_accel + T_cruise)

(2) Time spent accelerating (or decelerating) from standard equations of motion

v = a*t + v_0
t = (v - v_0)/a

(3) Acceleration distance, plugging in (2) and assuming v_0 = 0

d = v_0*t + 1/2*a*t^2
   = 1/2*a*(v/a)^2
   = v^2 / 2*a

(4) Non acceleration, max speed time

v = (d - d_0)/t
t = (d - d_0)/v

(5) Plugging double (3) as d_0

t = (d - 2 * (v^2 / 2*a)) / v
  = (d - v^2/a) / v
  = d/v - v/a

(6) Plugging (2) and (5) into (1)

T = N * (2*(v/a) + d/v-v/a)
  = N * (v/a + d/v)

Solving (6) explicitly with (0)

T = 1000 * ((100mm/s)/(50mm/s^2) + (1000mm)/(100mm/s))
  = 1000 * (2s + 10s)
  = 12000s
  = 200min

  1. We make 3D CNC carving machines and the design software for them. I was improving our time estimates to better align with the physics of the motion control. If you’re interested in such things we’re hiring [return]