Software resources

One of the main aims of the TC-CACSD is to keep track of the latest developements in software tools for control system design. For this reason , in this section we list computer-aided tools developed by researcher for tackling control and optimization problems. If you want your software to be displayed here (or for any reasons want it removed), please contact the TC Chair.

CVX: Matlab Software for Disciplined Convex Programming

Description

CVX is a Matlab-based modeling system for convex optimization. CVX turns Matlab into a modeling language, allowing constraints and objectives to be specified using standard Matlab expression syntax.

In its default mode, CVX supports a particular approach to convex optimization called disciplined convex programming. Under this approach, convex functions and sets are built up from a small set of rules from convex analysis, starting from a base library of convex functions and sets. Constraints and objectives that are expressed using these rules are automatically transformed to a canonical form and solved.

CVX also supports geometric programming (GP) through the use of a special GP mode. Geometric programs are not convex, but can be made so by applying a certain transformation. In this mode, CVX allows GPs to be constructed in their native, nonconvex form, transforms them automatically to a solvable convex form, and translates the numerical results back to the original problem.

Authors

CVX was designed designed by Michael Grant and Stephen Boyd, with input from Yinyu Ye.

Link

The original version was developed and hosted at Stanford University. It is now hosted at CVX Research, Michael’s professional web site.

CVXGEN

Description

CVXGEN generates fast custom code for small, QP-representable convex optimization problems, using an online interface with no software installation. With minimal effort, turn a mathematical problem description into a high speed solver.

Using CVXGEN

  • Describe your LP or convex QP
    Describe your small, quadratic program (QP) representable problem with a simple, powerful language.

  • Automatically generate a custom solver
    CVXGEN automatically creates library-free C code for a custom, high-speed solver. This can be downloaded and used immediately, and requires nothing but a C compiler. CVXGEN also supplies a Matlab function that, with one command, downloads and builds a custom Matlab mex solver.

  • Solve your problems up to 10,000 times faster
    CVXGEN performs most transformations and optimizations offline, to make online solution as fast as possible. Code generation takes a few seconds or minutes, producing solvers that work in microseconds or milliseconds. Compared with CVX, solution times are typically at least 20 times faster, with the smallest problems showing speedup as large as 10,000×.

Limitations

CVXGEN is for convex, QP-representable problems only. It works best for small problems, where the final system has around 2000 total coefficients in the constraints and objective. CVXGEN does not work well for larger problems.

Authors

CVXGEN is developed by Jacob Mattingley (primary author) and by Stephen Boyd (advisor) from Stanford University

Link

For additional information and downloads, please refer to this page.

YALMIP

Description

YALMIP is a modelling language for advanced modeling and solution of convex and nonconvex optimization problems. It is implemented as a free (as in no charge) toolbox for MATLAB. The main motivation for using YALMIP is rapid algorithm development. The language is consistent with standard MATLAB syntax, thus making it extremely simple to use for anyone familiar with MATLAB. Another benefit of YALMIP is that it implements a large amount of modeling tricks, allowing the user to concentrate on the high-level model, while YALMIP takes care of the low-level modeling to obtain as efficient and numerically sound models as possible.

Problem classes

The modelling language supports a large number of optimization classes, such as linear, quadratic, second order cone, semidefinite, mixed integer conic, geometric, local and global polynomial, multiparametric, bilevel and robust programming.

Solvers

One of the central ideas in YALMIP is to concentrate on the language and the higher level algorithms, while relying on external solvers for the actual computations. However, YALMIP also implements internal algorithms for global optimization, mixed integer programming, multiparametric programming, sum-of-squares programming and robust optimization. These algorithms are typically based on the low-level scripting language available in YALMIP, and solve sub-problems using the external solvers.

Authors

YALMIP is developed by Johan Loefberg.

Link

For additional information and downloads, please refer to this page.

MPT Multi-Parametric Toolbox

Description

The Multi-Parametric Toolbox (MPT) is a free Matlab toolbox for design, analysis and deployment of optimal controllers for constrained linear, nonlinear and hybrid systems. Efficiency of the code is guaranteed by the extensive library of algorithms from the field of computational geometry and multi-parametric optimization.

