# How can I compute structured singular value with repeated full complex blocks as allowable structured uncertainty

4 views (last 30 days)

Show older comments

In our recent work we built a feedback interconnection loop like this scheme between the transfer function H_nabla and structured uncertainty \widehat{u}_{\Xi}, and our motivation is to analyze the amplification of potentially unstable coherent structures in wall-bounded flows by computing the structured singular value of frequency response operator H_nabla.

Here the uncertainty set is composed of three N_y*3N_y identical non-square full complex matrices -\widehat{u}_{\xi}^{T}, where N_y is the number of Chebyshev collocation points set in our work. We looked at the instruction text of mussv in MATLAB, but find that the current version of mussv did not contain any input parameters to indicate the involvement of repeated full blocks. Then we turned to the original article about the algorithm for the computation of the lower bound of mu, still it was kind of obscure to understand how to extend the method to the scenarios within repeated complex blocks.

Personally I hope that it only takes several easy steps to address this problem. Could someone help us?

### Answers (1)

Paul
on 13 Aug 2022

I think the model can be refactored so that instead of having three, Ny x 3*Ny full block uncertainties you have 3*Ny^2 diagonal uncertainties each with three repeated scalars.

For example, suppose we have a single, 2 x 3 full block of uncertianty with H being a 3 x 2 transfer function matrix.

Define the full block:

U = sym('u',[2 3])

Define the following matrices

L = [1 0 1 0 1 0;0 1 0 1 0 1];

R = [1 1 0 0 0 0;0 0 1 1 0 0;0 0 0 0 1 1].';

Then it is true that we can recover U from its diagnolization by

Ud = diag(U(:))

L*Ud*R

Therefore, we can recast our model based on H and U to a model based on Hd and Ud, where Hd is

Hd = R*H*L;

which is what we'd use for the mussv anlaysis with 6 scalar uncertainties defined by the diagonal of Ud.

From here, it seems like one could use bkdiag on L and R multiple times to diagnolize the repeated blocks.

For example, with 2 repeated blocks

U2 = blkdiag(U,U)

Ud = diag([U(:);U(:)])

L = blkdiag(L,L);

R = blkdiag(R,R);

L*Ud*R

From here, the only thing left to do is apply a permutation matrix, P, to either post-multiply L or pre-mutiply R so that the repeated unceratainties are next to each other on the diagonal. For example, for the former we'd have to find P s.t.

P*diag([u1_1 u1_1 u2_1 u2_1 u1_2 u1_2 etc.]) = Ud

Then we'd have

Hd = R*H*L*P

for the mussv analysis with 6 uncertainty blocks, each with a twice-repeated scalar.

##### 2 Comments

Paul
on 14 Aug 2022

### See Also

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!