Motion Profile Calculator

One move: its position, speed, acceleration and jerk over time.

Solve for
Move
%

Results

Accel—
Constant speed—
Decel—
Dwell—

How it works

The move starts and ends at rest. With a jerk limit, acceleration can't jump: it ramps up at the jerk rate, holds, then ramps back down. Reaching acceleration a takes a / jerk seconds, so reaching speed v takes v / a + a / jerk, and the distance covered on the way is v × ramp time / 2.

Worked example. 200 mm at 500 mm/s, 5 m/s² and 150 m/s³. Each ramp takes 0.5 / 5 + 5 / 150 = 0.1333 s and covers 0.5 × 0.1333 / 2 = 33.3 mm. That leaves 133.3 mm at constant speed, which takes 0.2667 s. Move time: 0.1333 + 0.2667 + 0.1333 = 0.5333 s.

Depending on the distance and the limits, the move lands in one of four shapes.

Full S-curve

long move, v ≥ a² / jerk

Reaches max acceleration and max speed. Seven segments.

No constant speed

short move

Starts to slow down before reaching max speed. The peak speed is lower.

Jerk-limited

v < a² / jerk

The ramps meet before max acceleration is reached. It peaks at √(v × jerk).

Short and jerk-limited

both

Reaches neither limit. Four ramps, back to back.

Smoothing is the same thing seen from the other side: the share of each ramp spent changing acceleration. smoothing = 2a² / (jerk × v + a²). Type either one and the other is calculated. At 0 % jerk is infinite, which is a plain , and at 100 % jerk is a² / v. A jerk below that can only be typed. Deceleration can also differ from acceleration, for example for a .

Solve for works the other way round: give the move time and get the max speed or the acceleration it needs. With a constant-speed phase the move takes distance / v + (ramp up + ramp down) / 2, and that falls as either limit rises, so there is one lowest value that finishes on time. Below a floor no value can: the fastest move never cruises, and however high the acceleration, a ramp to v takes at least 2 × √(v / jerk).

Questions

What is a motion profile?

It describes how one axis gets from rest to a target and back to rest: its position, speed, acceleration and jerk at every moment. It follows from the distance and three limits: the max speed, the acceleration and the jerk.

What is the difference between a trapezoidal and an S-curve profile?

In a trapezoidal profile acceleration switches on and off instantly, so the speed curve is a trapezoid and jerk is infinite. An S-curve limits jerk: acceleration ramps up and down, which rounds the corners of the speed curve. It takes a little longer and is gentler on the mechanics.

How do jerk and smoothing relate?

They are two ways to set the same thing. Jerk is how fast acceleration may change. Smoothing is the share of each ramp spent changing acceleration: smoothing = 2a² / (jerk × v + a²). 0 % is a trapezoid and 100 % has no constant-acceleration part.

Why doesn't my move reach the max speed?

The distance is too short. The axis has to start slowing down before it gets there, so the peak speed is lower than the limit and there is no constant-speed phase. The calculator shows the speed actually reached.

Why doesn't it reach the set acceleration?

The jerk is too low. When the max speed is below a² / jerk, the ramp up and the ramp down of acceleration meet before the limit is reached, and acceleration peaks at √(v × jerk).

Can it find the max speed or acceleration for a given move time?

Yes. Pick Max speed or Acceleration under Solve for and type the move time. It returns the lowest max speed, or the lowest acceleration, that finishes the move in that time. If no value can, because the acceleration, jerk or max speed sets a floor, it tells you the shortest time possible.

How precise is the calculation?

The timing is calculated server-side in Python Decimal, and rounding is display-only. The plotted curves are sampled from the same solution, with every phase boundary included exactly.