control.hinfsyn

control.hinfsyn(P, nmeas, ncon)[source]

H-infinity control synthesis for plant P.

Parameters:
PStateSpace

Partitioned LTI plant (state-space system).

nmeasint

Number of measurements (input to controller).

nconint

Number of control inputs (output from controller).

Returns:
KStateSpace

Controller to stabilize P.

CLStateSpace

Closed loop system.

gamfloat

Infinity norm of closed loop system.

rcondlist
4-vector, reciprocal condition estimates of:

1: control transformation matrix 2: measurement transformation matrix 3: X-Riccati equation 4: Y-Riccati equation

Raises:
ImportError

If slycot routine sb10ad is not loaded.

See also

StateSpace

Examples

>>> # Unstable first order SISO system
>>> G = ct.tf([1], [1,-1], inputs=['u'], outputs=['y'])
>>> all(G.poles() < 0)
False
>>> # Create partitioned system with trivial unity systems
>>> P11 = ct.tf([0], [1], inputs=['w'], outputs=['z'])
>>> P12 = ct.tf([1], [1], inputs=['u'], outputs=['z'])
>>> P21 = ct.tf([1], [1], inputs=['w'], outputs=['y'])
>>> P22 = G
>>> P = ct.interconnect([P11, P12, P21, P22], inplist=['w', 'u'], outlist=['z', 'y'])
>>> # Synthesize Hinf optimal stabilizing controller
>>> K, CL, gam, rcond = ct.hinfsyn(P, nmeas=1, ncon=1)
>>> T = ct.feedback(G, K, sign=1)
>>> all(T.poles() < 0)
True