## iqc_slope

Purpose

Deﬁnes the Zames-Falb IQCs for a slope restricted nonlinearity, i.e., a nonlinearity satsifying some slope condition

$$\alpha(x_{1}-x_{2})^{2} \leq (\varphi(x_{1})-\varphi(x_{2}))(x_{1}-x_{2}) \leq \beta(x_{1}-x_{2})^{2},$$

where $$-\infty < \alpha \leq \beta < \infty$$

Synopsis

w==iqc_slope(v,a,N,alpha,beta)

[w,h0,H,x]=iqc_slope(v,a,N,alpha,beta)

Description

The IQCs are of the form

$$\langle -\alpha v+w,(h_{0}-H)(\beta v-w)\rangle \geq 0,$$

where $$h_{0} \geq 0$$, and

$$H(s)=\sum_{k=0}^{N}\frac{x_{k}}{(s+a)^{k+1}},$$

where a is a nonzero real number. The parameters $$h_{0}$$ and $$x_{k}$$ are subject to the constraints

(i) $$h(t)=\sum_{k=0}^{N}\textrm{sign}(a)x_{k}t^{k}e^{-at}/k! \geq \left\{ \begin{array}{l} 0,\quad \forall t \geq 0,\ if a>0,\\ 0,\quad \forall t \leq 0,\ if a<0, \end{array}\right.$$

(ii) $$H(0)=\sum_{k=0}^{N}\frac{x_{k}}{a^{k+1}} \leq h_{0}$$

We refer to the manual for information on the implementation of constraint (i) and (ii).

Inputs/Outputs

Inputs:

v        Input to nonlinearity.

a        Pole location for the multiplier H. Default a=1.

N        Length of the expansion that deﬁnes H. Default N=0.

alpha  Lower bound on slope. Default alpha=0.

beta   Upper bound on slope. Default beta=0.

Outputs:

w       Output from nonlinearity.

h0     The parameter h0 (optional).

H       The multiplier H (optional).

x       The decision variables (optional).

Example 1

In order to obtain more than one pole in H(s) call the iqc_slope command twice as

>>w==iqc_slope(v,a1,N1,alpha,beta);

>>w==iqc_slope(v,a2,N2,alpha,beta);

The constraints (i) and (ii) will be conservative in general except for the case when a1 and a2 have different signs. See the manual for a more thorough discussion.

Example 2

Figure 1: System with nonsymmetric saturation and white noise disturbance.

We will study disturbance rejection in the system in Figure 1. We assume that d is white over the frequency interval $$|\omega| \leq 100$$ and we want to compute the induced norm from d to y.  This gives a measure of how much the disturbance inﬂuences the output.  Note that the saturation is not an odd function.  This will be the case if the system represents a linearization around some nonzero equilibrium point. Let us consider the case when

$$G(s)=\frac{s+1}{s^{2}+0.5s+5}$$

and

$$G_{r}(s)=\frac{10s+10}{s+0.1}$$

The IQCβ commands below computes the gain to be gain=2.3340. It is interesting to compare with the case when there is no nonlinearity.

>>G=ss([-0.5 -5;1 0],[1;0],[1 1],0);

>>Gr=ss(-0.1,9,1,10);

>>abst_init_iqc;

>>w=signal;

>>b=100;

>>k=sqrt(b/pi);

>>d=iqc_white(1,b,[7.4,0.5,2.65,-0.25+2.2*i]);

>>v=-Gr*G*(k*d+w);

>>y=G*(k*d+w);

>>a=2.5

>>N=10

>>alpha=0;

>>beta=1;

>>w==iqc_slope(v,a,N,alpha,beta);

>>gain=iqc_gain_tbx(d,y)

Since the bandwidth of the noise is rather large we could expect to get a gain close to $$|| G/(1 + GG_{r} )||_{2} = 0.2261$$ (see section on iqc_white). It is interesting to note that the commands

>>Gcl=G/(1+Gr*G);

>>abst_init_iqc;b=100;

>>k=sqrt(b/pi);

>>d=iqc_white(1,b,[7.4,0.5,2.65,-0.25+2.2*i]);

>>y=Gcl*k*d;

>>gain=iqc_gain_tbx(d,y)

gives gain=0.2194. We therefore expect the IQC for the noise to be good and the gap between the linear case and the case when we have saturation is either (or both) due to the nonlinear effects or to poor choice of IQC for the nonlinearity.