Using Feed-Forward PID for External Reset

Is There a Way to Create an External Reset on a Standard PID Feedback Controller?

1 of 2 < 1 | 2 View on one page

This column is moderated by Béla Lipták (, automation and safety consultant, former Chief Instrument Engineer of C&R and former Yale professor of process control, who is also the editor of the Instrument Engineer's Handbook. If you have automation related questions for this column, write to

Q: The control system I am working with does not have external reset, but I was wondering if there is a way to create an external reset on a standard PID feedback controller by setting integral to zero (with I = 0) and a first- order lag block. The PID controller would also need to have feed-forward capability to accept the external reset signal.

I have made some attempts to read the output from the controller, pass that through a first-order filter, and then feed that back in to the feed-forward connection of the PID controller, but it does not work right. I am wondering if you have ever done this or if you know how it can be done.

The control system I am trying to do this on is an HC900, which is a stand-alone, very small-scale Honeywell hybrid controller. The function blocks are rather simple (weak), and that is why I am wanting to create my own external reset controller.

John McIlwain

A: For the benefit of the less experienced readers, before answering your specific question, I will briefly explain the basics about PID, feed-forward and external reset.

In a proportional-integral-derivative (PID) controller, the output signal to the control valve m(t) is the sum of four components (Eq. 1):

Equation 1

The four components are:

  1. The live zero or bias (b),
  2. The proportional contribution which is a function of the present error, P = Kc(e),
  3. The integral contribution which reflects the area under the error curve and responds to this error that was accumulated in the past during the integral time Ti. The integral contribution is I = Kc(∙edt/Ti).
  4. The derivative contribution, which is a function of the projected future error, if the present direction and rate of error change continues for a period set by the derivative time Td. The derivative contribution to the total output signal to the valve is D = Kc(Td)(de/dt)

The analog PID algorithm can be the "standard" (see Equation 1), interacting or parallel (shown in Table 1), or can be more sophisticated, such as the ones that take the dead time (Td) of the process into account, etc.

The algorithms are of three types: "standard" or noninteracting, interacting and parallel. See Table 1 for a comparison of the three and an illustration of their relationships and their conversions.

Similar to the analog algrorithms, there is also a wide variety of digital PID algorithms, but basically they can be grouped into two categories: positional, where the total output to the valve (m) is recalculated after every cycle (see Equation 2),

Equation 2

or velocity, meaning that the previous value of m is held in memory during the cycle, and only the change that occurred since the last cycle period is calculated (see Equation 3).

Equation 3

Naturally there are other variations, but for our purposes here, this is enough.

Now, after this brief summary of the PID algorithms, let us look at feed-forward (FF), the purpose of which can be easily understood by thinking of a heat exchanger where our goal is to control the outlet temperature (To). In that case, if either the inlet flow (Fi) or the inlet temperature (Ti) changes, without FF, the PID controller would not know that the load changed until the water passed through the exchanger and, therefore, on every load change an upset would occur. The larger the volume of the exchanger, the larger this upset would be.

FF mostly eliminates this upset by anticipating this "load change error" and compensating for it immediately when the load changes. The FF correction is made by subtracting the Ti from the PID output signal(m) and multiplying that difference with Fi, so that the new output becomes m = Fi{m-Ti). The Fi in this FF algorithm is usually "lead-lagged." This is because if the load rises, beside the heat balance, additional heat is needed to increase the temperature of the mass of the exchanger itself. This is "lead." "Lag" is the opposite effect that is needed when the load drops.

1 of 2 < 1 | 2 View on one page
Show Comments
Hide Comments

Join the discussion

We welcome your thoughtful comments.
All comments will display your user name.

Want to participate in the discussion?

Register for free

Log in for complete access.


No one has commented on this page yet.

RSS feed for comments on this page | RSS feed for all comments