The toolbox offers a broad spectrum of algorithms compiled in a user friendly and accessible format: starting from different performance objectives (linear, quadratic, minimum time) to the handling of systems with persistent additive and polytopic uncertainties. Users can add custom constraints, such as polytopic, contraction, or collision avoidance constraints, or create custom objective functions. Resulting optimal control laws can either be embedded into your applications in a form of a C code, or deployed to target platforms using Real Time Workshop.

Authors

The first version of MPT was originally created in fall 2003 by Michal Kvasnica, Pascal Grieder, and Mato Baotic. Since then, numerous people contibuted to the toolbox. For a complete list, please refer to this page.

Link

For additional information and downloads, please refer to this page.

GloptiPoly 3- moments, optimization and semidefinite programming

Description

GloptiPoly 3 is intended to solve, or at least approximate, the Generalized Problem of Moments (GPM), an infinite-dimensional optimization problem which can be viewed as an extension of the classical problem of moments. From a theoretical viewpoint, the GPM has developments and impact in various areas of mathematics such as algebra, Fourier analysis, functional analysis, operator theory, probability and statistics, to cite a few. In addition, and despite a rather simple and short formulation, the GPM has a large number of important applications in various fields such as optimization, probability, finance, control, signal processing, chemistry, cristallography, tomography, etc. The present version of GloptiPoly 3 can handle moment problems with polynomial data. Many important applications in e.g. optimization, probability, financial economics and optimal control, can be viewed as particular instances of the GPM, and (possibly after some transformation) of the GPM with polynomial data. The approach is similar to that used in the former version 2 of GloptiPoly. The software allows to build up a hierarchy of semidefinite programming (SDP), or linear matrix inequality (LMI) relaxations of the GPM, whose associated monotone sequence of optimal values converges to the global optimum.

Authors

GloptiPoly is developed by Didier Henrion, Jean-Bernard Lasserre and Johan Loefberg.

Link

For additional information and downloads, please refer to this page.

RoMulOC - Robust Multi-Objective Control toolbox

Description

This toolbox is intended to gather multiple theoretical results obtained these past 10 years in Robust Control. The aim is to have some simple functions for manipulating uncertain systems and building LMI optimization problems related to robust multi-objective control problems. The goal is not a commercial product but a platform for academic cooperative exchanges and possible demonstrations for small size application examples.

Functionalities

This package includes uncertain modeling facilities and associated robust analysis methods. The considered models are i) affine polytopic (including parallelotopic and interval systems) and ii) LFTs (the uncertainty is modeled as a feedback on some nominal system). In this case the uncertain operator can be i) {X,Y,Z}-dissipative (this formulation includes the norm-bounded and positive real cases), ii) polytopic (including special features for parallelotopic and interval formulations), or iii) any block-diagonal structure of such operators.
The analysis tools are Lyapunov based. They go beyond the quadratic stability framework and include several PDLF-based (parameter-dependent Lyapunov function) methods. Robustness is analyzed with respect to stability (for continuous or discrete-time systems) as well as to pole location, H infinity, H2 and impulse-to-peak performances. The numerical framework is semi-definite programming (SDP). Thanks to the YALMIP parser all available SDP solvers can be used.

Authors

RoMulOC is developed by Dimitri Peaucelle with the help of several contributors : D. Arzelier, A. Bortott, M. Sevin, Ph. Spiesser. Its development is supported by the LAAS-CNRS as part of the OLOCEP project.

Link

For additional information and downloads, please refer to this page.

HIFOO - H∞ / H2 Fixed Order Optimization

Description

HIFOO is a MATLAB package for fixed-order controller design: stabilization and optimization for multiple plants.

H∞ and H2 controller design for linear systems is a difficult, nonconvex, nonsmooth 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. In addition, it is often desired to compute a single controller which stabilizes multiple plants simultaneously.

HIFOO is aimed at solving fixed-order stabilization and performance optimization problems. It depends on a hybrid algorithm for nonsmooth, nonconvex optimization based on quasi-Newton updating and gradient sampling. In particular, HIFOO address the following problems:

  • fixed-order stabilization
  • fixed-order strong stabilization
  • fixed-order simultaneous stabilization
  • fixed-order H∞ optimization
  • fixed-order H2 optimization
  • fixed-order complex stability radius optimization
  • fixed-order stability margin (spectral abscissa) optimization
  • fixed-order robust stability margin (pseudospectral abscissa) optimization

