Robust estimator synthesis

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.


  • G is the plant model
  • \Delta is the uncertainty block, which is assumed to have a block diagonal structure \Delta=\mathrm{diag}(\Delta_1,\ldots,\Delta_N). The properties of the individual blocks should be compatible with those from the class iqcdelta (see details here)
  • E is the to-be-designed robust estimator
  • the in- and output channels are given by
    • p and z are the uncertainty in- and outputs
    • w is the disturbance input
    • z is the to-be-estimated output
    • y is the measurement output
    • e=z+z_E 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, z_E=Ey, which, for all \Delta\in\mathbf{\Delta}, ensures that the interconnection in the figure above is robustly stable, while the induced L_2-gain or H_2-norm from w\rightarrow e rendered less than \gamma>0.
  • The \Delta-block is compatible with the class iqcdelta (see details here)


  • [E,\gamma]=fRobsyn(P,\Delta,n_{out},n_{in})
  • [E,\gamma]=fRobsyn(P,\Delta,n_{out},n_{in},options)

If feasible, the algorithm returns:

  • The estimator E=ss(A_{E},B_{E},C_{E},D_{E}).
  • The (guaranteed) induced L_2-gain or H_2-norm, \gamma>0, on the channel w\rightarrow e.

The inputs should be provided as follows:

  • The (stable) LTI plant G is assumed to admit the following state space description

        \[\left(\!\!\!\begin{array}{c}q\\z\\y\end{array}\!\!\!\right)\!=\!\left[\!\!\begin{array}{c|ccc}A&B_\mathrm{p}&B_\mathrm{w}\\ \hline C_\mathrm{q}&D_{\mathrm{qp}}&D_{\mathrm{qw}}\\ C_\mathrm{z}&D_{\mathrm{zp}}&D_{\mathrm{zw}}\\ C_\mathrm{y}&D_{\mathrm{yp}}&D_{\mathrm{yw}} \end{array}\!\!\right]\!\!\!\left(\!\!\begin{array}{c}p\\w\end{array}\!\!\!\right),\]

  • p(\cdot)\in\mathbb{R}^{n_p} and w(\cdot)\in\mathbb{R}^{n_w} are the uncertainty and disturbance inputs, while q(\cdot)\in\mathbb{R}^{n_q}, z(\cdot)\in\mathbb{R}^{n_z}, and y(\cdot)\in\mathbb{R}^{n_y} are the uncertainty, to-be-estimated, and measurement outputs respectively.
  • A is Hurwitz.
  • The uncertainty block \Delta=\{\Delta_1,\ldots,\Delta_N\} is an iqcdelta object, to which IQC-multipliers have been assigned with iqcassign (see details here).
  • The plant input and output dimension data n_\mathrm{in} and n_\mathrm{out} must be specified as follows:
    • n_\mathrm{in}=[n_{p};n_{w}]
    • n_\mathrm{out}=[n_{q};n_{z};n_{y}]
  • The last input, options, is a structure with various options as summarized in the following table.
options.perfSelects the performance metric of interest (i.e., induced L_2-gain or H_2-norm):
– options.perf = ‘L2’ (default)
– options.perf = ‘H2’
options.suboptIf chosen larger than 1, the algorithm computes a suboptimal solution options.subopt\cdot\gamma, while minimizing the norm on the LMI variables \| [A_E, B_E; C_E, D_E] \|<\gamma.

The default value is 1.01.
options.constantsoptions.constants=[c_1,c_2,c_3,c_4] is a vector of (small) nonnegative constants, which perturb the LMIs as LMI_i\prec-c_i, i\in\{1,2,3\}.

The constants are associated with the following LMI constraints
c_1 perturbs the main synthesis LMI as LMI_\mathrm{main}\prec-c_1I
c_2 perturbs the coupling condition X-\hat{Y}\succ c_2I
c_3 perturbs the coupling condition

    \[T^T\hat{Y}T-\left(\!\!\begin{array}{cc}Y&0\\0&0\end{array} \!\!\right)\!\succ\!c_3I\]

c_4 perturbs the LMI corresponding to the \Pi_{11}\succ c_4I

The default value is 1e-9*[1,1,1,1].
options.StrPropEnforces the estimator, E=ss(A_E,B_E,C_E,D_E), to be strictly proper (i.e. D_E=0):
options.StrProp = ‘no’ (default)
options.StrProp = ‘yes’
options.ParserThe option options.Parser specifies which parser is used:

The default options is ‘LMIlab’.
options.SolverThe option options.Solver specifies which solver is used when considering Yalmip as parser. See for further info.

The default solver is ‘mincx’.
options.FeasbRadThis option allows setting the feasibility radius of the optimization problem (see MATLAB → help → mincx for further details).

The default value is 1e9.
options.TerminateThis option can be used to change the LMI solver options (see MATLAB → help → mincx for further details).

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

The default value is 1e-4.