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

  • Thread starter Thread starter nitishsharmabit
  • Start date Start date
  • Tags Tags
    Controller Pi
Click For Summary

Discussion Overview

The discussion centers on the necessity of an Anti-Windup circuit in PI controllers, particularly in the context of control systems for motors and other applications. Participants explore the implications of saturation in control loops and how Anti-Windup mechanisms can mitigate issues such as overshoot and prolonged error integration.

Discussion Character

  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant describes how saturation in a motor control loop can lead to excessive integration of error, resulting in overshoot when the desired speed is finally reached.
  • Another participant provides an example of automobile cruise control, highlighting that when the system reaches a hardware limit, the control loop becomes nonlinear, complicating the error correction process.
  • A later reply discusses a digital control approach to prevent wind-up by recalculating the desired speed based on output limitations, ensuring the PID controller operates within bounds.
  • Participants note that both digital and analog systems face saturation issues, with one emphasizing that modern cruise controls have mechanisms to avoid wind-up that older systems lacked.

Areas of Agreement / Disagreement

Participants generally agree on the importance of Anti-Windup circuits in preventing overshoot and managing saturation effects. However, there are multiple competing views on the specifics of how these circuits function and the implications for different types of control systems.

Contextual Notes

Some discussions involve assumptions about the behavior of digital versus analog systems, and the impact of hardware limitations on control performance. There are also references to historical practices in control systems that may not apply to modern implementations.

Who May Find This Useful

Readers interested in control systems, particularly those working with PI controllers, motor control applications, or digital control strategies may find this discussion relevant.

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
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   Reactions: russ_watters
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   Reactions: anorlunda
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   Reactions: jim hardy and anorlunda
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
 
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:
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
865
  • · Replies 3 ·
Replies
3
Views
1K
Replies
4
Views
2K
  • · Replies 46 ·
2
Replies
46
Views
6K
  • · Replies 12 ·
Replies
12
Views
4K
  • · Replies 31 ·
2
Replies
31
Views
5K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 32 ·
2
Replies
32
Views
4K
  • · Replies 3 ·
Replies
3
Views
4K
Replies
3
Views
2K