Linuxcnc - s-curve acceleration? (7176e)

More
9 years 1 month ago #98417 by robertspark
Hello, new to linuxcnc still very much learning.

I'm sure this has been asked before from the posts I've seen and searched for, but I was wondering does linuxcnc do s-curve (jerkless) acceleration?

Given I'm intending to use (awaiting arrival of ) a Mesa 7176e, I was wondering if this changes things at all?

Given it appears that the hard lifting (bit banging) is done by the FPGA in the 7176e (same as other motion controllers I'm used to from the dark side), and linuxcnc spits tradjectory planner data out to the Mesa card at the servo loop frequency, I was wondering if a quazi curve fitting servo loop s-curve acceleration profile was possible?

I presume that true s-curve acceleration is reliant upon the bit banging firmware within the FPGA to be updated to incorporate it properly.

(There is a discussion on s-curve acceleration with the current CNC software and motion controller I use (uccnc) hence I'm not quite green about it, am just interested to see where linuxcnc stands on its development and where the holdups may be with regards to implementation (linuxcnc hal or Mesa card firmware?)

Thanks

Rob

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

More
9 years 1 month ago - 9 years 1 month ago #98418 by PCW
LinuxCNC currently does not have a limited jerk trajectory planner. There have been some experimental branches
(micges and Arais robots branches being ones I am familiar with) But neither have been merged with LinuxCNCs
mainline code, I think because of unresolved acceleration/velocity limit violations in certain circumstances

I think its easy to make a jerk limited trajectory (the LinuxCNC Limit 3 component can do it)
but integrating it into the full trajectory planner with lookahead, real time feed rate control, spindle sync etc is a
pretty major project

Unless you have an exotic level of accuracy or acceleration The FPGA code that just does velocity control is adequate for any type of trajectory planner, That is, the error from the fact that the stepgen does linear motion between (nominally 1 KHz) updates is less than 50 uinch at 1G acceleration ( and proportional to acceleration so a more normal machine tool with say .25 G accel gets you down to 12 uinch or so) A jerk limited planner will only reduce this error
Last edit: 9 years 1 month ago by PCW.
The following user(s) said Thank You: robertspark

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

More
9 years 1 month ago #98420 by robertspark
Thanks for that reply, much appreciated

I thought the benefit in the mysterious s-curve acceleration and deceleration profile was the ability to have a higher peak acceleration (or decel) but overall the mean acceleration time would remain the same as used by the likes of hypertherm for plasma applications, which is smoother than trapezoidal acceleration (or decel) reducing the start and end jerk.

Not considered the error

Rob

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

More
9 years 1 month ago #98424 by PCW
Limited jerk profiles typically allow higher accelerations with a given following error budget
(or a lower following error at the same acceleration as a trapezoidal profile)

On a servo system you see the limitation of unlimited jerk profile as a small error spike at the beginning and end of
acceleration that cannot be tuned out. This is because no servo system can develop full torque instantaneously
but a trapezoidal profile requires this because of its stepwise acceleration.
The following user(s) said Thank You: robertspark

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

More
9 years 1 month ago #98453 by VNR

PCW wrote: I think its easy to make a jerk limited trajectory (the LinuxCNC Limit 3 component can do it)
but integrating it into the full trajectory planner with lookahead, real time feed rate control, spindle sync etc is a
pretty major project


I was wonderig if there is a way to do a an easy hack to get an S-Curve profile only on G0 moves, in order to obtain less vibrations on the machine. What do yo think about that? Do you have any idea how to do that?

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

More
9 years 1 month ago #98465 by rodw
Funny, I've just been tuning my Z axis for maximum acceleration on my 7i76e. I settled on 2500 mm/sec/sec (0.255 g) which I thought was pretty amazing for a no name Chinese 1.9 Nm (269 oz-in) NEMA 23 motor.

I've no experience with other hardware but I've heard people comment that their motors run much smoother on Mesa hardware so I'd wait until you were operational.

Anyway, back to S curves.

It might be possible to write a component using the experimental external offsets branch to offset the position during acceleration. You'd need to be confident that the maximum velocity and acceleration of your machine exceeded your maximum cut speeds. This is because you would have to give up a proportion of this for external offset use. How much you could afford to give up would determine the slope of your S curve. I don't know enough about the underlying model to be of much help.

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

Time to create page: 0.310 seconds
Powered by Kunena Forum