Acceleration as a function of speed
-
I did choose WANTAI 42BYGHW811, in my setup, they should be able to achieve nearly 1g close to about 1500mm/s, without losing 1/16 micro step with a light direct driven extruder/hot end. I don´t have a "problem" at 160mm/s, this is just an example to show that if the torque drop starts with 12 V at "0" rps, this problem is existing in the normal operating range of 3D printer, just check the curves.
1. In 3D printers we normally run the motors well below their maximum current, because at maximum current the motors get very hot. At reduced current, the back emf due to inductance is lower, so the (reduced) torque is maintained to higher speeds. For example, if you halve the current, then the torque at low speeds will be half what is shown on the torque/speed curves and will be almost flat until it intercepts the torque/speed curve shown for the same motor and same driver voltage at full current.
This is not special for 3d printing, it is a good rule of thumb for every stepper application to use at max about 80 % of the specified amps. The steppers itself are normally rated to > 100°C surface temperature, I operate my steppers at about 80 % of the rated current and they get at max about 50 °C (also NEMA32s), which is at least for me no problem. Because P = IIR it is for sure sensitive to the chosen current - but it is also no trick to cool them and in the long term i will use mine at maybe > 100 % current.
Who operates his steppers at half of the design current? This 50 % comparison is completely misleading and even at 50 % and 12 V there is also before 5rps a torque drop. If somebody operates at 50 % i would suggest him to go for different (smaller and faster) steppers. But do these people buy a premium product like the Duet Wifi ?
2. Because we want precise motion during printing, we use 1/16 or greater microstepping, and to get position accuracy this means that the motors need to have far more holding torque than is needed to produce the acceleration demanded, so that we can maintain a position accuracy of around one 1/16 microstep. But high-speed travel moves don't need this accuracy during the high speed part of the motion, it's only the end of the move that needs to be accurate. So quite a large loss of torque is acceptable during the middle part of a travel move. If you know the mass of the print head or bed or whatever the motor is moving, you can work out the torque needed to produce the desired acceleration, and you just need to make sure the motor can provide this torque with a sufficient safety margin e.g. 2x.
Yes, that is one reason for the firmware change request, now we get back on track.
But i would say we don´t use 16 microsteps for finer resolution (with a 16 T GT2 pulley 16th means in theory 0.01 mm), because this fine steps never happen with this accuracy (e.g. stepper nonlinearities and all other mechanical errors of a 3D printer are much bigger) we just do it because it runs smoother and less noisy - and because it doesn´t cost anything. Maybe it can reduce some fancy patterns on deltas, but there only relative accuracy is needed. On xyz printers 16th stepping doesn´t improve accuracy at all.
I have to show more clearly what this request is for because it still seems to be not clear:
1. Many speed as well quality problems are extrusion related. Often people claim their E3D v6 cannot go above e.g. 50 mm/s because then under extrusion and so on is happening. They say the extrusion capacity is not enough - which is wrong. The problem is, that the hot end print speed varies and by that the extrusion rate. Unfortunately, molten plastics have a viscoelastic material law which brings the time factor in play. So any change in extrusion rate/speed is going to make problems - but this is not the root cause. The root cause is the varying printing speed. The root cause for the varying printing speed is a lack of useable acceleration which is limited by the mass/stiffness of the system and the stepper torque which is a function of speed .
Especially at lower layer heights and small nozzles or with e.g. a volcano, the extrusion capacity is enough for speeds far above 100 mm/s. But as soon as the speed drops the extrusion problems will occur. On youtube are enough videos showing damn fast prints - with a miserable print quality. I want fast prints with good quality - this is not possible without the maximum acceleration.
2. Many problems are retraction related. Why do we need retraction at all ? Because too much plastic would ooze out. The smartest way I know to overcome this problem is to give the oozing process no time. Half the time and you half the amount which could ooze out. If you print flexible material that is the only way to go. If you don´t need to retract (or less), problems of 1. are also reduced. Solve the problem by just increasing the speed of travel moves.
3. Think the other way round. With a Duet Wifi capable of acceleration as a function of speed, one could use smaller (faster) and cheaper steppers. This could mean one uses NEMA14 for normal printers or NEMA 17 instead of NEMA23 for big size printers.
4. printing time
Many prints need excessive amounts of travel moves. Normally most travel moves are short distance moves. Using a histogram to show the distribution of travel move length, it would be very heavy on the left side (much more short than long moves). What does short distance mean ? With 2g it takes 25 mm to reach 1000 mm/s, with 5g 10 mm. The problem is, that long travel moves need more time and increasing max travel speed would reduce the time significant. To increase max travel speed, i would have to reduce the max torque - also in the low speed region were most of the moves happen. Increasing max travel speed ends up to give no benefit, if the max torque on the low side has to be decreased.A higher acceleration in the low-speed region (printing) means a higher average printing speed and again a reduction of printing time.
5. Jerk. Jerk was introduces to get away from blobs on every corner (bleeding edges) and to decrease printing time. Unfortunately jerk is the most brutal way and is mostly based on backlash and low stiffness. In the old days both was existing at much higher levels than nowadays. Using too much jerk shows ringing/resonance artifacts in the print (as well as too high accelerations). Using 2 g it takes 0.0xyz mm to get to e.g. 20 mm/s. But it is much more gentle and gives by that less artifacts - or at same amount of artifacts much more printing speed. Jerk could be reduced to nearby 0 and substituted by "soft" acceleration. Doing so would be like a poor mans s-curve acceleration in the very low speed region.
6. Future developments like s-curve acceleration/moves. Although some people thinks it is too CPU intensive, for me it is clear that in future we will use something like s-curve like moves. This gives much more possible printing speed at same artifact level. But using s-curve like moves reduces at the same max acceleration the average acceleration - so in total the benefit is much smaller as it cold be. To overcome this problem, acceleration has to be really maximized - according speed.
Finally:
I don´t care at all, what people are doing now, i question for what is possible, i want to push the limits - and premium products like the Duet are bought because the "normal" stuff is not as good as it could be. It is not true that printing speed is limited by extrusion rate to e.g. 100 mm/s. It is limited by too much varying printing speed, caused by too low acceleration settings.
Why should we bottleneck our printers? Why should we waste resources?
I don´t care if I am able to use 5g in the low-speed region (<= 1000 mm/s) already now if I can get 8g…. or travel with 2000 mm/s instead of 1000 mm/s.BTW: On travel moves, the deflection of the printer parts doesn´t matter (nearby). When printing they become very significant at higher accelerations (e.g. > 1g), and more stiffness (a stiffer system means more mass) doesn´t help more. So finally the firmware will also have to address this problem because there is a mechanical material limit where engineering cannot increase the stiffness vs weight ratio anymore (see 6.).
[Edit: i added 5 and 6]
-
@vp:
On youtube are enough videos showing damn fast prints - with a miserable print quality. I want fast prints with good quality - this is not possible without the maximum acceleration.
Maybe you should take a look at this little video I did. It's to evaluate the effect of using pressure but it demonstrates high speed printing with good quality. https://www.youtube.com/watch?v=lnYYNfVoxmQ. Speeds up to 250mm/sec. Nice smooth acceleration with no jerk cause by any step change in the acceleration setting. This is all with a moving mass of around 4kgs, std Nema 17s.
Have you actually done any calculations on the time and distance it takes to travel X amount at Y acceleration? I think if you do you'll find that what you are requesting is simply a waste of time.
Edit…..........Oh, never mind.
2nd Edit. Here are some calcs pertinent to the video I linked to. Acceleration was set to 1200mm/sec^2. This was derived from the available torque of the motor (assuming all sorts of worse case scenarios) and the mass to be moved. The speed reached was 250 mm/sec. So the time to reach that speed is t=(Vf-Vi)/a = 0.208 seconds. The distance travelled during that acceleration phase was (1/2at^2) = 26.042 mm. Let's assume we used double the acceleration which is theoretically possible now that I am using two motors. So acceleration becomes 2400mm/sec^2. At that rate, the time to reach 250mm/sec is 0.104 seconds and the distance travelled during the acceleration phase is 13.021 mm. So your desire to use increased acceleration at low speeds will have an almost negligible effect on the overall print time (but if you change the acceleration rate mid move, it will lead to jerk and poor quality prints).
-
Thanks for your comments.
please correct me if i am wrong. Are most (and there are many) postings regarding pressure advance problems made by you - i would say yes? I don´t need something which does maybe work under certain circumstances. Pressure advance doesn´t solve the root cause, it tries to heal the wounds. It will never work perfectly, it just tries to improve the situation. Solve the root cause and you don´t have these problems. If somebody drills a hole in his knee, he will go to the doctor. My approach is not to drill in my knee.
Have you actually done any calculations on the time and distance it takes to travel X amount at Y acceleration? I think if you do you'll find that what you are requesting is simply a waste of time.
Yes for sure, but i don´t talk about max 250 mm/s and 2500 mm/sec^2, take both by a factor of 10 ( i know at 2500 mm/s it will be hard to produce the pulses in time, but to show you the direction). If you are able to use high accelerations you can increase max travel (and with a stiff system also printing) speed a lot, this is missing in your calculation. Besides this, decreased printing time is not the only benefit.
Better than calculating some straight lines is to simulate e.g. a 3D benchy in total and compare it (–> http://www.gcodeanalyser.com/).
I don´t understand this way of thinking. I guess when jerk was introduced, some people also said - why do we need this **** - it is working fine the way it is…. it will just ruin the print.
It is a software change, it doesn´t cost any money. See how much other gimmicks are available. If it gives only 20 % improvement for some users, why not take +20%. Technical development was always going step by step. With the above kind of thinking we would still live in caves. As for many other features it is easy to implement an on/off switch - like pressure advance. I don´t use pressure advance, so the switch is off (by that i don´t say it is bad in general).
but if you change the acceleration rate mid move, it will lead to jerk and poor quality prints.
1. It depends on how you change it.
2. You seem to have no problems with jerk (because you use it) - but have a problem with changing acceleration - how does this come together ? Crashing a car is ok, but gentle touching it not ?
3. This is exactly what is happening already now at every move. 1 phase accelerate, 2 phase constant speed, 3. phase decelerate. Most moves never reach the constant speed phase, so skip step 2 and what comes out is the worst case, the acceleration changes from + to - instantly. Does this work or not ? I would say yes - because it happens all the time it is proofed that it seems to be not a problem. For sure stepwise changing acceleration means a stepwise change of forces. With a mass > 0 and a stiffness < infinity it leads to unwanted changes of the position - and it still works in real life. That is the reason why i have written more above, that this "doesn´t matter at all" - if at the same time, jerk is accepted and no problem.But again, thanks for your valuable comments. You have a very unique printer and i guess you have found your way, but i think there is also another way.
-
The vast majority of moves do have a constant speed phase. The ones that don't are short travel moves, the first few in a sequence of extremely short printing moves in a curve where the head accelerates from rest after a travel move, and similarly the last few moves at the end of a curve that is followed by a travel move.
-
I am not sure if i understand what you want to say.
Maybe i should have written instead of "Most moves never reach the constant speed phase" " Many….". This was just to show that a change in acceleration won´t harm more than jerk, because the acceleration changes already now at least 1 or 2 times per move, that is nothing new.It doesn´t change anything about "acceleration as a function of speed". In short terms: with a stiff system the print quality is improved and the travel time is reduced. So in total you gain more quality at the same printing time.
-
I agree that changing acceleration in the middle of a move is unlikely to cause any particular problems, because as you say the acceleration is changing frequently anyway.
-
I agree that changing acceleration in the middle of a move is unlikely to cause any particular problems, because as you say the acceleration is changing frequently anyway.
Seriously? Velocity changes during a move but the last time I looked, I have only one acceleration value per axis and extruder. My understanding is that for any given given move, the acceleration is derived from whichever axis or extruder has the lowest value and that the same acceleration rate will be applied until the maximum speed is reached or it is time to decelerate (but at the same rate). I say again that the first derivative of position with respect to time is velocity, the second derivate (the rate of change of velocity) is acceleration and the third derivative (the rate of change of the the rate of change of velocity) is referred to as jerk because it results in a near instantaneous change of velocity.
-
@vp:
Thanks for your comments.
please correct me if i am wrong. Are most (and there are many) postings regarding pressure advance problems made by you - i would say yes? I don´t need something which does maybe work under certain circumstances. Pressure advance doesn´t solve the root cause, it tries to heal the wounds. It will never work perfectly, it just tries to improve the situation. Solve the root cause and you don´t have these problems. If somebody drills a hole in his knee, he will go to the doctor. My approach is not to drill in my knee.
OK then. You propose that you can have higher accelerations at low speeds. This means that you will also be accelerating the extruder and thus the filament entering the melt chamber at higher speed. This will lead to a build up of pressure in the hot end which is known phenomenon under "normal" circumstances (but which would be exacerbated using higher acceleration), and one that pressure advance compensation aims to eliminate. The only way to reduce pressure build up is to print more slowly yet you seem to be advocating that you can print faster by using high acceleration at low speed. How do you reconcile those two differences.
Have you actually done any calculations on the time and distance it takes to travel X amount at Y acceleration? I think if you do you'll find that what you are requesting is simply a waste of time.
Yes for sure, but i don´t talk about max 250 mm/s and 2500 mm/sec^2, take both by a factor of 10 ( i know at 2500 mm/s it will be hard to produce the pulses in time, but to show you the direction). If you are able to use high accelerations you can increase max travel (and with a stiff system also printing) speed a lot, this is missing in your calculation. Besides this, decreased printing time is not the only benefit.
Better than calculating some straight lines is to simulate e.g. a 3D benchy in total and compare it (–> http://www.gcodeanalyser.com/).
Ah OK. Lets look a this. So 250 mm/sec print speed x 10 would be 2,500 mm/sec and acceleration of 2500 mm/sec x 10 would be 25,000 mm/sec. So the time to reach 2500 mm/sec would be 0.1 seconds and in that time, the print head will move 125mm. But what if our 3D Benchy doesn't have any moves that are 125mm. Let's say it has a move of 5mm. So, at 25000 mm/sec^2 after 5mm it will only reach 500mm/sec speed and take 0.02 seconds to accomplish. So even at that massively high acceleration, you'll only get a fraction of the speed. Oh and by the way, assuming you could ever build a printer rigid enough, doing 5mm moves at 0.02 seconds would mean that the print head would be moving back and forth at 50 times per second - don't view it under fluorescent lights because it would appear statonary)
I don´t understand this way of thinking. I guess when jerk was introduced, some people also said - why do we need this **** - it is working fine the way it is…. it will just ruin the print.
It is a software change, it doesn´t cost any money. See how much other gimmicks are available. If it gives only 20 % improvement for some users, why not take +20%. Technical development was always going step by step. With the above kind of thinking we would still live in caves. As for many other features it is easy to implement an on/off switch - like pressure advance. I don´t use pressure advance, so the switch is off (by that i don´t say it is bad in general).
but if you change the acceleration rate mid move, it will lead to jerk and poor quality prints.
1. It depends on how you change it.
No it doesn't. I say yet again that the first derivative of position with respect to time is velocity, the second (the rate of change of velocity) is acceleration, and the third (the rate of change of the rate of change) is jerk, so named because implementing it results in a near instantaneous change of velocity. You cannot change the rate of acceleration without introducing jerky motion.2. You seem to have no problems with jerk (because you use it) - but have a problem with changing acceleration - how does this come together ? Crashing a car is ok, but gentle touching it not ?
Simple. Jerk as used by 3d printers is an instantaneous speed change when there is a change of direction and is not the same as Jerk in the physics sense caused by a change in acceleration. Jerk in 3D printers is to prevent the print head having to come to a complete stop at the end of a move when a change of direction for both axes is present (i,e greater than 90 degrees). It is NOT a change in acceleration and is NEVER applied to moves which start or end at zero speed in any axis. Using your car analogy, it enables me to turn a corner without coming to a complete stop. In 3D printer terms, driving up to a corner would be one move, going around the corner would be a series of short segmented moves, and driving away from the corner would be another move. Without the instantaneous speed change threshold, I'd have to stop at the corner, do a series of short start stop moves, then drive away. It's nothing like crashing car whilst altering the rate of change of acceleration (Jerk in the physics sense) is exactly like a car crash!
3. This is exactly what is happening already now at every move. 1 phase accelerate, 2 phase constant speed, 3. phase decelerate. Most moves never reach the constant speed phase, so skip step 2 and what comes out is the worst case, the acceleration changes from + to - instantly. Does this work or not ? I would say yes - because it happens all the time it is proofed that it seems to be not a problem. For sure stepwise changing acceleration means a stepwise change of forces. With a mass > 0 and a stiffness < infinity it leads to unwanted changes of the position - and it still works in real life. That is the reason why i have written more above, that this "doesn´t matter at all" - if at the same time, jerk is accepted and no problem.But the rate of change of velocity is the same and constant regardless of whether it is increasing or decreasing. So it's the "direction" of the rate of change which alters between acceleration and deceleration.
But again, thanks for your valuable comments. You have a very unique printer and i guess you have found your way, but i think there is also another way.
This biggest thing in all of this is how do you propose to get the filament to follow the behaviour of the print head? Given that it starts as a semi rigid filament, which then has to be melted and turned into a viscous liquid, then forced through a tiny hole. How are you going to melt is fast enough for the speeds you propose and how are you going to accelerate and decelerate it at the speed you propose?
-
I agree that changing acceleration in the middle of a move is unlikely to cause any particular problems, because as you say the acceleration is changing frequently anyway.
Seriously? Velocity changes during a move but the last time I looked, I have only one acceleration value per axis and extruder. My understanding is that for any given given move, the acceleration is derived from whichever axis or extruder has the lowest value and that the same acceleration rate will be applied until the maximum speed is reached or it is time to decelerate (but at the same rate). I say again that the first derivative of position with respect to time is velocity, the second derivate (the rate of change of velocity) is acceleration and the third derivative (the rate of change of the the rate of change of velocity) is referred to as jerk because it results in a near instantaneous change of velocity.
What I mean is that the acceleration within some moves already changes abruptly from positive maximum configured, to zero, to negative maximum configured - for example when doing rectilinear infill. I doubt whether making the transition from maximum allowed acceleration to zero via an intermediate acceleration (and vice versa) would make anything worse.
-
I can't seem to get my point across so we'll have to agree to disagree then.
-
I can't seem to get my point across so we'll have to agree to disagree then.
I should also have said that I only see this feature being useful (if at all) during fast travel moves. So the extruder behaviour to the extra acceleration change would not matter, because it would only be used in non-extruding moves.
-
This biggest thing in all of this is how do you propose to get the filament to follow the behaviour of the print head? Given that it starts as a semi rigid filament, which then has to be melted and turned into a viscous liquid, then forced through a tiny hole. How are you going to melt is fast enough for the speeds you propose and how are you going to accelerate and decelerate it at the speed you propose?
I don´t see any problems at all with extrusion capacity (in case you mean this problem).
1. i don´t say that i want to print at e.g. 2500 mm/s with 5g.
2. A 5 USD E3D clone has a real life extrusion capacity of about 8-10 mm³/s. Real life means not with constant flow/speed, it means with all the stop & go which happens because the printing speed does stop & go. Try how much an E3D can extrude at constant flow rate, it is with PLA reasonable > 10 mm³/s. Use filaments like extudr BDP with a full metal hot end and it is much more higher.At 8 mm³/s; 0.4 nozzle and 0.1 layer height the E3D extrusion capacity is enough for > 200 mm/s. The reason why some people say they get under extrusion at 50 mm/s, is not the extrusion capacity, it is the varying speed and often much too high retraction values, which is a very big disturbance of the constant flow.
Take a volcano with 20-30 mm³/s and you are in the 200-300 mm/s speed region also with bigger nozzles. It doesn´t need a in comparison super heavy diamond hot end to get the needed extrusion capacity. The diamond hot end is nice to mix filaments and if you have one, why not use the extrusion capacity with the same filament - but an E3D V6/volcano is in principle "enough" - at constant speed !The fact that it is a "semi rigid filament which then has to be melted" is not a bug, it is a feature in this purpose. The filament/hot end is just a spring damper (visco elastic) combination. By that it is able to store energy and to smooth the motion, it is like a low path filter. As long as your speed changes are fast and short, the low pass filter just smooths them out. The problems occur when the changes are not short and fast, they occur when the speed changes are slow and big ! If the moves stay at higher frequencies than the "natural frequency", they are just wiped away and averaged. Not to forget our "beloved" jerk is also available for extrudes.
If you drive a car and a modern ABS starts to work, you don´t notice that because the brakes are opening and closing very quickly. 20 years ago at much slower cycle times you could feel the stuttering. If you drive your car you don´t notice all the small and fast deviations on the road, they even don´t come to your springs and dampers, they are filtered by the tire rubber. What you notice are the big and slow bumps.
Using a much higher acceleration at the same speed leads to a much more constant printing speed, so the absolute deviations in printing speed and extrusion over time are much less and not more - this improves print quality and doesn´t make it worse (as long as mass/stiffness is sufficient).
I should also have said that I only see this feature being useful (if at all) during fast travel moves. So the extruder behaviour to the extra acceleration change would not matter, because it would only be used in non-extruding moves.
For extruder issues see above. The extruder will be very likely the last problem, it will work "better than now" in terms of a more constant extrusion rate. With bowden probably better than with direct drives. Retraction can be reduced a lot if you are able to travel fast. Direct drives have retractions of << 1mm, bowden e.g. < 5 mm. But the 5mm don´t happen in the hot end, they are happening in the tube which just works as a spring. With my E3D titan combination (direct) i need 0.3 mm retraction - that means the real retraction which happens in the hot end is between 0 and 0.3 mm. With a bowden there is plenty of buffer in between to compensate extrusion "jerks". With direct drive i will maybe have to reduce retraction to 0.1 mm or whatever - we will see. Anyhow with fast travel moves you "don´t need retraction" (or much much less), it has no to time to ooze.
DC42 has put lot of effort in to tune PID loops - why ? Because the disturbances are big. The biggest disturbance is varying printing speed…. worst case are retractions.
The hard limit or problem when printing is mass/stiffness, but there firmware changes can push the limit far away in comparison to now. My plan is also to get rid of or at least reduce retraction a lot, that is the only way to print flexible filaments with higher quality.
It seems to me that you all maybe don´t consider that printing (as well as travel) moves don´t start at zero speed in general.
At 12 V the torque drops start at more or less 0 mm/s. When printing with e.g. max 80 mm/s, the moves don´t start with 0 mm/s in average… they will start at about below the average printing speed (which is with low acceleration far below 80 mm/s, but as soon as you increase acceleration the average printing speed is also increased and by that you need more torque compared to low acceleration). If a print of a round shape in vase mode happens at 150 mm/s (= max printing speed), the average speed i guess should be > 100 mm/s.
On fast travel moves the benefit is most easy to see. I think if you change your thinking from"what is state of the art now" to "what will be state of the art in future" you will see the benefits. I fully agree that in the low speed region the stiffness issues will bottleneck 99.9 % of most users much earlier than the possible acceleration - but again also this limit can and will be shifted.
And as written in posts above, there are multiple advantages and if the improvement is not doubling the printing speed, if it is just a 20 % imporvement of speed or better quality, why not ? For me the question is not if a more constant printing speed improves speed and quality, the question is how much. On travel moves it is just easier to see.
-
If the torque drops at 0mm/sec with a 12V supply, you have chosen unsuitable motors for that supply voltage. The voltage drop of the motors should be no more than 4V, leaving 8V leeway for back emf as the speed rises.
-
Based upon various posted torque curves, at design current the torque starts to drop not far way from 0 rps at e.g. 12V. I "don´t care" if it starts from 30, 50 or 70 mm/s if i am heading for > average 100 mm/s printing speed. And again, moves don´t start from 0 mm/s in general. The higher the acceleration the higher the average speed and the bigger the demand for more torque. If somebody thinks he should operate a NEMA17 at 50 % current, he should just buy a NEMA14 and don´t waste resources.
I am sorry but this rps discussion is getting frustrating/useless. Torque drops with speed. At lot when traveling and also when printing unless one doesn´t remain in the low speed region. When the firmware change is done for travel moves, the feature is also available for printing moves for free. If somebody thinks, when printing it will never work for him, it is ok, nobody is forced to use it.
According to my tests i have no missing steps at all up to 1000 mm/s at 5g, and it seems not to be the limit at max. 1000 mm/s. At 5g it takes 10 mm to reach 1000 mm/s. If i open the max speed to 1500 mm/s i get missing steps. Therefore i have to reduce the acceleration - but now this also limits the part < 1000 mm/s, so in total right now increasing and using high max speeds increases (for sure it depends on the print) the total time, because i have to reduce the acceleration and most moves happens in the low speed region. For sure acceleration as a function of speed won´t double the average speed, i never claimed that, but it is only a software change, it doesn´t hurt anybody who thinks it doesn´t help him.
-
Torque only drops with speed if the back emf due to inductance and motion exceed the ability of the stepper driver and power supply to provide sufficient voltage. For most 3D printer users choosing Nema 17 motors of modest size, I don't think this is the case. For example, using a typical XY acceleration of 3000 mm/sec^2 and a 300mm long bed, from v^2 = u^2 - 2as (s = 150mm for acceleration and 150mm for deceleration), the peak speed is sqrt(2 * 3000 * 150) = 300mm/sec. Plugging this into https://duet3d.com/wiki/Choosing_stepper_motors#How_to_work_out_the_power_supply_voltage_you_need with a 17HS19-1684S motor (not the best choice for the series 2 Duets - the -2004S would be better), we find that at 1.4A current the peak back emf due to inductance is 13.5V and the peak back emf due to rotation is 8.72V. As these are not in phase when high torque is demanded, a 24V supply is sufficient for this case with negligible loss of torque at the target speed.
If you build a very large printer and/or use much higher acceleration and/or use motors with higher rated current and/or higher inductance and/or you use 0.9deg motors for the axes, then I can see that variable acceleration could be useful. But for typical users, it doesn't appear to be. Also the benefit of very fast travel moves is doubtful IMO, because travel moves that cover such large distances are rare.
Also I repeat my earlier point. During printing moves, it is important to have a large excess of torque to ensure precise microstep placement. In which case, during high speed travel moves, it doesn't matter if the torque drops by 50% or even more, because you have such a large reserve anyway. It's difficult to print above 150mm/sec.
By all means put this feature on the firmware wishlist. The only implementation that I could do quickly would be use constant acceleration for every move, but choose the acceleration according to the peak speed for the move. You might care to work out whether e.g. halving the acceleration to achieve a top speed of 600mm/sec instead of using full acceleration to achieve a top speed of 300mm/sec is likely to be worth while for you.
-
@vp:
Based upon various posted torque curves, at design current the torque starts to drop not far way from 0 rps at e.g. 12V. I "don´t care" if it starts from 30, 50 or 70 mm/s if i am heading for > average 100 mm/s printing speed. And again, moves don´t start from 0 mm/s in general. The higher the acceleration the higher the average speed and the bigger the demand for more torque. If somebody thinks he should operate a NEMA17 at 50 % current, he should just buy a NEMA14 and don´t waste resources.
I am sorry but this rps discussion is getting frustrating/useless. Torque drops with speed. At lot when traveling and also when printing unless one doesn´t remain in the low speed region. When the firmware change is done for travel moves, the feature is also available for printing moves for free. If somebody thinks, when printing it will never work for him, it is ok, nobody is forced to use it.
According to my tests i have no missing steps at all up to 1000 mm/s at 5g, and it seems not to be the limit at max. 1000 mm/s. At 5g it takes 10 mm to reach 1000 mm/s. If i open the max speed to 1500 mm/s i get missing steps. Therefore i have to reduce the acceleration - but now this also limits the part < 1000 mm/s, so in total right now increasing and using high max speeds increases (for sure it depends on the print) the total time, because i have to reduce the acceleration and most moves happens in the low speed region. For sure acceleration as a function of speed won´t double the average speed, i never claimed that, but it is only a software change, it doesn´t hurt anybody who thinks it doesn´t help him.
Can you post a video showing that you can actually print reasonable quality parts at 1,000mm/sec using 5g acceleration please? Up until now, I thought that everything you were saying was based on some sort of theoretical scenario and conjecture. I didn't realise that you have actually done tests printing at 1,000mm/sec using 5g acceleration. So if you can actually prove that it works under real life conditions then that adds a whole new dimension to this discussion. I think all the makers of hot ends and extruders would love to see how their items can be used to print at far higher speeds than anyone else has been able to achieve. In fact, this would completely revolutionise the entire world of 3D printing and you will be hailed a hero. All you have to do is prove it in a rational scientific way, rather than quote theoretical. possibilities.
-
Yes, thanks and i will add it to the wish list. maybe Christmas is coming sooner or later.
In between, i can process gcode to do a proof (or fail) of concept. How many paths segments (or lines) can the Duet handle per second ?I still think it is not clear how this should help. dc42 you are still thinking and comparing "state of the art".
I repeated already several times, that most benefit comes when traveling not when printing - on this point we agree, but if "acceleration as a function of speed" is there because of travel moves, it would be stupid not to use it when printing.
I also think that because of missing stiffness, only some users will benefit.
The reason why i use 24 V, 2 steppers per axis and 1 one driver per stepper (it would be easy to connect 2 steppers in series to one driver at 24 V) is that i see no need at all to bottleneck my possibilities. I don´t build this printer to print at 50 mm/s, I bought such a printer long ago.The only way not to loose torque at 12 V is to waste resources by reducing the current to e.g. 50 % of design - like in your example. In this case, i could be proud that the torque doesn´t drop until maybe 5-10 rps, but only because i lost already 50 % of the initial torque. My target is not to keep the torque as much as possible constant by reducing it artificially, i am hunting for e.g. super fast travel moves.
I used the same calculation as you to choose my steppers, but we should never forget the difference between theory and real life.
check the torque curves -> http://www.electrocraft.com/products/stepper/TPP17/
TPP1729-A20 TPE17-45A15 TPE17-45A20
5 rps 18 Ncm 21 Ncm 26 Ncm
10 rps 15 Ncm 9 Ncm 16 Ncm
20 rps 7 Ncm 0 Ncm 5 Ncm
L mH 1,0 3,4 1,9
R Ohm 1,2 2,0 1,1
L/R 0,8 1,7 1,7
current 1,0 A 1,5 A 2,0 A1. It is wrong that torque doesn´t drop significantly with speed, just look above. Running at 80 % current doesn´t change these curves a lot. The faster you run in average the more the current is limiting itself, so you could increase the current to maybe 100 % because in average you don´t reach it anyhow - but the 100% torque at low speed would be there.
2. It is wrong to choose the smallest "possible stepper" IF somebody wants performance in terms of speed. The smallest one above TPP1729-A20 with 1 A has the highest torque at 20 rps - but i am not interested in the highest high-speed torque, i am interested in high torque from beginning to end, most moves are"slow" and therefore the biggest (TPE17-45A20 2 A) one is the winner in this example. The mass of inertia is missing here, so the winner of the netto high speed torque is still the smallest one, but it doesn´t change anything that until very high speed, the smallest (as well as the mid sized) is the "loser". In terms of price is the smallest not more or less expensive than the biggest (maybe 1-2 EUR…).
With a 16 T GT2 pulley at 1.8° 5 rps are 160 mm/s, 20 640 mm/s. With 0.9° 5 rps is about in the printing range.
In case of the TPE17-45A20 the torque drops from 26 to 5 Ncm from 5 to 20 rps (640 mm/s) - these values are not unreachable, in my case 1000 mm/s and above are usable. In other words, when i would hunt for 1000 mm/s, i would also have to reduce the low speed acceleration to about 1/10 of what would be possible..... this is just not necessary.
-
Can you post a video showing that you can actually print reasonable quality parts at 1,000mm/sec using 5g acceleration please? Up until now, I thought that everything you were saying was based on some sort of theoretical scenario and conjecture. I didn't realise that you have actually done tests printing at 1,000mm/sec using 5g acceleration. So if you can actually prove that it works under real life conditions then that adds a whole new dimension to this discussion. I think all the makers of hot ends and extruders would love to see how their items can be used to print at far higher speeds than anyone else has been able to achieve. In fact, this would completely revolutionise the entire world of 3D printing and you will be hailed a hero. All you have to do is prove it in a rational scientific way, rather than quote theoretical. possibilities.
As mentioned earlier above, my complete z-axis "power train" is missing, i am waiting for parts, but in between, i am doing test.
So until now i didn´t print a single piece and i don´t think i will use 5g for printing because the deflections are too big (at least in theory, but jerk should also not work as good as it does in theory).Right now > 10g at up to 500 mm/s are no problem (no missing steps). I am now on/going to vacation and afterwards the postman should ring the bell.
In principle, if you use the full available torque when traveling and you don´t have z-deflections (that means you don´t hit the print, bad luck for deltas…), in my case 20 g could be possible in the low speed region.5g when printing could be maybe interesting to get rid of jerk, that means instead of bumping it, "gentle" accelerating it, for the 1st 0.0... mms.
-
Ah, sorry. I thought when you said you were testing at 1,000mm /sec you were actually testing under real printing conditions.
By the way, you still don't understand how instantaneous speed change (what has become known as Jerk) works in 3d printers but hey, it's easy enough to set it to zero to test your theory that you can do away with it. Looking forward to seeing a video of your 1,000mm/sec 5g (or as you say in your case 20g) accelerations.