In short a motor, through a mechanical transmission, must move in a certain manner a mechanical part. To achieve this a controller unit must implement a position control, feeding the motor drive with a proper speed reference to obtain the desired motion.

A certain position can be reached in infinite ways: the speed profile is directly related to the forces and power supplied by the motor and transmitted through the mechanical parts. Given the axis inertia, the motor sizing depends on how fast we must reach a target position.A positioning speed profile is composed by an acceleration part, during which the system increases its kinetics energy absorbing mechanical power from the motor, a constant speed part, where the maximum speed is reached, then a deceleration part, when the motor must absorb power to brake the system.

Position controllers traditionally use a trapezoidal speed profile, characterized by constant acceleration; the advantage of this profile is not only its simple computation, but the lowest mechanical strains on the system given the duration of the acceleration phase.With the increase of the CPUs computational power, controllers are starting to implement the so-called S-curves, where the speed profile has no sharp bends and so the acceleration has no discontinuities. The main advantages of such profiles are a gradual application of mechanical forces to the system and the possibility to flatten the flowing power trend, limiting the power peaks. Note that this does not necessarily imply that S-curves are always better than the linear profile: given a maximum admissible acceleration they need more time to do the job; in other words, within the same time constraints the acceleration needs to reach higher values, thus augmenting the instantaneous mechanical strains.

When choosing the speed profile, along with the desired system performances, you must pay attention to the acceleration peak, which affects the mechanical transmission stresses. Then you must analyze the flowing power (considering the operating duty cycle), which entails the size of the motor/servo drive couple; don't forget that the deceleration (absorbed) power must also be considered to size the proper breaking system, or, hopefully, the regeneration system. While the average power depend just on the acceleration duration, the power peak is highly influenced by the profile trend; a good one has low accelerations towards the high speeds.The profile functions can be single or piecewise-defined; in the latter case the profile tunability is obtained through more simpler functions joined together. There are two major types of S-curves functions: polynomials and trigonometric.

The parabolic profile consists in a piecewise-defined function composed by two joined parabolas; when joined directly the maximum acceleration is double respect the equivalent linear profile. Is very interesting the possibility to adjust the joint position moving the acceleration peak towards the low speeds in order to flatten the power trend (in that case the profile looses symmetry, changing the acceleration space). The single cubic profile has a quite better smoother acceleration trend, with a low peak and no internal sharp bends. If you want to move the speed inflection point towards the low values, you have two ways: the first is to increase the polynomial order, the second is to break the definition intervals in more pieces; the best solution is the second one.When trigonometric functions are available, a feasible alternative to cubic profile is the cosine curve. The best thing about trigonometric functions is that they are much more controllable respect high order polynomials; on the other hand they often lead to very complicated integrals (when they exist in a closed form), as I saw during my attempts to improve the cosine profile power trend with a varying frequency sinusoid. I finally concluded that many simple functions are better than fewer but complicated ones.

You can perform your own observations using the web page I have developed as a comparison tool of various positioning profiles. You should be able to identify the mathematical functions directly from the plots and draw your own conclusions. Insert your input parameters (acceleration duration, max speed, displacement, inertia) using a coherent system of measurement; remember that the quanties may refer either to linear or rotational movement; in the latter case, the inertia term is not a mass but a moment of inertia. As last note, I want to point out that is somewhat odd to fix the acceleration time instead of the maximum admitted acceleration value, but the typical System Integrator is more familiar with time measures, and usually quantifies the system performances with the ramp durations. Sadly a lot of servo systems follow this improper parametrization, so I have given up and decided to perform the comparison fixing the time constraints.

Just some usage notes: ensure you have enabled javascript,
and, as always, use a web standard compliant browser
(read: not Internet Explorer); I have spent some effort to implement
all the work client side, so you can save and use the page locally.
You can zoom and pan plots (use mouse wheel and left click drag),
and save your calculation in a bookmark.

Here is the page:
Positionings comparison page