hinfsyn
Compute H_{∞} optimal
controller for LTI plant
Syntax
[K,CL,GAM,INFO] = hinfsyn(P)
[K,CL,GAM,INFO] = hinfsyn(P,NMEAS,NCON)
[K,CL,GAM,INFO] = hinfsyn(P,NMEAS,NCON,KEY1,VALUE1,KEY2,VALUE2,...)
Description
hinfsyn computes a stabilizing H_{∞} optimal lti/ss controller K for
a partitioned lti plant P.
$$P=\left[\begin{array}{lll}A\hfill & {B}_{1}\hfill & {B}_{2}\hfill \\ {C}_{1}\hfill & {D}_{11}\hfill & {D}_{12}\hfill \\ {C}_{2}\hfill & {D}_{21}\hfill & {D}_{22}\hfill \end{array}\right]$$
The controller, K, stabilizes the P and
has the same number of states as P. The system P is
partitioned where inputs to B_{1} are
the disturbances, inputs to B_{2} are
the control inputs, output of C_{1} are
the errors to be kept small, and outputs of C_{2} are
the output measurements provided to the controller. B_{2} has
column size (NCON) and C_{2} 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
Property | Value | Description |
'GMAX' | real | Initial upper bound on GAM (default=Inf) |
'GMIN' | real | Initial lower bound on GAM (default=0) |
'TOLGAM' | real | Relative error tolerance for GAM (default=.01) |
'S0' | real | Frequency S0 at which entropy is evaluated,
only applies to METHOD 'maxe' (default=Inf) |
'METHOD' | 'ric' | Standard 2-Riccati solution (default) |
| 'lmi' | LMI solution |
| 'maxe' | Maximum entropy solution |
'DISPLAY' | 'off' 'on' | 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 X_{∞}Y_{∞},
scaled by γ^{–2},is
also displayed. A # sign is placed to the right of the condition that
failed in the printout.
Output Arguments | Description |
K | lti controller |
CL= lft(P,K) | lti closed-loop system $${T}_{{y}_{1}{u}_{1}}$$ |
GAM = norm(CL,Inf) | H_{∞} cost γ = $${\Vert {T}_{{y}_{1}{u}_{1}}\Vert}_{\infty}$$ |
INFO | Additional output information |
Additional output — structure array INFO containing
possible additional information depending on METHOD)
INFO.AS | All solutions controller, lti two-port
LFT |
INFO.KFI | Full information gain matrix (constant feedback $${u}_{2}(t)={K}_{FI}\left[\begin{array}{c}x(t)\\ {u}_{1}(t)\end{array}\right]$$ |
INFO.KFC | Full control gain matrix (constant output-injection;
K_{FC} is
the dual of K_{FI}) |
INFO.GAMFI | H_{∞} cost
for full information K_{FI} |
INFO.GAMFC | H_{∞} cost
for full control K_{FC} |
Examples
Following are three simple problems solved via hinfsyn.
Example 1: A random 4-by-5
plant with 3-states, NMEAS=2, NCON=2
rng(0,'twister');
P = rss(3,4,5);
[K,CL,GAM] = hinfsyn(P,2,2);
The optimal H_{∞} cost
in this case is GAM = 1.3940. You verify
that $${\Vert {T}_{{y}_{1}{u}_{1}}\Vert}_{\infty}\triangleq \underset{\omega}{\mathrm{sup}}{\sigma}_{max}\left({T}_{{y}_{1}{u}_{1}}(j\omega )\right)<\gamma $$ with a sigma plot
sigma(CL,ss(GAM));
Example 2: Mixed-Sensitivity
$$G(s)=\frac{s-1}{s-1},\text{}{W}_{\text{1}}\text{=}\frac{0.1(s+1000)}{100s+1},\text{}{W}_{2}=0.1,\text{no}{W}_{3}.$$
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);
[K,CL,GAM]=hinfsyn(P);
sigma(CL,ss(GAM));
In this case, GAM = 0.1854 = –14.6386
db
Example 3: Mixed
sensitivity with W_{1} removed.
s=zpk('s');
G=(s-1)/(s+1);
W1=[]; W2=0.1; W3=[];
P=augw(G,W1,W2,W3);
[K,CL,GAM]=hinfsyn(P);
In this case, GAM=0, K=0, and CL=K*(1+G*K)=0.
Limitation
The plant must be stabilizable from the control inputs u and
detectable from the measurement output y:
Otherwise, hinfsyn returns an error.
More About
expand all
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.,
$$\text{Entropy=}\frac{{\gamma}^{2}}{2\pi}{\displaystyle {\int}_{-\infty}^{\infty}\mathrm{ln}|\mathrm{det}I-{\gamma}^{-2}{T}_{{y}_{1}{u}_{1}}(j\omega {)}^{\prime}{T}_{{y}_{1}{u}_{1}}(j\omega )|}\left[\frac{{s}_{o}}{{s}_{0}+{\omega}^{2}}\right]d\omega $$
where $${T}_{{y}_{1}{u}_{1}}$$ 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 X_{∞}Y_{∞},
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:
D_{12} and D_{21} have
full rank.
$$\left[\begin{array}{cc}A-j\omega I& {B}_{2}\\ {C}_{1}& {D}_{12}\end{array}\right]$$ has full column rank for all ω ∊ R.
$$\left[\begin{array}{cc}A-j\omega I& {B}_{1}\\ {C}_{2}& {D}_{21}\end{array}\right]$$ has full row rank for all ω ∊ R.
When the above rank conditions do not hold, the controller may
have undesirable properties: If D_{12} and D_{21} 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 K_{AS}.
All solutions to the infinity-norm control problem are parameterized
by a free stable contraction map Q, which is constrained
by $${\Vert Q\Vert}_{\infty}<1$$. In other words, the solutions
include every stabilizing controller K(s)
that makes
$${\Vert {T}_{{y}_{1}{u}_{1}}\Vert}_{\infty}\triangleq \underset{\omega}{\mathrm{sup}}{\sigma}_{\mathrm{max}}\left({T}_{{y}_{1}{u}_{1}}(j\omega )\right)<\gamma .$$
These controllers are given by:
K=lft(INFO.AS,Q)
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.
References
[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 H_{2} 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.