| Robust Control Toolbox | |
| Provide feedback about this page |
Compute H
optimal controller for LTI plant
Syntax
[K,CL,GAM,INFO] = hinfsyn(P) [K,CL,GAM,INFO] = hinfsyn(P,NMEAS,NCON) [K,CL,GAM,INFO] = hinfsyn(P,NMEAS,NCON,KEY1,VALUE1,KEY2,VALUE2,...)
Description
hinfsyn
computes a stabilizing H
optimal lti/ss controller K for a partitioned lti plant P.
The controller, K, stabilizes the P and has the same number of states as P. The system P is partitioned where inputs to B1 are the disturbances, inputs to B2 are the control inputs, output of C1 are the errors to be kept small, and outputs of C2 are the output measurements provided to the controller. B2 has column size (NCON) and C2 has row size (NMEAS). The optional KEY and VALUE inputs determine tolerance, solution method and so forth--see Figure 11-8 for details.
The closed-loop system is returned in CL and the achieved H
cost
in GAM. INFO is a struct array that returns additional information about the design--see Figure 11-9.
Figure 5-8: H
control system CL= lft(P,K)=
.
Figure 5-9: Optional input arguments (KEY, VALUE) pairs
When DISPLAY='on', the hinfsyn program displays several variables indicating the progress of the algorithm. 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.
| Output arguments: |
|
K |
lti controller |
CL= lft(P,K) |
lti closed-loop system ![]() |
GAM = norm(CL,Inf) |
H cost =![]() |
INFO |
Additional output information |
Additional output -- structure array INFO containing possible additional information depending on METHOD)
:
Algorithm
The default 'ric' method uses the two-Riccati formulae ([4],[5]) with loopshifting [6]. In the case of the 'lmi' method, hinfsyn employs the LMI technique ([7],[8],[9]). With 'METHOD' 'maxe', K returns the max entropy H
controller that minimize an entropy integral relating to the point s0; i.e.,
where
is the closed-loop transfer function CL. With all methods, hinfsyn uses a standard
-iteration technique to determine the optimal value of
. Starting with high and low estimates of
. The
-iteration is a bisection algorithm that iterates on the value of
in an effort to approach the optimal H
control design. The stopping criterion for the bisection algorithm requires the relative difference between the last
value that failed and the last
value that passed be less than TOLGAM (default=.01)
At each value of
, the algorithm employed requires tests to determine whether a solution exists for a given
value. In the case of the 'ric' method, the conditions checked for the existence of a solution are:
level) must have no imaginary-axis eigenvalues.
and Y
associated with the Hamiltonian matrices must exist and be positive, semi-definite.
,Y
) must be less than or equal to
2.
When, DISPLAY is 'on', the hinfsyn program displays several variables, which indicate which of the above conditions are satisfied for each
value being tested. In the case of the default 'ric' method, the display includes the current value of
being tested, real part of the eigenvalues of the X and Y Hamiltonian matrices 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. A similar display is produced with method 'lmi'
The algorithm works best when the following conditions are satisfied by the plant:
has full column rank for all
R.
has full row rank for all
R.
When the above rank conditions do not hold, the controller may have undesirable properties: If D12 and D21 are not full rank, the H
controller K may have large high-frequency gain. If either of the latter two rank conditions does not hold at some frequency
, the controller may have very lightly damped poles near that frequency
.
In general, the solution to the infinity-norm optimal control problem is non-unique. Whereas the K returned by hinfsyn is only a particular F(s), when the 'ric' method is selected, the INFO.AS field of INFO give you in addition the all- solution controller parameterization KAS(s) such that all solutions to the infinity-norm control problem are parameterized by a free stable contraction map U(s) constrained by
(see Figure 5-9); that is, every stabilizing controller K(s) that makes

where U is a stable LTI system satisfying norm(U,Inf) <1
Figure 5-10: All-solution KAS(s) returned by INFO.AS
An important use of the infinity-norm control theory is for direct shaping of closed-loop singular value Bode plots of control systems. In such cases, the system P(s) will typically be the plant augmented with suitable loop-shaping filters -- see and mixsyn.
Examples
Following are three simple problems solved via hinfsyn.
Example 1: A random 4-by-5 plant with 3-states, NMEAS=2, NCON=2
The optimal H
cost in this case is GAM=0.2641. You verify
Example 2: Mixed-Sensitivity
,
, no W3.
s=zpk('s');
G=(s-1)/(s+1);
W1=0.1*(s+100)/(100*s+1); W2=0.1; W3=[];
P=augw(G,W1,W2,W3);
[K,CL,GAM]=hinfsyn(P);
sigma(CL,ss(GAM));
In this case, GAM = 0.1854 = -14.6386 db
Example 3: Mixed sensitivity with W1 removed.
s=zpk('s');
G=(s-1)/(s+1);
W1=[]; W2=0.1; W3=[];
P=augw(G,W1,W2,W3)
[K,CL,GAM]=hinfsyn(P)
In this case, GAM=0, K=0, and CL=K*(1+G*K)=0.
Limitation
The plant must be stabilizable from the control inputs u2 and detectable from the measurement output y2:
Otherwise, an the hinfsyn returns an error.
References
[4] Glover, K., and J.C. Doyle, "State-space formulae for all stabilizing
controllers that satisfy an H
norm bound and relations to risk sensitivity,"
Systems and Control Letters, vol. 11, pp. 167-172, 1988.
[5] 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
[6] Safonov, M.G., D.J.N. Limebeer, and R.Y. Chiang, "Simplifying the H
Theory via Loop Shifting, Matrix Pencil and Descriptor Concepts", Int. J.
Contr., vol. 50, no. 6, pp. 2467-2488, 1989.
[7] Packard, A., K. Zhou, P. Pandey, J. Leonhardson, and G. Balas, "Optimal, constant I/O similarity scaling for full-information and state-feedback problems," Systems and Control Letters, 19:271-280, 1992.
[8] Gahinet, P., and P. Apkarian, "A linear matrix inequality approach to H1-control," Int J. Robust and Nonlinear Control, 4(4):421-448, July-August 1994.
[9] Iwasaki, T., and R.E. Skelton, "All controllers for the general H
-control
problem: LMI existence conditions and state space formulas," Automatica,
30(8):1307-1317, August 1994.
See Also
augw Augments plant weights for control design
h2syn H2 synthesis controller
loopsyn H
- loop shaping controller synthesis
mktito 2-input 2-output partition of a USS object
ncfsyn H
- normailized coprime controller synthesis
icomplexify
Purpose
Helper function for complexify.
Syntax
Description
icomplexify works on structures to extract a real value from a pair of related fields.
DeltaR = icomplexify(DeltaCR) affects field pairs of DeltaCR named 'foo' and 'foo_cmpxfy' where 'foo' can be any field name. DeltaR is the same as DeltaCR except that the fields 'foo_cmpxfy' are removed. complexify, by default, complexifies the real uncertainty with ucomplex atoms, though optionally ultidyn atoms can be used. If a ucomplex uncertainty was used to complexify the uncertain system, the real parts of 'foo_cmpxfy' are added to the real parts of 'foo'. If a ultidyn uncertainty was used to complexify the uncertain system, only the real parts of 'foo' are returned.
See Also
complexifyReplace ureal atoms with ureal and ucomplex atoms
robuststabCalculate robust stability margin
| Provide feedback about this page |
![]() | hinfgs | iconnect | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |