Sinusoidal functions for s-curve motion

While trapezoidal speed motion pattern is good and well. It is well known that the sudden changes in acceleration it requires, also known as jerk (jerk being the time derivative of the acceleration) is the cause of trouble in many machines.


That first model can be improved with another acceleration shape that will remove the sudden changes, thus improving the system performance.

However, will there are no sharp edges on the acceleration values, there is still a couple of points where there is a not so smooth change. So the next idea, while still within the use of a sinusoidal acceleration profiles is to change to this other acceleration profile:

This new curve has smoother transitions from zero to any other value, thus no more problems with the jerk. However, we still can think of a combination of this latter case and the initial one, where corners are smoothed out using a sinusoidal:
That is what they suggest in this paper

While I was not eager to use any complex math in my dcservo project, I wanted to extend the trapezoidal method with something a bit smoother. And once I have learned a single trigonometric function call in Arduino takes around 100 microseconds I think I can play with these patterns to see which one works best. 

What I have found surprising is that Arduino M0 trigonometric functions seem to be no faster than the 8-bit older boards.


Comments

Popular posts from this blog

VFD control with Arduino using RS485 link

How to get sinusoidal s-curve for a stepper motor

Stepper motor step signal timing calculation