Temperature_fan with PID control is buggy with pid_Ki set to 0

Basic Information:

Printer Model: Micron 180
MCU / Printerboard: Various, BTT Octopus, EBB36, GBB15
klippy.log: klippy.log (233.6 KB)

Describe your issue:

I basically want to use a P controller for my chamber fan (instead of bang-bang, I want the fan to act gradually depending on temperature difference).
Everything works well, when I chose a “sane” pid_Ki (lets say 4.0). The only issue being, that the controller is unstable with a resonance frequency of multiple seconds (which is to be expected using an I controller with an I behaviour of the chamber).

However, as soon as I set pid_Ki to 0.0 (which should be possible according to the source-code here), the controller goes haywire. If I have a chamber temp of e.g. 40°C and I set the target temperature of the chamber fan to 30°C, it goes full blast, i.e. 100% fan. If I set it the other direction, e.g. chamber temp is 40°C and target temperature above this temperature, I get a P-controller behaviour. i.e. With target temperature of 45°C, the fan is running at approx. 50%. At target temperature of 42°C, fan is running at approx 80%. However, this makes no sense at all.

This behaviour is with pid_Kp set to 20. Setting it < 1.0 is another mysterium of itself.

Is this a bug? Is there no way to implement a pure P-controller?

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.