Scientific take on pressure advance
-
Re: Enhancing pressure advance
There has been quite a bit of discussion on the topic of pressure advance (see above thread amongst others) as well as an expressed sentiment that this should be looked at from a more scientific point of view (deckingman). As I have been using PA quite a bit I have also recognized that it does need some further improvement. I would like to raise this topic once more and take a look at it on the basis of the relevant engineering principles. Hopefully a consensus can be reached, and Duet3D convinced to implement the necessary changes. I will point out that I am not a plastics expert although I am an engineer and have done some research in order to get a better understanding of the matter.
In order to understand how the plastic behaves during extrusion it is necessary to consider itsβ rheology. Plastics are non-newtonian in nature and typically behave as pseudoplastics, meaning their viscosity at low shear rates (which is proportional to flow rate for a given nozzle size) will be constant (linear) and then as the shear rate increases beyond a certain threshold the viscosity will start reducing (nonlinearly) to itsβ minimum at the high shear rate threshold at which point the viscosity will again become constant. This is referred to as shear thinning behaviour.
The viscosity itself (at a reference temperature) as well as the point at which the viscosity vs flow rate changes from constant/linear to reducing/nonlinear is determined by the average molecular weight (MW) of the plastic. Viscosity is proportional to MW so the higher the MW the higher the viscosity. Plastics such as Nylon and PETG are typical low MW plastics having a constant viscosity over a wider range of the flow rates used in 3d printing, whereas ABS, PC and PP for example are higher MW plastics whose viscosity will reduce nonlinearly from relatively low flow rates with possibly a small window of constant viscosity flow at very low flow rates. In plastic profile extrusion (such as extrusion of plastic pipes for example), extrusion rates do reach the level at which the lower constant viscosity limit is reached. I am not sure whether this level is reached in 3d printing processes.
The shear stress generated in the molten plastic is the mathematical product of viscosity and shear rate. For a given nozzle geometry, this is proportional to the pressure required in the hot end while extruding. Due to this shear (flow) rate dependency, the pressure required to extrude plastic through the nozzle will therefore always increase with increasing flow rate, albeit that it will do so with a decreasing rate (due to the shear thinning effect on the viscosity). See below graph showing he characteristic curve of a pseudoplastic.
It must also be noted that thermoplastics behave in a viscoelastic manner when subjected to a stress i.e pressure. This means that when the plastic is forced through the nozzle under pressure the plastic will compress elasticly (based on its' storage modulus) as well as heating up due to viscous friction (based on its' loss modulus) as it absorbs some of the pressure energy. The energy absorbed in the plastic is proportional to the pressure it is subjected to, which is in turn proportional to the flow rate. This means that at a higher flow rate more energy is stored in the molten plastic than at lower flow rates.
The relevance of this to extrusion in a 3d printer, is that when the plastic is pressurized, for example when accelerating it to the set extrusion velocity, there is an elastic as well as viscous absorption of pressure energy which takes place. When the plastic is depressurized during the deceleration phase, only the elastic component will be released again as the viscous component has been absorbed as thermal energy.
There are a number of implications following on from the above:
- The energy released under deceleration is always less than that absorbed during acceleration, therefore PA under acceleration and deceleration would have to be different.
- The PA required during deceleration would have to be less than that required for acceleration.
Note : Some low molecular weight plastics with a broader constant viscosity vs flow rate window could be extruding on a part of the viscosity curve where elastic effects are still relatively low and therefore the difference in required PA between acceleration and deceleration phases would not be very pronounced. This I believe would account for some of the test results obtained by deckingman. For higher MW plastics the difference in required PA values would be more pronounced though and therefore make separate PA values essential in an optimal implementation of PA. - A PA that is too high during the (transient) acceleration phase will result in an excess pressure at the end of the acceleration phase. This excess pressure will then bleed excess filament into the print bead (over a distance proportional to the excess pressure) until the pressure reaches the required steady state pressure. This results in a print bead that is too high/thick at the start, and when the nozzle approaches this point again at the end of that specific print loop, it will plough into that excess plastic, pushing it ahead of itself and outwards, resulting in further artifacts on the print surface.
- A PA that is too
highlow during the (transient) deceleration phase will result in an excess pressure at the end of the deceleration phase. This excess pressure will bleed excess filament into the print bead until the pressure reaches itsβ minimum (should be zero if PA value were correct) during the time available before the flow is accelerated again at the beginning of the next print segment. As this pressure bleed off happens at a zero/low velocity the excess plastic is concentrated and forms a blob. - A PA that is too low during the acceleration phase or too high during the deceleration phase will result in gaps for both the acceleration as well as the deceleration phase.
- In order to use it optimally, PA would have to be tied to the speed at which it has been determined, as was also found by bot. This is because the amount of PA required (at a given temperature) is dependent on the extrusion flow rate as well as the elastic energy storage (storage modulus) and viscous losses (loss modulus) in the plastic. Making provision for this would therefore require tuning PA at more than one speed and then interpolating between those tuning points at all other speeds. The number of tuning points used would have to be a balance between the accuracy required and the effort that a user is willing to expend.
-
@h975
That just made my brain hurt.
Frederick
-
@h975 Interesting hypothesis. I confess that I haven't read your post fully but I got the impression that you were focusing on the behaviour of molten plastic under pressure. Whilst this is perfectly valid, there is school of thought which surmises that pressure build up is more a function of what happens between the extruder and the melt chamber. The reasoning is that the (non-molten) filament itself can buckle inside it's support path (e.g. a Bowden tube or the heat break itself) and form a coil spring. Another hypothesis is that the rigid filament itself could be compressed and act like a spring (not sure that I an buy that one). Another hypothesis is thermal expansion. Most materials expand when heated but if they are constrained from expanding, then pressure will increase. So it's possible that simply heating cold filament inside a chamber with a restricted vent, might itself lead to an increase in pressure. This, or something like this would explain why I observed that much higher values of PA were needed when using a mixing hot end with short Bowden tubes but a large melt chamber.
I guess what I'm trying to say is that we don't really know for sure what causes pressure to build up in an extrusion system, only that it does. My gut feel is that it could be due to a combination of different factors. But unless and until we know for sure what the cause or causes are, it's hard to see how best to deal with it or them.
It's also very difficult to isolate pressure from every other factor or parameter which might affect a print. The very act of attempting to control pressure by varying the extruder speed, can itself lead to other problems.
It's been a long time since I did any investigative work but I did find that once a good pressure advance value had been determined, it was largely agnostic of print speed. That is to say, the same value worked well from 40 to 200mm/sec+. At that time, my observation indicated that there was no need for asymmetric pressure compensation for the start and end of a given move. But that was using a mixing hot end with multiple extruders feeding a single melt chamber so other hot ends/extruder combinations might behave completely differently.
It becomes even more complex because there seems to be time factor i.e. the pressure seems to build relatively slowly rather than as a sudden pulse. So longer moves are affected more than shorter moves.
I think this is the biggest problem. How do we deal with a sequence of small moves where there is a cumulative effect? We need to somehow group blocks of small moves (such as segmented arcs) and apply PA at the start and end of that block of moves but without unduly affecting the amount of extrusion for any single move.
-
@h975 thanks for your contribution.
In fact we have a researcher measuring the effects of PA under various conditions, with a view to improving the PA algorithm. There is a further complication: I don't believe the compression of filament within the Bowden tube behaves like a linear spring. So there are two non-linear effects to compensate for.
I think the solution will be to use a non-linear PA algorithm, which is more or less what you are suggesting. However, before we can say what sort of nonlinear PA curve is needed, we need to do some more measurements on systems with and without long Bowden tubes, and work out a good method of calibration. Your suggestions will be welcome!
-
@dc42 With respect, the hypothesis that the only cause of pressure build up is what happens to filament inside a Bowden tube might be flawed. It could be true but I think you should be open to other possible reasons (see my post above). I do know for certain that a mixing hot end with multiple but short Bowden tubes requires much higher levels of PA than is considered "normal".
-
@deckingman said in Scientific take on pressure advance:
@dc42 With respect, the hypothesis that the only cause of pressure build up is what happens to filament inside a Bowden tube might be flawed. It could be true but I think you should be open to other possible reasons (see my post above). I do know for certain that a mixing hot end with multiple but short Bowden tubes requires much higher levels of PA than is considered "normal".
Indeed I expect there are other reasons why PA is needed. In particular, I suspect that if the pressure at the input is increased suddenly and that increase is maintained, the output flow doesn't increase immediately to accommodate the new pressure, but takes time to reach a steady state. If that is the case, some sort of pre-emphasis may be needed as well as traditional PA.
-
@dc42 said in Scientific take on pressure advance:
............... In particular, I suspect that if the pressure at the input is increased suddenly and that increase is maintained, the output flow doesn't increase immediately to accommodate the new pressure, but takes time to reach a steady state. If that is the case, some sort of pre-emphasis may be needed as well as traditional PA.
My gut feel is that is indeed the case. Given the geometry of a typical hot end, it is hard to imagine how it could be otherwise.
I've been saying for a long time that the only way we could solve this conundrum, is to fit a pressure transducer inside a hot end but that's far outside the scope of what my state pension will allow Maybe you guys should talk to your friends at E3D. Seems like a good project for a graduate thesis....
-
@deckingman said in Scientific take on pressure advance:
I've been saying for a long time that the only way we could solve this conundrum, is to fit a pressure transducer inside a hot end but that's far outside the scope of what my state pension will allow
A simpler alternative for single-input hot ends is to fit a load cell in one of the Bowden tube couplings, to measure the force exerted on the filament.
-
@dc42 said in Scientific take on pressure advance:
@deckingman said in Scientific take on pressure advance:
I've been saying for a long time that the only way we could solve this conundrum, is to fit a pressure transducer inside a hot end but that's far outside the scope of what my state pension will allow
A simpler alternative for single-input hot ends is to fit a load cell in one of the Bowden tube couplings, to measure the force exerted on the filament.
But that won't answer the fundamental question you raised earlier. i.e. what is the interaction between a sudden increase in pressure at the input on what happens at the nozzle tip? Unless you measure the pressure just before the nozzle, you have no way of knowing if there is a sharp or gradual increase in pressure at this point.
-
@deckingman said in Scientific take on pressure advance:
Unless you measure the pressure just before the nozzle, you have no way of knowing if there is a sharp or gradual increase in pressure at this point.
True. But measuring the input force would at least allow us to determine the relationship between pressure and flow rate in the steady state condition, and the relationship between force and compression of the filament in the Bowden tube.
-
@dc42 said in Scientific take on pressure advance:
@deckingman said in Scientific take on pressure advance:
Unless you measure the pressure just before the nozzle, you have no way of knowing if there is a sharp or gradual increase in pressure at this point.
True. But measuring the input force would at least allow us to determine the relationship between pressure and flow rate in the steady state condition, and the relationship between force and compression of the filament in the Bowden tube.
The steady state condition is largely irrelevant IMO. We know that at the end of a move, filament will continue to be forced out of the nozzle due to the pressure build up in the system, leading to over extrusion as the print head decelerates. The longer and faster that move, the more so. So if you measure the pressure on the filament and observe that it decays at the end of a move, how will you measure the flow rate through the nozzle during that decay?
If you used two load cells on a long Bowden tube, one at the extruder end, and one near the hot end, then that at least would show you what happens to the rigid filament itself and put the "spring" theory to bed or otherwise quantify it. But we still need to know what happens to the pressure when we melt that filament and when we have a molten pool of it between the rigid filament coming in and the restricted output nozzle.
-
@deckingman going on a tangent here, but I think there might also be a distinction with pressure advance in the amount of extra filament commanded (in mm3), the amount extra that gets melted in the nozzle (in mm3), the pressure in the nozzle (MPa), and the amount of plastic that actually flows out.
Now for one of my crack pot theories on the topic...
The extrude, we're essentially pushing filament against a hot metal surface with a hole in it (I.e. the nozzle). Enough heat has to flow from the nozzle into the filament for it to melt, and this takes some time depending on how great the temperature difference is.
Mid-move you get some of that heat conducting up the filament itself, maybe only in the last mm or two, but you're not going from 20 degrees to 200 in am instant. I'm thinking that you get some equilibrium set up, so you get a nice even flow. Maybe under really long moves you get some localised cooling on the inner surface of the nozzle as the filament sucks the heat out of it, hence you're findings?
At the start of the move however, the tip of the filament is not being heated until you start pushing it against the nozzle, so it takes slightly longer to start melting the plastic, and so on.
Not sure what this all all means at the end of the move though...
-
@engikeneer It's not just filament in the nozzle though. Basically anything below the heat break will be molten (or more correctly, above the melt temperature of the filament). So there will be a certain volume of molten filament over and above what is at the nozzle tip. That volume will depend on the design of the hot end and how large that "melt chamber" is. A "normal" single input hot end will have a relatively small volume, whereas something longer like an E3D volcano or super volcano will have a much larger volume and a multi-input mixing hot end will be ever greater.
I guess what would be a good comparison to make would be to compare the amount of PA compensation required with say a standard E3D V6 and a volcano or super volcano, both using identical extruders/Bowden tubes/nozzles. Or some other combination of hot ends where the only difference is the size of the melt chamber. Essentially that would answer one question which is "does the volume in the melt chamber make a difference to the pressure at the nozzle under "dynamic conditions". My gut feel is that it does and that the molten filament acts to dampen out a sudden increase in pressure at the input (the start of a move) but once pressure has built up, the volume of plastic under pressure will serve to maintain pressure at the nozzle, even when the pressure at the input starts to reduce (at the end of a move).
-
@deckingman Ok, thanks for pointing out the different schools of thought on this subject. My analysis was applied to the case of a direct drive extruder only as I do not actively use Bowden setups myself. Nevertheless the additional dynamic factors you mention can also be individually evaluated in order to narrow them down to those which will or won't have a material impact on the system dynamics as a whole.
As far as pressure build up is concerned the term is being used a bit loosely in this case in order to describe what is mainly an issue of unwanted energy storage and dissipation taking place between the input (extruder drive) and output (nozzle) of the system. As such we do know what causes this energy storage and dissipation to take place. The challenge that needs to be addressed lies in modeling those effects in order to allow PA to be improved to more effectively account for them. This admittedly will remain a complex problem to solve.
The factors you have mentioned are all relevant to this challenge with the exception of the plastic expansion due to temperature effect which is unlikely to have a meaningful role in this situation simply because the time scales involved in the acceleration and deceleration of the flow (when PA is active) are too short for there to be a meaningful temperature change in the plastic itself.
The factors that are material to this analysis are therefore the elastic energy storage and frictional or viscous dissipation effects in the solid plastic and the molten plastic respectively.
In the case of your mixing extruder with the large melt chamber I would expect that the increased size of melt chamber with its increased volume for elastic energy storage would be more likely to account for the higher PA you require for your setup.
-
@h975 said in Scientific take on pressure advance:
The factors you have mentioned are all relevant to this challenge with the exception of the plastic expansion due to temperature effect which is unlikely to have a meaningful role in this situation simply because the time scales involved in the acceleration and deceleration of the flow (when PA is active) are too short for there to be a meaningful temperature change in the plastic itself.
I'm not sure that I follow your reasoning or maybe you misunderstood my own. If we assume a nozzle diameter of 0.5mm, a layer height of 0.3mm, and a print speed of 60mm/sec that means that we have a filament throughput of about 3.5mm^3/sec. So that's 3.5mm^3 of filament at ambient temperature of say 20 deg C going into the system which we are then heating by about 180 deg C. That increase in temperature would lead to thermal expansion but if that expansion is constrained by the restriction of the nozzle, then the pressure would increase. While a print move is in progress, there is 3.5mm^3 /second of cold filament going into the system which is being heated by around 180 deg C. This might be contributing to the pressure inside the melt chamber. Certainly if the system was sealed and static and we simply heated a fixed volume of plastic, there would be a significant increase in pressure. So it all depends on the volume of the melt chamber, the size of the nozzle hole, the throughput of filament, the temperature increase and probably a few other factors that I can't be ar*ed to think about at this time of night .
-
This post is deleted! -
Two PA layman questions:
-
Given two PA algorithms, how would you evaluate which one is better?
-
Are their software tools (FEA?) that can simulate the behavior of the molten plastic, in the nozzle, and deposited.
-
-
@zapta We need to be careful here. Even the term "pressure advance" is misleading IMO. From the early work that I did a couple if years ago, this is my understanding of the manifestation of the issue.
Assuming we start with the condition that the print head is stationary and there is zero flow at the nozzle. When we commence a move, the print head accelerates from rest up to a given speed. Therefore it follows that the flow rate of filament must also accelerate. It does but there is a time lag. That is to say, the extruder accelerates and so does the cold, rigid filament exiting the extruder (assuming there is no slippage). But there is a lag before the molten filament exiting the nozzle starts to accelerate because it takes time for the filament to melt and because it becomes a viscous fluid. We therefore conclude that there must be a build up of pressure between the extruder output and the nozzle output. We know that we can make the filament exit the nozzle faster, such that it will match the speed of the hot end by making that pressure pulse happen sooner. Hence the term pressure advance.
But (and it is a big BUT), at the end of that moves, the opposite effect happens. That is to say, the print head goes into a deceleration mode and the speed decreases. However, there is a lag before the reduction in pressure caused by the deceration of the extruder translates into a reduction of flow at the nozzle tip. Again, we know that we can compensate by reducing the pressure (at the exit of the extruder) sooner. So in this case, we are actually retarding the pressure, not advancing it. So IMO "pressure compensation) would be a better term to use.
The net result of what is essentially a time lag in the the filament flow rate at the nozzle tip, is that we get under extrusion at the start of a move and over extrusion at the end of a move. Therefore, IMO the best way to evaluate the effectiveness of pressure compensation is to print a series of long straight lines starting and ending at zero speed. If those lines are spaced at say 10mm apart, then any latent pressure build up will force filament out of the nozzle during that 10mm non-print move which is pretty obvious to see. When pressure compensation is right, there will be a series of long parallel lines of filament with maybe a small blob at the ends. With insufficient compensation, there will be lines of filemant at 90 degrees during the non- print move. So start with no compensation and increase it gradually until no filament is laid down during the non- print move. -
@deckingman let me trot out my feature request for velocity based extrusion (https://forum.duet3d.com/topic/22527/velocity-based-extrusion) ...maybe that's something for RRF 4...
-
@oliof, the PA algorithm used by RRF is the same as the velocity-based algorithm described in those links, except for one thing. The author of those links uses a curve to determine the additional extrusion for a given velocity. RRF uses a straight line with slope K where K is the pressure advance amount.
I was already planning to implement non-linear pressure advance, i.e. using a curve instead of a straight line. But at this stage I have only a vague idea what the shape of that curve should be, or how to go about calibrating it.