IQClab also offers the possibility to perform an anti-windup compensator design. This allows to design compensators that prevent integrator windup in case of large control errors and limited actuator power.

In case of saturation, we are coping with the configuration shown in the following figure, where is the generalized plant, the controller, and a standard saturation nonlinearity.

To pull out the saturation nonlinearity as an uncertainty, one can equivalently reformulate the interconnection as shown in the following figure with .

By now extending the controller as

we can consider the interconnection shown in the following figure, where is the anti-windup compensator.

The corresponding generalized plant is therefore given by

where

- and are the uncertainty and disturbance inputs
- and are the uncertainty and performance outputs
- is the control input
- is the measurement output

The design algorithm considered here is from [10]. This is an elementary, but potentially effective algorithm, which yields static compensators, while minimizing the induced -gain constraint on the performance channel :

Here is the to-be-minimized induced -gain.

Usage:

If feasible, the algorithms returns:

- The anti-windup compensator gain .
- The (guaranteed) induced -gain on the performance channel of the closed-loop system .

The inputs should be provided as follows:

- The LTI plant is assumed to admit the state space description mentioned above.
- The plant input and output dimension data and must be specified as follows:
- The last input,
*options*, is a structure with various options as summarized in the following table.

Options | Description |

options.alpha | If specified, options.alpha defines the sector constraint , .The default value is 1. |

options.constants | options.constants= is a vector of (small) nonnegative constants, which perturb the LMIs as , .The constants are associated with the following LMI constraints – perturbs the main solvability condition as – perturbs the Lyapunov matrix as – perturbs the sector constraint IQC-multiplier matrix variable . The default value is . |

options.Parser | The option options.Parser specifies which parser is used:– options.Parser=’LMIlab’– options.Parser=’Yalmip’The default options is ‘LMIlab’. |

options.Solver | The option options.Solver specifies which solver is used when considering Yalmip as parser. See https://yalmip.github.io/ for further info. The default solver is ‘mincx’. |

options.FeasbRad | This option allows setting the feasibility radius of the optimization problem (see MATLAB → help → mincx for further details). The default value is 1e9. |

options.Terminate | This option can be used to change the LMI solver options (see MATLAB → help → mincx for further details). The default value is 0. |

options.RelAcc | This option can be used to change the LMI solver options (see MATLAB → help → mincx for further details). The default value is 1e-4. |

**Futher options**

In addition to the previous algorithm, it is also possible to design dynamic robust or gain-scheduled anti-windup compensators using *fRobsyn* and *fLPVsyn* respectively.

The application of *fRobsyn* is clear. Here it is emphasized that this algorithm goes much beyond the previous approach (but is not convex):

*fRobsyn*yields dynamic compensators (rather than static ones with*fAWsyn*), potentially leading to better anti-windup performance.*fRobsyn*allows to consider dynamic multipliers (i.e., Zames-Falb multipliers, which are included in the class usbsr). Again, this offers the potential for obtaining less conservative results.*fRobsyn*allows to include additional uncertainties.

Regarding the application of *fLPVsyn*, this is illustrated in the following figure.

Here the deadzone nonlinearity was replaced by a time-varying parametric uncertainty . These are defined as .