[feature] Adaptive / Feedforward Temperature setpoint
-
@timschneider That model (I would call it "the "mother of hinges"), went well - all hinges were moving free without play (after forcingly "unfreezing" them the first time). I can infer then than the temperature variation does not pose a danger in maintaining correct dimensions, in this case at least.
Now I am choosing a more representative test model with an ample variation of flow rate, which at the same time allows us to assess artifacts, without being excessive large or long to print.
This JUN - the Jungle Queen (visual benchy) has a plethora of details and is not too small.
Results:
Printing with at 195 C, 0.2 mm layerheight, (0.4 mm nozzle), solid infill with 0.6 mm layer width, and sparse infill speed set at 300 mm/sec (but not reached) and still using M309 P0 S0.06 T10 A40, Orca Slicer was showing a flow rate up to 29 mm3/s, but that is not true. The real maximum is about 20 mm3/s, enough of a range. Extrusion rate smoothing was set to 90 mm3/s to avoid abrupt transitions.The temperature occassionally reached >240 C in the high flow areas. In very slow areas, it was decreased (!) down to 190 C. Most of the time, is was about 200C.
The print shows very crisp details, reminding me of previous cases using the postprocessing script. This is obviously the result of printing the small details with a suiting lower temperature.
Despite some suboptimal slicer settings (happens when printing in a hurry), the print went well and it looks better than in the picture.
Remarks:
I noticed that right at the begin of the print the temperature is higher than it should be (although I disabled this temperature modulation feature for the first layer), but immediately begins to fall as the print of the 1st layer progresses. My suspicion is that the firmware looks at the flow of the movements in the print queue in advance, but ignoring the command disabling the feature. But the command it is there:
and when it is processed, the temperature fails again to the nominal 195C. It looks like a slip to me.Furthermore, I still got heater faults (even after releasing the check conditions), but strangely, this happened at a moment where the temperature was quite stable after having significantly changed before. So it looks to me like the firmware notes a temperature deviation, but does not update that deviation timely as the temperature has changed and stabilized. Perhaps that part of the firmware should be revised.
This time, a decrease in temperature compared to the nominally set print temperature (195 C in this case) took place at some point. So I withdraw the objection I made before, although I don't quite understand how this is controlled in detail. I assume that the T parameter defines a slope determined by changes of temperature in relation to changes in flow, but where we are in that characteristic curve, I don't know.
Summarizing, I am very pleased with this enhancement. I still stand on my prediction that this feature will stay extremely underrated. I recommend to try it out.
-
undefined Triet referenced this topic
-
@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?