http://controlsystemslab.com/pid-anti-windup-schemes/
Control Systems Lab
From analysis, design, to implementation
PID Anti-Windup Schemes
To combat with the detrimental windup effects, a commercial PID controller often has some additional function called anti-windup. There are variations of implementation out there. Here we only investigate two basic schemes: conditional integration and back calculation.
Before further discussion, we have to review the two commonly-used forms of PID. First,
(1)
is often referred to as the “textbook” form. The second one is the parallel form used in Scilab Xcos block
(2)
Some tuning methods such as Ziegler Nichols use the form (1). In this
article we prefer (2). This variation should not pose a problem since
the parameters between the two can be related by
(3)
The plant used is the same one from our Digital PID Controllers article.
(4)
There we already performed PID parameter tuning. Those parameters will be used in the simulation.Effects of Integrator Windup on Step Response
To see how integrator windup deteriorates the step response, we use an Xcos diagram mypid.zcos shown in Figure 1. An output limit block is connected to the PID controller output, which can be switched on/off by a selector. The saturation is set up to + 511, a limit for 10-bit DAC or PWM. Further discussion of this setup can be read from our Scilab Recipe 3: Xcos Block Seasoning.ku = 8; // ultimate gain tu = 3.5; // oscillation period kp = 0.6*ku; // PID controller gains ki = kp/(0.5*tu); kd = 0.125*kp*tu; |
To implement anti-windup, we will have to add extra mechanisms into our PID controller. So instead of using the PID block from Scilab palette, we have to construct our own, which is not difficult to do. Furthermore, the modified structure from our article Discrete-time PID Controller Implementation is used; i.e., the derivative part is replaced by Low-pass Filter for better noise immunity.
Scheme1: Conditional Integration
The idea of conditional integration scheme is simple. Whenever there is some indication that saturation is causing error accumulation, the integrator in PID controller is turned off. There is however some variation in deciding when to switch off. The easiest one to implement is perhaps monitoring the controller output and comparing with the limits. Whenever saturation occurs, the integrator is turned off.The Xcos model awupid_m1.zcos in Figure 3 is built to experiment with this conditional integration scheme, implemented in the lower feedback diagram.
-->s = poly(0,'s'); -->P = syslin('c',1/(s+1)^3); |
-->N = 1000; |
Note: For your convenience, all setups are contained in a script file awupid.sce. Run the script once before simulation.
-->exec('awupid.sce',-1); |
Scheme 2: Back Calculation
Back calculation anti-windup scheme can be viewed as supplying a supplementary feedback path around the integrator. This feedback becomes active and helps stabilize the integrator only when the main feedback loop is open due to saturation. To experiment with this scheme, use an Xcos model awupid_m2.zcos in Figure 5. The back calculation feedback is implemented in the lower diagram, with additional compensation gain kt.Similar to the conditional integration scheme, rise-time cannot be improved to match the case of pure linear system.
Conclusion
In this article, we discuss two anti-windup schemes in a PID controller and simulate some closed-loop step responses with a chosen plant transfer function. The audience can download Xcos files and perform further investigation with other choices of parameters and plants. We would also be interested to learn how these schemes behave under more realistic situations, such as tracking performance with other command inputs, with added input/output disturbances, or operating under noisy condition, etc.References
- K.J. Astrom and T.Hagglund. Advanced PID Control Instrumentation, Systems, and Automation Society, 2006.
- V. Toochinda. Digital PID Controllers, www.controlsystemslab.com, 2011.
- V. Toochinda. Module 4: PID Control, in Scilab Control Engineering Basics, Scilab.Ninja, 2014.
Supplement
Scilab and Xcos files used- mypid.zcos Xcos diagram in Figure 1
- awupid_m1.zcos Xcos diagram in Figure 3
- awupid_m2.zcos Xcos diagram in Figure 5
- awupid.sce Scilab setup script
No hay comentarios:
Publicar un comentario