Full-information H-infinity synthesis

Full-information synthesis assumes the controller has access to both the state
vector *x* and the disturbance signal *w*. Synthesis with
`hinffi`

is the dual of the full-control problem covered by
`hinffc`

. For the more general output-feedback case when only output
measurements are available, use `hinfsyn`

.

`[`

computes the `K`

,`CL`

,`gamma`

] = hinffi(`P`

,`ncont`

)*H*_{∞}-optimal control law

$$u=K\left[\begin{array}{c}x\\ w\end{array}\right]$$

for the plant `P`

. The plant is described by the state-space
equations:

$$\begin{array}{c}dx=Ax+{B}_{1}w+{B}_{2}u\\ z={C}_{1}x+{D}_{11}w+{D}_{12}u.\end{array}$$

Here, *w* represents the disturbance inputs, and *z*
represents the error outputs to be kept small.

`ncont`

is the number of control inputs *u*, which
must be the last inputs of `P`

. The gain matrix `K`

minimizes the *H*_{∞} norm of the closed-loop transfer
function `CL`

from the disturbance signals *w* to the
error signals *z*.

`[`

calculates a gain matrix for the target performance level `K`

,`CL`

,`gamma`

] = hinffi(`P`

,`ncont`

,`gamTry`

)`gamTry`

.
Specifying `gamTry`

can be useful when the optimal achievable performance
is better than you need for your application. In that case, a less-than-optimal solution can
have smaller gains and be more numerically well-conditioned. If `gamTry`

is not achievable, `hinffi`

returns `[]`

for
`K`

and `CL`

, and `Inf`

for
`gamma`

.

`[`

specifies additional computation options. To create `K`

,`CL`

,`gamma`

] = hinffi(___,`opts`

)`opts`

, use `hinfsynOptions`

.
Specify `opts`

after all other input arguments.

For information about the algorithms used for *H*_{∞}
synthesis, see `hinfsyn`

.

[1] 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, Number 8, , August 1989, pp. 831–847.