function ps72(a,flg) if nargin<1, a=1; end flg=(nargin>1); z=tf('z'); p=ss(a,[1 1],[1;1],[0 1;1 0],-1); if abs(a-1)<1, P=0; else P=a^2-2*a; end F=-(1+P*a)/(1+P); if flg, % strictly causal controller design D=0; [K1,~,GAM1]=h2syn(p,1,1); else D=P*((P+1)*F-1)/(P+1)^2; [K1,~,GAM1]=h2syn6245(p,1,1); end K=D-(F-D)^2/(z-a-2*F+D); GAM2=norm(lft(p,K)); GAM=sqrt(D^2+P*(1+D)^2+(1+P)*P*(F-D)^2); fprintf('GAMMA: analytical %f, numerical %f, actual %f\n',GAM,GAM1,GAM2) fprintf('optimality test: %e~0\n',h2synchk(p,K)) K=tf(K) K1=tf(K1)