Backcalculate per Astrom 1989 and http://brettbeauregard.com/blog/2011/04/improving-the-beginner%e2%80%99s-pid-reset-windup/#comment-18721
This commit is contained in:
parent
9b4ca0e5b6
commit
a0eb0d6d82
10
PID_v1.cpp
10
PID_v1.cpp
@ -82,8 +82,14 @@ bool PID::Compute()
|
||||
/*Compute Rest of PID Output*/
|
||||
output += outputSum - kd * dInput;
|
||||
|
||||
if(output > outMax) output = outMax;
|
||||
else if(output < outMin) output = outMin;
|
||||
if(output > outMax){
|
||||
outputSum -= output - outMax; // backcalculate integral to feasability
|
||||
output = outMax;
|
||||
}
|
||||
else if(output < outMin) {
|
||||
outputSum += outMin - output; // backcalculate integral to feasability
|
||||
output = outMin;
|
||||
}
|
||||
*myOutput = output;
|
||||
|
||||
/*Remember some variables for next time*/
|
||||
|
Loading…
Reference in New Issue
Block a user