Robustness analysis with delay uncertainties

The file Demo_003.m is found in the IQClab’s folder demos. This demo performs a \mu– and IQC-robustness analysis for an uncertain plant that is affected by a delay uncertainty. Here it is possible to vary several inputs:

  1. xtrIQC
    1. Use the standard IQC-multiplier, or
    2. Use an extended one with an additional IQC-constraint
  2. Performance metric
    1. Induced L_2-gain
    2. Robust stability test

The following uncertain plant was taken from [15].

% Define plant
s            = tf('s');
G            = ss(4/(s^2+0.1*s+1));
Gd           = ss(10/(s+0.1));
We           = 2/3*ss((s+3.674)^2/(s+0.03)^2);
Wu           = ss((s+10)/(s+1e4));
systemnames  = 'G Gd';
inputvar     = '[p;d;r;u]';
outputvar    = '[Gd;r-p-Gd;u;r-p-Gd]';
input_to_G   = '[u]';
input_to_Gd  = '[G+d]';
cleanupsysic = 'yes';
olic         = sysic;
wolic        = ssbal(blkdiag(1,We,Wu,1)*olic);
[K,CL,gamma] = hinfsyn(wolic(2:end,2:end),1,1);
M            = minreal(lft(wolic,K));

In this demo, we assume that the uncertainty block is defined by the \Delta(s,\tau)=e^{-s\tau}-1 with \tau\in[0,\tau_\mathrm{max}] and \tau_\mathrm{max} being the maximum time-delay.

The demo file Demo_003.m allows to run an IQC-analysis for various values of \alpha\in[0,0.05] and within the file one can change the inputs mentioned above. For illustration purposes, the following 4 lines of code specify an IQC-analysis for the uncertain plant \Delta(\tau)\star M, with \tau\in[0,\tau_\mathrm{max}] and \tau_\mathrm{max}=0.04, and the induced L_2-gain as performance metric. In addition, the following parameters are considered:

  • Length of the basis function: 3
  • Extra IQC-constraint: ‘yes’
  • Solution check: ‘on’
  • Enforce strictness of the LMIs: \epsilon=1e-8
% M as above

% Define uncertainty block
de = iqcdelta('de','InputChannel',1,'OutputChannel',1, 'StaticDynamic','D','DelayType',1,'DelayTime',0.04);

% Assign IQC-multiplier to uncertainty block
de = iqcassign(de,'udel','Length',3 ,'AddIQC','yes');

% Define performance block
pe = iqcdelta('pe','ChannelClass','P','InputChannel',2, 'OutputChannel',2,'PerfMetric','L2');

% Perform IQC-analysis
prob = iqcanalysis(M,{de,pe},'SolChk','on','eps',1e-8);

If running the IQC analysis in Demo_003.m for

  • xtrIQC: ‘No’ (Option 1.1)
  • Induced L_2-gain performance (Option 2.1)

you obtain the worst-case induced L_2-gain for increasing values of \tau_\mathrm{max}\in[0,005]computed by the \mu-tools (command: wcgain) and the IQC-tools for different lengths of the basis function. This yields the results shown in the following. As can be seen, the IQC-analysis produces worst-case induced L_2-gains (i.e., H_\infty-norms in this example), which identical to the \mu-analysis. In addition, dynamic IQC-multipliers seem not to have an advantage over static ones.

Worst-case induced L_2-gain for increasing maximum delay values \alpha=\tau_\mathrm{max} and different lengths of the basis function (scenario: without extra IQC-constraint).

For comparison reasons, if running the IQC analysis in Demo_003.m for

  1. xtrIQC: ‘Yes’ (Option 1.2)
  2. Induced L_2-gain performance (Option 2.1)

the IQC-analysis clearly offers an advantage over the \mu-analysis at the cost of an extra computational load. This can be seen in the following figure.

Worst-case induced L_2-gain for increasing maximum delay values \alpha=\tau_\mathrm{max} and different lengths of the basis function (scenario: with extra IQC-constraint).

Previous page