Mu Analysis and Synthesis Toolbox | ![]() ![]() |
Compute an H controller for a SYSTEM interconnection matrix
Syntax
[k
,g
,gfin
,ax
,ay
,hamx
,hamy
] =hinfsyn
(p,nmeas
,ncon
,gmin
,gmax
,tol
,ricmethd
,epr
,epp
)
Description
hinfsyn
calculates an H controller, which achieves the infinity norm
gfin
for the interconnection structure p
. The controller, k
, stabilizes the SYSTEM matrix p
and has the same number of states as p
. The SYSTEM p
is partitioned
where B1are the disturbance inputs, B2 are the control inputs, C1 are the errors to be kept small, and C2 are the output measurements provided to the controller. B2 has column size (ncon
) and C2 has row size (nmeas
).
g
. The program provides a gmax
and gmin
, the bisection method is used to iterate on the value of gmax
is equal to
gmin
, only one tol
. You can select either the eigenvalue or Schur method the Riccati equations. The eigenvalue method is faster but can have numerical problems, while the Schur method is slower but generally more reliable.
The algorithm employed requires tests to determine whether a solution exists for a given epr
is used as a measure of when the Hamiltonian matrix has imaginary eigenvalues and epp
is used to determine whether the Riccati solutions are positive semi-definite. The conditions checked for the existence of a solution are:
epr
and epp
should be based on your knowledge of the numerical conditioning of the interconnection structure p
. The following assumptions are made in the implementation of the hinfsyn
algorithm and must be satisfied:
(i) (A,B2) is stabilizable and (C2,A) detectable.
(ii) D12 and D21 have full rank.
(iii)ax
, ay
, hamx
, and hamy
correspond to scaled or balanced data.
The hinfsyn
program displays several variables, which can be checked to ensure that the above conditions are being satisfied. For each ric_eig
) may have problems. This is due to the MATLAB command eig
incorrectly selecting the eigenvectors associated with the repeated roots.
Examples
This example is taken from the "HIMAT Robust Performance Design Example" section in Chapter 7. himat_ic
contains the open-loop interconnection structure. Design an H (sub)optimal controller for the SYSTEM matrix,
himat_ic
, with two sensor measurements, two error signals, two actuator inputs, two disturbances, and eight states. The range of is selected to be between 1.0 and 10.0 with a tolerance,
tol
, on the relative closeness of the final solution of 0.1. The Schur decompostion method,
ric_schr
, is used for solution of the Riccati equations. The program outputs at each iteration the current value being tested, and eigenvalue information about the H and J Hamiltonian matrices and X
and Y
Riccati solutions. At the end of each iteration a (p) denoting the tested
value passed or an (
f
) denoting a failure is displayed. Upon finishing, hinfsyn
prints out
the value achieved.
nmeas
= 2;% number of sensor measurements ncont = 2;% number of control inputsgmin
= 1;% minimum gamma value to be testedgmax
= 10;% maximum gamma value to be testedtol
= .1;% tolerance on the gamma stopping value ric = 2;% Riccati equation solved via the Schur methodminfo
(himat_ic
)% SYSTEM interconnection structure system: 8 states6 outputs6 inputs [k
,g
] =hinfsyn
(himat_ic,nmeas
,ncon
,gmin
,gmax
,tol
,ric); Test bounds: 1.0000 < gamma <=10.0000 gammahamx
_eig
xinf_eig hamy
_eig
yinf_eig
nrho_xy p/f 10.000 2.3e-02 2.1e-10 2.3e-02 -3.7e-11 0.022 p 5.500 2.3e-02 2.1e-10 2.3e-02 -0.0e+00 0.075 p 3.250 2.3e-02 2.2e-10 2.3e-02 -0.0e+00 0.222 p 2.125 2.3e-02 2.2e-10 2.3e-02 -0.0e+00 0.564 p 1.562 2.3e-02 2.4e-10 2.3e-02 -0.0e+00 1.198# f 1.844 2.3e-02 2.3e-10 2.3e-02 -0.0e+00 0.789 p 1.703 2.3e-02 2.3e-10 2.3e-02 -2.1e-11 0.959 p 1.633 2.3e-02 2.3e-10 2.3e-02 -0.0e+00 1.068# f Gamma value achieved:1.7031
Algorithm
hinfsyn
uses the formulae described in the Glover and Doyle, 1988, paper for solution to the optimal H control design problem. There are a number of research issues that need to be addressed for the "best" solution of the Riccati equations but only two of the standard methods are included.
hinf_st
, hinf_sp
, hinf_c
, and hinf_gam
hinf_gam
calls: ric_eig
, ric_schr
, csord
, cgivens
Reference
Doyle, J.C., K. Glover, P. Khargonekar, and B. Francis, "State-space solutions to standard H2 and H control problems," IEEE Transactions on Automatic Control, vol. 34, no. 8, pp. 831-847, August 1989.
norm
bound and relations to risk sensitivity," Systems and Control Letters, vol. 11, pp. 167-172, 1988.
See Also
hinffi
, hinfnorm
, hinfsyne
, h2syn
, h2norm
, ric_eig
, ric_schr
![]() | hinffi | hinfsyne | ![]() |