Better, finite-jerk acceleration? February 10, 2017 11:58AM |
Registered: 7 years ago Posts: 10 |
Re: Better, finite-jerk acceleration? February 10, 2017 01:38PM |
Registered: 10 years ago Posts: 14,672 |
Re: Better, finite-jerk acceleration? February 10, 2017 02:36PM |
Registered: 9 years ago Posts: 425 |
Re: Better, finite-jerk acceleration? February 10, 2017 04:01PM |
Registered: 7 years ago Posts: 10 |
Quote
dc42
Why do you feel you need to limit the rate of change of acceleration? Have you any evidence or sound physics to support that view?
Perhaps pertinent to this would be the idea of a curve segment with infinite radius and a curve segment with tiny radius. The segments may have the same length traveled in the XY plane, but the extrusion would differ due to the nature of the extrusion being “crowded” on the inside and “spread out” on the outside of the curve. The difference for extrusion between the two would be tiny, but it is still very much representative of why it’s necessary to de-couple the xy-e system during stepping.Quote
Mutley3D
Given the speed capabilities you describe, you should actually be able to reduce jerk a little and increase your accels for less noise smoother motion? You clearly have some experience and know your way around so I am only making the comment. I am not quite sure I follow your finite/infinite jerk description though. Jerk is an instantaeous direction change. Are you suggesting a jerk/junction deviation with a steep ramping curve instead of instant?
A lightweight extruder will make a lot of difference to noise and moving mass, however I am not pimping anything here, you have options in this regard.
Given the topic of jerk and motion control perhaps consider this, (maybe a seperate thread required)...why do E axis and XY axis have seperate unlinked motion parameters that are only controlled by a final output comparator of some sort. There have been a couple of posts about this in the distant past, but to have seperate independent control of these axis, when they should be in synch, seems out of step to me (no pun). Something for the code wizards to consider as the extruder "travels" the same relative distance?
In my mind I would be looking at your query with a slightly larger scope to address issues elsewhere in the chain that may result in a resolution to your specific concern?
Just food for thought.
Re: Better, finite-jerk acceleration? February 10, 2017 05:42PM |
Registered: 9 years ago Posts: 425 |
Quote
tjhinton
Perhaps pertinent to this would be the idea of a curve segment with infinite radius and a curve segment with tiny radius. The segments may have the same length traveled in the XY plane, but the extrusion would differ due to the nature of the extrusion being “crowded” on the inside and “spread out” on the outside of the curve. The difference for extrusion between the two would be tiny, but it is still very much representative of why it’s necessary to de-couple the xy-e system during stepping.Quote
Mutley3D
Given the topic of jerk and motion control perhaps consider this, (maybe a seperate thread required)...why do E axis and XY axis have seperate unlinked motion parameters that are only controlled by a final output comparator of some sort. There have been a couple of posts about this in the distant past, but to have seperate independent control of these axis, when they should be in synch, seems out of step to me (no pun). Something for the code wizards to consider as the extruder "travels" the same relative distance?
Just food for thought.
Re: Better, finite-jerk acceleration? February 13, 2017 10:37AM |
Registered: 7 years ago Posts: 10 |
Quote
Mutley3D
If you follow the center line of a single strand of filament around a curve, there is always going to be a differential between inner and outer edge radii regardless of being linked or not?
Re: Better, finite-jerk acceleration? February 13, 2017 03:36PM |
Registered: 9 years ago Posts: 425 |
Quote
tjhinton
Quote
Mutley3D
If you follow the center line of a single strand of filament around a curve, there is always going to be a differential between inner and outer edge radii regardless of being linked or not?
If I understand what you mean by linked, then yes. Curvature will change the amount of extrusion though.
Re: Better, finite-jerk acceleration? February 13, 2017 04:26PM |
Registered: 7 years ago Posts: 10 |
Re: Better, finite-jerk acceleration? February 13, 2017 05:44PM |
Registered: 8 years ago Posts: 622 |
Re: Better, finite-jerk acceleration? February 13, 2017 09:13PM |
Registered: 7 years ago Posts: 10 |
Quote
deckingman
I'm having a real hard time trying to understand what is meant by infinite jerk. In your OP you mention that it's not the firmware algorithm settings. So in basic physics we have the first derivative of position with respect to time being velocity. The second derivative is acceleration. The third derivative is the rate of change of acceleration also known variously known as jerk, jolt, lurch, or surge. But I don't see a firmware setting that uses jerk in this sense i.e. mm/sec^3 (thank goodness). There is an instantaneous speed setting which is referred to as jerk and is expressed as m/min (so really it's velocity). My understanding is that this is used when doing small segments such as our simulated curves to prevent the print head coming to a complete stop before commencing the next segment. But all these settings have finite parameters so what on earth is meant by "infinite jerk"?.
Re: Better, finite-jerk acceleration? February 14, 2017 04:33AM |
Registered: 8 years ago Posts: 622 |
Quote
tjhinton
Based on my understanding, the machine tries to do an instantaneous turnaround in a move that theoretically implies infinite jerk since the rate of change in acceleration is very very high. This isn't the case IRL, but we can call this maneuver "infinite jerk" since we assume the machine is making that velocity change instantly.
Re: Better, finite-jerk acceleration? February 14, 2017 01:32PM |
Registered: 7 years ago Posts: 10 |
Quote
deckingman
I stand to be corrected but I'm pretty sure that the machine never does an instantaneous turnaround within a move. Perhaps when transitioning between one move and another as would be the case with doing the very small segments that we have to use to simulate arcs. I'm not exactly sure how jerk is implemented in firmware (DC42 please step in here) but I assume that "normal" deceleration will take place unless the velocity is below the jerk setting threshold, at which point no further deceleration will take place and the head will change direction at whatever the jerk velocity is set to. Is that what we are talking about?
Quote
deckingman
If so, then I guess having non infinite jerk would mean using very fast deceleration below the (current) jerk setting threshold. However, this would then mean that the head would have to come to a complete standstill before it changed direction, then change direction and accelerate up to the new velocity. In which case, I can imagine that this behaviour would lead to just the sort of ringing problems that the current implementation of jerk is designed to cure ( by preventing the print head from coming to a complete stand still).
Re: Better, finite-jerk acceleration? February 14, 2017 05:32PM |
Registered: 8 years ago Posts: 622 |
Re: Better, finite-jerk acceleration? February 14, 2017 06:24PM |
Registered: 7 years ago Posts: 10 |
Quote
deckingman
AFAIK, on 3d printers, jerk isn't used other than for the small segmented moves on corners, not the long linear moves similar to the video links you posted (but I stand to be corrected). I don't think we would see much benefit in 3D printers in any case because the inherent masses are very much smaller.
Quote
deckingman
There are a few problems too. Firstly, the extruded filament will not react fast enough to keep up with the variable rate of change of acceleration. It's just hot sticky plastic being forced through a small hole. So starting or ending a move slowly would likely lead to blobs. We could maybe control that by using pressure advance on the extruder.
Quote
deckingman
The other big problem I foresee is how it could be implemented on the very small segmented moves that we have to use on curves. These moves are just too short. Again, most industrial machines are capable of doing true curves but unfortunately to the best of my knowledge, there aren't any slicers that are capable of generating true curves using the G02 and G03 commands. Now that would be something well worth doing. A slicer capable of generating true curve commands, then we wouldn't need to have jerk - infinite or otherwise.
Re: Better, finite-jerk acceleration? February 15, 2017 04:04AM |
Registered: 8 years ago Posts: 622 |
Re: Better, finite-jerk acceleration? March 09, 2018 09:07PM |
Registered: 7 years ago Posts: 10 |
I guess what I should have said was non-constant acceleration is perhaps the best way to mitigate turnarounds and potentially ludicrous jerks.Quote
deckingman
A couple of observations. You state that non-constant acceleration is essential for smooth motion where in fact the opposite is true.
Amen. But once you've removed everything you can, you're still looking at a need for better motion control.Quote
deckingman
But then a better approach is to reduce or eliminate any causes of mechanical jerk. Of course, assuming we have eliminated any slack in our drive train, then the next thing would be the inertia.
If you compare the use of an aero to a... Greg Wade Geared extruder, yeah. But only at the speeds you're able to accomplish with the bigger extruder. If you start to accomplish much faster speeds and higher print acceleration with an aero, you're more likely to encounter the problem of infinite jerk on turnarounds. Otherwise, yeah - heavier will benefit a lot more.Quote
deckingman
So contrary to what you are saying, the TBA compact lightweight extruder, will benefit less from "controlled jerk" than a "standard" extruder.
No doubt it's possible to get excellent results with current acceleration planning, but the machines I'm working on are purely experimental and designed for speed. An example of a machine with a suspension system to dampen jerks:Quote
deckingman
You say in your OP that you are experiencing noise and mechanical resonance. I would suggest that is is because you are using 30mm/s instantaneous speed change which is really high. My XY carriage weighs in at around 1,300 gms (big heavy Diamond hot end) yet I have my acceleration set to 45,000 but with instantaneous speed of 300mm/min which is 5mm/sec. Perhaps, you should just play around with the settings that are available. I think you'll be surprised at how good a finish you can get even with using "infinite jerk".
Re: Better, finite-jerk acceleration? March 10, 2018 01:07PM |
Registered: 11 years ago Posts: 335 |
Re: Better, finite-jerk acceleration? March 10, 2018 02:54PM |
Registered: 7 years ago Posts: 10 |
Quote
691175002
I personally think that trajectory control in place of junction-deviation is a bigger win than jerk: [wiki.linuxcnc.org]
Re: Better, finite-jerk acceleration? March 10, 2018 03:49PM |
Registered: 10 years ago Posts: 14,672 |
Re: Better, finite-jerk acceleration? March 10, 2018 04:30PM |
Registered: 7 years ago Posts: 10 |
Quote
dc42
Marlin doesn't even implement accurate step timing during constant speed moves, let alone during acceleration. So I think it has some way to go before S-curve acceleration could be considered. I very much doubt that the 8-bit processors that are the primary target for Marlin have sufficient processor resources to implement more advanced acceleration or trajectory algorithms.
Quote
dc42
S-curve acceleration has been discussed on the duet3d.com forum and will likely be implemented in RRF this year if it turns out to be practical.
Re: Better, finite-jerk acceleration? May 31, 2018 02:18PM |
Registered: 6 years ago Posts: 63 |
Re: Better, finite-jerk acceleration? June 01, 2018 04:13AM |
Registered: 7 years ago Posts: 507 |
Re: Better, finite-jerk acceleration? June 01, 2018 05:27AM |
Registered: 9 years ago Posts: 9 |
Re: Better, finite-jerk acceleration? June 01, 2018 12:54PM |
Registered: 10 years ago Posts: 14,672 |
Quote
warbunniex
How is S-curve acceleration coming along with RRF? Marlin 2 is currently using it and I swear it prints a lot more smoothly than it did before. (smoothieware -> marlin 2)