HIFOO also handles mixed problems, for example, optimizing the H∞ performance of some plants subject to constraints on H2performance of other plants.

 

Authors

HIFOO is developed by Michael Overton (Courant Institute of Mathematical Sciences, NYU), Marc Millstone (IBM T.J. Watson Research Center), Didier Henrion (LAAS-CNRS, Toulouse), Suat Gumussoy (K.U. Leuven), Georgia Deaconu (LAAS-CNRS, Toulouse), Denis Arzelier (LAAS-CNRS, Toulouse).

Link

For additional information and downloads, please refer to this page.

AWAST - Anti-Windup Analysis and Synthesis Toolbox

Description

This Toolbox contains a set of user-friendly routines to perform stability and performance analysis and design for anti-windup systems. The main routines are based on the implementation of recent analysis and synthesis results dedicated to saturated systems.

The Toolbox is based on a Simulink interface which has been designed so as to simplify and fasten the construction of synthesis and simulation oriented diagrams. To this purpose a Simulink Library AWLib with advanced objects has been developed.

Authors

AWAST is developed by Jean-Marc Biannic, and Clément Roos.

Link

For additional information and downloads, please refer to this page.

SMAC - Systems Modeling, Analysis and Control Toolbox

Description

The Systems Modeling, Analysis and Control (SMAC) Toolbox is a Matlab-Simulink based library developed within the Systems Control and Flight Dynamics department of ONERA - The French Aerospace Lab. It provides both researchers and control engineers with a complete set of tools to facilitate the design, the tuning and the validation of control laws. More precisely, its ambitions are:

  • to be able to control systems (and especially aeronautical vehicles) on their whole operating domains in the presence of nonlinearities, uncertainties, external disturbances and imperfectly measured or estimated data,

  • to obtain strong guarantees in terms of stability margins and performance levels.

In this perspective, the SMAC Toolbox implements three kinds of tools:

  • modeling tools allow to describe the considered physical systems (usually represented using a mix of nonlinear analytical expressions and tabulated data in an industrial context) as a single parameterized model (typically a Linear Fractional Representation),

  • design tools combine robustified nonlinear dynamic inversion techniques, structured H∞ synthesis and anti-windup compensation, so as to produce simple yet powerful controllers, which can be easily implemented, and require no interpolation as is the case when classical gain-scheduled techniques are applied,

  • analysis and validation tools allow to evaluate the robustness properties of the resulting closed-loop systems in the presence of model uncertaintes (μ-analysis), but also of time-varying parameters and hard nonlinearities such as magnitude and rate saturations (IQC-based analysis).

The Skew Mu Analysis Library is already available and contains a set of μ-analysis based tools to evaluate the robustness properties of high-dimensional LTI plants subject to numerous LTI uncertainties. These tools allow to compute both upper and lower bounds on the (skewed) robust stability margin, the worst-case H∞ performance level, as well as the worst-case gain, phase, modulus and time-delay margins. The SMAC project is on-going and several other libraries will be made available in a near future.

Authors

SMAC is developed by a dozen of researchers from ONERA. Jean-Marc Biannic is the project coordinator, while Clément Roos is in charge of the robustness analysis library.

Link

For additional information and downloads, please refer to this page.

GNU Octave - Control Package

Description

This free and open-source software is a computer-aided control system design (CACSD) tool for the numerical computing environment GNU Octave. The people behind GNU Octave strive for an open-source alternative to the commercial software MATLAB. They aim for a level of compatibility where existing MATLAB script files (m-files) can be run without modifications. The control package's features include system identification, system analysis, controller synthesis as well as advanced frequency-weighted model and controller reduction. The tool is mostly compatible with corresponding MATLAB toolboxes (Control, Robust Control and System Identification) and is based on the proven SLICOT library.

Authors

The GNU Octave control package is developed by Lukas Reichlin.

Link

For additional information and downloads, please refer to this page.

MODCONS - a MATLAB Toolbox for Multi-Objective Control System Design

Description

