I'm reading from Astrom & Murray (2008)'s Feedback Systems: An introduction for scientists and engineers about the difference between feedback and feedforward. The book states:

Feedback is reactive: there must be an error before corrective actions are taken. However, in some circumstances, it is possible to measure a disturbance before the disturbance has influenced the system. The effect of the disturbance is thus reduced by measuring it and generating a control signal that counteracts it. This way of controlling a system is called feedforward.

The passage makes it seem that feedback is reactive, while feedforward is not. I argue that because feedforward control still uses sensor values to produce a control signal, it is still reactive to the conditions that the system finds itself in. So, how can feedforward control possibly be any different from feedback if both are forms of reactive control? What really separates the two from each other?

A illustrative example of the difference between the two would be very helpful.


6 Answers 6


In the simple models and block diagrams of control systems you will find in basic textbooks, they will show you a single diagram with a feedback section which uses measurements of the target parameter and a feedforward section which does not use the target paremeter.

Be ready to relax that definition when you get to the real world.

Treat it as terminology that helps you talk about a subset of a control system rather than a mathematical absolute.

In simple control, the feedback portion of your control system is that which uses measurements of the parameter you are trying to control in its calculations.

But don't forget that we use the term for systems in general. A microphone pointed at a speaker causes the system to evolve in a predictable way and we say that feedback is causing the loud noise.

So when we talk about feedback we are talking about how some characteristic of a system influences the evolution of that system.

When we talk about the feedback portion of a specific control system, we are focusing the conversation on the target parameter we are measuring and trying to control.

Feedforward control is unrelated. At least that's the best way to start discussing it. In feedforward control, we are creating some model of the system and using that to change the target parameter to what we want. If we have a perfect model of the system then we know exactly what inputs to the actuation we need to change the target parameter. There's no need to measure the target parameter. So in simple theory, feedforward control is control that does not need to use measurements of the target parameter.

But then things get messy. Creating good models is hard and we often use some sort of learning or system identification to create the model and update the model as things change. This will use measurements of the target parameter. Is it feedback? Yes. Do we call this feedback control? No.

Additionaly disturbances are always difficult to predict and if we can measure some or all of them we can improve the model for feedforward control. Are these measurements feedback? Yes. Do we call this feedback control? No.

Hopefully that gives you a little more understanding. I don't know Astrom & Murray's book, but I can see on google that quote comes from the introduction chapter. I expect that they will give you a more nuanced understanding of feedback and feedforward later.


It is arguable what is called reactive and what is not... however what is measured by sensors and what information the controller possesses is not arguable.

In feedback control, the system's outputs are measured and if they do not match the desired output (reference) the controlled parameter is recalculated. If the input does not change, these differences usually come from disturbances. The controller has a feedback from the system's output which quantifies "how far" it is from the desired state, regardless of what causes this difference.

In feedforward control, the disturbances are measured and the controlled parameter is calculated based on some mathematical (or logical) model. There is no feedback to see if the system is really in the desired state or "how far" it is from the desired state. If disturbances that are not measured cause the system's outputs to differ from the desired one, the controller will not react.

So to formulate it with "reactive" I would say that feedback control is reactive since it reacts to changes in the system's output while feedforward is proactive since it acts before the system's output change. The important factor in control theory is the controlled system output; that is probably why reactive is defined from the point of view of the change in the system's output.

Feedforward also reacts to something, but this something is not the system's output so from the point of view of the system's output it is not reactive. In feedforward control, the system's output can change without any reaction from the controller while in feedback control any change in the system output will provoke a reaction of the controller. Since the important aspect is the system's output and the feedforward controller does not react to changes in the output it can be considered a non-reactive control method.

Illustration from Wikipedia, (a) open loop, (b) feedforward, (c) feedback

enter image description here

  • $\begingroup$ So, feedforward control assumes that disturbances can be detected independently of their effects on the system, while feedback control assumes that disturbances can only be detected after they have affected the system? $\endgroup$
    – Paul
    Commented Nov 18, 2015 at 14:56
  • $\begingroup$ More like feedforward control is used when the (most important) disturbances can be detected and a model can be build up with the desired precision, and feedback control is used when not. Combinations of feedback and feedforward are also practiced. The feedforward value "helps" the feedback controller to react better. $\endgroup$
    – 50k4
    Commented Nov 18, 2015 at 15:13

