ErikZalm/Marlin — pull request #971 by drf5n (2014-06-17 18:55:56+00:00)
Title: temperature.cpp: Add Conditional Integration to prevent more integral windup

Constraining the output after the sum lets the PID integration produce overshoots when the process starts relatively far from the setpoint.

See http://forums.reprap.org/read.php?4,369867,371141#msg-371141 for some discussion of overshoot due to this cause.

This code limits the integrator term further, limiting excessive windup when the Kp term is significant. It could make Marlin less sensitive to excessive PID_FUNCTIONAL_RANGE, so a larger default than 10C could be used to accommodate faster heaters, avoiding odd transitions between PID and BANG_BANG.