## Documentation Center |

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

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**

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) | |

INFO | Additional output information |

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

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 with a sigma plot

sigma(CL,ss(GAM));

**Example 2:** Mixed-Sensitivity

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

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.

Was this topic helpful?