Mixed *H*_{2}/*H*_{∞} synthesis
with pole placement constraints

[gopt,h2opt,K,R,S] = hinfmix(P,r,obj,region,dkbnd,tol)

`h2hinfyn`

performs multi-objective
output-feedback synthesis. The control problem is sketched in this
figure.

If *T*_{∞}(*s*)
and *T*_{2}(*s*)
denote the closed-loop transfer functions from *w* to *z*_{∞} and *z*_{2},
respectively, `hinfmix`

computes a suboptimal solution
of the following synthesis problem:

Design an LTI controller *K*(*s*)
that minimizes the mixed *H*_{2}*/H*_{∞} criterion

$$\alpha {\Vert {T}_{\infty}\Vert}_{\infty}^{2}+\beta {\Vert {T}_{2}\Vert}_{2}^{2}$$

subject to

∥

*T*_{∞}∥_{[[BULLET]]}<*γ*_{0}∥

*T*_{2}∥_{2}< ν_{0}The closed-loop poles lie in some prescribed LMI region D.

Recall that ∥.∥∞ and ∥.∥_{2} denote
the *H*_{∞} norm (RMS
gain) and *H*_{2} norm of transfer
functions.

`P`

is any SS, TF, or ZPK LTI representation
of the plant *P*(*s*), and `r`

is
a three-entry vector listing the lengths of *z*_{2}, *y*,
and *u*. Note that *z*_{∞} and/or *z*_{2} can
be empty. The four-entry vector `obj`

= [*γ*_{0},
ν_{0}, α, β] specifies the *H*_{2}/*H*_{∞} constraints
and trade-off criterion, and the remaining input arguments are optional:

`region`

specifies the LMI region for pole placement (the default`region = []`

is the open left-half plane). Use`lmireg`

to interactively build the LMI region description`region`

`dkbnd`

is a user-specified bound on the norm of the controller feedthrough matrix*D*. The default value is 100. To make the controller_{K}*K*(*s*) strictly proper, set`dkbnd = 0`

.`tol`

is the required relative accuracy on the optimal value of the trade-off criterion (the default is 10^{–2}).

The function `h2hinfsyn`

returns guaranteed *H*_{∞} and *H*_{2} performances `gopt`

and `h2opt`

as
well as the `SYSTEM`

matrix `K`

of
the LMI-optimal controller. You can also access the optimal values
of the LMI variables *R*, *S* via
the extra output arguments `R`

and `S`

.

A variety of mixed and unmixed problems can be solved with `hinfmix`

.
In particular, you can use `hinfmix`

to perform pure
pole placement by setting ```
obj = [0
0 0 0]
```

. Note that both *z*_{∞} and *z*_{2} can
be empty in such case.

Chilali, M., and P. Gahinet, "*H*_{∞} Design
with Pole Placement Constraints: An LMI Approach," *IEEE
Trans. Aut. Contr*., 41 (1995), pp. 358–367.

Scherer, C., "Mixed H2/H-infinity Control," *Trends
in Control: A European Perspective*, Springer-Verlag (1995),
pp.173–216.

Was this topic helpful?