function ps1_1(d) % function ps1_1(d) % % function for 6.245/Spring 2004 PS Problem 1.1 if nargin<1, d=0.001; end % the default value of d s=tf('s'); % a convenient shortcut assignin('base','s',s); % export s to the workspace assignin('base','d',d); % export d to the workspace load_system('ps1_1a'); % load the design model into workspace [a,b,c,d]=linmod('ps1_1a'); % extract the LTI model close_system('ps1_1a'); % close the design model p=pck(a,b,c,d); % re-write plant model in Mu-Tools format [k,g]=h2syn(p,2,1,2,0); % design the controller [ak,bk,ck,dk]=unpck(k); % get a state space model of the controller K=ss(ak,bk,ck,dk); % define controller as a standard LTI object assignin('base','K',K); % export controller into workspace load_system('ps1_1b'); % open the testing model into workspace [ac,bc,cc,dc]=linmod('ps1_1b'); % extract the testing model coefficients close_system('ps1_1b'); % close the testing model G=ss(ac,bc,cc,dc); % calculate the closed loop H2 norm disp(['True H2 norm: ' num2str(norm(G))]); % the actual H2 norm disp(['Promised H2 norm: ' num2str(h2norm(g))]) % H2 norm promised by h2syn