Skip to main content

In some motion control applications, an S-curve motion profile can help to smooth the motion and reduce the possibility of exciting a vibration or oscillation.  The "S-curve" refers to the rounded "S" shape of the velocity versus time graph.  To understand where the "S" comes from we have to first look at the acceleration vs time graphs.  In a standard trapezoidal motion profile, the acceleration vs time graph is essentially a "step" function.  In an s-curve profile, the acceleration vs. time graph is a triangle (as shown in the image below) or possibly a trapezoid.

Acceleration profiles for S-curve and Trapezoidal motion

The derivative of acceleration is called "jerk" and by ramping up the acceleration - it eliminates the instantaneous change in acceleration.  The result is a rounded velocity profile that can be seen on the overlay of an s-curve and a triangular move profile shown here:

One method of getting an s-curve motion profile is to use the Contour Mode of motion programming which allows the user to define any shape of curve and input it directly into the controller.  In the following example, I'll show you how to create an S-curve profile using an Excel spreadsheet and then download it to a controller.  To simplify things, we are going to put some constraints on the s-curve profile.  The first constraint is that there will be no "constant speed" portion of the move.  The first half of the move will be the acceleration phase and the second half of the move will be the deceleration phase.  The second constraint is that our move will be made up of 100 contour data segments.

The excel spreadsheet calculates the s-curve profile and uses a Macro to download the data to the controller (GalilTools or GalilTools Lite must be installed in order for the Macro to work).  Open the Excel file and make sure that macro capability is enabled.  Next, put in the desired length of move (positive or negative values are accepted) and put in the desired DT value.  The DT value defines how long the move will take - for more information on how the DT value affects the move, please see the command reference for your controller.  After defining those two parameters - click on the button labeled "Accelera Download" for Accelera series motion controllers or "Econo Download" for Econo and Optima based motion controllers.

The Excel worksheet can be modified to extend the number of points, change the axis designation or  change the move profile.

Watch the video on how it works from here (no sound):

s-curve.mp4

Download the Excel file from here:

s-curve-gt.xls

Alternatively, a s-curve-creator.dmc program can be downloaded and run that dynamically creates the s-curve profile in Galil DMC code.  This can be downloaded from the "Modes of Motion" section of the Sample DMC Code library here:

http://www.galil.com/learn/sample-dmc-code

For information on how to get the standard upgrade option of having an s-curve velocity profile as part of the PA, PR, or JG mode of motion - contact a Galil Applications Engineer.