Flow Rate vs Filament Feed Rate Compensation



  • Compensating for the additional pressure required for higher flow rates through the nozzle has been a topic of discussion many times. Based on my searching it appears that measuring the push force on the filament cannot be reliably correlated to the pressure in the melt zone. Implementing pressure sensors in the melt zone is problematic for many reasons. I think these would add more complication than necessary anyway.

    Currently, the most one can really do is go to a larger nozzle which is fine in some situations but for a part that has many bulky as well as detailed features this can start to limit the quality of the details or add unnecessary time.

    Is it feasible to create a firmware feature in which the user empirically determines a compensation factor profile for various flow rates through a given nozzle? My thought is that this could be stored as a configuration file in the machine to be called by start G codes or something of that manner.

    I am aware of the pressure advance feature but my understanding is that this really only shifts the "phase" of the extruder acceleration ahead of the XY acceleration and is not currently capable of compensating the extruder speed for the head speed. Maybe adding a separate feature with a linear and exponential factor for this, similar to the option of adding additional PWM to the heater as the temperature increases, is a better route?


  • administrators

    Pressure advance doesn't work by shifting the phase of the extruder acceleration. What it does is to add a term to the extruder position that is proportional to the extrusion velocity. This works on the assumption that the back pressure is proportional to the extrusion speed, and the compression of the filament and the lag of the extruder motor are proportional to the back pressure. Whereas in reality, the motor lag is proportional to the arcsin of the back pressure.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.