# cmsclsyn

Approximately solve constant-matrix, upper bound µ-synthesis problem

## Syntax

```[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure);
[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure,opt);
[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure,opt,qinit);
[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure,opt,'random',N)
```

## Description

`cmsclsyn` approximately solves the constant-matrix, upper bound µ-synthesis problem by minimization,

`${\mathrm{min}}_{Q\in {C}^{r×t}}{\mu }_{\Delta }\left(R+UQV\right)$`

for given matrices RCnxm, UCnxr, VCtxm, and a set Δ ⊂ Cmxn. This applies to constant matrix data in R, U, and V.

`[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure)` minimizes, by choice of Q. `QOPT` is the optimum value of Q, the upper bound of `mussv(R+U*Q*V,BLK), BND`. The matrices `R,U` and` V` are constant matrices of the appropriate dimension.` BlockStructure` is a matrix specifying the perturbation blockstructure as defined for `mussv`.

`[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure,OPT)` uses the options specified by `OPT` in the calls to `mussv`. See `mussv` for more information. The default value for `OPT` is `'cUsw'`.

`[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure,OPT,QINIT)` initializes the iterative computation from Q = `QINIT`. Because of the nonconvexity of the overall problem, different starting points often yield different final answers. If `QINIT` is an N-D array, then the iterative computation is performed multiple times - the `i`'th optimization is initialized at Q = `QINIT(:,:,i)`. The output arguments are associated with the best solution obtained in this brute force approach.

`[QOPT,BND] = cmsclsyn(R,U,V,BlockStructure,OPT,'random',N)` initializes the iterative computation from `N` random instances of `QINIT`. If `NCU` is the number of columns of `U`, and `NRV` is the number of rows of `V`, then the approximation to solving the constant matrix µ synthesis problem is two-fold: only the upper bound for µ is minimized, and the minimization is not convex, hence the optimum is generally not found. If `U` is full column rank, or `V` is full row rank, then the problem can (and is) cast as a convex problem, [Packard, Zhou, Pandey and Becker], and the global optimizer (for the upper bound for µ) is calculated.

## Algorithms

The `cmsclsyn` algorithm is iterative, alternatively holding Q fixed, and computing the `mussv` upper bound, followed by holding the upper bound multipliers fixed, and minimizing the bound implied by choice of Q. If `U` or `V` is square and invertible, then the optimization is reformulated (exactly) as an linear matrix inequality, and solved directly, without resorting to the iteration.

## References

Packard, A.K., K. Zhou, P. Pandey, and G. Becker, “A collection of robust control problems leading to LMI's,” 30th IEEE Conference on Decision and Control, Brighton, UK, 1991, p. 1245–1250.

## Version History

Introduced before R2006a