Compute H_{∞} optimal controller for LTI plant
[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,...)
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 |
'GMIN' | real | Initial lower bound on |
'TOLGAM' | real | Relative error tolerance for |
'S0' | real | Frequency |
'METHOD' |
| Standard 2-Riccati solution (default) |
| LMI solution | |
| Maximum entropy solution | |
'DISPLAY' |
| No command window display, or command window displays synthesis progress information (default) |
When DISPLAY='
on
',
t
he 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 | |
CL= lft(P,K) | |
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, |
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} |
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
.
The plant must be stabilizable from the control inputs u and detectable from the measurement output y:
(A,B_{2}) must be stabilizable and (C_{2},A) must be detectable.
Otherwise, hinfsyn returns an error.
[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.