Using feed forward as negative feedback

I just worked on a pressure regulator valve controller that connected a high pressure (170 psi) air system to a lower (90 psi) pressure
system. The high pressure system has a small stored volume and large transients from many flow regulating controllers that switch off and on and is regulated by a fast controller on the inlet valve of a big centrifugal machine. The low pressure system has a large storage volume but is generally regulated by manually switching small compressors off and on.
I had little trouble tuning the controller for this valve, except that long before I got anything like tight control of the low pressure, the valve started creating upsets in the high pressure. I added a feed forward input to the controller from the measurement of the high pressure and used a positive feedforward scaling coefficient. This makes the controller a PI controller for the low pressure system and in parallel a proportional controlled load for the high pressure system. Since the controller is in a DCS, the extra signal connection costs nothing.
When there is an upset in the low pressure, the valve movement is a compromise between fixing the upset and not causing too much movement to the high pressure. Even when the low pressure is steady, the feedforward helps to stabilize the high pressure compressor controller by passing short term swings into the large volume of the low pressure system without much disturbing its pressure.
I described the change to the operators by a metaphor. The original controller had an eye that compared the low pressure to the setpoint, with no regard for anything else. The feedforward connection gave it an ear, so it can also react to squeals (changes in pressure) from the high pressure system. It balances its action based on two concerns, but long term, the low pressure controller always wins, due to its reaction including the integral term. The high pressure controller takes care of that system, long term. This change has no impact on operator input and is essentially invisible. It just makes the controller smarter. The only exception is that a failure of the high pressure transmitter will momentarily upset the controller. Once the signal locks up or goes to bad PV, the controller just reverts effectively to the non feedforward version.
I am very happy with the result and thought that someone else might benefit from this experience.
--
John Popelish

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
John Popelish wrote:

[clever application of clear thinking snipped]

Many people would have called for a larger up-stream volume. Your way serves as a good lesson for us, both about approaching a problem and the specifics of solving it. Thanks.
Jerry
--
Engineering is the art of making what you want from things you can get.

  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
John Popelish wrote:

Very good -- but please don't call it feedforward! Call it a two-loop system with an inner (high pressure) and outer loop. "Feedforward" implies a system where you're jumping around some block of the system (perhaps the controller itself) in the forward path.
The distinction is important because pure feedforward _never_ impacts stability, while feedback most certainly does.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tim Wescott wrote:

I agree with everything you say. The technique I used was not feedforward, but it made use of the feedforward option available in the DCS PID controller block. I was illustrating an alternate use (negative feedback to a second variable) for it.
--
John Popelish

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
John Popelish wrote:

OK, now that I read your title again I see...
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.