Documentation 
H_{∞} tuning of fixedstructure controllers
CL = hinfstruct(CL0)
[CL,gamma,info]
= hinfstruct(CL0)
[CL,gamma,info]
= hinfstruct(CL0,options)
[C,gamma,info]
= hinfstruct(P,C0,options)
CL = hinfstruct(CL0) tunes the free parameters of the tunable genss model CL0. This tuning minimizes the H_{∞} norm of the closedloop transfer function modeled by CL0. The model CL0 represents a closedloop control system that includes tunable components such as controllers or filters. CL0 can also include weighting functions that capture design requirements.
[CL,gamma,info] = hinfstruct(CL0) returns gamma (the minimum H_{∞} norm) and a data structure info with additional information about each optimization run.
[CL,gamma,info] = hinfstruct(CL0,options) allows you to specify additional options for the optimizer using hinfstructOptions.
[C,gamma,info] = hinfstruct(P,C0,options) tunes the parametric controller blocks C0. This tuning minimizes the H_{∞} norm of the closedloop system CL0 = lft(P,C0). To use this syntax, express your control system and design requirements as a Standard Form model, as in the following illustration:
P is a numeric LTI model that includes the fixed elements of the control architecture. P can also include weighting functions that capture design requirements. C0 can be a single tunable component (for example, a Control Design Block or a genss model) or a cell array of multiple tunable components. C is a parametric model or array of parametric models of the same types as C0.
CL0 
Generalized statespace (genss) model describing the weighted closedloop transfer function of a control system. hinfstruct minimizes the H_{∞} norm of CL0. CL0 includes both the fixed and tunable components of the control system in a single genss model. The tunable components of the control system are represented as Control Design Blocks, and are stored in the CL0.Blocks property of the genss model. 
P 
Numeric LTI model representing the fixed elements of the control architecture to be tuned. P can also include weighting functions that capture design requirements. You can obtain P in two ways:

C0 
Single tunable component or cell array of tunable components of the control structure. Each entry in C0 represents one tunable element of your control architecture, such as a PID controller, a gain block, or a fixedorder transfer function. The entries of C0 can be Control Design Blocks or genss models. For more information and examples of creating tunable models, see Models with Tunable Coefficients in the Control System Toolbox™ User's Guide. 
options 
Set of options for hinfstruct. Use hinfstructOptions to define options. For information about the available options, see the hinfstructOptions reference page. 
CL 
Tuned version of the generalized statespace (genss) model CL0. The hinfstruct command tunes the free parameters of CL0 to achieve a minimum H_{∞} norm. CL.Blocks contains the same types of Control Design Blocks as CL0.Blocks, except that in CL, the parameters have tuned values. To access the tuned parameter values, use getValue. You can also access them directly in CL.Blocks. 
C 
Tuned versions of the parametric models C0. When C0 is a single parametric model, C is a parametric model of the same type, with tuned parameter values. When C0 is a cell array of parametric models, C is also a cell array. The entries in C are parametric models of the same type as the corresponding entries in C0. 
gamma 
Best achieved value for the closedloop H_{∞} norm. In some cases, hinfstruct performs more than one minimization run (when the hinfstructOptions option RandomStarts > 0). In such cases, gamma is the smallest H_{∞} norm of all runs. 
info 
Data structure array containing results from each optimization run. The fields of info are:

[1] P. Apkarian and D. Noll, "Nonsmooth Hinfinity Synthesis," IEEE Transactions on Automatic Control, Vol. 51, Number 1, 2006, pp. 7186.
[2] Bruisma, N.A. and M. Steinbuch, "A Fast Algorithm to Compute the H_{∞}Norm of a Transfer Function Matrix," System Control Letters, 14 (1990), pp. 287293.
genss  getValue  hinfstructOptions  hinfsyn  ltiblock.gain  ltiblock.pid  ltiblock.ss  ltiblock.tf