This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Compute H optimal controller for LTI plant


[K,CL,GAM,INFO] = hinfsyn(P)


hinfsyn computes a stabilizing H optimal lti/ss controller K for a partitioned lti plant P.


The controller, K, stabilizes the P and has the same number of states as P. The system P is partitioned where inputs to B1 are the disturbances, inputs to B2 are the control inputs, output of C1 are the errors to be kept small, and outputs of C2 are the output measurements provided to the controller. B2 has column size (NCON) and C2 has row size (NMEAS). The optional KEY and VALUE inputs determine tolerance, solution method and so forth.

The closed-loop system is returned in CL. This closed-loop system is given by CL = lft(P,K) as in the following diagram.

The achieved H cost γ is returned as GAM. The struct array INFO contains additional information about the design.

Optional Input Arguments






Initial upper bound on GAM (default=Inf)



Initial lower bound on GAM (default=0)



Relative error tolerance for GAM (default=.01)



Frequency S0 at which entropy is evaluated, only applies to METHOD 'maxe' (default=Inf)



Standard 2-Riccati solution (default)


LMI solution


Maximum entropy solution




No command window display, or command window displays synthesis progress information (default)

When DISPLAY='on', the hinfsyn program displays several variables indicating the progress of the algorithm. For each γ value being tested, the minimum magnitude, real part of the eigenvalues of the X and Y Hamiltonian matrices are displayed along with the minimum eigenvalue of X and Y, which are the solutions to the X and Y Riccati equations, respectively. The maximum eigenvalue of XY, scaled by γ–2,is also displayed. A # sign is placed to the right of the condition that failed in the printout.

Output Arguments



lti controller

CL= lft(P,K)

lti closed-loop system Ty1u1

GAM = norm(CL,Inf)

H cost γ = Ty1u1


Additional output information

Additional output — structure array INFO containing possible additional information depending on METHOD)


All solutions controller, lti two-port LFT


