Improve Results of Mu Synthesis
You can sometimes improve the results of robust controller synthesis with
        musyn. Even if the default options yield good results, by changing
      certain options, you might be able to: 
- Find a controller that yields better robust performance. 
- Find a lower order controller that yields similar robust performance. 
Consider trying several of the techniques described here to see whether the results you
      obtain from musyn can be improved.
Mixed-μ Synthesis for Real Uncertainty
By default, musyn treats all uncertainties as complex
        uncertainties, even those represented by real parameters. For ureal blocks,
          musyn assumes that each real parameter has an imaginary part that can
        vary by the same amount as the real part. This assumption simplifies the computation, but
        yields a more conservative estimate of the robust performance of the system. 
When you have real uncertainty, you can instead use mixed-μ synthesis, which explicitly takes into account the fact that some uncertain parameters are limited to real values. Try using mixed-μ synthesis to see if it improves the performance relative to the controller you obtain without it.
To use mixed-μ synthesis, set the 'MixedMU' option
        of musynOptions to
          'on'. For an example that illustrates the benefit of
          mixed-μ synthesis, see Control of a Spring-Mass-Damper System Using Mixed-Mu Synthesis.
Mixed-μ synthesis complicates the computation and can result in higher order controllers. The techniques in Reduce Controller Order can help simplify the resulting controller.
Reduce Controller Order
For unstructured controller design, musyn can return relatively
        high-order controllers. musyn uses frequency-dependent scaling matrices
        that are fit by rational functions. (See D-K Iteration Process.) The order required to
        fit the scalings and the number of uncertain blocks in your system contribute to the order
        of the final optimized controller. Therefore, after using musyn for an
        initial robust controller design, it can be useful to search for a lower order controller
        that achieves similar robust performance. Among approaches to obtaining a lower order
        controller, you can:
Reduce Order of Returned Controller
One technique is to use model-reduction commands to reduce the controller that
            musyn returns, and find the lowest order approximation that
          achieves similar performance. For an example illustrating this approach, see the musynperf
          reference page. 
Even if the initial controller you obtain with musyn is not
          reducible in a way that preserves robust performance, a lower order controller that
          achieves the same performance might exist. Consider trying the other techniques to see if
          varying parameters of the musyn computation can help you find such a
          controller. 
Lower Order Fixed-Structure Controller
 This approach takes advantage of the ability of musyn to tune
          fixed-structure controllers. Suppose that you use musyn to design a
          full-order, centralized controller K for an uncertain plant
            P with nmeas measurement signals and
            ncont control signals. You can create a fixed-order, tunable
          state-space model of a lower order than K, and use
            musyn again to tune the free parameters of that model. If the new
          controller achieves robust performance close to that of the unstructured controller, try
          again with an even lower order tunable state-space model. For instance, suppose
            K is a 10th-order controller returned by musyn
          for the plant P. The following commands create and tune a fifth-order
          state-space controller by forming the closed-loop uncertain system with the tunable
          controller and passing it to musyn.
C0 = tunableSS('C0',5,nmeas,ncont);
CL0 = lft(P,C0);
[CL,CLperf,info] = musyn(CL0);For a simple example, see Robust Tuning of Fixed-Structure Controller on the
            musyn reference page.
Reduce Maximum Scaling Order
For each iteration, musyn fits each entry in the
            D and G scaling matrices by a rational function of
          automatically selected order. The higher the order of these functions, the higher the
          order of the resulting controller. By default, the maximum order is 5 for
            D scaling, and 2 for the G scaling matrices. If
          these defaults yield a controller with good robust performance, try lowering the maximum
          order to see if musyn returns a lower-order controller with similar
          performance. To change the maximum order, use the 'FitOrder' option of
            musynOptions.
Diagonal Scalings for Repeated Blocks
If your system has repeated uncertain parameters, you can restrict the D and G scalings so they are diagonal, which can result in a lower order unstructured controller. For more information, see Repeated Parameter Blocks.
Repeated Parameter Blocks
An uncertain parameter can occur multiple times in a given model. For example, the
        following code creates an uncertain state-space model that has two occurrences each of the
        uncertain parameters p1 and p2.
p1 = ureal('p1',10); p2 = ureal('p2',3); A = [-p1 p2;0 -p1]; B = [-p2; p2]; C = [1 0;1 1]; D = [0;0]; sys = ss(A,B,C,D)
sys =
  Uncertain continuous-time state-space model with 2 outputs, 1 inputs, 2 states.
  The model uncertainty consists of the following blocks:
    p1: Uncertain real, nominal = 10, variability = [-1,1], 2 occurrences
    p2: Uncertain real, nominal = 3, variability = [-1,1], 2 occurrences
Type "sys.NominalValue" to see the nominal value, "get(sys)" to see all properties,
and "sys.Uncertainty" to interact with the uncertain elements.Multiple occurrences of uncertain parameters can increase the order of the rational fit
        functions for the D and G scalings. Therefore, they
        can increase the number of states in the controller returned by musyn.
        You can mitigate this effect of repeated parameters in several ways:
Use Diagonal Scalings
By default, musyn by default uses full matrices for the
            D and G scalings of repeated blocks. Full scaling
          matrices can have frequency-dependent entries both on and off the diagonal. Fitting all of
          these entries can result in high controller order. If musyn instead
          uses diagonal scaling, then fewer independent fit functions are needed, which can reduce
          the controller order. 
Diagonal scaling, is equivalent to treating each repeated block as an independent
          instance of the uncertain parameter. Therefore, full scaling is less conservative and can
          yield better robust performance. However, to reduce the  controller order, you can try
          diagonal scaling and see whether musyn can still find an adequate
          controller using the more conservative estimation of the μ upper
          bound.
To specify diagonal scaling for repeated blocks, use the 'FullDG'
          option of musynOptions.
Reduce Repetitions in the Plant
Use simplify to reduce the number of repeated
          parameters in the plant before calling musyn. The
            simplify command tries to remove redundant instances of uncertain
          blocks.
Use systune
If you have more than about five repeated instances of an uncertain parameter and have
          no dynamic uncertainty (no ultidyn blocks), consider using
            systune instead of musyn. The
            systune command tunes fixed-structure controller elements. It can
          perform robust controller tuning without degradation caused by large numbers of repeated
          blocks. For more information on ways to perform robust tuning with
            systune, see Robust Tuning Approaches.