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