Why does a PI controller need an Anti-Windup circuit?

In summary, a PI controller uses an Anti-Windup circuit in order to prevent unwanted overshoot in the control loop. This circuit limits the set acceleration based on detected saturation in the output stage, preventing the integrator from integrating too much error. In digital control, the correction is calculated and subtracted from the internal set speed, ensuring that the PID-controller never winds up and balances on the edge until the desired set speed is reached. This is a clever solution compared to analog systems where the motor may run out of torque when reaching hardware limits.
  • #1
nitishsharmabit
Hello folks,

Can anyone tell me why does a PI controller uses an Anti-Windup circuit?what is the main purpose of using it?
 
Engineering news on Phys.org
  • #2
nitishsharmabit said:
what is the main purpose of using it?

Say you control the speed of some dc-motor and you accelerate the motor from a halt to set speed = 3000 rpm.
Now, due to the set acceleration and/or the inertia of the load, the power output stage will be saturated. Thus there will be an error in the control loop, which the integrating part of the controller will integrate, requesting more and more power. But the the requested power will be limited by the output stage, and the error will sustain.

When the speed at last reaches 3000 rpm, the integrated value in the controller will have become so high that a lot of negative error is needed to "rebalance" the loop / the integrating part. Thus the speed of the motor will make an unwanted overshoot.

The anti-windup circuit will limit the set acceleration, according to a detected saturation in the output stage, thereby preventing the overshoot. The control loop will be balanced all the way.
 
Last edited:
  • Like
Likes russ_watters
  • #3
We are taught to think of control loops using linear equations operating on an error term

but as Hesch pointed out , when something in the loop reaches a hardware limit the loop is no longer linear .
eg
An automobile cruise control tries to maintain speed error of zero
but it can apply no more than full throttle to do so
and if the engine is inadequate to maintain speed up a steep hill , the integrator measures and integrates that error
this integral of error , if not limited, might have integrated up to hundreds of percent .during the time it took to climb that hill.
(just think = what if it's a digital controller with floating point? Integral of error could be astronomical ! )
so when you crest the hill speed will climb above desired until integrator returns its integral-of-error term back to zero.

In the days of pneumatic controls we connected a meter to the integrator so that operator could manually adjust integrator to zero before transferring to automatic. That signal was called "Tie-Back" - just in case you ever run across it.old jim
 
  • Like
Likes anorlunda
  • #4
jim hardy said:
(just think = what if it's a digital controller with floating point? Integral of error could be astronomical ! )
Well, here is how the wind-up can be prevented by digital control.
The desired speed is calculated by an input function with a max. speed = 10000 and a max. acceleration = 1000. So when the control-loop is activated from a halt, the output from the function should be
0, 1000, 2000, . . . , 9000, 10000, 10000, . . .
But say that the output stage ( D/A-converter ) is limited to -512 . . +511, the D/A-converter will be saturated/unlinear already by the first sample, because the PID will multiply the error by 5, giving 5000.

upload_2015-12-6_21-44-2.jpeg

So to correct this error, you back-calculate:
Correction = ( 5000 - 511 ) / 5 - ( feed-back velocity ) = 898 ( always round-up ). Feed-back velocity = 0 from a halt.
This correction is subtracted from the internal set speed in the input function, giving a corrected internal set speed = 102.
Now you recalculate the loop with the new internal set speed, giving a new ( and final ) PID-value = 510, which value is within the limits.
At next sample, the input function will calculate an internal set speed = 102+1000 = 1102, but every time it suggests a value that leads to an exess in the output stage, it will be corrected. Thus the PID-controller will never wind-up, but will balance "on the edge", until internal set speed = 10000 is reached.
 
Last edited:
  • Like
Likes jim hardy and anorlunda
  • #5
Nice, Hesch

in your digital loop it's the A/D that hits the hardware limit(runs out of bits)
in my analog it's the motor(runs out of torque)
both operate on error between measured and desired speed/velocity

and cruise controls after about 1980 no longer 'windup' on steep hills , like an old Mercury i once.rented

clever solution.

old jim
 
  • #6
jim hardy said:
in your digital loop it's the A/D that hits the hardware limit
I just picked an easy example ( D/A-converter ), not having to explain something complicated. :smile:
 

Related to Why does a PI controller need an Anti-Windup circuit?

1. What is anti-windup in a PI controller?

Anti-windup in a PI controller is a method used to prevent the integral term of the controller from causing overshoot or instability in the system. It involves implementing a mechanism to limit the integration of the error signal when the output of the controller reaches its maximum or minimum value.

2. Why is anti-windup important in PI controllers?

Anti-windup is important in PI controllers because the integral term is designed to eliminate steady-state error in a system. However, if the output reaches its limits, the integral term can continue to accumulate and cause overshoot or instability. By implementing anti-windup, the integral term is restricted, allowing for better control and stability of the system.

3. How does anti-windup work?

Anti-windup works by implementing a saturation mechanism in the controller. When the output of the controller reaches its limits, the saturation mechanism limits the integration of the error signal, preventing the integral term from growing too large. This allows the controller to maintain stability and prevent overshoot in the system.

4. Are there different types of anti-windup methods?

Yes, there are different types of anti-windup methods. Some common methods include back-calculation, gain scheduling, and dynamic compensation. Each method has its own advantages and disadvantages, and the choice of method depends on the specific system and its requirements.

5. Can anti-windup be used in other types of controllers?

Yes, anti-windup techniques can be applied to other types of controllers, such as PID controllers. However, the specific implementation may differ depending on the controller type and the system being controlled. It is important to carefully consider the system dynamics and requirements when implementing anti-windup in any controller.

Similar threads

  • Electrical Engineering
Replies
3
Views
704
Replies
4
Views
1K
Replies
31
Views
2K
  • Electrical Engineering
Replies
12
Views
2K
Replies
46
Views
3K
Replies
1
Views
482
Replies
10
Views
3K
  • Electrical Engineering
Replies
6
Views
1K
Replies
3
Views
1K
  • Electrical Engineering
2
Replies
37
Views
3K
Back
Top