A technique for implementing dynamic S curve stepper motor velocity
profiles provides improved performance in controlling the motion of a
mass. A method for controlling a moving mass comprises accelerating the
moving mass according to a velocity profile, detecting that the moving
mass has a specified position, and altering the velocity profile based on
the detection of the moving mass having the specified position. The
velocity profile is altered by reducing a maximum velocity of the moving
mass, if the moving mass has the specified position before a maximum
velocity of the velocity profile is achieved.