I argue that because feedforward control still uses sensor values to produce a control signal

For a theoritical discussion, your pre-assumption is wrong. A feedforward control logic need not depend upon the sensor value. Rather it depnds on the desired value. For example, If we have a simple rod hung like simple pendulum with a torsional spring at the pivot. Let's say we are operating this rod with a motor at the pivot. If we give 30 degree desire angle, then feedforward logic will send a duty, accordingly, to balance torsional spring rotated for 30 degree. Whereas, feedback logic will take care the real world scenario of air resistance.


Controllers are always reacting to something, so you're correct in thinking that "being reactive" is not the difference between the two. The key is what the controllers are reacting to.

In feedback control, the controller acts to minimize an error signal. A system including feedback control would have:

  • A sensor to measure system output
  • A reference signal, to which the system output is compared
  • A controller which operates on (i.e. "reacts to") the difference between the reference and the measurement

This type of control scheme is also referred to as "closed-loop control."

In feed forward control, the controller acts without any direct knowledge of the system's response. It may be reacting to a reference signal or output from a sensor (as long as the sensor is not measuring system output - this would create a feedback loop) or both. This is also called "open-loop control."

This is more than a semantic difference. Only a closed-loop controller has the ability to compensate for unknown parameters, modelling errors, etc.

In your question, you refer to a situation where feed forward is used as a means to achieve disturbance rejection. The idea would be that you measure the disturbance input, model the response of the system due to the this input, calculate the required control input to counteract this response, and then apply that control input. Since your control signal (controller output) is independent of system response, this is open-loop control.

It is not uncommon for controllers to be designed with both feedback and feed forward components. In this case, I usually think of the feedback component as the primary path, and the feed forward component as supplementary, to improve performance in some way.

For example, in motion control, a motor can be made to follow a velocity reference by using a PID controller that operates on the velocity error. Because the PID controller operates only on the error, without any knowledge of the reference signal, there must be some error before the controller responds, so there will be some amount of delay. You can increase the gains to minimize the delay, but because real systems are flexible, there will be some point at which the system will become unstable as the gains are increased.

You can add a feed forward path, however, which operates on the derivative of the velocity reference (so, the acceleration). If the system's inertia is constant, the feed forward controller can be a simple proportional gain times the acceleration signal, which would correspond to some additional torque.

Now the motor will generate torque in response to changes in the velocity reference without waiting for the system to develop velocity error. Because the feedback controller exists as well, any effects of friction, modelling error (i.e. if the selected feed forward gain is not exactly correct for the system's inertia), etc., the controller can still compensate and drive the error to zero.


Think of your controller as having several components:

a (mathematical) model of the system,

a measurement subsystem for detecting errors,

a method to input commands to the system.

The feedback controller uses the measured errors, computes changes to the inputs in order to squash those errors, and sends those inputs to the system. The idea is that all of the dynamics affecting a system won't be known in advance - friction values change, disturbances are encountered, payloads are not constant, etc. So we measure the error and eliminate it.

The feedforward controller usually wraps around the feedback controller. Although there are many types, they all generally estimate what the system's response will be for those changed inputs computed above. They then further "nudge" the inputs to account for the predicted additional errors in order to prevent those modeled errors from occurring. A good example is when the system knows that the payload changes when a device picks something up - the current to the motors can be increased to account for the additional torque required without waiting for the system to begin moving (too slowly) and seeing the errors occur.


Sr. no Point of Difference Feedback control system Feed Forward Control system:

  1. Definition

    • Systems in which corrective action is taken after disturbances affect the output
    • Systems in which corrective action is taken before disturbances affect the output
  2. Necessary requirement

    • Not required

    • Measurable Disturbance or noise

  3. Corrective action

    • Corrective action taken after the disturbance occurs on the output.

    • Corrective action taken before the actual disturbance occurs on the output.

  4. Block Diagram

    • enter image description here

    • enter image description here

  5. Control Variable adjustment

    • Variables are adjusted depending on errors.
    • Variables are adjusted based on prior knowledge and predictions.
  6. Example

    • Use of roll sensor as feedback element in ship stabilization system.
    • Use of flowmeter as feed forward block in temperature control systems.
  • 1
    $\begingroup$ Your answer seems to be missing images, as well as some context. $\endgroup$ Commented Jun 12, 2017 at 5:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.