View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
anti-windup PID controller - SIMULINK block

1.0 | 1 rating Rate this file 19 Downloads (last 30 days) File Size: 7.88 KB File ID: #23965 Version: 1.0
image thumbnail

anti-windup PID controller - SIMULINK block



This SIMULINK block contains a PID controller with anti-windup

| Watch this File

File Information

Although many aspects of a control system can be understood based on linear theory, some nonlinear effects must be accounted for in practically all controllers. Windup is such a phenomena, which is caused by the interaction of integral action and saturations. All actuators have limitations: a motor has limited speed, a valve cannot be more than fully opened or fully closed, etc. For a control system with a wide range of operating conditions, it may happen that the control variable reaches the actuator limits. When this happens the feedback loop is broken and the system runs as an open loop because the actuator will remain at its limit independently of the process output. If a controller with integrating action is used, the error will continue to be integrated. This means that the integral term may become very large or, colloquially, it “winds up”. It is then required that the error has opposite sign for a long period before things return to normal. The consequence is that any controller with integral action may give large transients when the actuator saturates.



This file inspired Anti Windup Pid Example.

Required Products Simulink
MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (5)
28 Mar 2016 Chandan Kumar

22 Feb 2013 Radek

Radek (view profile)

According to reference document antiwindup gain should be Tt not Ti.

Tt can be roughly calculated from Tt=sqrt(Ti*Td);

Comment only
28 Apr 2011 Paul Acquatella

Arkadiy, thanks a lot for your comments and documentation.

I guess this simple submission will now work as an "academic" example of understanding the basics of anti-windup. Moreover, for more complex control structures, other forms of anti-windup can be implemented.

Comment only
28 Apr 2011 Arkadiy Turevskiy

Couple of additional comments:
1) PID Controller block in Simulink has an option to turn anti-windup protection on. Here is the doc for this block:

For a comprehensive collection of demos on tutorials on PID Control with MATLAb and Simulink, see this page:

Comment only
22 Dec 2009 Arkadiy Turevskiy

Thanks for an interesting submission.

Starting with R2009b Simulink includes PID Controller block that supports integrator anti-windup. If you are interested in designing and tuning PID controllers in MATLAB and Simulink, please take a look at new PID tuning capabilities shipped in Simulink Control Design in R2009b:

There is also a webinar on the subject:

and MATLAB Digest article:

Comment only

Contact us