Welcome! Log In Create A New Profile

Advanced

Why does firmware use acceleration?

Posted by Robin2 
Why does firmware use acceleration?
September 09, 2013 03:56PM
I understand getting a heavy mass to a high speed quickly requires a powerful motor and good brakes to make it stop quickly.

What I don't understand is what the RepRap system needs acceleration for. Perhaps if there was no acceleration everything would have to move more slowly and making objects would be slow? If so what speeds are possible without acceleration and what speeds are achieved with acceleration?

Perhaps (maybe also) the acceleration question relates to the power of the stepper motors and the rest of the mechanical system. With more powerful motors and a stronger chassis maybe everything could work at full speed all the time?

I'm asking this because I'm wondering if a slow 3D system needs the complexity of acceleration.

...R

Edited 1 time(s). Last edit at 09/09/2013 03:57PM by Robin2.
Re: Why does firmware use acceleration?
September 09, 2013 04:30PM
inertia and velocity. nothing instantly stops, nothing instantly starts. acceleration is a method that allows for compensation in the physical world. it also reduces the power requirements because the initial force of starting and stopping would otherwise cause skipped steps, and jagged prints. max speed without acceleration is around 20-30mm/s and low resolution about 0.35mm thickness. reprap started using acceleration in firmware about 3 years ago for a reason. better quality prints and smaller motor requirements. also speed of nozzle extrusion is tied to speed of x,y,z axis which allows for better control under heavy processor load. still issues exist but a lot fewer that several years ago.

this page may help you understand better : [en.wikiversity.org]

I will say that acceleration needs to be set correctly, otherwise prints will take longer for no reason, ramping acceleration should start near the max speed that a motor can run without skipping a step and accelerate towards the max speed a motor can run reliably while moving its mass. their also is confusion about FFF printing. it is not zero impact but light impact, so drag does exist on the nozzle of the print. carriage design has a lot to do with drag as well as weight of parts to the max speed capable of the motors as required torque changes.

read thru reprap history to look at past technology used read here : [en.wikipedia.org]
Re: Why does firmware use acceleration?
September 10, 2013 08:18AM
Quote

What I don't understand is what the RepRap system needs acceleration for.

Physics demands to accelerate mass, else you'd have to have infinite forces. Physics applies to RepRap printers, too.

If you try to run without acceleration, you replace acceleration controlled by your electronics with acceleration controlled by the flexibility of your printer frame. Not exactly a recipe for precise movements.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Why does firmware use acceleration?
September 10, 2013 12:33PM
@Traumflug - I tried to convey in the first line of my original post that I understand physics at this level.

And your comment is at odds with @Jamesdanielv who said that acceleration isn't needed for speeds below 20mm/sec.

Who is right?

I suspect my device will only achieve 5mm/sec and in testing my stepper motors seem to be able to drive the lathe axes fine at full speed without skipping.

Do I need to bother with acceleration?

...R
Re: Why does firmware use acceleration?
September 10, 2013 12:48PM
Without acceleration the carriage needs to accelerate to the final speed within the distance travelled by two full steps (or half a complete cycle). If not then the first step, or even the first few might be missed. The same applies for deceleration.

The higher the current applied to the coils the lower the chance of mis-stepping so an alternative to 'acceleration' is to apply a much higher than rated current to the coils during the first two or three cycles to ensure almost instant acceleration and then reduce the current to the normal rated current (possibly even lower in some cases) as otherwise the motor would overheat. If carefully designed the initial current can even be 10 or more times the full rated current.

This technique is used in various industrial devices but I am not aware of this technique being used in 3D printers. It could be but it would need a very sturdy frame and mechanical parts to be of much use as although it would avoid mis-stepping it would also result in poor print quality at corners and possibly even damage the mechanics of the printer due to the excessive forces on the mechanical parts and frame. Acceleration is in a way a smarter solution, achieving very good results, even if at a small penalty in speed but without requiring any especially strong mechanical parts.
Re: Why does firmware use acceleration?
September 11, 2013 12:24AM
Acceleration exists in every motion system, whether there is support in the electronics, or not. Having it in the electronics gives you control over what would otherwise be a very short/steep ramp to the desired speed.

