H∞ tuning of fixed-structure 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 closed-loop transfer function modeled by CL0. The model CL0 represents a closed-loop control system that includes tunable components such as controllers or filters. CL0 can also include weighting functions that capture design requirements.
[C,gamma,info] = hinfstruct(P,C0,options) tunes the parametric controller blocks C0. This tuning minimizes the H∞ norm of the closed-loop 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.
Generalized state-space (genss) model describing the weighted closed-loop 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.
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:
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 fixed-order 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.
Set of options for hinfstruct. Use hinfstructOptions to define options. For information about the available options, see the hinfstructOptions reference page.
Tuned version of the generalized state-space (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.
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.
Best achieved value for the closed-loop 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.
Data structure array containing results from each optimization run. The fields of info are:
hinfstruct is related to hinfsyn, which also uses H∞ techniques to design a controller for a MIMO plant. However, unlike hinfstruct, hinfsyn imposes no restriction on the structure and order of the controller. For that reason, hinfsyn always returns a smaller gamma than hinfstruct. You can therefore use hinfsyn to obtain a lower bound on the best achievable performance.
hinfstruct uses specialized nonsmooth optimization techniques to enforce closed-loop stability and minimize the H∞ norm as a function of the tunable parameters. These techniques are based on the work in .
 P. Apkarian and D. Noll, "Nonsmooth H-infinity Synthesis," IEEE Transactions on Automatic Control, Vol. 51, Number 1, 2006, pp. 71-86.
 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. 287-293.