Minimize gama under the constraints:
This problem is solved by the function below Evaluation function
function [LME,LMI,OBJ]=normopt_eval(XLIST)
[X,gama]=XLIST(:)
/////////////////DEFINE LME, LMI and OBJ BELOW
LME=X'-X
LMI=-[A*X+X*A', B, X*C';
B', -gama*Ib, D';
C*X, D, -gama*Ic]
OBJ=gama
H-infinity norm computation function generated by lmitool
function [X,c]=normopt(A,B,C,D) // Generated by lmitool on Wed Feb 08 16:17:01 MET 1995 Mbound = 1e3;abstol = 1e-10;reltol = 1e-10; nu = 10;maxiters = 100; options=[Mbound,abstol,nu,maxiters,reltol]; ///////////DEFINE INITIAL GUESS BELOW X_init=eye(A);Ib=eye(B'*B);Ic=eye(C*C');c_init=10; /////////// XLIST0=list(X_init,c_init) XLIST=lmisolver(XLIST0,normopt_eval,options) [X,c]=XLIST(:)
An example of usage
//Let's try a simple example with 3 states
//Edit below A,B,C,D matrices
A=[0,1,0;2,3,1;-1,-2,0];
B=[1,0;-2,1;0,1];
C=[1,2,0;0,1,-2];
D=[0,0;0,0];
// Resolution
[X,gopt]=normopt(A,B,C,D);
//optimal gama found is:
gopt
gopt =
6.7678289
//check:
gopt-h_norm(syslin('c',A,B,C,D)
ans =
- 6.745D-08