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 ![]() ![]() – options.perf = ‘L2’ (default) – options.perf = ‘H2’ |
options.subopt | If chosen larger than 1, the algorithm computes a suboptimal solution ![]() ![]() The default value is 1.01. |
options.constants | options.constants=![]() ![]() ![]() The constants are associated with the following LMI constraints – ![]() ![]() – ![]() ![]() – ![]() – ![]() ![]() The default value is ![]() |
options.StrProp | Enforces the estimator, ![]() ![]() – 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. |