Using Feed-Forward PID for External Reset

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

2 of 2 1 | 2 > View on one page

Now let us see what external reset (ER) does and why it is needed. In a cascade loop, for example, it is needed, because without it, when the operator switches the master (TRC-1 in Figure 1) to manual, this TRC would keep integrating the error ("would wind up"), because it is not able to affect its own measurement (T2), as its output is blocked. ER eliminates this problem because it arrives from an "unblocked" source: the measurement signal to the slave controller (TRC-2). Therefore, the ER stops integration of the error in TRC-1 whenever the slave is not on setpoint (such as under manual), and thereby converts the integral contribution to a constant bias.

As to the value of having both FF and ER, refer to Figure 1. Here, the goal is to keep the reaction rate of a batch reactor constant by calculating an FF input, and sending it into summer TY-2, while ER is provided by the measurement signal of the slave (TT-2) to the master PID controller TRC-1.

Sorry for this long introduction, which I believe was necessary for the benefit of some readers, and now coming to your question of how to create an ER if the digitally implemented PID does not have a "connection" for this input. The question asked is: would setting integral to zero (with I = 0), and sending a signal generated by an external first-order lag block to the FF "input" do the trick?

As you can see in Figure 1, FF is basically a bias on the output of TRC-1. So, in effect, what is being asked is can one send the ER signal on Figure 1 through a first-order lag and then to TY-2, where previously the FF signal was introduced. The answer to this question is very much a function of the particular DCS algorithm used, and I will let Dr. Harold Wade and other colleagues explain that in more detail in their answers below.

Béla Lipták

A: Regarding your inquiry about constructing a controller with external reset feedback, using a PID with feed-forward capability and a first-order lag block; I have not done this, but I have built up an external reset controller from function blocks in my own simulation and training software (PC-ControLAB).

I don't know why you could not get your system to work right, so I will start off making suggestions.

First, you mention setting I = 0. With some systems, that means "turn the integral mode off." Then that setting should work. With some systems that means "set the reset, in Repeats/Min (not Min/Repeat) to 0," which effectively turns the integral mode off. In either of those cases, we're OK so far.

With the system you are using, how is the feed-forward combined with the PID algorithm? With some systems, the feed-forward signal operates in an incremental mode, rather than a position mode. The PID portion of the algorith calculates how much it wants the controller output to be, then it adds (or subtracts) an incremental change wanted by the feed-forward signal. On other systems, both the PID portion and the feed-forward portion operate in an incremental model.

If you're using this for external reset feedback, you must be very careful about how the feedback (essentially the proportional mode of the controller) and external reset signal are combined. In my ISA book (Wade, H. L., Basic and Advanced Regulatory Control: System Design and Application, 2nd ed, ISA, 2004), I compare several methods of combining used by various manufacturers, and come to the conclusion that the position form, mimicking what was done 40 to 50 years ago with pneumatic controllers (that is, during my time with Honeywell), is the best. I even have a statement in my book disagreeing with a statement in IEH3 that says with significant different integral times, it is better for the external reset feedback to bypass the first-order lag whenever a particular controller is not selected.  I state that after extensive simulation, I did not find this to be true. 

I did not even get into the subject of how to handle manual to automatic transfers. Especially with a build-up selector control system, that could be a whole separate chapter.

Harold Wade

A: In theory, your approach makes sense, but there may be problems with implementing with standard blocks.   For example, will it initialize correctly? Will it perform correctly with the built-in windup logic of the control system (which might freeze integration in a direction that would cause windup)? External reset feedback is a positional algorithm, but your system may be velocity-based, so there might be a problem there.

In the book, Design of Distillation Column Control Systems by Buckley, Luyben and Shunta, Butterworth-Heinemann, 1985, an external feedback arrangement with derivative action and feed-forward control is described.

In general, one thing that practitioners need to be aware of is that some systems may use the term external feedback, but it can have a different meaning from what is described below and used by Greg Shinskey, Harold Wade and others.  It is amazing to me how many systems there are that do not support external reset feedback.

Mark Darby

A: Some manufacturers provide external reset capability, but give it a different name. For example, in Provox this capability was called integral tracking; in DeltaV external reset is exposed through the Dynamic Reset option. If the HC900 has basic function blocks, then you should be able to implement a PID with external reset and feed-forward capability. The following shows the basic implementation.'

As with many things, the devil is in the details. The forward path shown above is basically GAIN*error, but must include the capability to change the sign of error (based on configured direct or reverse action). Also, to have meaningful GAIN, the error should be expressed in percent. The diagram above does not show the implementation of mode, but this should be part of the implementation; e.g., in Manual allow the operator set the OUT rather than setting this by the calculation. In Manual, the filter should be initialized to the filter input value to avoid a bump when the mode is changed to Auto.When implemented as shown above, the units of RESET are seconds per repeat. The LIMIT prevents the calculated value from exceeding a high or low output limit. When using the PID in override or as the master of a cascade loop, then the BKCAL_IN value provided by the downstream block is used in the positive feedback network rather than the calculated output (i.e., selected output for control selector downstream or PV of downstream PID in a cascade strategy).The logic for handshaking to avoid a bump when the downstream block is switched to CAS is not shown, but equivalent logic should be provided. A feed-forward gain (positive or negative value) should be included in the feed-forward path.

Terry Blevins

2 of 2 1 | 2 > View on one page

Join the discussion

We welcome your thoughtful comments. Please comply with our Community rules.
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