[feature] Adaptive / Feedforward Temperature setpoint
-
@timschneider In case you are interested, this video offers insight to flow modulated temperature control:
Variable Temperature 3D Printing – The FUTURE of 3D Printing?
-
I am finding this feature really interesting. For pla and a 0.4 nozzle, I find
M309 p0 S0.06 T6 A40
works ok. I use a base temperature of 200, and first layer temperature of 215. First layer prints at 220-225, as I use 20mmsec for perimeter and 40mm/sec for infill. Using a revo 40watt heater and revo cht nozzle, temperatures change quite quickly (low thermal mass). Experimenting with higher speeds, inner perimeters and infill print fine at 140mm/sec (DWC reports about 22cumm/sec) - accurate weighing of resulting print showed that there was no under extrusion. I am not currently using non-linear extrusion. I have a single nozzle delta, so sometimes change filament mid print to get a multicolour effect. The adaptive feed forward is good for this as the base temperature is high enough to load and prime the new filament, but there is little oozing so you get a clean change. This is what a manual filament change looks like
The print quality with adaptive feed forward seems excellent, and still finding the limits of how fast one can go.
-
@Adrian52 I found that the active (=target) temperature is not updated, either in DWC or in the Paneldue. It is impossible to know how far the current temperature deviation is.
Besides, I had to increase the S Parameter to about 0.3 to get a quicker change of temperature. Nontheless, I get heater faults from time to time, although I have loosened the check using the command M570 H1 P100 T45, which is incredibly forgiving, as it allows a deviation of 45 C deg to persist for up to 100 sec...
-
@Triet I guess if one is using the feedforward in the way intended, the temperature shown is the target temperature. I have been playing with the parameters, trying to understand how they work. I am trying out a 0.25mm nozzle, which has an extrusion rate of about 8.8cumm/sec with 0.125mm layers at 140mm/sec, which is think corresponds to about 3.6mm/sec for 1.75 filament. A T parameter of 12 seems to give the expected increase of just greater than 40deg over the base temperature. I think there is a bit of under extrusion at this speed with the 0.25 nozzle, but checking that out. For my standard 0.4 cht nozzle, 0.2 layers give about 22cumm/sec at 140 mm/sec, that is about 9mm/sec filament. Using T5, this gives the expected increase of about 45deg above base temperature. I dont think the cht nozzle is underextruding under these conditions. I have just started using an S parameter of 1.0, and this seems to work fine with the 0.25 nozzle - not tried with the 0.4 nozzle yet. Tried increasing the A parameter to 50, and the feed forward stops working.
I have been using M570 H1 P15 T45, and not been getting heater faults. The revo nozzle setup I am using has a low thermal mass, and seems to be controlled very well by the duet. -
@timschneider said in [feature] Adaptive / Feedforward Temperature setpoint:
ok, A40 is working - but shouldn't A100 act like A0 if A100 can not be maintained? Instead it was acting like T0.
I've reduced the maximum allowed from A100 to A50 in rc2, which I think should work.
[EDIT: Adrian's post above suggests that it doesn't.]
-
@Adrian52 said in [feature] Adaptive / Feedforward Temperature setpoint:
I guess if one is using the feedforward in the way intended, the temperature shown is the target temperature
That's correct, the target (as displayed by DWC and PanelDue) remains the same but the feedforward correction is added to it internally.
@Triet said in [feature] Adaptive / Feedforward Temperature setpoint:
It is impossible to know how far the current temperature deviation is.
I'll look at adding the current feedforward boost to the object model.
EDIT: I've added the boost parameters to the OM.
-
@dc42 On my system, the highest A value that works is 48
-
To see if I could get the hotend to follow the forward temperature more closely, I tried removing the silicone sock from the revo heater, to see if I could get faster cooling. I redid the pid tune without the sock, and this is the plot printing a 100mmx20mm cube that has three small cylinders attached to one end. The cube walls print at 140mm/sec, and the cylinders around 20mm/sec. The cube has no fill or top, but the initial part shows printing the bottom infill
It then cycles between the fast cube walls and the slow cylinder walls. I was suprised how well controlled the temperature is under these conditions. The print weighed exactly the amount predicted by the slicer, so no underextrusion. The cube walls were printing at 22cumm/sec (o.4 nozzle, 0.2layers). The S parameter was set to 1
Would be interesting to plot the feed forward boosted temperature on the temperature chart - is this possible?
-
@Adrian52 you could plot it with BtnCmd if its in the object model
-
@Adrian52 Wouln't you need to repeat the same print (with/without silicon sock) to properly quantify the effect? What are you comparing to?
-
@Triet Indeed - I was just looking at the feasibility of leaving off the sock. I was concerned that it would make temperature control unstable, but this doesn't seem to be the case. I thought a next step would be to plot the boosted temperature against the actual temperature, but waiting for an update that has the boosted temperature in the OM. On a learning curve with btncmd too - not used it before. Will aim to do a more formal comparison, including maximum speed and print quality.
-
@Adrian52 I share the same interest. If I get somewhere customizing DWC to show the temperature deviation I will post my findings.
By the way, removing the silicon sock to facilitate better temperature control is a brilliant idea.