Without controlling this ramp, you introduce additional vibration, and you limit your top speed, because in most cases where there is no acceleration ramp, a stepper motor cannot operate at its maximum speed, due to stalling at the start.
Re: Why does firmware use acceleration?
September 11, 2013 01:11AM
Acceleration is the 1st derrivative of velocity. That means it is the rate of change in velocity. A 3d printer needs to be able to start and stop, and vary its speed. Hence, it uses acceleration. Either if it wants to or not. Or better yet, acceleration is the name we give it to this concept.

If you meant why use acceleration *control*, its coz microcontroller has to output something for the motors to move. Hence it makes sense to calculate and output something for the purpose of making changes of speed more smooth. At least compared to sudden changes in regime, which wouldnt make much sense, and could produce missed steps.
woo
Re: Why does firmware use acceleration?
September 11, 2013 06:09AM
robin, acceleration value is needed to souit yours printer frame gigitity and motor power.

so if you have very rigid frame with strong motors and low moving mass you can input higher acceleration value.


why is that important....

well, if all criteria above are matched you coult print corners virtually with same extruding speed, else in corners etc extruder slows down, then machine change direction, they you have to accelerate....

if you have loww acceleration value your printer may accelerate for wanted speed 2-3-4 mm, but also if its high number may come to these speed in 0.1 mm.....
Re: Why does firmware use acceleration?
September 11, 2013 10:41AM
Robin2: Traumflug and i were talking the same way.

if you don't want to use acceleration then just disable it if the option exists (sprinter ) or use old firmware such as the original tonokip.

It would be better all around to use it, but the great thing about open source, is you can modify and make changes yourself.
Re: Why does firmware use acceleration?
September 11, 2013 02:59PM
Thank you James. This message has come through loud and clear. But nobody has explained "why" - apart from references to physics that I have been familiar with for 40 years.

The impression I am getting is that the normal Reprap machines are capable of moving on the X and Y axis at rates of 10's of mm/sec and the machine is not stiff enough to maintain accurate position with "instantaneous" acceleration to that speed. If that is an accurate assessment then I can infer that a machine that operates at much slower speeds and is probably a couple of orders of magnitude stiffer can produce perfectly good objects without acceleration.

...R

jamesdanielv Wrote:
-------------------------------------------------------
> It would be better all around to use it,
Re: Why does firmware use acceleration?
September 11, 2013 03:15PM
Robin2 Wrote:
-------------------------------------------------------

> The impression I am getting is that the normal
> Reprap machines are capable of moving on the X and
> Y axis at rates of 10's of mm/sec and the machine
> is not stiff enough to maintain accurate position
> with "instantaneous" acceleration to that speed.
> If that is an accurate assessment then I can infer
> that a machine that operates at much slower speeds
> and is probably a couple of orders of magnitude
> stiffer can produce perfectly good objects without
> acceleration.

That assessment is correct. RepRap firmwares used to not incorporate acceleration, which would limit speeds to 20 or 30 mm/s depending on the motors and weight being thrown around. The "instantaneous" acceleration to 20 mm/s is doable with most RepRaps, and in fact is a setting in current firmware called "jerk". "Jerk" is the maximum "instantaneous" velocity that the machine can handle from a standstill and not loose steps, so acceleration is started from that value rather than from 0.


Help improve the RepRap wiki!
Just click "Edit" in the top-right corner of the page and start typing.
Anyone can edit the wiki!
Re: Why does firmware use acceleration?
September 11, 2013 03:21PM
Thanks Cameron, that is very helpful and explains a lot that I was unsure of.

...R
Re: Why does firmware use acceleration?
September 11, 2013 04:03PM
Of course, it depends on other factors apart from speed, such as mass and friction, and the torque of your motors. I don't think you can say that any machine will work at slow speed without acceleration, though some might.