Full information gain matrix (constant feedback



Full control gain matrix (constant output-injection; KFC is the dual of KFI)


H cost for full information KFI


H cost for full control KFC


collapse all

Synthesize a controller for a random 4-output, 5-input plant with three states, where there are two output measurements provided to the controller.

rng(0,'twister'); % for reproducibility
P = rss(3,4,5);
[K,CL,GAM] = hinfsyn(P,2,2);

Examine the optimal ${H_\infty }$ cost.



Use a singular-value plot to verify that

$${\left\| {{T_{{y_1}{u_1}}}} \right\|_\infty } \buildrel \Delta \over =&#xA;\mathop {\sup }\limits_\omega  {\sigma _{max}}\left(&#xA;{{T_{{y_1}{u_1}}}(j\omega )} \right) < \gamma. $$


Design a mixed-sensitivity controller for the following plant, augmented by the following loop-shaping filters (see mixsyn).

$$ G(s) = {{s - 1} \over {s + 1}},{\rm{ }}{W_{\rm{1}}}{\rm{ = }}{{0.1(s +&#xA;100)} \over {100s + 1}},{\rm{ }}{W_2} = 0.1,{\rm{ no}}\;{W_3}. $$

Define the plant, weighting filters, and augmented plant.

s = zpk('s');
G = (s-1)/(s+1);
W1 = 0.1*(s+100)/(100*s+1);
W2 = 0.1;
W3 = [];
P = augw(G,W1,W2,W3);

Synthesize the controller.

[K,CL,GAM] = hinfsyn(P);

Examine the singular values of the closed-loop result.


For this system, GAM = 0.1844 = –14.6386 dB.

Compute a new controller for the same system with no $W_1$.

W1 = [];
P = augw(G,W1,W2,W3);
[K,CL,GAM] = hinfsyn(P);

In this case, the resulting controller K is zero, and the closed-loop transfer function CL = K*(1+G*K) is also zero.


The plant must be stabilizable from the control inputs u and detectable from the measurement output y:

  • (A,B2) must be stabilizable and (C2,A) must be detectable.

Otherwise, hinfsyn returns an error.


The default 'ric' method uses the two-Riccati formulae ([1],[2]) with loopshifting [3]. In the case of the 'lmi' method, hinfsyn employs the LMI technique ([4],[5],[6]). With 'METHOD' 'maxe', K returns the max entropy H controller that minimize an entropy integral relating to the point s0; i.e.,

Entropy = γ22πln|detIγ2Ty1u1(jω)Ty1u1(jω)|[so2s02+ω2]dω

where Ty1u1 is the closed-loop transfer function CL. With all methods, hinfsyn uses a standard γ-iteration technique to determine the optimal value of γ. Starting with high and low estimates of γ. The γ-iteration is a bisection algorithm that iterates on the value of γ in an effort to approach the optimal H control design. The stopping criterion for the bisection algorithm requires the relative difference between the last γ value that failed and the last γ value that passed be less than TOLGAM (default = .01)

At each value of γ, the algorithm employed requires tests to determine whether a solution exists for a given γ value. In the case of the 'ric' method, the conditions checked for the existence of a solution are:

  • H and J Hamiltonian matrices (which are formed from the state-space data of P and the γ level) must have no imaginary-axis eigenvalues.

  • the stabilizing Riccati solutions X and Y associated with the Hamiltonian matrices must exist and be positive, semi-definite.

  • spectral radius of (X,Y) must be less than or equal to γ2.

When, DISPLAY is 'on', the hinfsyn program displays several variables, which indicate which of the above conditions are satisfied for each γ value being tested. In the case of the default 'ric' method, the display includes the current value of γ being tested, real part of the eigenvalues of the X and Y Hamiltonian matrices along with the minimum eigenvalue of X and Y, which are the solutions to the X and Y Riccati equations, respectively. The maximum eigenvalue of XY, scaled by γ–2, is also displayed. A # sign is placed to the right of the condition that failed in the printout. A similar display is produced with method 'lmi'

The algorithm works best when the following conditions are satisfied by the plant:

D12 and D21 have full rank.

[AjωIB2C1D12] has full column rank for all ωR.

[AjωIB1C2D21] has full row rank for all ωR.

When the above rank conditions do not hold, the controller may have undesirable properties: If D12 and D21 are not full rank, the H controller K may have large high-frequency gain. If either of the latter two rank conditions does not hold at some frequency ω, the controller may have very lightly damped poles near that frequency ω.

In general, the solution to the infinity-norm optimal control problem is non-unique. The controller returned by hinfsyn is only one particular solution, K. When the 'ric' method is selected, the INFO.AS field of INFO contains the all- solution controller parameterization KAS. All solutions to the infinity-norm control problem are parameterized by a free stable contraction map Q, which is constrained by Q<1. In other words, the solutions include every stabilizing controller K(s) that makes


These controllers are given by:


where Q is a stable LTI system satisfying norm(Q,Inf) <1.

An important use of the infinity-norm control theory is for direct shaping of closed-loop singular value Bode plots of control systems. In such cases, the system P is typically the plant augmented with suitable loop-shaping filters — see mixsyn.


[1] Glover, K., and J.C. Doyle, "State-space formulae for all stabilizing controllers that satisfy an H norm bound and relations to risk sensitivity," Systems & Control Letters, vol. 11, no. 8, pp. 167–172, 1988.

[2] Doyle, J.C., K. Glover, P. Khargonekar, and B. Francis, "State-space solutions to standard H2 and H control problems," IEEE Transactions on Automatic Control, vol. 34, no. 8, pp. 831–847, August 1989

[3] Safonov, M.G., D.J.N. Limebeer, and R.Y. Chiang, "Simplifying the H Theory via Loop Shifting, Matrix Pencil and Descriptor Concepts", Int. J. Contr., vol. 50, no. 6, pp. 2467-2488, 1989.

[4] Packard, A., K. Zhou, P. Pandey, J. Leonhardson, and G. Balas, "Optimal, constant I/O similarity scaling for full-information and state-feedback problems," Systems & Control Letters, vol. 19, no. 4, pp. 271–280, 1992.

[5] Gahinet, P., and P. Apkarian, "A linear matrix inequality approach to H-control," Int J. Robust and Nonlinear Control, vol. 4, no. 4, pp. 421–448, 1994.

[6] Iwasaki, T., and R.E. Skelton, "All controllers for the general H-control problem: LMI existence conditions and state space formulas," Automatica, vol. 30, no. 8, pp. 1307–1317, 1994.

Introduced before R2006a

Was this topic helpful?