S Curve motion profile (motor speed v/s time)

10.4k views Asked by At

I am trying to control a Industrial AC Servo motor using my XE166 device.

The controller interfaces with the servo controller using the PULSE and DIRECTION control.

To achieve a jerk-free motion I have been trying to create a S Curve motion profile (motor speed v/s time).

Calculating instantaneous speed is no problem as I know the distance moved by the motor per pulse, and the pulse duration.

I need to understand how to arrive at a mathematical equation that I could use, that would tell me what should be the nth pulses duration to have the speed profile as an S-Curve.

Since these must be a common requirement in any domain requiring motion control (Robotics, CNC, industrial) there must be some standard reference to do it.

With anticipation

1

There are 1 answers

1
Mark Booth On

I have just answered a similar question over on robotics.

The standard solution would be to use a low level velocity PID controller to generate the PULSE and DIRECTION signals given a velocity demand, and then have an outer supervisory controller, which would ramp the velocity demand (mm/s) up or down in accordance with your required acceleration (mm/s/s) and jolt (mm/s/s/s) control parameters.

This picture shows a schematic diagram of jerk, acceleration, and speed, assuming all three are limited in their magnitude, when linearly going from one point to another, which are sufficiently far apart to reach the respective maxima.

Initially, I would suggest that you try a trapezoidal velocity profile (instantaneous change in acceleration), as I suggested in Control both Velocity and Position (Linear actuator) and then extend it to add the jolt/jerk term later.