Linking Retraction to Linear/Non Linear Extrusion Correction?
-
Yes a long way off. Just had the invite to register so it was on my mind!
Plenty going on in the extrusion for sure. On the hotend side of the system there are three different 'springs' relating to the filament. Melt zone spring, filament coiling up, and finally filament compressing along its length.
I'm going to need to read through your message more carefully later and see about getting together a few estimates on the compressions etc.
I think my thoughts need sketches/scribblings to explain best!
-
@deckingman
I'm the guy that asked your help a bit earlier regarding my custom printer.
I have a 6 Input custom hotend design and when going up to higher feed rates with 6 inputs the pressure increases so drastic that indeed it gets more difficult to push the filament through, causing some degree of slip. When the design was adjusted for direct extrution (4cm bowden tubes) with a 20:1 ratio it seems I could get more pressure and thus more slip than with the bowden which would make me believe that buckling in a bowden tube is a real thing. Maybe your short tubes are still to long and have too much buckle compared to direct drive and thus the extruder doesn't slip as easy?
So I don't think non linear extrution is misplaced. But it is only needed in specific cases.thinking back to the video you made regarding nozzle pressure wasn't the amount of pressure advance needed at high speeds greater than at low speeds? ( I believe 0.5 was good on the 300mm/s and 0.2 had better result on the lower speeds?)
At the lower speeds having a travel move would still have filament oozing out while on the higher speeds this was almost rectified without the use of retraction with a 0.5 pressure advance.
That would lead me to believe that we also need a non linear pressure advance to be effective on all feed rates. I would think this graph would show the same trend as the non linear one?
That would effectively rule out any need for retraction as well since both your feed rate and pressure advance are calibrated over a range of speeds. Laying down the layers as requested by the gcode?
Just a thought
Jeff
-
Linking various variables together with varying factors is what we've been doing so far. I think pressure management is what we need. The printer needs to know head chamber size, nozzle size, viscosity/ooze rate and then out of this it can compute that at low speeds it doesn't need to feed any filament, since the ooze might be enough to print. When moving from low speed to high speed it must fill the chamber to build pressure again.
This is totally simplified, but you get the idea. Maybe we can already do this with current tools, but at this point in complexity I'd say move to a whole new type of printer like SLA...
-
Yup, all of what jas been said so far makes sense and we are essentially patching a open loop system to close the performance gap as far as possible to that of the closed loop.
The thing that occurred to me was that the linear travel of the filament is the only thing we can really measure well and it will get better with the magnetic filament sensor. 'slip' - be it a little missleading - is more than likely directly (not necessarily linearly) related to back pressure, which is key to the variable bit to retraction and pressure advance.
-
@twigz said in Linking Retraction to Linear/Non Linear Extrusion Correction?:
thinking back to the video you made regarding nozzle pressure wasn't the amount of pressure advance needed at high speeds greater than at low speeds? ( I believe 0.5 was good on the 300mm/s and 0.2 had better result on the lower speeds?)
At the lower speeds having a travel move would still have filament oozing out while on the higher speeds this was almost rectified without the use of retraction with a 0.5 pressure advance.
That would lead me to believe that we also need a non linear pressure advance to be effective on all feed rates. I would think this graph would show the same trend as the non linear one?
That would effectively rule out any need for retraction as well since both your feed rate and pressure advance are calibrated over a range of speeds. Laying down the layers as requested by the gcode?
Just a thought
Jeff
No that wasn't the case. I once thought it was - i.e. that different values of pressure advance were needed at different speeds but testing showed that once a value had been found that worked at high speed, then that same value worked well at lower speed.
I also suspected at one time that asymmetric pressure advance would be needed - i.e. that pressure would need to be relieved more at the end of a move than it would need to be increased at the start of a move. Again, my suspicions were proven to be unfounded by the results of the tests I did.
So based on the work that I have done, there isn't a case for either non linear or assymetric pressure advance. Of course, although I have done extensive testing that is solely based on my particular hot end and printer configuration.
In a nutshell, I have no evidence that I could present which would stand up to any sort of scrutiny, that would show there is a need for non-linear pressure advance. If David implemented it in firmware, I woudn't use it because I have no need for it.
-
@edgars-batna said in Linking Retraction to Linear/Non Linear Extrusion Correction?:
Linking various variables together with varying factors is what we've been doing so far. I think pressure management is what we need. The printer needs to know head chamber size, nozzle size, viscosity/ooze rate and then out of this it can compute that at low speeds it doesn't need to feed any filament, since the ooze might be enough to print. When moving from low speed to high speed it must fill the chamber to build pressure again.
This is totally simplified, but you get the idea. Maybe we can already do this with current tools, but at this point in complexity I'd say move to a whole new type of printer like SLA...
Rather than complicated algorithms fed with numerous parameters, I think a simpler approach would be a mechanical solution. A variable volume melt chamber would do the job. Something akin to an expansion chamber with a diaphragm and spring. So as pressure builds up on one side of the diaphragm, it deflects against the spring. That way, it ought to be possible to maintain the pressure close to the nozzle at a more or less constant value. Leave that with me..........................
-
I wasn't completely sure on how the k factor was applied so I searched and found this:
actual_extrusion_speed = requested_extrusion_speed + (K * current_extruder_acceleration)
If you apply non linear extrution, the acceleration would ramp up slowly to accommodate for the multiplier and stay at the requested feed rate when hitting the maximum speed. (requested x multiplier from non linear extrution). If setting up the pressure advance before the non linear multiplier it would mean the result of the formula above is increasing with the multiplier and the advance would turn out to high.
Therefor I would think the non linear extrution needs to be set up first. To create an accurate extrution at all nozzle pressures.
Then set up the pressure advance to control the nozzle pressure when starting and stopping.
In theory you would then only need a tiny bit of retraction to pull the filament out of the melt chamber to stop oozing.Any thoughts?
Jeff
-
Linear and non linear extrusion essentially correct for the same thing. A difference between the actual length of filament and that was requested, and that difference is linked to the speed by either a simple linear correction or with a non-linear component. What it required for a specific machine will be related to hotend design, material, nozzle diameter, and temperature setting.
I'd definitely look to set that up before pressure advance but after finding a temperature setting.
-
@twigz said in Linking Retraction to Linear/Non Linear Extrusion Correction?:
Therefor I would think the non linear extrution needs to be set up first. To create an accurate extrution at all nozzle pressures.
Then set up the pressure advance to control the nozzle pressure when starting and stopping.
In theory you would then only need a tiny bit of retraction to pull the filament out of the melt chamber to stop oozing.Any thoughts?
Jeff
That's pretty well what I said towards the end of my post above. Quote from that post....:
"Anyway, I suggest you set non-linear extrusion by checking to see if there is a difference between measured filament extrusion at normal extruder flow rates and at normal extruder move length, with and without a hot end. Then once you have that set, check and adjust pressure advance. Then when you have set, check and adjust the retraction speed and amount."
-
I landed here after trying pressure advance calibration , successfully printed the test but saw no change at all due to changing pressure advance values in the print , a comment made by Rcarlyle ( https://forum.duet3d.com/topic/6698/pressure-advance-calibration/44# ) led me here trying to work out why it didn't work.
Reading posts both here and elsewhere and doing some other searchs , I did not see any conversations on why filament feed rate is not PID controlled . Any reason why ( besides not looking hard enough :)) ? It looks to me like the control strategy for feeding filament is just proportional ( linear ) with the change in speeds while printing I would have thought that filament speed would increase to overcome the offset error to just proportional control from what ever the ideal speed is ?
For me I visualize the nozzle traveling over a smooth surface with a constant gap and that gap being filled by plastic and acting as a valve to plastic behind it , the result is it gets pushed wide at slow speeds as new plastic emerges and stretched out thinner at high speed with the new plastic emerging keeping up, the speed of movement is like a valve opening , fast wide open valve , slow almost closed .
-
The filament is not PID controlled because on the majority of systems there is no feedback.
The laser monitor appeared to be a bit fussy on filament type to be usable for that. I had hoped that the magnetic based filament monitor would be able to tune the Extruder drive and would potentially be able to cope with the effect of the different back pressures that you allude to caused by different layer thicknesses, track widths, temperatures, and whether the deposited material is bridge, low density infill, etc. In truth there is too many variables to account for to do a full dead reconing correction style calibration. Decent filament monitoring is essential, and I suspect what will eventually drive me needing to unpgrade my d0.6 / 0.8.5 systems to Duet 2.
Edit: The magnetic filament monitor may or may not do that. It's only just been released and I've been too absorbed in machine builds to check it out.
Edit 2: link to blurb follows. On a flash read it doesn't appear to be linked to extrusion correction. Hopefully that will change soon if possible.
-
Do we need feedback ?
Filament demand isn't varied due to another downstream process or disturbance like cooling ( changing ambient air temp) with the hotend or heatbed. The printer just pushes it out linearly ( Proportionally) based on print speed which we know and control before hand , that is a type of feedforward system . The gain of the system as a whole and just proportional control would be acceptable for a usual speed you print at . Once you go out side that ideal speed you get filament feed speed offset errors , that is where the I and D come in to get it back to the ideal extrusion speed to get correct width at a particular speed.
Maybe I should have asked straight off . Is Linear extrusion correction Feed forward?
Are the A and B variables the I and D from PID control?From that Extrusion Advance test I get at 20mm/sec 1.4mm and at 100 .5mm line widths using a .3mm nozzle I don't think a small change in filament diameter will have much effect on those widths as much as the change in speed.
-
@digid thought you needed feedback for a PID loop yes, or you'd have no idea of how far from target you are.
-
"A proportional–integral–derivative controller (PID controller. or three-term controller) is a control loop mechanism employing feedback that is widely used in industrial control systems"
-
Thanks Doc , appreciate your time .
I found a blog that describes feedback and feedforward . Realise now that PID only works with feedback . Feedforward uses something else entirely . Kind of like what non-linear does it just uses an equation based on input disturbance and output result .
-
No problem. I'm hoping the magnetic sensor is used for setting up the extrusion correction at some point but I suspect due to the data rate and resolution required for on-the-fly correction it will be limited to calibrating a fixed correction rather than correcting on the fly.