I'm finally observing some specials conditions where pid_i can be over-limited by current code, so PID Controller is working in non-optimal way. And here's easy fix, where we're allowing pid_i to decrease where control_output is 100% and increase where output is 0%. And now pid_i can go below zero to compensate e.g. pid_e, but still without over-saturating the output (e.g. if current temp is always below target temp, pid_i will decrease until PID output is zero, not further).
I'm finally observing some specials conditions where pid_i can be over-limited by current code, so PID Controller is working in non-optimal way. And here's easy fix, where we're allowing pid_i to decrease where control_output is 100% and increase where output is 0%. And now pid_i can go below zero to compensate e.g. pid_e, but still without over-saturating the output (e.g. if current temp is always below target temp, pid_i will decrease until PID output is zero, not further).
Closes #146, closes #150.