dkpy.HinfSynSlicot

class dkpy.HinfSynSlicot

Bases: ControllerSynthesis

H-infinity synthesis using SLICOT’s Riccati equation method.

Examples

H-infinity controller synthesis

>>> P, n_y, n_u = example_scherer1997_p907
>>> K, N, gamma, info = dkpy.HinfSynSlicot().synthesize(P, n_y, n_u)
>>> gamma
9.51
__init__()

Instantiate HinfSynSlicot.

Methods

__init__()

Instantiate HinfSynSlicot.

synthesize(P, n_y, n_u)

Synthesize controller.

synthesize(P, n_y, n_u)

Synthesize controller.

Parameters:
  • P (control.StateSpace) – Generalized plant, with y and u as last outputs and inputs respectively.

  • n_y (int) – Number of measurements (controller inputs).

  • n_u (int) – Number of controller outputs.

Returns:

Controller, closed-loop system, objective function value, solution information. If a controller cannot by synthesized, the first three elements of the tuple are None, but solution information is still returned.

Return type:

Tuple[control.StateSpace, control.StateSpace, float, Dict[str, Any]]

Raises:
  • ValueError – If the solver specified is not recognized by CVXPY.

  • ValueError – If the generalized plant is not continuous-time (i.e., if p.dt != 0).