hinfstruct

H tuning of fixed-structure controllers

Syntax

CL = hinfstruct(CL0)
[CL,gamma,info] = hinfstruct(CL0)
[CL,gamma,info] = hinfstruct(CL0,options)
[C,gamma,info] = hinfstruct(P,C0,options)

Description

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.

[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 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.

Input Arguments

CL0

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.

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:

  • In MATLAB®, model the fixed elements of your control system as numeric LTI models. Then, use block-diagram building functions (such as connect and feedback) to build P from the modeled components. Also include any weighting functions that represent your design requirements.

  • If you have a Simulink® model of your control system and have Simulink Control Design™, use linlft to obtain a linear model of the fixed elements of your control system. The linlft command linearizes your Simulink model, excluding specified Simulink blocks (the blocks that represent the controller elements you want to tune). If you are using weighting functions to represent your design requirements, connect them in series with the linear model of your plant to obtain P.

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 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.

options

Set of options for hinfstruct. Use hinfstructOptions to define options. For information about the available options, see the hinfstructOptions reference page.

Output Arguments

CL

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.

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 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.

info

Data structure array containing results from each optimization run. The fields of info are:

  • Objective — Minimum H norm value for each run.

    When RandomStarts = 0, Objective = gamma.

  • Iterations — Number of iterations before convergence for each run.

  • TunedBlocks — Tuned control design blocks for each run.

    TunedBlocks differs from C in that C contains only the result from the best run. When RandomStarts = 0, TunedBlocks = C.

More About

expand all

Tips

  • 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.

Algorithms

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 [1].

hinfstruct computes the H norm using the algorithm of [2] and structure-preserving eigensolvers from the SLICOT library. For more information about the SLICOT library, see http://slicot.org.

References

[1] P. Apkarian and D. Noll, "Nonsmooth H-infinity Synthesis," IEEE Transactions on Automatic Control, Vol. 51, Number 1, 2006, pp. 71-86.

[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. 287-293.

Was this topic helpful?