Process Controllers Predict the Future

The Superposition Principle allows feedback controllers to anticipate how linear processes will react to control efforts.

Vance J. VanDoren, Ph.D., P.E., Control Engineering -- Control Engineering, 3/1/2008

Calculating the Process Response

A feedback controller can steer a process variable toward the desired setpoint only if it can somehow predict the future effects of its current control efforts. A model-based controller does so with the help of a mathematical representation of the process’s behavior. A well-tuned PID loop uses an implicit model characterized by the values of the controller’s P (proportional), I (integral), and D (derivative) parameters.

These two techniques compute their control efforts differently, but they both rely on the linearity of the process to anticipate how it is going to respond. A process is said to be linear if the process variable increases by a factor of u when the control effort is increased by the same amount. And if two separate sequences of control efforts are added together and applied to a linear process, the resulting values of the process variable will always equal the sum of the values that would have resulted had the two control efforts been applied separately.


This predictability gives rise to the Superposition Principle which governs the behavior of all linear processes. The “Superposition Principle” graphic shows how it works in four situations where a computer-based controller with a cycle time of Δt seconds has applied a different sequence of control efforts to the same linear process.

In case A, the controller has applied a single impulse with a magnitude of 1 unit (percent, degree, PSI, whatever) and a width of one cycle time (Δt seconds). The resulting fluctuations in the process variable are known as the process’s impulse response or, in this particular case, its unity impulse response.

The process in this example happens to be somewhat sluggish, so its unity impulse response rises and falls relatively slowly as the effects of the impulse wear off. This could represent any number of industrial processes, such as the temperature in a vat after a heating element has been turned on then off again, or the flow rate in a pipe after a valve has been opened then closed.

Case B shows how increasing the magnitude of the impulse increases the magnitude of the impulse response but not its general shape. The second impulse is three times as large as the first, so the magnitude of the impulse response has been tripled.

In case C, both impulses have been applied to the process, but at different times. The process’s net response after the second impulse equals the sum of the two impulse responses added together point by point. The second impulse response has been effectively “superimposed” on the first, hence the name of the principle that describes this phenomenon.

Case D shows that a contiguous sequence of impulses with magnitudes of u(0), u(1), u(2), ... applied to the process at times 0, Δt, 2Δt, ... has the same additive effect. Each new impulse response adds to the impulse responses already in progress, and the magnitude of each is determined by the magnitude of the impulse that caused it. The process’s net response at any time is the sum of all the impulse responses that have been initiated up to that point.

Equivalent calculation

Thanks to the Superposition Principle, a controller can predict how a linear process will respond to any sequence of control efforts, not just impulses. It also gives an algorithm for computing the resulting values of the process variable, as shown in “Calculating the Process Response.” This graphic depicts the same four situations, except that the control efforts and the corresponding process responses are represented by their numerical values rather than trend charts. Each data stream has been sampled and recorded once every Δt seconds, hence the expression sampling interval often used to describe the controller’s cycle time Δt.

Case D shows the calculations required to compute the values of the process variable y(0), y(1), y(2), ... that would result from an arbitrary sequence of control efforts u(0), u(1), u(2), ... Specifically,




etc. Each calculation gets successively longer as more and more impulses figure into the result. Fortunately, there’s a convenient way to organize all these multiplication and addition operations, as shown in the “Convolution” table, where two infinitely long “numbers”

H = h(0), h(1), h(2), ...


U = u(0), u(1), u(2), ...

are “multiplied” together to compute

Y = y(0), y(1), y(2), ...

using the familiar long multiplication algorithm, but with data points h(0), h(1), h(2), ... and u(0), u(1), u(2), ... instead of individual digits. This calculation, known as convolution, is actually the mirror image of long multiplication. The multiplication and addition steps are the same, but it does not involve any carry-over from one column to the next. It is typically written as Y=H*U where “*” is the convolution operator.

Convolution is the basis for an entire mathematical discipline known as linear systems analysis. It gives control engineers a powerful tool for analyzing the behavior of linear processes and designing feedback controllers that can predict the future.

Author Information
Vance Van Doren, Ph.D., P.E., is senior editor for Control Engineering. He can be reached at



Calculating the Process Response

1,0,0, … Linear process h(0), h(1), h(2)

A Here, a linear process has been excited by a unity impulse (a single control effort of 1 unit) at time 0. The resulting unity impulse response has been recorded as a sequence of process variable measurements h(0), h(1), h(2), … taken at times 0, Δt, 2Δt, …

u, 0, 0, … Linear process u·h(0), u·h(1), u·h(2), …

B A second impulse u times as strong as the first has magnified each value of the impulse response by a factor of u.

1, 0, 0, …u, 0, 0, … Linear process h(0), … h(9), [h(10)+u·h(0)], [h(11)+u·h(1)], …

C Here the controller has applied two impulses – the first with a magnitude of 1 at time 0, the second with a magnitude of u at time 10Δt. The resulting process response equals the second impulse response superimposed on the first starting at time 10Δt

u(0), u(1), u(2), … Linear process u(0)·h(0), [u(0)·h(1)+u(1)·h(0)], [u(0)·h(2)+u(1)·h(1)+u(2)·h(0)], …

D In this more general case, the controller has applied a sequence of control efforts u(0), u(1), u(2), … equivalent to an impulse with a magnitude of u(0), at time 0, another with a magnitude of u(1) at time Δt, a third with a magnitude of u(2) at time 2Δt, etc. Each impulse initiates another impulse response with a magnitude proportional to the magnitude of the corresponding control effort. The net process response at any time equals the sum of all the impulse responses initiated up to that point.

Source: Control Engineering


  Column 1 Column 2 Column 3 Column 4 •••
  h(0) h(1) h(2) h(3) •••
  u(0) u(1) u(2) u(3) •••
Row 1 u(0)·h(0) u(0)·h(1) u(0)·h(2) u(0)·h(3) •••
Row 2   u(1)·h(0) u(1)·h(1) u(1)·h(2) •••
Row 3     u(2)·h(0) u(2)·h(1) •••
Row 4       u(3)·h(0) •••
  y(0) y(1) y(2) y(3) •••
This table organizes the calculations required to compute the values of the process variable y(0), y(1), y(2), ... that will result when control efforts u(0), u(1), u(2), ... are applied to a linear process with a unity impulse response of h(0), h(1), h(2), ... Row 1 is calculated by multiplying each value of the unity impulse response by u(0). This represents the impulse response initiated by the first control effort u(0). Row 2 is calculated the same way except that the results are recorded starting in column 2 rather than column 1, and the multiplier is u(1). This represents the second impulse response initiated by control effort u(1). Each subsequent row is calculated similarly, starting one column further to the right and using the next control effort as the multiplier. Adding the entries in each column from row 1 down to row k+1 sums all of the impulse responses initiated from time 0 through time kΔt and thereby yields the values of y(0) through y(k). The value of y(k) can also be calculated individually using the convolution sum:
y(k) = u(0)·h(k)+u(1)·h(k-1)+•••+u(k-1)·h(1)+u(k)·h(0)
For example, the table’s fourth column show that
y(3) = u(0)·h(3)+u(1)·h(2)+u(2)·h(1)+u(3)·h(0)
Source: Control Engineering