PID Control
PID Control
PID Control
Based on a survey of over eleven thousand controllers in the refining, chemicals and pulp and paper industries, 97% of regulatory controllers utilize PID
feedback.
Desborough Honeywell, 2000, see [DM02].
PID control is by far the most common way of using feedback in natural
and man-made systems. PID controllers are commonly used in industry
and a large factory may have thousands of them, in instruments and laboratory equipment. In engineering applications the controllers appear in
many different forms: as a stand alone controller, as part of hierarchical,
distributed control systems, or built into embedded components. Most controllers do not use derivative action. In this chapter we discuss the basic
ideas of PID control and the methods for choosing the parameters of the
controllers. Many aspects of control can be understood based on linear
analysis. However, there is one nonlinear effect, that has to be considered in
most control systems namely that actuators saturate. In combinations with
controllers having integral actions saturations give rise to an effect called
integral windup. This phenomenon that occurs in practically all control
systems will be discussed in depth for PID controllers. Methods to avoid
windup will also be presented. Finally we will also discuss implementation
of PID controllers, similar methods can be used to implement many other
controllers.
301
302
00000
11111
00000
11111
000000000
111
00000
11111111111
t
Future
t + Td
Time
Figure 10.1: A PID controller takes control action based on past, present and
prediction of future control errors.
10.1
The Controller
(10.1)
where u is the control signal and e is the control error (e = r y). The
reference value, r, is also called the setpoint. The control signal is thus a
sum of three terms: a proportional term that is proportional to the error, an
integral term that is proportional to the integral of the error, and a derivative
term that is proportional to the derivative of the error. The controller
parameters are proportional gain kp , integral gain ki and derivative gain kd .
The controller can also be parameterized as
Zt
1
de(t)
u(t) = kp e(t) +
e( )d + Td
,
Ti
dt
(10.2)
where Ti is the integral time constant and Td the derivative time constant.
The proportional part acts on the present value of the error, the integral
represents an average of past errors and the derivative can be interpreted as
a prediction of future errors based on linear extrapolation, as illustrated in
Figure 10.1. Note that the control signal u is formed entirely from the error
e, there is no feedforward term (which would correspond to kr r in the state
feedback case). In Section 10.5 we will introduce a modification which also
uses feedforward.
We begin our analysis by considering pure proportional feedback. Figure 10.2a shows the responses of the output to a unit step in the command
303
y
0.5
0.5
10
20
10
20
10
20
10
20
0.5
1.5
1
1
0
2
0
0
10
20
10
20
(a)
(b)
t
(c)
Figure 10.2: Responses to step changes in the command signal for a proportional
controller (left), PI controller (center) and PID controller (right). The process
has the transfer function P (s) = 1/(s + 1)3 , the proportional controller (left) had
parameters kp = 1 (dashed), 2 and 5 (dash-dotted), the PI controller has parameters
kp = 1, ki = 0 (dashed), 0.2, 0.5 and 1 (dash-dotted), and the PID controller has
parameters are kp = 2.5, ki = 1.5 and kd = 0 (dashed), 1, 2, 3 and 4 (dash-dotted).
signal for a system with pure proportional control at different gain settings.
In the absence of a feedforward term, the output never reaches the reference
and hence we are left with non-zero steady state error. Letting the process and the controller have transfer functions P (s) and C(s), the transfer
function from reference to output is
Gyr =
PC
.
1 + PC
(10.3)
P (0)kp
1 + P (0)kp
and thus the steady state error for a unit step is 1Gyr (0) = 1/(1+kp P (0)).
For the system in Figure 10.2a with gains kp = 1, 2 and 5, the steady state
error is 0.5, 0.33 and 0.17. The error decreases with increasing gain, but the
system also becomes more oscillatory. Notice in the figure that the initial
value of the control signal equals the controller gain.
304
e
u
1
1 + sTi
1
1+sT
(a)
(b)
Figure 10.3: Implementation of integral action (left) and derivative action (right)
by combining simple blocks.
ki
.
s
We see that the controller has infinite zero frequency gain (C(0) = ) and
it then follows from equation (10.3) that Gyr (0) = 1, which implies that
there is no steady-state error.
Integral action can also be viewed as a method for generating the feedforward term ud in the proportional controller (10.4) automatically. An
alternative way to represent this action is shown in Figure 10.3a, where the
low pass part of the control action of a proportional controller is filtered and
feed back with positive gain. This implementation, called automatic reset,
was one of the early inventions of integral control. Integral action is often
realized in this way in biological systems.
305
1
u,
1 + sT
kp
1 + sT
e = kp +
,
sT
sT
de
de
,
= k e + Td
dt
dt
306
10.2
Tuning
Users of control systems are frequently faced with the task of adjusting
the controller parameters to obtain a desired behavior. There are many
different ways to do this. One way to do this is to go through the steps of
modeling and control design. Since the PID controller has so few parameters
a number of special empirical methods have also been developed. A simple
idea is to connect a controller, increase the gain until the the system starts
to oscillate, and then reduce the gains by an appropriate factor. Another
is to measure some features of the open loop response and to determine
controller parameters based on these features. We will present the ZieglerNichols methods which are the most celebrated tuning rules.
Ziegler-Nichols Tuning
Ziegler and Nichols develped two techniques for controller tuning in the
1940s. The idea was to tune the controller based on the following idea: Make
a simple experiment, extract some features of process dynamics from the
experimental data, and determine controller parameters from the features.
One method is based on direct adjustment of the controller parameters.
A controller is connected to the process, integral and derivative gain are
set to zero and the proportional gain is increased until the system starts
to oscillate. The critical value of the proportional gain kc is observed together with the period of oscillation Tc . The controller parameters are then
given by Table 10.1. The values in the table were obtained based on many
simulations and experiments on processes that are normally encountered in
process industry. There are many variations of the method which are widely
used in industry.
Another method proposed by Ziegler and Nichols is based on determination of the open loop step response of the process, as shown Figure 10.4a.
The step response is measured by applying a step input to the process and
recording the response. The response is scaled to correspond to a unit step
input and characterized by parameters a and Tdel , which are the intercepts
of the steepest tangent of the step response with the coordinate axes. The
parameter Tdel is an approximation of the time delay of the system and
307
10.2. TUNING
Controller
P
PI
PID
kp /kc
0.5
0.4
0.6
Ti /Tc
Td /Tc
0.8
0.5
0.125
Tp /Tc
1.0
1.4
0.85
a/Tdel is the steepest slope of the step response. Notice that it is not necessary to wait until steady state to find the parameters, it suffices to wait
until the response has had an inflection point. The controller parameters are
given in Table 10.2. The parameters were obtained by extensive simulation
of a range of representative processes.
K
esTdel
1 + sT
(10.5)
K
0.63K
Tdel
t
(a)
Tdel
T63
(b)
Figure 10.4: Characterization of the unit step response by two (left) and three
parameters (right). The point where the tangent is steepest is marked with a small
circle.
308
Table 10.2: Controller parameters for the Ziegler-Nichols step response method.
Parameter Tp is an estimate of the period of damped oscillations of the closed loop
system.
Controller
P
PI
PID
akp
1
0.9
1.2
Ti /Tdel
Td /Tdel
3
2
Tdel /2
Tp /Tdel
4
5.7
3.4
intercept of the steepest tangent to the step response and the time T63 is
the time where the output has reached 63% of its steady state value. The
parameter T is then given by T = T63 Tdel . Notice that the experiment
takes longer time than the experiment in Figure 10.4a because it is necessary to wait until the steady state has been reached. The following tuning
formulas have been obtained by tuning controllers to a large set of processes
typically encountered in process control
kp K = min 0.4 T /L, 0.25
(10.6)
Ti = max (T, 0.5Tdel ).
Notice that the improved formulas typically give lower controller gain than
the Ziegler-Nichols method, and that integral gain is higher, particularly for
systems with dynamics that are delay dominated, i.e. Tdel > 2T .
Relay Feedback
The experiment used in the Ziegler-Nichols frequency response method,
where the gain of a proportional controller is increased until the system
reaches instability, gives the frequency 180 where the process has a phase
lag of 180 and the process gain K180 at that frequency. Another way to
obtain this information is to connect the process in a feedback loop with
a relay as shown in Figure 10.5a. For many systems there will then be an
oscillation, as shown in Figure 10.5b, where the relay output u is a square
wave and the process output y is close to a sinusoid. Notice that the process
input and output have opposite phase and that an oscillation with constant
period is established quickly.
To provide some analysis, we assume that the relay output is expanded in
a Fourier series and that the process attenuates higher harmonics effectively.
It is then sufficient to consider only the first harmonic component of the
309
y
G(s)
y
0.5
0
0.5
1
10
20
30
(a)
(b)
Figure 10.5: Block diagram of a process with relay feedback (left) and typical signals
(right). The process output y is solid and the relay output u is dashed. Notice that
the signals u and y are out of phase.
input. The input and the output then have opposite phase, which means
that the frequency of the oscillation 180 is such that the process has a phase
lag of 180 . If d is the relay amplitude, the first harmonic of the square wave
input has amplitude 4d/. Let a be the amplitude of the process output.
The process gain at 180 is then given by
K180 = |P (i180 | =
a
.
4d
(10.7)
The relay experiment is easily automated. Since the amplitude of the oscillation is proportional to the relay output, it is easy to control it by adjusting
the relay output. The amplitude and the period can be determined after
about 20 s, in spite of the fact that the system is started so far from the
equilibrium that it takes about 8 s to reach the correct level. The settling
time for the step response of the system is 40 s.
Automatic tuning based on relay feedback is used in many commercial
PID controllers. Tuning is accomplished simply by pushing a button which
activates relay feedback. The relay amplitude is automatically adjusted to
keep the oscillations sufficiently small, the relay feedback is switched to a
PID controller as soon as the tuning is accomplished.
10.3
310
b
.
s+a
The approximation is reasonable for systems where storage of mass, momentum and energy can be captured by one state variable. Typical examples
are the velocity of a car on the road, control of the velocity of a rotating
system, electric systems where energy is essentially stored in one component, incompressible fluid flow in a pipe, level control of a tank, pressure
control in a gas tank and temperature in a body with uniform temperature
distribution.
A PI controller has the transfer function
C(s) = kp +
ki
,
s
and the transfer function of the closed loop system from reference to output
is
b(kp s + ki )
PC
= 2
.
Gyr =
1 + PC
s + (a + bkp )s + bki
The closed loop system has the characteristic polynomial
s2 + (a + bkp )s + bki .
Assuming that the desired characteristic polynomial is
s2 + 20 s + 02 ,
(10.8)
kp =
(10.9)
311
Example 10.1 (Cruise control design). Consider the problem of maintaining the speed of a car as it goes up a hill. In Example 5.14we found that
there was very little difference between the linear and nonlinear models when
investigating PI control provided that the throttle does not reach the saturation limits. We will now use a linear model to design a controller and to
investigate the effects of design parameters. A simple linear model of a car
was given in Example 5.10:
d(v ve )
= a(v ve ) + b(u ue ) g,
dt
(10.10)
where v is the velocity of the car, u is the input from the engine and
is the slope of the hill. The parameters were a = 0.101, b = 1.3203,
g = 9.8, ve = 20, and ue = 0.1616. This model will be used to find suitable
parameters of a vehicle speed controller. To investigate the behavior of the
closed loop system we start with the linearized process model (10.10) and
we assume that the cruise controller is PI controller is described by
Z t
(ve v( ))d.
(10.11)
u = kp (ve v) + ki
0
(10.12)
We notice that the steady state error is zero if and e are constant, which
is no surprise since the controller has integral action.
To understand the effects of the controller parameters K and ki we can
compare equation (10.12) with the standard second order system
q + 20 q + 02 q = ku.
This gives
2
a + 20
ki = 0
b
b
where denotes relative damping and 0 is the undamped natural frequency.
The parameter 0 gives response speed and determines the shape of the
response. Since it is desirable that a cruise control system should respond to
changes smoothly without oscillations we choose = 1, which corresponds
to critical damping.
kp =
312
v [m/s]
0.5
0.5
1
throttle
1.5
10
20
30
0
0.5
1
40
0.8
0.8
0.6
0.6
throttle
v [m/s]
0.4
0.2
0
10
10
20
30
40
20
30
40
0.4
0.2
10
20
t [s]
30
40
t [s]
Figure 10.6: Illustrates the effect of parameters 0 (left) and 0 (right) on the
response of a car with cruise control.
dv
= F Fd ,
dt
where m is the mass of the car, F is the applied force (from the engine)
and Fd is the disturbance force (aerodynamic drag and force of gravity).
Since zero steady state error implies that v is constant, we see that the PI
controller generates an output force F that in steady state is equal to the
313
drag force Fd . Since the error is zero in steady state the controller output
equals the output of the integrator of the PI controller. The output of the
integrator in the PI controller can thus be interpreted as an estimator of the
drag force.
10.4
Integrator Windup
314
Velocity [m/s]
Velocity [m/s]
21
20
19
18
20
40
60
1.5
1
0.5
0
20
19
18
20
20
40
60
40
60
2.5
Throttle
Throttle
2.5
21
20
40
60
2
1.5
1
0.5
0
Time [s]
Time [s]
(a)
(b)
Figure 10.7: Simulation of windup (left) and anti-windup (right). The figure shows
the speed v and the throttle u for a car that encounters a slope that is so steep that
the throttle saturates. The controller output is dashed. The controller parameters
are kp = 0.5 and ki = 0.1.
Avoiding Windup
There are many ways to avoid windup. One method is illustrated in Figure 10.8: the system has an extra feedback path that is generated by measuring the actual actuator output, or the output of a mathematical model
of the saturating actuator, and forming an error signal (es ) as the difference
between the output of the controller (v) and the actuator output (u). The
signal es is fed to the input of the integrator through gain kt . The signal
es is zero when there is no saturation and the extra feedback loop has no
effect on the system. When the actuator saturates, the signal es is feedback
to the integrator in such a way that es goes towards zero. This implies that
controller output is kept close to the saturation limit. The controller output
will then change as soon as the error changes sign and integral windup is
avoided.
The rate at which the controller output is reset is governed by the feedback gain, kt , a large value of kt give a short reset time. The parameter kt
can, however, not be too large because measurement error can then cause
an undesirable reset. Areasonable compromise is to choose kt 1/Ti for PI
control and as kt 1/ Ti Td for PID control. We illustrate how integral
windup can be avoided by investigating the cruise control system.
Example 10.3 (Cruise control). Figure 10.7b shows what happens when
315
10.5. IMPLEMENTATION
y
kd
Actuator
model
e = ysp y
ki
1
s
Actuator
es
kt
a controller with anti-windup is applied to the system simulated in Figure 10.7a. Because of the feedback from the actuator model the output of
the integrator is quickly reset to a value such that the controller output is
at the saturation limit. The behavior is drastically different from that in
Figure 10.7a and the large overshoot is avoided. The tracking gain kt = 2
in the simulation.
10.5
Implementation
There are many practical issues that have to be considered when implementing PID controllers. They have been developed over time based on practical
experiences. In this section we consider some of the most common. Similar
considerations also apply to other types of controllers.
kd s
.
1 + sTf
(10.13)
This can be interpreted as an ideal derivative that is filtered using a firstorder system with the time constant Tf . For small s the transfer function is
316
Setpoint Weighting
The control system in equation (10.1) is called a system with error feedback
because the controller acts on the error, which is the difference between the
reference and the output. In the simulation of PID controllers in Figure 10.1
there is a large initial peak of the control signal, which is caused by the
derivative of the reference signal. The peak can be avoided by modifying
the controller equation (10.1) to
Z
dr dy
r( ) y( ) d + kd
u = kp r y + ki
(10.16)
dt
dt
0
In this controller, proportional and derivative actions act on fractions and
of the reference. Integral action has to act on the error to make sure that
the error goes to zero in steady state. The closed loop systems obtained for
different values of and respond to load disturbances and measurement
noise in the same way. The response to reference signals is different because
it depends on the values of and , which are called reference weights or
setpoint weights.
Figure 10.9 illustrates the effects of setpoint weighting on the step response. The figure shows clearly the effect of changing . The overshoot for
reference changes is smallest for = 0, which is the case where the reference is only introduced in the integral term, and increases with increasing
317
10.5. IMPLEMENTATION
1.5
0
|Gyr (j)|
10
1
0.5
0
10
10
10
10
1.5
|Gur (j)|
10
1
0.5
0
0.5
10
10
10
10
Figure 10.9: Time and frequency responses for system with PI controller and setpoint weighting. The curves on the left show responses in process output y and
control signal and the curves on the right show the gain curves for the transfer
functions Gyr (s) and Gur (s). The process transfer function is P (s) = 1/s, the controller gains are k = 1.5 and ki = 1, and the setpoint weights are = 0 (dashed)
0.2, 0.5 and 1 (dash dotted).
Z1
e,
Z0
where Z0 is the impedance between the negative input of the amplifier and
the input voltage e, and Z1 is the impedance between the zero input of the
318
C0
R0
R1
R0
C1
R1
C1
e
u
(a)
(b)
R0
1 + R0 C0 p
Z1 = R1 +
1
,
C1 p
and we find the following relation between the input voltage e and the output
voltage u:
R1 (1 + R0 C0 p)(1 + R1 C1 p)
Z1
e.
u= e=
Z0
R0
R1 C1 p
This is the input-output relation for a PID controller on the form (10.2)
with parameters
kp =
R1
R0
Ti = R1 C1
Td = R0 C0 .
Computer Implementation
In this section we briefly describe how a PID controller may be implemented
using a computer. The computer typically operates periodically, with signals from the sensors sampled and converted to digital form by the A/D
converter, the control signal computed and then converted to analog form
for the actuators. The sequence of operation is as follows:
1. Wait for clock interrupt
2. Read input from sensor
3. Compute control signal
4. Send output to the actuator
5. Update controller variables
319
10.5. IMPLEMENTATION
6. Repeat
(10.17)
and the controller output is u(t) = sat(v(t)) where sat is the saturation
function that models the actuator. The proportional term is
P = kp (ysp y).
This term is implemented simply by replacing the continuous variables with
their sampled versions. Hence
P (tk ) = kp (yr (tk ) y(tk )) ,
(10.18)
where {tk } denotes the sampling instants, i.e., the times when the computer
reads its input. The integral term is
I(t) = ki
Zt
0
e(s)ds +
1
sat(v) v)
Tt
h
sat(v) v) .
Tt
dD
+ D = kd y.
dt
y(tk ) y(tk1 )
D(tk ) D(tk1 )
+ D(tk ) = kd
,
h
h
(10.19)
320
Tf
kd
D(tk1 )
(y(tk ) y(tk1 )) .
Tf + h
Tf + h
(10.20)
10.6
Further Reading
The history of PID control is a very rich one and stretches back to the
beginning of the foundation of control theory. A very readable treatment is
321
10.7. EXERCISES
10.7
Exercises
b
.
s2 + a1 s + a2
Find the gains for a PID controller that gives the closed loop system
a characteristic polynomial of the form
s2 + 20 s + 02 .
2. (Vehicle steering) Design a proportion-integral controller for the vehicle steering system that gives closed loop characteristic equation
s3 + 20 s2 + 20 s + 03 .
322