%%% ISCIE 解説記事「ロバスト制御、Ｈ∞制御」

clear all;  % 必要に応じて実行する
close all;  % 必要に応じて実行する

%% 対象の不確かさも含めたモデリング
modeling;

%% 補償器設計
% ロバスト安定化、可解性の確認
[ Krs, gopt, rs_clsys ] = csfdlqhinflmi(Gh, [], m2, delta_ports);
figure;
bodemag(rs_clsys(Np0+1:end,Nm0+1:end));

% W(s) = I の場合の設計
[ Krp0, gopt, rperf0_clsys ] = csfdlqhinflmi(Gh, ss(eye(5)), m2, delta_ports);
figure;
bodemag(rperf0_clsys(Np0+1:end,Nm0+1:end));

% W(s) = diag(I4, (0.1s+1)/(10^(-4) s+1)) の場合の設計
[ Krp, gopt, rperf_clsys ] = csfdlqhinflmi(Gh, 'Weights', m2, delta_ports);
figure;
bodemag(rperf_clsys(Np0+1:end,Nm0+1:end));

%% 解説記事に掲載する図の作成
bodefig;  % 第５図を作成する
lqcomp;   % 第６～８図を作成する
