IQClab also provides the option to design robust estimators with general dynamic multipliers.

*Note: It is assumed that the user is acquainted with the robust estimation literature. The reader is referred to [24] and references therein for further information.*

The algorithm considered here corresponds to the one described in *[24]*, which considers the problem of synthesizing robust estimators based on dynamic IQCs. This problem is convex and based on solving an LMI problem.

We consider the system interconnection shown in the following figure.

Here:

- is the plant model
- is the uncertainty block, which is assumed to have a block diagonal structure . The properties of the individual blocks should be compatible with those from the class
*iqcdelta*(see details here) - is the to-be-designed robust estimator
- the in- and output channels are given by
- and are the uncertainty in- and outputs
- is the disturbance input
- is the to-be-estimated output

- is the measurement output
- is the estimation error output

Some characteristics of the algorithm are:

- The algorithms solves an LMI problem with the aim to synthesize a robust estimator, , which, for all , ensures that the interconnection in the figure above is robustly stable, while the induced -gain or -norm from rendered less than .
- The -block is compatible with the class
*iqcdelta*(see details here)

Usage:

If feasible, the algorithm returns:

- The estimator .
- The (guaranteed) induced -gain or -norm, , on the channel .

The inputs should be provided as follows:

- The (stable) LTI plant is assumed to admit the following state space description
- and are the uncertainty and disturbance inputs, while , , and are the uncertainty, to-be-estimated, and measurement outputs respectively.
- is Hurwitz.
- The uncertainty block is an
*iqcdelta*object, to which IQC-multipliers have been assigned with*iqcassign*(see details here). - 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.perf | Selects the performance metric of interest (i.e., induced -gain or -norm): – options.perf = ‘L2’ (default) – options.perf = ‘H2’ |

options.subopt | If chosen larger than 1, the algorithm computes a suboptimal solution , while minimizing the norm on the LMI variables .The default value is 1.01. |

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 synthesis LMI as – perturbs the coupling condition – perturbs the coupling condition
– perturbs the LMI corresponding to the The default value is . |

options.StrProp | Enforces the estimator, , to be strictly proper (i.e. ): – options.StrProp = ‘no’ (default)– options.StrProp = ‘yes’ |

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. |