Compute (skew)$\mu$ upper bounds for mixed perturbations.
This routine computes a (skew)$\mu$ upper bound for an interconnection between a nominal LTI system $M(s)$ and a blockdiagonal operator $\Delta(s)= diag\left(\Delta_1(s),\dots,\Delta_N(s)\right)$. A bound and associated $D$ and $G$ scaling matrices are first computed at a given frequency. The largest frequency interval on which they remain valid is then obtained. This strategy is repeated until the whole frequency range is covered which leads to a guaranteed upper bound. The considered stability region can be bounded either by the imaginary axis or by a truncated sector.
This routine can also be used to solve a worstcase $\mathcal{H}_\infty$ performance problem, which is nothing but a specific skew$\mu$ problem. A fictitious stable and proper realrational unstructured transfer matrix is first added between the output $y$ and the input $e$, and its size is then maximized under the constraint that the interconnection is stable $\forall\Delta(s)\in\mathcal{B}_{\bf\Delta}$. An example is given at the bottom of this page. In this case, the output argument ubnd
is a guaranteed upper bound on the worstcase $\mathcal{H}_\infty$ norm of the transfer matrix from $e$ to $y$.
[ubnd,wc,tab,pb]=muub_mixed(sys,blk{,options})
The first two input arguments are mandatory:
sys 
LTI object describing the nominal system $M(s)$. 
blk 
Matrix defining the structure of the blockdiagonal 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:
w0 
Starting frequency point in rad/s. The default value is options.w0=0 . 
freq 
Frequency interval $\Omega$ in rad/s on which the upper bound is to be computed. The default value is options.freq=[0 max([10*abs(eig(sys)) options.w0])]) . 
sector 
Vector $[\alpha\ \xi]$ or $[\alpha\ \xi\ \omega_c]$ characterizing the considered truncated sector (see display_sector for a complete description). The default value is options.sector=[0 0] , which means that the left half plane is considered. 
lmi 
If options.lmi=1 , the LMIbased characterization of a (skew)$\mu$ upper bound is used instead of the $\overline{\sigma}$based one for better accuracy. The default value is options.lmi=0 . Note that setting options.lmi=1 in the presence of highly repeated parametric uncertainties (i.e. blocks $\Delta_i(s)=\delta_iI_{n_i}$ with $n_i\ge 10$), may lead to high computational costs. 
trace 
Trace of execution. The default value is options.trace=1 . 
warn 
Warnings display. The default value is options.warn=1 . 
target 
Value of the upper bound above which the algorithm is interrupted. The default value is options.target=Inf . 
init 
Initial guess (typically a (skew)$\mu$ lower bound). The default value is options.init=0 . 
reg 
Regularization for real$\mu$ problems. The default value is options.reg=0.01 , i.e. 1% of complex uncertainty is added in case of convergence problems. 
tol 
At each iteration, the (skew)$\mu$ upper bound is increased by a factor of 1+options.tol before the interval on which the scaling matrices are valid is computed. The default value is options.tol=0.01 . 
maxiter 
Maximum number of iterations. The default value is options.maxiter=1000 . 
elim 
A pawl effect on $\mu$ is used to fasten the elimination technique if options.elim=1 . Better estimates of secondary peaks are obtained if options.elim=0 . The default value is options.elim=1 . 
smm 
Method for the iterative calls to mussv in case of a skew$\mu$ problem (1 $\Leftrightarrow$ fixedpoint algorithm, 2 $\Leftrightarrow$ dichotomy search). The default value is options.smm=1 . This option is ignored if options.lmi is nonzero. 
ubnd 
(Skew)$\mu$ upper bound on the considered frequency interval $\Omega$. 
wc 
Frequency in rad/s for which ubnd has been computed. 
tab 
Structured variable with fields (see plot_muub ):

pb 
Indicates a convergence problem when nonzero:

1. Computation of a $\mu$ upper bound
System with 46 states and 20 nonrepeated real parametric uncertainties:
load flexible_airplane
[ubnd,wc,tab]=muub_mixed(sys,blk);ubnd
Improvement of the result at the price of a higher computational time:
options.tol=0;
options.lmi=1;
[ubnd,wc,tab]=muub_mixed(sys,blk,options);ubnd
Computation on a limited frequency range:
options.freq=[0 10];
[ubnd,wc,tab]=muub_mixed(sys,blk,options);ubnd
2. Computation of a skew$\mu$ upper bound
System with 10 states and 3 uncertainties. The second one is kept inside the unit ball:
sys=rss(10,5,5);
sys=ss(sys.a0.1*eye(10),sys.b/10,sys.c/10,sys.d/100);
blk=[2 0 1;1 0 0;2 2 1];
[ubnd,wc,tab]=muub_mixed(sys,blk);ubnd
3. Computation of an upper bound on the worstcase $\mathcal{H}_\infty$ norm
System with 10 states and 2 uncertainties, which are both kept inside the unit ball. The third block of $\Delta(s)$ corresponds to the performance channel:
blk=[2 0 0;1 0 0;2 2 1];
[ubnd,wc,tab]=muub_mixed(sys,blk);ubnd
muub
muub_lmi
plot_muub
display_sector
[1]  G. Ferreres, JF. Magni and JM. Biannic, "Robustness analysis of flexible structures: practical algorithms", International Journal of Robust and Nonlinear Control, vol. 13, no. 8, pp. 715734, 2003. 
[2]  JM. Biannic and G. Ferreres "Efficient computation of a guaranteed robustness margin", in Proceedings of the 16th IFAC World Congress, Prague, Czech Republic, July 2005. 
[3]  C. Roos and JM. Biannic, "Efficient computation of a guaranteed stability domain for a highorder parameter dependent plant", in Proceedings of the American Control Conference, Baltimore, Maryland, July 2010, pp. 38953900. 