thanks for the response.
My application is a fairly slow to respond temperature system. As such, it looks like I will be pretty large, until feedback overshoots significantly...
The I-gain setting/parameter I'm using (adjustable by the end user), is set to 1/10th the value of P-gain... which is inline with what I have used as an operator on other PID systems.
I'll do a little more digging using the term anti-windup...
Below is a response I posted in another conversation, so I figured I would paste it in here... might help clarify what I am trying to do.
When I activate the system the temp is approximately room Temp, and command temp is approximately -50F.
As the cooling system forces the temperature down, the error decreases.
Here is how I am currently calculating terms for P, I, and D.
Error = Command Temp - Current Temp
IState = Average of last 10 Error values
MaxTimeOn = Operator defined parameter specifies max time to allow cooling system activation before recalculating on time again.
P = pgain * (Error)
I = igain * IState
D = dgain * (LastError - Current Temp)
I then calculate cooling system ON time as follows...
PIDValue = P + I - D
OnTime = PIDValue * MaxTimeOn
I'm comfortable with the P and D calculations, I just don't know about the I calculation.