Mu Analysis and Synthesis Toolbox | ![]() ![]() |
Compute an H controller for a SYSTEM interconnection matrix
Syntax
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
).
The closed-loop system is returned in g
. The program provides a iteration using the bisection method. Given a high and low value of
,
gmax
and gmin
, the bisection method is used to iterate on the value of in an effort to approach the optimal H
control design. If the value of
gmax
is equal to
gmin
, only one value is tested. The stopping criteria for the bisection algorithm requires the relative difference between the last
value that failed and the last
value that passed be less than
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 value.
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)
has full column rank for all
R.
(iv)
has full row rank for all
R.
Note that the outputs 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 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.
Note:
When a Hamiltonian has repeated eigenvalues, solving the Riccati equation via the eigenvalue method (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.
Glover, K., and J.C. Doyle, "State-space formulae for all stabilizing controllers that satisfy an Hnorm
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 | ![]() |