# Integral and derivative: units of time or gain?

Hello, I am working with an ABB system and all the PID loops have 4 tuning parameters: overall gain, Kp, Ki, and Kd. No units are given for Kp
and K, but Ki units are shown as 1/minutes and Kd as minutes. Theoretically I understand how these controllers work. In fact, I probably have way more education than I need, and I might be making this more difficult than it needs to be. But I don't understand the units. I see the 4 K's as gains. Here is my take on it. Please tell me where I have gone wrong:
The gain simply multiplies the error by Kp. So the Kp contribution to the controller output is Kp*error. The integral portion sums a scaled version of the error on every sample. So the contribution of the integral is Ki*(sum of errors). And the derivative contribution is Kd* (rate of change of error).
So, the question is (if I even have one), is how do I relate Ki and Kd to units of time? Do these values scale the error, or do they determine the sample rate for integral and derivative?
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
(While my dissertation was in time-optimal control, I spent my industrial career almost exclusively in designing and building custom online process instrumentation - which was much more fun!)
Adding errors or taking the difference between errors is an approximation of the integral and the derivative respectfully,
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Thanks. I had actually understood that much. The theory is fairly easy; it's applying the theory to application where I am short on experience. I am trying to what Ki does. Does Ki change the time period of the integration (the bounds of the integral), or does Ki change the gain on the summed error. Do you know which it does?
thanks
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
On Thu, 18 Jun 2009 15:36:38 -0700, Andy wrote:

approximation
The time period of the integration is always from the time that the controller started up until now (with all due respect being paid to any integrator limiting). Ki just changes the gain.
Another way of thinking of this is that the "integrator" executes the difference equation
istate(now) = istate(then) + Ki * (time step) * error
If the integrator hits a limit (you can probably set the integrator limits) then this will be further modified to
if (istate > maxIstate) istate = maxIstate, if (istate < minIstate) istate = minIstate.
--
www.wescottdesign.com

<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Thanks. That is exactly what I was looking for.
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

Go to the system doco and find out. Not all industrial definitions comply with mathematical rigour.
If all else fails build a test point and check the response with fixed, adjustable inputs. It'll give you the answer and you may learn a few interesting things as well, particularly around the derivative response.
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>

The best way to get both a mathematical/physical understanding and an intuitive understanding is to look at the Ziegler Nichols tunning rules.
The classic PID is as follows:
Output = Kp [e(t) + 1/Ti.{Integral of} e(t)dt+ Td.de(t)/dt] where e setpoint - actual value.
(Note generally its best to scale the setpoint, actual value and the output to a scale of say 0 to 100% with the output scaled so as to produce the correct value in open loop, more on this later, its not essential)
In some cases a term, say R, is placed before the proportional element.to give indendant control of it so as to allow it to be reduced to zero and creat a pure I,D or ID controller. I usually set it to either 1 or 0.
Output = Kp [R.e(t) + 1/Ti.{Integral of} e(t)dt+ Td.de(t)/dt]
In some cases the 1/Ti term is replaced by its recipricol and refered to as Ki and Td is then left as it is and refered to as Kd however the Ti and Td term is the better to use for any human like understanding of the issue.
Output = Kp [R.e(t) + Ki.{Integral of} e(t)dt+ Kd.de(t)/dt] seems to be the ABB form of the integral.
Ti is refered to as the re-set time for historical reasons. Ti is the time it take for the integral term to produce the same output as the proportional term. It thus has intuitive and physical meaning.
Td is refered to as the derivative time. A ramp input of de/dt = Td/ sec will produce and output equal to e(t). (Your units are in minutes not seconds which I usually find a shitty thin to do)
The Ziegler nichols rules are as follows:
1 Set 1/Ti to zero (i.e Ti to infinity or Ki to zero) 2 Set Td to zero You now have a pure proportional controller 3 Increase Kp slowly untill the system starts to oscilate. 4 Measure the period of oscilation and make note of the 'critical' Kp at which this occured (call this Kc)
In most cases you PID will be tuned with the following values
Kp = 0.5 times the value, Kc, at which oscilation occured Ti = 0.5 measured period. (ie the reset or integral time is set to half the period of any oscilation) Td = 0.1 to 0.125 times measured period.
Prior to the development of the PID opperators had only a proportional controller. They would set the controller to the desired temperature or flow, wait for it to settle and then note the error and make a further increase to 'reset' it to the correct temperature.