Smoothieware/Smoothieware — pull request #565 by PetteriAimonen (2014-12-19 20:32:08+00:00)
Title: Reduce overshoot in TemperatureControl.

Do not update I term when the output is saturated (0 or 255). This reduces the overshoot to about half.

http://koti.kapsi.fi/jpa/stuff/other/therm_test/overshoot.html
This was suggested by ElMonkey. It reduces overshoot by not winding up the I term when output is already saturated. There was already windup handling, but this way is more effective. Effect is most notable when the heater is high-powered, which in turn is useful for getting up to print temperature fast without waiting.

Compared to previously rejected https://github.com/Smoothieware/Smoothieware/pull/540, this is a different method and there is data that shows it behaving significantly better than the current edge. Also it does not require manual configuration of i_max (which is still possible to do, though).