# S-Curve Corner Transition – Design and Calculations

# Design - Introduction

The reason the S-Curve Corner Transition was designed was due to the existing Corner Distance Transition having a discontinuity in the acceleration vector when entering the circular arc of the transition.

If the axes group is travelling in a line at constant speed, the acceleration vector is zero. However, when entering a circular arc, the acceleration immediately turns on pointing to the center of rotation of the circular arc (Figure 1).

**Figure 1: Acceleration Through Corner Distance Transition**

Having the acceleration change discontinuously can cause unwanted vibrations in a system. To address this, the S-Curve Corner Transition was created.

Figure 2 shows:

- This transition uses spline segments to allow the acceleration vector to be continuous with time.
- When an axis has a constant speed entering the transition, the acceleration remains zero at the very beginning of the transition and be zero at the end of the transition.
- In between, the acceleration changes continuously with time.

**Figure 2: Acceleration Through S-Curve Corner Transition**

## Design - Details

To keep the acceleration continuous, each axis in the axis group is analyzed.

Figure 3 shows:

- The start and end positions and velocities for each axis is used in the calculation.
- A set of constant jerk[1] segments is calculated for each axis with the goal of minimizing the magnitude[2] of the jerk.
- For each axis, a jerk and time value are determined so the axis can reach the end position and velocity with just two segments:

**Figure 3: Velocity Profile of a Two-Segment S-Curve**

Each axis needs a different amount of time to complete a two-segment transition (Figure 4).

- It is necessary for all axes to finish their transition at the same time.
- So, the largest time is used for the time of the transition.
- The axes that had shorter times are re-calculated using three constant-jerk segments with the time fixed to time of the transition.

**Figure 4: Velocity Profile of a Three-Segment S-Curve**

Now all axes reach their target positions at the same time.

Back to top## Design – Determining Path on Abort

When a move is aborted using the S-Curve Corner Transition, the position of the corner determines the direction of the abort move as well as the shape of the transition.

Figure 5 shows how the corner position and the path of the transition and abort move is determined.

**Figure 5: Path Planning on Abort**

## Calculations – Vector Decomposition

Before calculating the time of the transition, we must decompose the velocity vectors into their components.

For this we need the position vectors of the first move initial position, corner position, and second move final position (Figure 6).

**Figure 6: Detail of Panel #4 in Figure 5: Path Planning on Abort**

Breaking the position vectors into components, we have:

We now need to take the position change vectors:

and calculate the magnitude of the position change vectors:

Let us define the speeds of the first and second moves:

Now we can break apart the velocity vector into its parts.

Similar equations can be written for the other components of the incoming and outgoing velocities of the transition.

Back to top## Calculations - Time

For each axis, these inputs are used by the S-Curve Corner Transition:

- x0 – The initial position of the axis
- xf – The final position of the axis
- v0 – The initial velocity of the axis
- vf – The final velocity of the axis

The time for each axis is determined using this formula:

- If vf = - v0, then
_{}for that axis is set to zero. - If all
_{}are zero, the direction of motion for the entire axes group is reversed. - This is a special case and is handled differently by bringing all axes to a stop and then reversing the motion.

The time for transition is maximum value of all axis _{} values.

## Footnotes

1. Jerk is the derivative of acceleration with respect to time.

2. The magnitude of a value is the measure of how big or far away from zero the value is.

The magnitude is also known as the absolute value.

Back to top