0
$\begingroup$

I've been investigating S-Curve motion profiles for CNC router and 3D printer applications, and haven't come across any definitive source that says an S-Curve profile is necessary in any application. And in fact, it may even slow down a print.

This simulator compares S-Curve and trapezoidal motion profiles, showing that with the same velocity and acceleration, a move will take longer to complete. Interestingly, the maximum acceleration of the S-Curve profile can be increased a small amount while keeping the maximum positional error (and force) beneath that of the trapezoidal profile. This is because the slow ramp in acceleration allows the driven object to accelerate closer to the target speed, thus reducing the overall force.

In theory, an instantaneous change in force will also excite natural vibrations in a system as well (in the same way connecting an inductor/capacitor directly to a 12v source induces ringing). Is this a problem in real-world mechanical systems? And in those systems, would using an S-Curve profile reduce the ringing?

$\endgroup$
1
$\begingroup$

Short version, yes having an s-curve profile is beneficial for smoother and more accurate tracking.

Longer version: For all real hardware systems I've worked with it has been important to use an internally consistent profile. By this I mean, the derivative of your profile needs to match your velocity and the derivative of your velocity profile needs to match your acceleration. If that's not the case you are asking the system to do something that is physically impossible. Instantaneous acceleration changes are not possible so the control system simply cannot track perfectly at those points in the profile).

That said, there are practical times when things are good enough without meeting this condition. Some systems are, practically speaking, velocity controlled instead of force controlled. Other systems have a lower-level controller that will effectively turn your step-acceleration profile into an s-curve by limiting jerk of the profile (often a lower-level system parameter.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.