IQC-analysis

Once all uncertainty blocks have been defined and all IQC-multipliers have been assigned, one can proceed by performing an IQC analysis by means of the function iqcanalysis.

This function supports the computation of the following performance metrics:

  • Induced L_2-gain performance
  • H_2 performance (deterministic signal-based interpretation)
  • Generalized H_2 performance (energy to peak)
  • Passivity performance

If no performance blocks are specified, the algorithm performs a robust stability analysis.

The function can be called as follows:

    \[prob=iqcanalysis(M,\Delta,varargin).\]

Here

  • M\in RH_\infty is the uncertain stable continuous- or discrete time LTI plant
  • \Delta is the main uncertainty/performance block, which is assumed to be bounded on L_2 and whose entries are objects from the class iqcdelta, which have been associated with an IQC multiplier using iqcassign. The uncertainty/performance block \Delta/P should be provided as a cell:

        \[\Delta=\{\Delta_1,\ldots,\Delta_N,P_1,\ldots,P_M\}.\]

    Here the order of the blocks is not relevant.
  • The option varargin allows specifying additional properties in the IQC-analysis. This proceeds in the following fashions as discussed in the following table.
OptionDescription
1For prob=iqcanalysis(M,\Delta,varargin), the inputs come in pairs and can be specified by

    \[\begin{array}{c}prob=iqcanalysis(M,\Delta,'name', 'prop1','value1',\ldots,\\\ldots,'propN','valueN').\end{array}\]

2The properties can also be set by defining a structure

    \[\begin{array}{c} options.prop1=value1\\\vdots\\options.propN=valueN\end{array}\]


and subsequently specifying

    \[prob=iqcanalysis(M,\Delta,options).\]

3Finally, the properties can be set and retrieved respectively by

    \[set(prob,'propertyX','valueX')\]


and

    \[get(prob,'propertyX').\]

The following table provides an overview of properties that can be set in the IQC-analysis.

PropertyDescription
ParserIt is possible to select either one of the following parsers:
1. ‘LMIlab’ (default)
2. ‘Yalmip’

Note: It is emphasized that the use of Yalmip in combination with whichever solver sometimes seems less reliable if compared to the use of LMIlab.
To this end, it is always recommended to perform a post-solution check to confirm that a solution is indeed feasible (see Property SolChk for more details).
SolverIf selecting LMIlab, the Matlab solvers mincx, and feasb are used to solve the minimization and feasibility problem respectively.

On the other hand, if using Yalmip, you can consider various solvers, such as e.g., mosek, sdpt3, sedumi, etc. The reader is referred to https://yalmip.github.io/allsolvers/ for an overview of solvers that are supported.
gmax‘gmax’ specifies the maximum worst-case performance value (default = 1e4).
FeasbRad‘FeasbRad’ specifies the feasibility radius (default = 1e9).
RelAcc‘RelAcc’ is an LMIlab option that specifies the relative accuracy on the computed optimal value (default = 1e-6).
MaxNumIter‘MaxNumIter’ is an LMIlab option that specifies the maximum number of iterations that can be performed by the optimization procedure (default = 800).
Terminate‘Terminate’ is an LMIlab option that helps speeding up the termination. If set to an integer value J>0, the code terminates when the objective c^Tx has not decreased by more than the desired relative accuracy during the last J iterations.
Display‘Display’ allows to turn on/off the trace of execution of the optimization procedure (default = ‘off’).
InitThe option ‘Init’ can be used to specify an initial condition for the LMI optimization problem (default = []).
eps‘eps’ allows to enforce strict LMI by a small nonnegative constant (default = 1e-9)
SolChk‘SolChk’ allows to verify whether an obtained LMI solution is indeed feasible (default = ‘off’)
Pi11posTo improve the conditioning of the IQC-multiplier sub-block \Pi_{11}, it is possible to include the positivity constraint

    \[\Pi_{11}(i\omega)\succ Pi11pos\cdot I\ \ \forall\omega\in\mathbb{R}\cup\{\infty\}.\]


To do so, one can specify ‘ Pi11pos’ (default = 0).

Note: \Pi_{11} is always positive (semi) definite on the imaginary axis. The reason to include this constraint is to enforce its strictness by means of the non-negative constant ‘Pi11pos’. This option is relevant for the synthesis algorithms presented here.

Previous page