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

  • Thread starter Thread starter nitishsharmabit
  • Start date Start date
  • Tags Tags
    Controller Pi
AI Thread Summary
A PI controller requires an anti-windup circuit to prevent excessive integration of error during output saturation, which can lead to overshoot when the system finally responds. When controlling a motor, if the output stage is saturated, the integrative part of the controller continues to request power, resulting in a significant negative error once the desired speed is achieved. The anti-windup circuit limits the set acceleration based on detected saturation, ensuring the control loop remains balanced and avoids overshoot. This mechanism is crucial in both digital and analog systems, as it prevents the integral of error from becoming excessively large, which can destabilize the control process. Overall, implementing anti-windup strategies enhances the stability and performance of control systems.
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 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 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 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:
 
Hi all I have some confusion about piezoelectrical sensors combination. If i have three acoustic piezoelectrical sensors (with same receive sensitivity in dB ref V/1uPa) placed at specific distance, these sensors receive acoustic signal from a sound source placed at far field distance (Plane Wave) and from broadside. I receive output of these sensors through individual preamplifiers, add them through hardware like summer circuit adder or in software after digitization and in this way got an...
I have recently moved into a new (rather ancient) house and had a few trips of my Residual Current breaker. I dug out my old Socket tester which tell me the three pins are correct. But then the Red warning light tells me my socket(s) fail the loop test. I never had this before but my last house had an overhead supply with no Earth from the company. The tester said "get this checked" and the man said the (high but not ridiculous) earth resistance was acceptable. I stuck a new copper earth...
I am not an electrical engineering student, but a lowly apprentice electrician. I learn both on the job and also take classes for my apprenticeship. I recently wired my first transformer and I understand that the neutral and ground are bonded together in the transformer or in the service. What I don't understand is, if the neutral is a current carrying conductor, which is then bonded to the ground conductor, why does current only flow back to its source and not on the ground path...
Back
Top