h2syn
H_{2} control
synthesis for LTI plant
Syntax
[K,CL,GAM,INFO]=H2SYN(P,NMEAS,NCON)
Description
h2syn computes a stabilizing H_{2} optimal lti/ss controller K for
a partitioned LTI plant P. The controller, K,
stabilizes the plant P and has the same number
of states as P. The LTI 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).
If P is constructed with mktito, you can omit NMEAS and NCON from
the arguments.
The closedloop system is returned in CL and
the achieved H_{2} cost γ in GAM. INFO is
a struct array that returns additional information
about the design.
H_{2} control
system CL= lft(P,K)=.
Output Arguments  Description 
K  LTI controller 
CL= lft(P,K)  LTI closedloop system

GAM = norm(CL)  H_{2} optimal
cost γ =

INFO  Additional output information 
Additional output — structure array INFO containing
possible additional information depending on METHOD)
INFO.NORMS  Norms of four different quantities, full information
control cost (FI), output estimation cost (OEF), direct feedback cost
(DFL) and full control cost (FC). NORMS = [FI OEF DFL FC]; 
INFO.KFI  Fullinformation gain matrix (constant feedback)

INFO.GFI  Fullinformation closedloop system GFI=ss(AB2*KFI,B1,C1D12*KFI,D11) 
INFO.HAMX  X Hamiltonian matrix (statefeedback) 
INFO.HAMY  Y Hamiltonian matrix (Kalman filter) 
Examples
Example 1: Stabilize 4by5
unstable plant with three states, NMEAS=2, NCON=2.
rng(0,'twister');
P = rss(3,4,5)';
[K,CL,GAM] = h2syn(P,2,1);
open_loop_poles = pole(P)
closed_loop_poles = pole(CL)
open_loop_poles =
0.2593
15.9497
20.7994
closed_loop_poles =
26.8951
22.4817
20.6965
17.6041
0.8694
2.6697
Example 2: MixedSensitivity H_{2} loopshaping.
Here the goal is to shape the sigma plots of sensitivity S:
= (I + GK)^{–1 }and
complementary sensitivity T: = GK (I+GK)^{–1},
by choosing a stabilizing K the minimizes the H_{2} norm
of
where
s=zpk('s');
G=10*(s1)/(s+1)^2;
W1=0.1*(s+1000)/(100*s+1); W2=0.1; W3=[];
P=ss(G,W1,W2,W3);
[K,CL,GAM]=h2syn(P);
L=G*K; S=inv(1+L); T=1S;
sigma(L,'k.',S,'r',T,'g')
Limitations
(A, B_{2}, C_{2})
must be stabilizable and detectable.
D_{12} must
have full column rank and D_{21} must
have full row rank
More About
expand all
The H_{2} optimal control
theory has its roots in the frequency domain interpretation the cost
function associated with timedomain statespace LQG control theory [1]. The equations
and corresponding nomenclature used here are taken from the Doyle et
al., 1989 [2][3].
h2syn solves the H_{2} optimal
control problem by observing that it is equivalent to a conventional
LinearQuadratic Gaussian (LQG) optimal control problem. For simplicity, we shall
describe the details of algorithm only for the continuoustime case,
in which case the cost function J_{LQG} satisfies
with plant noise u_{1} channel
of intensity I, passing through the matrix [B1;0;D12] to produce equivalent
white correlated with plant ξ and white measurement noise θ
having joint correlation function
The H_{2} optimal controller K(s)
is thus realizable in the usual LQG manner as a fullstate feedback K_{FI} and
a Kalman filter with residual gain matrix K_{FC}.
Kalman Filter
where Y = Y^{T}≥0
solves the Kalman filter Riccati equation
FullState Feedback
where X = X^{T}≥0
solves the statefeedback Riccati equation
The final positivefeedback H_{2}^{ }optimal
controller
has a familiar closedform
h2syn implements the continuous optimal H_{2} control
design computations using the formulae described in the Doyle, et
al. [2]; for discretetime plants, h2syn uses
the same controller formula, except that the corresponding discrete
time Riccati solutions (dare) are substituted for X and Y.
A Hamiltonian is formed and solved via a Riccati equation. In the
continuoustime case, the optimal H_{2}norm
is infinite when the plant D_{11} matrix
associated with the input disturbances and output errors is nonzero;
in this case, the optimal H_{2} controller
returned by h2syn is computed by first setting D11 to
zero.
Optimal Cost GAM
The full information (FI) cost is given by the equation
. The output estimation cost
(OEF) is given by
, where
. The disturbance feedforward cost
(DFL) is
, where L_{2} is
defined by
and the full control cost (FC)
is given by
. X_{2} and Y_{2} are
the solutions to the X and Y Riccati
equations, respectively. For for continuoustime plants with zero
feedthrough term (D11 = 0), and for all discretetime
plants, the optimal H_{2} cost γ =
is
GAM =sqrt(FI^2 + OEF^2+ trace(D11*D11'));
otherwise, GAM = Inf.
References
[1] Safonov,
M.G., A.J. Laub, and G. Hartmann, "Feedback Properties of
Multivariable Systems: The Role and Use of Return Difference Matrix," IEEE
Trans. of Automat. Contr., AC26, pp. 4765, 1981.
[2] Doyle, J.C., K. Glover, P. Khargonekar, and B. Francis,
"Statespace solutions to standard H_{2} and
H_{∞} control problems," IEEE
Transactions on Automatic Control, vol. 34, no. 8, pp.
831–847, August 1989.
[3] Glover, K., and J.C. Doyle, "Statespace formulae
for all stabilizing controllers that satisfy an H_{∞} norm
bound and relations to risk sensitivity," Systems
and Control Letters, 1988. vol. 11, pp. 167–172,
August 1989.
See Also
augw  hinfsyn