HIFOO: H-Infinity Fixed Order Optimization
A MATLAB package for fixed-order controller design

H-infinity controller design for linear systems is a difficult, nonconvex and typically nonsmooth (nondifferentiable) optimization problem when the order of the controller is fixed to be less than that of the open-loop plant, a typical requirement in e.g. embedded aerospace control systems.

HIFOO is aimed at solving fixed-order stabilization and local optimization problems. It depends on a hybrid algorithm for nonsmooth, nonconvex optimization based on several techniques, namely quasi-Newton updating, bundling and gradient sampling.

HIFOO Software Links

HIFOO 1.0 addresses the following control design problems:
  • fixed-order stabilization (including static output feedback stabilization),
  • fixed-order H-infinity local optimization,
  • fixed-order complex stability radius local optimization,
  • fixed-order stability margin (spectral abscissa) local optimization.
  • fixed-order robust stability margin (pseudospectral abscissa) local optimization.

    HIFOO 1.5 addresses the same design problems but allows the user to specify structure in the controller. It also allows problems with nontrivial feed-through.

    HIFOO 1.75 (used in our CDC 2008 paper, see below), supports strong stabilization and multiple plants

    HIFOO 2.0 (with extensions and a new interface) (link to source repository) (download zip file)

  • HIFOO 3.0 (with extensions to mixed H-infinity/H2 performance and bug fixes to HIFOO 2.0)
    HIFOO 3.1 (with a few improvements to HIFOO 3.0)
    HIFOO 3.5 (allows controller variables to be fixed to nonzero values using options.struct)

    Papers and Reports Related to HIFOO (up to 2008)

    For an updated list click here.