HIFOO 1.5 Structured control of linear systems with non-trivial feedthrough

Thesis abstract:
Burke et al. introduced the Matlab package HIFOO (H-Infinity Fixed Order Optimization) in 2006
with the main goal of providing a powerful, yet user-friendly tool for computing  reduced-
order controllers of linear systems. Built upon powerful methods for non-convex and
non-smooth optimization, HIFOO attempts to compute controllers which not only stabilize
the given plant, but also locally optimize one of several provided objective functions.
In this thesis, we will present two new extensions to HIFOO. The first allows the specified
plant to contain a non-trivial feedthrough term, allowing a direct connection between the
control input and the system output that is important in many realistic, physical processes.
The second extension allows the user to require specific structure in the state-space rep-
resentation of the controller matrices. Although well-known techniques exist to convert
systems with a non-trivial feedthrough to systems with a feedthrough equal to zero, these
techniques destroy any structure in the original controller.


HIFOO 1.5 addresses the same control design problems as version 1.0, including:
  • 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,
  • plus additional support for:
  • plants with nontrivial feedthrough,
  • user-specified controller structure.
  • User's guide to HIFOO 1.5

    A brief description of the main features of HIFOO 1.0 appears in a paper published in the proceedings of the IFAC Symposium on Robust Control Design in Toulouse, France, July 2006:
  • J. V. Burke, D. Henrion, A. S. Lewis, M. L. Overton. HIFOO - A MATLAB package for fixed-order controller design and H-infinity optimization.


    A detailed description of the new features found in HIFOO 1.5 is given in the following (see Chapter 3, pg 15):
  • Marc Millstone. HIFOO1.5: Structured control of linear systems with a non-trivial feedthrough. Master's Thesis. Department of Mathematics, Courant Institute of Mathematical Sciences, New York University, September 2006.

  • Briefly:
    When calling HIFOO, the user, in addition to providing the order of the desired controller, may now specify a structure array of matrices corresponding to the controller variables Ahat, Bhat, Chat and Dhat. Specifically, the user may pass a structure in the field options.structure, with subsequent fields Ahat, Bhat, Chat and Dhat that specifies which elements of the controller matrices HIFOO is free to optimize over and which are fixed to zero. The user may specify these matrices as either binary or logical matrices; however, HIFOO converts binary matrices to logical variables for internal use. For convenience, if a given matrix is not specified, HIFOO assumes that all entries of the matrix are free to be optimized over and sets the corresponding structure matrix to be a logical matrix consisting of all ones. [from Millstone, Chapter 3]


    For example, if the user wished to find a order 1 controller for the CompLeib problem 'AC1', which had a diagonal transfer function, the following Matlab sessions would be sufficient to guarantee that Chat(sI-Ahat)-1 Bhat + Dhat is diagonal:
    >> STRUCTURE.Bhat = [1 0 0];
    >> STRUCTURE.Chat = [1;0;0];
    >> STRUCTURE.Dhat = eye(3,3);
    >> options.structure = STRUCTURE;
    >> hifoo('AC1',1,options)
    Observe that as Ahat has no constraints on its structure, it is not necessary to specify its structure.

    Additional Papers and Reports Related to HIFOO