How can I compute structured singular value with repeated full complex blocks as allowable structured uncertainty
6 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?
2 Comments
Paul
on 12 Aug 2022
Hi Yu,
Can you provide just a bit more insight into what the three elements in the loop represent for someone who doesn't know anything about wall-bounded flows? I'm curious as to how such a problem results in an uncertainty model with three, repeated, complex full blocks.
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
Yes, I realized that this might be an issue but didn't, and still don't, understand the physics of the problem to have any additional insight as to how the u_i_j in each full block are related to each other or what physical quantity really needs to be minimized. I guess I hoped that having them all have the same magnitude might be an acceptable solution.
See Also
Categories
Find more on Dynamic System Models in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!