matlablimitsimulinkpid-controllerintegrator

Simulink: PID Controller - difference between back-calculation and clamping for anti-windup?


I need to implement an anti-windup (output limitation) for my PID controller. Simulink is offering two options: back calculation and clamping (documentation) which seem to deliver equal results. I know what back calculation is doing mathematically. It requires to define the back-calculation gain Kb. This gain is dependent on how long my controller is saturated, therefore it is actually a dynamic value (because I may have a high variation of saturation times). Do you see a way to control this value? (in this case it probably would be necessary to build my own PID Controller as shown in the documentation above or in the picture below.

PID controller with anti-windup using back calculation

Which brings me to the question, what is clamping actually doing? And what are other differences? Which one is faster, which one is more robust against stiff slopes? Does anybody has experiences using both?


Solution

  • Not sure if this fully answers the question, but the PID Controller documentation page, explains a bit more about clamping:

    clamping

    Stops integration when the sum of the block components exceeds the output limits and the integrator output and block input have the same sign. Resumes integration when the sum of the block components exceeds the output limits and the integrator output and block input have opposite sign. The integrator portion of the block is:

    enter image description here

    The clamping circuit implements the logic necessary to determine whether integration continues.

    If you select the clamping option and look under the mask, you can probably see the details of the clamping circuit.