Control system design problems are generally multi-objective, in that they require several, generally conflicting, requirements to be simultaneously met. One design procedure for interactive multi-objective computer-aided control system design is the method of inequalities (MOI). The method is general-purpose, flexible and robust, and as such is well-suited to MATLAB implementation. The MOI has been combined with H-infinity optimization in a mixed-optimization approach which designs for both robustness and explicit closed-loop performance. MODCONS is a collection of MATLAB routines which create an interactive multi-objective CACSD environment for designing robust control systems using this mixed-optimization approach as well as for multi-objective design of several other classes of control systems.

Authors

SOFTNAME is developed by Didier Henrion, Jean-Bernard Lasserre and Johan Loefberg.

Link

For additional information and downloads, please refer to this page.

HIT - Hybrid Identification Toolbox

Description

The Hybrid Identification Toolbox (HIT) is a free MatLab toolbox for regression with Piece-Wise Affine (PWA) maps and identification of Piece-Wise AutoRegressive Exogenous (PWARX) models. HIT implements the clustering-based algorithms.

Main features of HIT are:

  • Clustering algorithms: weighted K-means and single-linkage

  • Pattern recognition algorithms: i) Linear Support Vector Classifiers (SVC), ii) Multicategory Robust Linear Programmng (MRLP), iii) Proximal Support Vector Classifiers (PSVC)

  • Continuous and discontinuous PWA/PWARX models

  • Post-processing: optional re-classification of outliers

Authors

SOFTNAME is developed by Giancarlo Ferrari Trecate.

Link

For additional information and downloads, please refer to this page.

Ellipsoidal Toolbox for MATLAB

Description

Ellipsoidal Toolbox (ET) is a standalone set of easy-to-use configurable MATLAB routines to perform operations with ellipsoids and hyperplanes of arbitrary dimensions. It computes the external and internal ellipsoidal approximations of geometric (Minkowski) sums and differences of ellipsoids, intersections of ellipsoids and intersections of ellipsoids with halfspaces and polytopes; distances between ellipsoids, between ellipsoids and hyperplanes, between ellipsoids and polytopes; and projections onto given subspaces.

Ellipsoidal methods are used to compute forward and backward reach sets of continuous- and discrete-time piecewise affine systems. Forward and backward reach sets can be also computed for piecewise linear systems with disturbances. It can be verified if computed reach sets intersect with given ellipsoids, hyperplanes, or polytopes.

Authors

ET is developed by Alex Kurzhanskiy.

Link

For additional information and downloads, please refer to this page.

NLControl - a Mathematica package for nonlinear control systems

Description

NLControl provides symbolic tools for modelling, analysis and synthesis both of discrete- and continuous-time nonlinear systems, as well as of systems defined on homogeneous time-scales. The package is based on algebraic methods of differential one-forms and skew polynomial rings. NLControl can solve a wide range of control problems, including but not limited to:

  • Transformations between different systems representation (state equations, input-output equations, nonlinear transfer function)

  • Reduction of the set of input/output equations

  • Accessibility

  • Observability

  • Identifiability of the unknown parameters of the system

  • Static state feedback linearization

  • Discretization of the continuous-time system.

Most important functions of the package are made available on NLControl website, using webMathematica tools, so that no other software except internet browser is required to use them.

Authors

NLControl is developed in the Institute of Cybernetics at Tallinn Technical University by Juri Belikov, Kristina Halturina, Arvo Kaldmäe, Vadim Kaparin, Ülle Kotta, and Maris Tõnso.

Link

For additional information and downloads, please refer to this page.

RACT - Randomized Algorithms Control Toolbox

Description

RACT is a Matlab toolbox for probabilistic analysis and synthesis of control systems affected by various uncertainty structures.

Main RACT features are:

  • Convenient definition of a variety of uncertain objects:
    scalar, vector and matrix uncertainties, with different probability distributions,

  • Easy and fast sampling of uncertain objects of almost any type

  • Randomized algorithms for probabilistic performance verification
    and probabilistic worst-case performance,

  • Randomized algorithms for feasibility of uncertain LMIs using
    stochastic gradient, ellipsoid or cutting plane methods,

  • Optimal design methods using scenario approach.

Authors

RACT has been developed at CNR-IEIIT (℅ Politecnico di Torino, Italy) and at the Institute for Control Science (Moscow, Russia), based on a bilateral international project funded by Consiglio Nazionale delle Ricerche (CNR) and Russian Academy of Sciences (RAS)

Link

For additional information and downloads, please refer to this page.