Process Control - Feedforward


Thread Starter


Dear All,

i am new using PLC, and i my task to control a process using PLC. For the process that i am working in, i think the best option is using feed-forward feedback control strategy, but i don't know how to implement that using plc,

basically the machine has 2 inputs and 1 output. both inputs are flow, and i need to control these pump speed to achieve my set-point and optimize the second input (polymer). i want to treat the first input as disturbance, so please if you could help that will be great.

how to use ladder logic to implement 2 PID controller as feedback feed-forward?

Thank you
Standard PLC have limiting features for process control if has ones at all. The better way is using Process Controller with referred feature
if you find ones.

Bob Peterson

FF is not always as simple as it looks. Most plc implementations of pid
loops have what is called a bias term that can be used for this purpose.
There are other simple ways to do it as well.

That part is pretty easy. Calculating how much FF to add is the hard part
as many systems are nonlinear and don't make it easy.
Since you are talking about two Flow inputs You may consider using a Ratio control. One Flow is wild flow (has disturbance). The second one is controlled flow rate, regulating the Pump Motor speed. Ratio Controller Out put becomes a set point for the Speed Control.


I agree. I have used feed-forward control very successfully many times, starting in the 1970's at Dow Chemical. It can also be termed "open-loop scheduling" or "anticipatory control". Using an artillery example, given measured inputs (distance to target, wind speed & direction, performance of gun and shell), you calculate what output response (aim) is needed to hit the target. The amount you miss (error) can be used in a feedback loop - "move 1 deg per 100 m error" (proportional gain) + "move 0.1 deg each miss" (integral gain).

In practice, you are continuously controlling, so need consider only what output change (delta) is needed for each input change, termed "sensitivity". In non-linear systems, the sensitivities change with operating condition. I find it easier to use algebraic equations in terms of absolute values. But, that is when you have a math model of the system. If experimenting in the control room, you can make delta changes to determine sensitivities.

My first application was to adjust steam flow to control a distillation column temperature, given measured inlet and reflux flow-rates and temperatures, i.e. a simple heat balance. As the inlet pipe (1 km long) heated from the sun, the FF began reducing the steam so that the column temperature held steady. That was exactly how the Operator's ran the plant, looking at all inputs and adjusting before they caused an error, but their "mental algebra" wasn't as accurate. Of course, a slower feedback loop kept the temperature right at the setpoint. FF is like driving a car by looking ahead and anticipating upcoming curves. Feedback-only is like driving by just looking down at the white line and trying to correct after you realize an error.

The prior post explains how to implement in most PLC's. The FF delta can be added to the .Bias term of the PID block (I did in ControlLogix). I think it would be essentially the same to add FF to the control value after PID block sets it. But, for "bump-less transfer", a PID block adjusts the .Bias term so the control output doesn't jump when going active, so adding FF in later might confuse that. In LD, I used a "math block" (or such, long ago). That was helping a coworker, I much prefer using ST, FBD, and SFC.