I am wonding if an extra function can be implemented in the PID.
The problem I am experiencing is that the I or D factor fill up if I do a big temperature step.
I know that for some PID’s there is an option that the I and D factor are set to zero if setpoint is reached. This will eliminate overshoot and from this point the I and D factor can do their job maintaining the setpoint.
Is this an option for brewblox or is it already considered in the past?
You don’t fully understand how a PID works.
The integrator should be active if close to the setpoint. In fact, that is the only time it should be active. Its purpose is to correct small steady-state errors.
D is counteracting the proportional part, so it cannot cause overshoot. It prevents it.
If your integral is causing overshoot, then your Kp is too low (which the integrator is compensating for) or Ti is too low (the integrator builds up too quickly).
If you are using glycol and therefore you are always running on very low duty cycles, it might help to set a maximum on the PWM actuator. If the actuator is clipped to the maximum, integrator anti-windup is applied.
I didn’t know about this feature in brewblox. The term anti-windup is what I meant. This can be done in several ways, including this one. Thanks!