New Edge firmware 1.18beta1
-
Thanks, that makes more sense now.
When you use your own PID parameters by putting an M301 command later than the M307 command, the M307 parameters are still used to predict heating rates and thereby detect heating faults.
The temperature graph from Marlin looks to me to be only marginally stable.
Can you try reverting to the M307 parameters found by 1.18beta1 except reduce the D parameter to about 3 and see how that performs?
-
Thanks for the clarification. I do now vaguely recall reading something similar on the forum. After re-reading the wiki documentation I didn't find the explanation(s) to be quite as clear or concise. Perhaps you might consider editing the following pages mentioning M301, to reflect your very clear explanation above.
https://duet3d.com/wiki/Tuning_the_heater_temperature_control
https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer
https://duet3d.com/wiki/G-code#M301:_Set_PID_parametersThe temperature graph from Marlin looks to me to be only marginally stable.
True, but I believe it's convergent instability rather than divergent instability - which AFAIU, (and interpret from the images) results in a slightly more responsive system. i.e. the Marlin PID settings do provide convergence with set point temp, albeit in a marginally unstable manner, under increasing or decreasing load. Compared to RRF auto tune, the settling times (to ±0.1°C) that Marlin PID settings provided were almost identical during initial heat-up, somewhat faster after load increase (fan ON) and about the same after unload (fan OFF).Below are three further runs made today using the RRF1.18beta1 auto tune settings, adjusting only the D parameter:
- D3.0
- D2.8
- D2.5
1.18beta1 M307 auto tune parameters, with adjusted D=3.0
M307 H1 with
Heater 1 model: gain 723.0, time constant 232.2, dead time 3.0, max PWM 1.00, mode: PID
Computed PID parameters for setpoint change: P19.1, I0.082, D40.1
Computed PID parameters for load change: P19.1, I1.884, D40.1
1.18beta1 M307 auto tune parameters, with adjusted D=2.8
M307 H1
Heater 1 model: gain 723.0, time constant 232.2, dead time 2.8, max PWM 1.00, mode: PID
Computed PID parameters for setpoint change: P20.5, I0.088, D40.1
Computed PID parameters for load change: P20.5, I2.126, D40.1
1.18beta1 M307 auto tune parameters, with adjusted D=2.5
M307 H1
Heater 1 model: gain 723.0, time constant 232.2, dead time 2.5, max PWM 1.00, mode: PID
Computed PID parameters for setpoint change: P22.9, I0.099, D40.1
Computed PID parameters for load change: P22.9, I2.592, D40.1
GIF animation comparison
six image gif animation of all runs to date, with RRF 1.18beta1 at start and Marlin custom PID at end:
Many thanks for your suggestion to adjust the D parameter. I think you'll agree from the images above there's now increasing similarity in responsiveness provided by the PID values derived from RRF auto tune model parameters, and Marlin's auto tune PID paramters. I'll try the D2.5 and/or D2.8 setting while printing next weekend and report back.
-
So here are my numbers:
Pre 1.18beta
M307 H0 A311.7 C649.8 D3.1 S1.00 B0
M307 H1 A423.4 C203.6 D5.1 S1.00 B0Post 1.18beta
M307 H0 A259.0 C444.7 D1.5 S1.00 B0
M307 H1 A425.3 C217.6 D7.0 S1.00 B0To be fair I had zero issues with heaters previously, it worked great before and works great now. a max of 0.8 deg C overshoot on either heater which in my books is no great shakes.
Interestingly the "overpowered heater" dire warning reckons my bed is only going to get to 278 deg C now before it reckoned 700! Luckily my thermal fuse will go long before that.
-
Interesting, the bed heater dead time has reduced but the hot end heater dead time has increased.
-
If you want to test baby stepping, then for now I suggest you create a "Baby step up" macro file containing command M290 S0.05 and a "Baby step down" macro containing M290 S-0.05. Change the value 0.05 to be a suitable value for the first layer height you normally use.
Many thanks for implementing Baby steps dc42 - a really wonderful feature to have easy access to!
Baby step macro naming tip:
After implementing I realised User-Defined Macros are sorted alphabetically, so initially the top of my macro list looked like this:Baby step down
Baby step up
.
.
.No big deal "down" appears before "up", but ▲ ▼ icons are faster to interpret and when sorted alphabetically, they display in a more intuitive order.
Now my macro list looks like this:
Baby step ▲
Baby step ▼
.
.
. -
PanelDue firmware 1.16beta1 and DWC 1.15beta2 have baby stepping buttons.
-
PanelDue firmware 1.16beta1 and DWC 1.15beta2 have baby stepping buttons.
Thanks. I'll take a look.
-
Just minor feedback regarding my heater tuning (as above) it does oscillate both the bed and hotend more now than it did before. Its only a +/- 1 degree for the bed, which is absolutely fine. Its around 2-3 degrees on the hotend. With the previous settings it was more stable. Not a gripe, as both settings are acceptable to me.
-
PanelDue firmware 1.16beta1 and DWC 1.15beta2 have baby stepping buttons.
Where can we find the DWC beta? Doesn't seem to be on github
-
Its in Chrishamm's repository https://github.com/chrishamm/DuetWebControl
-
Its in Chrishamm's repository https://github.com/chrishamm/DuetWebControl
I couldn't find DWC 1.15beta2 in either dc42's or Chrishamm's github repositories, including dev branches. Any ideas appreciated.
-
I'll add them to my repo when I publish firmware 1.18beta3 later today.