Software

Julia

RobustAndOptimalControl.jl

The main package for robust and optimal control in Julia. Documentation at RobustAndOptimalControl.jl. There is a dedicated section in the manual on the \mathcal H_\infty control design.

  • hinfsynthesize: control design by minimizing the \mathcal{H}_\infty norm of the lower LFT of of the generalized plant with respect to the feedback controller.
  • hinfpartition: creates a generalized plant such that the \mathcal{H}_\infty-optimal control problem with this plant is equivalent to the mixed-sensitivity problem with the given weighting filters.
  • partition: creates a generalized plant from the given state-space model and the specified partition of the input and output channels into exogenous inputs, control inputs, regulated outputs, and measured outputs.
  • specificationsplot: plotting the sensitivity, complementary sensitivity and input sensitivity functions and corresponding weighting filters relevant in the mixed sensitivity design.
  • glover_mcfarlane: Glover-McFarlane method of robust stabilization of a loop-shaping design based on \mathcal{H}_\infty optimal control.
  • glover_mcfarlane_2dof: the same as above, but yielding a two-degree-of-freedom controller.
  • hanus: a technique for antiwindup.

DyadControlSystems.jl

Documentation at DyadControlSystems.jl. This package (formerly named JuliaSimControl as a part of the JuliaSim project) is a part of the Dyad project and contains some additional methods for \mathcal{H}_\infty control design. In particular, it implements the LMI-based solver for the general \mathcal{H}_\infty control problem, which relaxes some of the assumptions that the Riccati equation based solver implemented in RobustAndOptimalControl.jl needs. However, the package is not a free software. Documentation at DyadControlSystems.jl.

The package, although free for nonncommercial use, is not available in the public Julia package registry. To install Dyad.jl and DyadControlSystems.jl, you need to follow their installation instructions.

Matlab

Robust Control Toolbox

  • mixsyn: control design by minimizing the \mathcal{H}_\infty norm the the mixed-sensitivity function.
  • hinfsyn: control design by minimizing the \mathcal{H}_\infty norm of a closed-loop transfer function formulated using an LFT.
  • hinfstruct: fixed-structure \mathcal{H}_\infty control design by minimizing the \mathcal{H}_\infty norm of a closed-loop transfer function formulated using an LFT.
  • ncfsyn: Glover-McFarlane method of robust stabilization of a loop-shaping design based on \mathcal{H}_\infty optimal control.
  • musyn: similar general setup as the hinfsyn method, but it considers a structure in the \Delta term. It is regarded by some as the culmination of the \mathcal{H}_\infty control design methods. The disadvantage is that it is the most computationally intensive of the methods we covered, and the resulting controller is typically of rather high order.

Python

Back to top