Feedforward for faster control response
C ontrol systems often rely on feedforward to improve their ability to respond to the command signal. Feedforward is based on the structure in control systems where one loop is nested inside another.
For example, in motion control systems, a velocity loop is often enclosed inside a position loop. The position loop generates a velocity command, which is shuttled to the velocity loop. In this control structure, the inner loop is always faster than the outer loop. The feedforward path is essentially a shortcut around the slower outer loop, allowing the command signal direct access to the faster inner loop.
Control systems are based on loop gains. The most common structure in controls is to subtract a feedback signal from a command signal to generate an error; that error is multiplied by one or more loop gains. Large loop gains improve responsiveness by aggressively driving the error signal towards zero. Unfortunately, large loop gains also make control systems susceptible to instability and noise. When engineers tune control systems, they usually try to raise loop gains as high as these limitations allow. Feedforward offers an alternative way to improve responsiveness, relaxing the need to maximize loop gains.
Feedforward for motion
The diagram shows a common example of feedforward in motion control systems. This is a position controller using velocity feedforward. Position loop gain, K P , scales the position error to create a velocity command. The larger the value of K P , the more responsive the position loop will be. However, if K P is set too large the system will become unstable. In all too many systems, even values of K P large enough to border on instability still produce an insufficient level of responsiveness. Feedforward is a practical way to speed up these systems without producing the problems caused by high loop gains.
Feedforward usually requires that the command signal be differentiated. For the motion control example shown, the position profile was differentiated (d/dt) to create the velocity profile. The velocity profile is then scaled by K F , and added to the signal created by the loop gain to form the velocity-loop command. Notice that the feedforward path does not form a loop with the motor. Unlike K P , feedforward gain is outside the loop so it cannot make the system unstable.
Feedforward gains do have shortcomings. For one thing, they don't help the system respond to torque disturbances. The control system becomes aware of disturbances through the feedback loop; and by their nature, feedforward gains are outside that loop. Also, too much feedforward causes overshoot. For the example shown, if K F is set too high, when the machine comes to a stop, it may slide well past the target position and then have to back up to the correct position.
Best way to tune
Normally, the best way to tune a system is to start with zero feedforward gain and raise the loop gains as high as possible. Then, if the system needs to have better responsiveness, add in some feedforward. Be prepared to reduce the loop gains a little when adding feedforward. That's because even a little feedforward will often generate some overshoot; modest reductions in loop gain will cure that problem.
Feedforward can make a substantial improvement in system responsiveness. In motion control systems, it commonly speeds up machines by more than a factor of two.