Dynamic temperature tolerance or defineable heat-soak time
-
Hello,
I recently changed my heatbed from bang-bang to PID and it's awesome. Now in steady-state, the temperature only fluctuates ±0.1C max. However on the initial heatup (from cold) the temperature overshoots by ~2C, the bed has been PID tuned using the on-board tuning commands. I think that this occurs because the actual surface of the bed hasn't reached temperature and as such less power is lost to atmosphere (lower temperature delta between ambient and bed).
Is there a way to force waiting for a tighter temperature tolerance over a time period (say 0.5C instead of 1C [I think 1C is default, might be wrong] for 10s) or specify a maximum temperature graph derivative value so overshoots are not considered "at-temperature"?
-
-
It may be easiest to simply add a G4 S60 dwell command to your heat up commands to give the bed a minute to equalize.
-
@Phaedrux I already kind of do this by heating my bed when I open my slicer. By the time I finish slicing the bed is already beginning to equalize. I thought it would be an interesting idea to add some machine-brains to the problem so it would be independent of me remembering to pre-heat the bed and not waste time should the bed already be in steady-state.
Not sure how exactly this would be implemented (and as such the complexity associated with it), although a simple idea could be an integral monitoring term. Just a thought for your consideration, but probably fairly low-priority.
-
@Merlin246 here are some possible workarounds:
-
Reduce the overshoot by increasing the M307 R parameter. This will only help if the bed surface temperature overshoots. If the temperature sensor is close to the heater and the surface temperature lags the sensor temperature then it may actually make things worse.
-
Many slicers have the option to wait until the bed is at temperature before they heat the hot end. The hot end heating time may be enough for the bed temperature to stabilise.
-
Typically, if the slicer sees a heating command in your start GCode, it won't generate the heating command itself. So you should be able to put the bed heating command followed by a G4 delay in your slicer start GCode.
-