• Not Answered

How to Handle Multiple Feed forward PID Inputs

Looking for suggestions or examples on how to handle multiple feed forward disturbances into one PID controller.  The controller in question is an Outlet Temperature controller on a process heater that manipulates the fuel gas flow to the burners.  It is currently configured and successfully operating with a Charge Rate feed forward input.  The charge rate feed forward input works in a direct action manner.  An increase in heater charge proactively calls for more fuel gas to the burners.  The PID feed forward scale is currently in barrel per day.  Looking at added a second disturbance input.  This will be the BTU content of the fuel gas being burner in the heater.  This will be a reverse action influence.  As the BTU content increase the controller should proactively decrease fuel flow. 

How should these two inputs be used to input into a single parameter.  Should each one be converted to a percent basis then multiplied by individual tuning parameters?  Looking for any input.

Thanks,

Chris

8 Replies

  • What I have done is to have the flow controller adjusted by (LHV) Not in the feedforward signal. In this manner, your temperature controller will give the set point to a heat flow controller, not a volumetric flow controller. Is this helpful?
  • I assume you are using a lead/lag block to introduce the feed forward input. You scaled (set the gain) such that a unit change in charge flow requires a measured compensatory change in fuel flow. Lead/Lag allows the dynamic difference to be accounted. If you didn't use feed forward on the charge flow, but did with inlet temperature, you would have set the gain such that a unit of change in the inlet temperature required a measured compensatory change in fuel flow. To combine them, you should be able to simply sum the outputs of the lead/lag block. Feed the summed value into the feed forward input of the PID.
  • In reply to Lou Heavner:

    Continuing the plan outlined by Lou Heavner, be aware that after DeltaV version 9 or 10, the feedforward (FFWD) signal into the PID/FF_VAL must be within -10% to 110% of the FF_SCALE. Thus, if you sum several signals for FFWD, make sure you scale the individual FFWD signals and/or select a FF_SCALE that will accommodate the sum of all possible values of all of the individual signals uses for the FFWD (it might need to be -nnn to +nnn EU's). Note that some individual FFWD values may be negative after applying their individual FFWD gain. I usually set the PID/FF_GAIN = 1.0 and set the individual FFWD gains on each signal as appropriate. Note that the FF_GAIN is (%PID OUT_SCALE)/(%PID FFWD_SCALE). Then double check the gain from each FFWD signal to the OUT of the loop to make sure it is doing what you want! The standard feed forward in a DeltaV PID is an "additive" feed forward. If you want to perform a "multiplicative" feed forward you would have to do this outside of the PID and I recommend using a ratio block for this.
  • In reply to Gerardo80:

    Thanks for the reply. Just to make sure I fully understand. The temperature controller output goes to the heat flow controller. The heat flow controller output goes to the flow controller. The heat flow controller PV is basically the flow controller PV multiplied by the BTU value with all the correct unit conversions. So when the BTU content changes the heat controller PV will change and make and adjustment on the flow controller.
  • In reply to Lou Heavner:

    Thanks for the reply Lou. I guess I am embarrassed to say I am not using the lead/lag block. I am just feeding the flow AI through a filter block and directly into the PID block. After I read your reply I checked out the lead/lag block. It does offer many advantages which I am not utilizing. I will have to experiment with replacing the filter block with the LL block.
  • In reply to Chris Kominar:

    Conceptually what you are saying is correct. The so called heat flow controller can be a simple converter block that calculates the volumetric flow set point based on the BTU value of the fuel gas. In this way, the flow controller will react immediately to BTU value variations. I hope this will help.
  • In reply to Chris Kominar:

    Have you thought about using DeltaV Predict (MPC)? The default version that ships with DV allows 1 Control and 1 Manipulated variable with up to four disturbances. Charge Rate would be your control, the AO to fuel gas control would be your manipulated and BTU content would be a disturbance. It can be setup to run in parallel with your PID block to allow switching between Manual, Auto (PID), or Remote Cascade (MPC). I've been using it for drum water temperature controls and it has worked well. It can add some complexity for your operators if they would have to use the Predict application to along with DeltaV Operate. Typically they can do what is needed from the standard MPC faceplate. Just another angle to consider as you work towards a solution.
  • In reply to fairchdm:

    The traditional Feed Forward solution calls for the modeling of the disturbance so that the PID Output can be adjusted appropriately, and at the right time. The lead/lag block along with a Deadtime block are typically used to create that model. The DeltaV Predict mentioned by fairchdm is designed to deal with these models, and it can handle multiple disturbances. I would definitely look into this. Consider all the additional code you are developing to handle this unique combination of signals. It would be simpler to use the MPC than to create and maintain this complex solution using traditional PID feed forward.

    Andre Dicaire