Defines Popov IQCs for sector nonlinearities and parametric uncertainty (any size of the input signal).





Let \(w = \varphi(v)\) or \(w = \delta v\), where \(\varphi\) is a memoryless nonlinearity (w, v scalar) and where \(\delta\) is an uncertain constant parameter (w, v of any size). The iqc_popov_vect command defines the following set of IQCs

$$ \left\langle w,\wedge\frac{dv}{dt}\right\rangle \geq 0,$$

where \(\wedge\) is a symmetric n x n matrix with

• \(\wedge > 0\) if sign='+',

• \(\wedge < 0\) if sign='-',

• \(\wedge\) is unconstrained if sign='0', which is default.



v Input to nonlinearity/uncertain parameter.

sign Defines the sign of the Popov parameter Λ.


w Output from nonlinearity/uncertain parameter.

Lambda The Popov parameter Λ.


Consider the system

$$ \dot{x}=(A+\delta BC)x,\quad x(0)=x_{0},$$

where \(\delta \in [-1, 1]\) is an uncertain parameter and

$$\begin{array}{l} A= \begin{bmatrix} -0.37 & 0.20 & 0.15\\ -0.24 & -0.65 & 0.51\\ 0.09 & -0.53 & -0.60 \end{bmatrix},\quad B=\begin{bmatrix} -0.14 & 0\\ 0.11 & -0.10\\ 0 & -0.83 \end{bmatrix}\\C=\begin{bmatrix} 0.15 & 0 & 0\\ 0 & 0.8 & 0.4 \end{bmatrix}\end{array}$$

Figure 1: System on equivalent block diagram form.

We want to investigate stability of the system. The system can be represented as in the block diagram in Figure 1, where f represents the contribution from the initial condition (\(f = Ce^{At} x_{0}\), for \(t \geq 0\) and 0 otherwise). If the gain from f to v (or to w) is bounded then we also know that the original system is stable. We use a combination of the Popov iqc generated by iqc_poppov_vect and the multivariable sector IQC obtained from iqc tvscalar, i.e., the full \(\Pi\)-matrix is on the form

$$ \Pi(j\omega) = \begin{bmatrix} X & Y-j\omega \wedge\\ Y+j\omega \wedge & -X \end{bmatrix}$$

The command sequence below gives the result gain= 7.768, which implies that the system is stable. Note that we need to filter f in order to make v differentiable. This is a requirement in order to use the Popov IQC.

>>A=[-0.37 0.20 0.15;-0.24 -0.65 0.51;0.09 -0.53 -0.60];

>>B=[-0.14 0;0.11 -0.10;0 -0.83];

>>C=[0.15 0 0;0 0.8 0.4];



>>s=tf([1 0],1);








See also

iqc_sector, iqc_monotonic, iqc_slope, iqc_slope_odd, iqc_polytope_stvp