I would say if you are driving something like a lathe it is quite likely you will need acceleration, even at slow speeds.
Re: Why does firmware use acceleration?
September 11, 2013 05:19PM
I'm interested to know why you think this in case I have overlooked something.

...R

bobc Wrote:
-------------------------------------------------------
> I would say if you are driving something like a
> lathe it is quite likely you will need
> acceleration, even at slow speeds.
Re: Why does firmware use acceleration?
September 11, 2013 05:30PM
The simple fact is that with acceleration you can achieve much higher speeds than without it. Especially with lead screws rather than belts because the motor has to spin faster and the screw has inertia.

Even with no load a stepper will achieve much higher speed with acceleration due to rotational inertia.

With a stepper motor you always start with a non zero speed, even with acceleration because there is a finite delay between the first two steps.


[www.hydraraptor.blogspot.com]
Re: Why does firmware use acceleration?
September 11, 2013 06:02PM
Robin2 Wrote:
-------------------------------------------------------
> I'm interested to know why you think this in case
> I have overlooked something.

F=ma.

And in my experience, reality does match the theory quite well smiling smiley
Re: Why does firmware use acceleration?
September 11, 2013 10:23PM
Good thread. Here's something I dug up about applying acceleration and deceleration profiles to bipolar stepper motors.

[www.ti.com]
Re: Why does firmware use acceleration?
September 14, 2013 08:21PM
NewPerfection Wrote:
-------------------------------------------------------
> Robin2 Wrote:
> --------------------------------------------------
> -----
>
> > The impression I am getting is that the normal
> > Reprap machines are capable of moving on the X
> and
> > Y axis at rates of 10's of mm/sec and the
> machine
> > is not stiff enough to maintain accurate
> position
> > with "instantaneous" acceleration to that
> speed.
> > If that is an accurate assessment then I can
> infer
> > that a machine that operates at much slower
> speeds
> > and is probably a couple of orders of magnitude
> > stiffer can produce perfectly good objects
> without
> > acceleration.
>
> That assessment is correct. RepRap firmwares used
> to not incorporate acceleration, which would limit
> speeds to 20 or 30 mm/s depending on the motors
> and weight being thrown around. The
> "instantaneous" acceleration to 20 mm/s is doable
> with most RepRaps, and in fact is a setting in
> current firmware called "jerk". "Jerk" is the
> maximum "instantaneous" velocity that the machine
> can handle from a standstill and not loose steps,
> so acceleration is started from that value rather
> than from 0.

thats interesting, Ive wondered what that was and assumed it was as it is in physics, the derivative of acceleration, but its not then is it. so really you should have it set to zero or close to it and have the acceleration higher.
Re: Why does firmware use acceleration?
September 15, 2013 05:01AM
aduy Wrote:
-------------------------------------------------------
> NewPerfection Wrote:
> --------------------------------------------------
> > That assessment is correct. RepRap firmwares
> used
> > to not incorporate acceleration, which would
> limit
> > speeds to 20 or 30 mm/s depending on the motors
> > and weight being thrown around. The
> > "instantaneous" acceleration to 20 mm/s is
> doable
> > with most RepRaps, and in fact is a setting in
> > current firmware called "jerk". "Jerk" is the
> > maximum "instantaneous" velocity that the
> machine
> > can handle from a standstill and not loose
> steps,
> > so acceleration is started from that value
> rather
> > than from 0.
>
> thats interesting, Ive wondered what that was and
> assumed it was as it is in physics, the derivative
> of acceleration, but its not then is it. so really
> you should have it set to zero or close to it and
> have the acceleration higher.

I don't know what firmware NewPerfection was referring to, but the one I have looked at do not use jerk in the way he describes. Jerk is used at junctions to limit instanteous changes in velocity.

Minimum speed is set to some very low value, e.g. 120 steps/min, which defines instantaneous acceleration from zero. This is more to do with allowing the calculations to work, otherwise at zero speed f=infinity.
Sorry, only registered users may post in this forum.

Click here to login