clear all; close all; %ctrlpref %set(0, 'defaultAxesFontName', 'helvetica'); %set(0, 'defaultAxesFontSize', 14); %set(0, 'defaultTextFontName', 'helvetica'); load data/nominal.mat; load data/weight.mat; load data/genplant.mat; load data/cont.mat; % 補償器の周波数応答 K_g = frd(K, w); %PI制御 %s = tf('s'); z = tf('z', 0.001); Kp = 0.0603; Ki = 0.004165; %Kpi = Kp + Ki/s; Kpi = Kp + Ki/z; Kpi_g = frd(Kpi, w); figure(1); bode(K_g, 'r', Kpi_g, 'b'); legend('robust cont.', 'PI cont.', 'Location', 'NorthWest'); title(''); h = get(1); set(h.Children(2), 'XLim', [1 500]); set(h.Children(2), 'YLim', [-90 90]); set(findobj('type','line'),'linewidth',2); print -depsc data/compare_cont.eps print -djpeg -r70 data/compare_cont.jpeg % 閉ループ系のゲイン特性(周波数応答結果を使用) P0_g.Ts = sample; P1_g.Ts = sample; P2_g.Ts = sample; P3_g.Ts = sample; P4_g.Ts = sample; % 感度特性 S0_g = 1 / (1 - P0_g * K_g); S1_g = 1 / (1 - P1_g * K_g); S3_g = 1 / (1 - P3_g * K_g); WS_g = frd(WS, w); % 感度特性(PI制御) S0pi_g = 1 / (1 - P0_g * Kpi_g); S1pi_g = 1 / (1 - P1_g * Kpi_g); S3pi_g = 1 / (1 - P3_g * Kpi_g); figure(4); bodemag(S1_g, 'b', S3_g, 'g', S0_g, 'r', 1/(kopt*WS_g), 'm--'); legend('exp. (10rad/sec)', 'exp. (20rad/sec)', 'nominal', 'weight', 'Location', 'SouthWest', 'Location', 'NorthWest'); title(''); hold on; bodemag(S1pi_g, 'g', S0pi_g, 'g--'); set(findobj('type','line'),'linewidth',2); print -depsc data/sens.eps print -djpeg -r70 data/sens.jpeg