Feed-forward control: A proven scheme for rejecting disturbances

If we’re being honest, then let’s acknowledge that the PID and feedback control have limitations, especially when lag is involved.

The strength of the PID rests largely in the breadth of industrial applications for which it provides safe, stable control. And while many in industry might argue that the PID is difficult to configure, there seems to be an equal share of practitioners who view PID controller design and tuning as a relatively intuitive process. Where there seems to be nearly unanimous agreement is in the PID’s weaknesses. Chief among the complaints is the PID’s challenges when it comes to correcting for persistent disturbances. Fortunately for the many industrial users of PID, there’s feed-forward control.

Figure 1: Processes that are slow-moving or that exhibit long dead times can benefit the most from feed-forward control.

Feed-forward control – or more simply, "feed forward" – is an advanced control scheme that builds upon basic PID control and enables practitioners to overcome the challenges of rejecting disturbances. More specifically, feed forward employs a secondary model of a known disturbance. Whereas a simple PID will wait for disturbances to make their impact, feed forward’s additional disturbance model allows it to respond proactively to disturbances in terms of timing and magnitude. Essentially, the feed-forward element uses a disturbance model to predict an impact profile (how far and fast the process variable will move in response to the disturbance), and then it uses a process model to determine how much it would need to adjust the controller output to completely counteract the disturbance.

As with most topics related to PID and process control, there are a few key points to keep in mind. In terms of feed-forward control, the following are worth considering:

  • Isolating the source - Feed-forward is a good solution when a given process is routinely affected by a known and measurable source of disturbances. One example would be a semi-continuous oven whose doors are opened every 15 minutes to push new material in and out of the system. Such changes are typically sizable, and they have a significant impact on the temperature of the oven. Because of the frequency of events such as load changes, it's likely that the source can be isolated and the disturbance’s dynamics can be modeled. Not for nothing: It is absolutely essential that a practitioner can isolate and measure the disturbance source. If that’s not possible, then feed-forward is no longer on the table as a suitable solution.
  • Modeling the disturbance - The impact of some disturbances can be profound in terms of their effect on quality, throughput, efficiency, and the like – a metaphorical punch to the gut of a process. In such situations, feed-forward serves as the counterpunch, neutralizing each disturbance proactively with an accurately timed and sized adjustment. Feed-forward relies on an accurate model of the disturbance to respond appropriately to those upsets. The model must account for a full spectrum of disturbance scenarios – those ranging in size from small and insignificant to large and overwhelming.
  • Delivering on time - At the heart of the problem is the PID’s inability to correct proactively for those disturbances that are generally characterized by a significant dead time. As with many things in life, timing is everything. It is feed-forward’s use of a disturbance model that allows it to calculate the precise size and timing of a countermeasure. This feed-forward feature protects the process from major upsets while the PID responds to the usual variability within the process.

For sure, feed-forward is an effective disturbance rejection solution with broad application value. In particular, its ability to proactively correct for disturbances makes feed-forward ideal for processes that experience frequent and measurable load changes. It enhances the capabilities of basic feedback control as provided by the PID.

Want to learn more about Feed Forward?  Take a look at these related posts: