× Forum Header

Acceleration smoothness question

More
08 Jul 2016 16:37 #77187 by Lcvette
I have purchased some closed loop steppers along with mesa 5i25 & 7i76 plug and go kit. I have been reading everything about the new stepper drives and they are pretty nice with some unique options.

One of these options is the acceleration smoothness which can be set 0 - 10, 0 being no smoothing and 10 being max smoothing out more of an "S" acceleration curve. I have always loved the smooth motion of servos and not cared much for the jerky reactions of steppers comparison. My question after reading this manual and seeing it is programmable becomes whether or not LinuxCNC can account for this acceleration? The motors have encoders on them so i imagine I can send that positioning data to Linux CNC, but I'm not familiar enough with the software yet to know if it can be accounted for our if I have the correct hardware from mesa?

I wasn't sure where to post this, but this category appeared to be pretty close in nature and I was hoping one of the more experienced users might be able to answer some of those questions as it's not pulling up any results when I search.

Attached is the setting image for the acceleration programmable parameters. Along with the PDF manual for the drive. Any help is greatly appreciated!

Best regards,

Chris
Attachments:

Please Log in or Create an account to join the conversation.

More
08 Jul 2016 18:15 #77194 by Todd Zuercher
No, Linuxcnc will not account for that s-curve acceleration, it will be seen as a following error.
If you add the encoder feedback to Linuxcnc (and use it) Linuxcnc will try to correct for the following error introduced by the drives acceleration curve. End result you will probably see spikes in the following error at points where acceleration changes occur.
You did not really get the right hardware to read encoder signals. You would need something with encoder inputs like a 7i85, 7i85s, or 7i77.

All that said, you probably will be just fine using the 7i76 with no encoder feedback and setting the acceleration curve setting to a modest setting (less than 5 probably 2 or 3). You may want to experiment a little. You might be able to connect one motors encoder to the 1 encoder input on the 7i76 for testing to see how things work.
The following user(s) said Thank You: Lcvette

Please Log in or Create an account to join the conversation.

More
09 Jul 2016 04:22 #77207 by Lcvette

No, Linuxcnc will not account for that s-curve acceleration, it will be seen as a following error.
If you add the encoder feedback to Linuxcnc (and use it) Linuxcnc will try to correct for the following error introduced by the drives acceleration curve. End result you will probably see spikes in the following error at points where acceleration changes occur.
You did not really get the right hardware to read encoder signals. You would need something with encoder inputs like a 7i85, 7i85s, or 7i77.

All that said, you probably will be just fine using the 7i76 with no encoder feedback and setting the acceleration curve setting to a modest setting (less than 5 probably 2 or 3). You may want to experiment a little. You might be able to connect one motors encoder to the 1 encoder input on the 7i76 for testing to see how things work.


I figured it was too good to be true. The drives are closed loop to the motors via the encoders so no need to also include Linuxcnc, they just correct if there is a variance in commanded Steps to actual steps to ensure no steps are lost, they work very well like this, you can actually force the motor out of position and the drive will return it to the correct position (providing you don't fault it.)

I figured the motion planning would need accurate acceleration values or it might begin to make some undesired and out of sync movements between axis.

I guess I will play with it some and see what happens on a few parts with different acceleration settings in the drives and see how the part tolerances come out.. probably most critical on circular interpolated moves..

Thank you for the insights!

Chris

Please Log in or Create an account to join the conversation.

More
09 Jul 2016 21:25 #77236 by PCW
LinuxCNC's trajectory planner is what bounds the acceleration values, you just need to make sure your
drives acceleration limits are larger than LinuxCNCs limits so the drive limits are _never_ applied

Please Log in or Create an account to join the conversation.

More
10 Jul 2016 01:38 #77241 by Lcvette

LinuxCNC's trajectory planner is what bounds the acceleration values, you just need to make sure your
drives acceleration limits are larger than LinuxCNCs limits so the drive limits are _never_ applied


I'm confused, are you saying I can use the s curve?

Please Log in or Create an account to join the conversation.

More
10 Jul 2016 03:01 #77243 by PCW
No, using the s curve will cause following errors so cannot be used.

If the drive has acceleration limit settings they must be set higher than linuxCNCs
ini file acceleration limits

Please Log in or Create an account to join the conversation.

More
10 Jul 2016 23:45 #77273 by andypugh

No, using the s curve will cause following errors so cannot be used.


It might be possible to stretch the f-error limits to allow S-curve profiles?

Please Log in or Create an account to join the conversation.

More
11 Jul 2016 02:23 #77276 by OttoDidact
You don't need to use the acceleration profile in the motors because LinuxCNC has an acceleration profile built in.

Yo Dawg, your motors got acceleration profiles, so you can acceleration profile while you acceleration profile.


The profile in the motors would be for when they are used stand alone or single axis in a system that does not have an integrated motion control. Like a conveyor or some such.

Please Log in or Create an account to join the conversation.

More
11 Jul 2016 08:31 #77279 by andypugh

You don't need to use the acceleration profile in the motors because LinuxCNC has an acceleration profile built in.


That's not entirely true. LinuxCNC has acceleration limiting, but the rate of change of acceleration is not bounded.
It sounds like the drives being used here have a finite-jerk acceleration profile built in.
One good example of finite-jerk is when you brake to a halt in a car. If you don't ease up on the brake as the car stops there is a "bounce" when the velocity reaches zero and the acceleration instantaneously goes to zero too. By tapering off the braking as the car stops you are creating an S-curve acceleration profile.

It is quite easy to do S-curve on a single axis, so a drive can do it well. It is much harder to solve the equations for limited-jerk in a mutli-axis machine tool, and harder still in a non-cartesian machine like a robot arm.
Things will tend to get a bit confused if the controller is attempting an infinite-jerk mutli-axis trajectory plan while each individual axis is attempting to move its own motor with finite-jerk.

en.wikipedia.org/wiki/Jerk_(physics)

Please Log in or Create an account to join the conversation.

More
11 Jul 2016 08:53 #77280 by OttoDidact
OK, I'm not that deep into the LinuxCNC internals, but I would not expect motors operating under their own directive rather than listening to the motion controller would be a good thing.

I ebayed a pile of weird drives with what I thought were great and useful features until I realized that a stupid drive that listens to LinuxCNC was what I needed. Some day I'm going to have so many really slick single axis machines.

There are so many way to achieve a working CNC and it's quite overwhelming to see all the fantastic solutions that have been developed. Sometimes the most difficult aspect is not getting carried away or pulled in conflicting directions.

Please Log in or Create an account to join the conversation.

Time to create page: 0.124 seconds
Powered by Kunena Forum