Tim Mitchell

ROSTAPACK: RObust STAbility PACKage

HEC converging
Diagrammatic representation of Hybrid Expansion-Contraction (HEC), implemented by getStabRadBound, converging to a locally optimal approximation, indicated by the blue point.

ROSTAPACK (pronounced rost-a-pack, with rost rhyming with cost, frost, lost) is a library implemented in MATLAB for computing or approximating robust stability measures of linear dynamical systems with input and output.

The main computational routines included in ROSTAPACK v2.0 are as follows:

The first two routines are intended for large-scale problems, where it would be prohibitively expensive to use exact methods; it is assumed that fast matrix-vector products can be done with the system matrix A (and to a much lesser degree, matrices B, C, and D).

Corresponding fast exact methods for computing the H-infinity norm or complex stability radius are planned for the v3.0 release.

How to install and use ROSTAPACK

  1. Download the latest version of ROSTAPACK on GitLab (v2.0).
  2. The only installation task is to add either ROSTAPACK/main or ROSTAPACK/large-scale subfolders as desired to the search path in MATLAB. If you frequently use ROSTAPACK, you may wish to add these to your startup.m file.
  3. When using the large-scale routines, i.e. getStabRadBound and specValSetBound, it is recommended to also download and install the latest version of eigsPlus. However, the ROSTAPACK large-scale routines can also be used without installing eigsPlus by setting

    opts.eig_solver_opts.use_default_eigs = true;

    Note: eigsPlus requires that the md5 and patch commands be available on the system path and callable from within MATLAB. On Windows, one will likely need to install these commands and do some setup work.

  4. A general overview of ROSTAPACK and its routines is given in the USAGE_AND_CITING.pdf document found in the main ROSTAPACK folder.
  5. To read the detailed documentation for the main computational routines, enter: help getStabRadBound
    help specValSetBound
    help specValSet
  6. To read the detailed documentation for their respective user-tunable parameters, enter: help getStabRadBoundOptions
    help specValSetBoundOptions
    help specValSetOptions

Citing

Instructions for citing ROSTAPACK (and the relevant papers describing the underlying algorithms) are given in USAGE_AND_CITING.pdf document found in the main ROSTAPACK folder.

License

ROSTAPACK is licensed under the GNU Affero General Public License, version 3.

ROSTAPACK contains four minor subroutines that are licensed under the GNU General Public License, version 3. These subroutines, which are identified by their GPL v3 license headers, are code derived from the PSAPSR package, specifically the v1.3-1.4 modified branch.