Feed forward control question

Hi, I have a question regarding temperature control of a heat exchanger. There is a temperature sensor, a steam valve for heating and a valve
for controlling the outflow. A feed forward control can be designed. The outlet temperature T would be a function of outflow, steam temperature and steam flow.
But actually, this is not a real feed forward control, as the inputs are sensor values. What is necessary to design a feed forward control without loosing the very precise algebraic relation?
pt
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

In a perfect feedforward loop, the process transfer function from the feedforward variable to the controlled variable will be exactly the same as the feedforward path transfer function, so that if the disturbance variable changes by itself, the feedforward control signal will exactly cancel out the disturbance coming through the process path. So if there's any pre-existing dynamics in the feedforward path, like the sensor lag that you mention, then this has to be 'subtracted' from the remainder of the dynamic compensation that's applied. Achieving that rigorously may or may not be achievable depending on the nature of the transfer function involved, but that's essentially 'it', as long as the feedforward variables are truly independent.
In just about every industrial case, dynamics associated with sensors and output actuators are insignificant in practice of course. Other real world factors are hugely more important in terms of the sort of improvement that feedforward can provide. Personally, I tend to avoid it unless control quality mandates its use, because an instrument failure can result in large disturbances being passed directly through to the valve. The more feedforward variables you have, the higher the likelihood.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Wha Your answer sounds like feedforward is not useful for situations where the actuator dynamics is slower than the disturbance variable.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Your answer sounds like special care has to be taken if the actuator dynamics is slower than the disturbance variable. What would this exactly be?
Could you explain "as long as the forward variables are truly independent"? If you don't mind I would also ask you to define "feedforward variable" and "controlled variable".
pt
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Mon, 02 Jul 2012 12:10:12 -0700, pt wrote:

Bruce will have his own answer, but my take on this would be that you need to find a control rule that won't overdrive your actuator while at the same time minimizing the system response to the disturbance.
It's probably doable but tough if things approximate a linear system, and probably often (or maybe sometimes) doable but tougher yet if the system has significant nonlinearities.
I think it would be the most fun if I didn't have a conscience, and if I didn't have to stick around to fix things when the s**t hit the fan.

Once again I'm not Bruce, but I would take this problem as being -- if not easy -- safe, as long as the disturbances truly come from outside the loop. If the "forward" variable that you're choosing to control on is determined partially or fully by variables that are in the loop, then your feedforward will be affecting the loop dynamics. And if you're affecting the loop dynamics, then at best you'll get done and be left with the need to tune the loop whose dynamics you've just gone and changed.
--
Tim Wescott
Control system and signal processing consulting
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

It's not special care so much as accepting that the feedforward benefits may be limited. If your actuator response is slow in comparison to the process response, then feedforward won't be able to respond fast enough to completely annul the disturbance caused by variance in the variable that is being fed forward. It may still do 'some good', depending on the relative dynamics involved.

Thanks Tim, that's correct. However, I see that rule being violated from time to time in practice, particularly with multivariable predictive applications. As long as the undesirable gain is 'relatively low', then the variable concerned approximates as a true 'feedforward variable'. If the level of dependence is substantial, then feedforward can create a mess.

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

I can only tune dynamics if I know the dynamics of the process. In this case if multiple variables used in feedforward create loops, finding the process dynamics for each loop is a difficult job. What experiences do you have with more simple measures?
Is a "controlled variable" the signal a feedforward would output, i.e. actuator control? Is a "feedforward variable" the input of a feedforward?

I can confirm that this rule is violated in practice. A simple relationship between sensors and actuators is quickly written down. I wonder what mechanisms are available to analyse a feedforward which creates a mess. First thing that comes to my mind is an analysis of the sensitivity of the feedforward output with respect to the inputs into the feedforward. This should be equivalent to the static gain. But I'm not sure how to value the results as there is no direct relationship to instability. Is there anything else to do?
Feedforward is quite charming because it does not wait for control deviation. It's amazing fast if it's stable.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I can only tune dynamics if I know the dynamics of the process. In this case if multiple variables used in feedforward create loops, finding the process dynamics for each loop is a difficult job. What experiences do you have with more simple measures?
Is a "controlled variable" the signal a feedforward would output, i.e. actuator control? Is a "feedforward variable" the input of a feedforward?
Controlled variable (CV) is the thing that you're trying to control/stabilise. Feedforward variable is the thing that you're measuring and feeding forward - also often referred to as a disturbance variable(DV). As an example, for traditional boiler drum control (google) the CV is the drum level, and the DV is typically the steam flow. The other key element in the loop is the manipulated variable (MV), which for a boiler drum is the feedwater valve.

I can confirm that this rule is violated in practice. A simple relationship between sensors and actuators is quickly written down. I wonder what mechanisms are available to analyse a feedforward which creates a mess. First thing that comes to my mind is an analysis of the sensitivity of the feedforward output with respect to the inputs into the feedforward. This should be equivalent to the static gain. But I'm not sure how to value the results as there is no direct relationship to instability. Is there anything else to do?
Feedforward is quite charming because it does not wait for control deviation. It's amazing fast if it's stable.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
How do I get from a wonderful fast feed forward towards a feedback control or a combination of both? The wonderful feed forward is very fast but has some instable areas as at least one of the feed forward variables depends on the control variable.
pt
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Sorry, I work very much in the real world. If I had a situation like that at the plant I work at I'd sit with the process engineer and determine what the process requirements are, and devise a customised solution which would most likely be something simple, and largely empirically designed. It would probably involve removing the interacting feedforwards from the solution and accepting the performance loss.
Someone here with a more theoretical background may be able to give you a better answer.
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.