Compute (skew-)$\mu$ upper bounds on a grid with LMI tools.
This routine computes a (skew-)$\mu$ upper bound for an interconnection between a nominal LTI system $M(s)$ and a block-diagonal operator $\Delta(s)= diag\left(\Delta_1(s),\dots,\Delta_N(s)\right)$. The bound is computed on a frequency grid $(\omega_k)_{k\in [1,m]}$ and the resulting $D$ and $G$ scaling matrices have the same values for all frequency points.
[ubnd,D,G,S]=muub_lmi(M,blk{,options})
The first two input arguments are mandatory:
M |
2-D or 3-D numeric array describing the LTI system $M(s)$. M(:,:,k) corresponds to the frequency response $M(j\omega_k)$. |
blk |
Matrix defining the structure of the block-diagonal operator $\Delta(s)=diag\left(\Delta_1(s),...,\Delta_N(s)\right)$. Its first 2 columns must be defined as follows for all $i=1,...,N$:
A third column can be used to specify skew uncertainties:
If none, |
The third input argument options
is an optional structured variable with fields:
target |
The LMI solver stops if the (skew-)$\mu$ upper bound becomes lower than target. The default value is options.target=0 . |
epsilon |
The constraint $D>\epsilon I$ is considered instead of $D>0$. The default value is options.epsilon=1e-8 . |
lmiopt |
Tuning parameters of the LMI solver (see the routine gevp or mincx of the Robust Control Toolbox). The default value is options.lmiopt=[0.02 100 1e10 5 1] . |
ubnd |
(Skew-)$\mu$ upper bound $\beta$. |
D |
$D$ scaling matrix. |
G |
$G$ scaling matrix. |
S |
$S$ matrix (for skew-$\mu$ problems only). |
In case of a classical $\mu$ problem, the output arguments satisfy:
$$M^*(j\omega_k)DM(j\omega_k)+j(GM(j\omega_k)-M^*(j\omega_k)G)\le\beta^2D\ \ \ \textrm{for all}\ \ \ k=1,\dots,m$$
where the $\mu$ upper bound $\beta$ is minimized.
In case of a skew-$\mu$ problem, the output arguments satisfy:
$$M^*(j\omega_k)DM(j\omega_k)+j(GM(j\omega_k)-M^*(j\omega_k)G)\le S(\beta)D\ \ \ \textrm{for all}\ \ \ k=1,\dots,m$$
where the skew-$\mu$ upper bound $\beta$ is minimized, and $S(\beta)=diag\left(S_1(\beta),\dots,S_N(\beta)\right)$ is a block-diagonal matrix such that:
blk(i,3)=0
,
blk(i,3)=1
.
sys=rss(20,14,14)/10;
M=freqresp(sys,1:5);
1. Computation of a $\mu$ upper bound
blk=[-2 0 1;3 0 1;3 3 1;-1 0 1;1 0 1;1 1 1;-3 0 1];
[ubnd,D,G]=muub_lmi(M,blk);ubnd
for k=1:5
$\ \ \ $ max(real(eig(M(:,:,k)'*D*M(:,:,k)+1i*(G*M(:,:,k)-M(:,:,k)'*G)-ubnd^2*D)))
end
All eigenvalues are negative at each considered frequency.
2. Computation of a skew-$\mu$ upper bound
blk=[-2 0 0;3 0 0;3 3 1;-1 0 0;1 0 1;1 1 0;-3 0 1];
[ubnd,D,G,S]=muub_lmi(M,blk);ubnd
for k=1:5
$\ \ \ $ max(real(eig(M(:,:,k)'*D*M(:,:,k)+1i*(G*M(:,:,k)-M(:,:,k)'*G)-S*D)))
end
All eigenvalues are negative at each considered frequency.