control.h2syn

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

H2 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.

Raises
ImportError

If slycot routine sb10hd 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)  # Is G stable?
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 H2 optimal stabilizing controller
>>> K = ct.h2syn(P, nmeas=1, ncon=1)
>>> T = ct.feedback(G, K, sign=1)
>>> all(T.poles() < 0)  # Is T stable?
True