%図13.6
%
clear all; close all;

%伝達関数の分子・分母多項式を与える
num = [0 0 1]; %分子多項式
den = [1 2 1]; %T=1の場合の分母多項式

%コントローラのパラメータを与える
K1 = 1.0; %K=1
K2 = 2.4; %K=2.4
K3 = 3.0; %K=3

%コントローラの分子・分母多項式を与える.
numc1 = [ 0 K1 ]; %K=1の場合の分子多項式
numc2 = [ 0 K2 ]; %K=2.4の場合の分子多項式
numc3 = [ 0 K3 ]; %K=3の場合の分子多項式
denc = [ 1 0.1 ]; %分母多項式

%制御対象とコントローラの伝達関数表現を与える
sys = tf( num, den ); %制御対象の伝達関数表現
c1 = tf( numc1, denc ); %K=1の場合のコントローラの伝達関数表現
c2 = tf( numc2, denc ); %K=2.4の場合のコントローラの伝達関数表現
c3 = tf( numc3, denc ); %K=3の場合のコントローラの伝達関数表現

%開ループ伝達関数を求める
sysL1 = c1*sys; %K=1の場合の開ループ伝達関数
sysL2 = c2*sys; %K=2.4の場合の開ループ伝達関数
sysL3 = c3*sys; %K=3の場合の開ループ伝達関数

%図13.6(a)のプロット
subplot(1,3,1) %複数の図を並べるためのコマンド.1行3列の1列目という意味
nyquist(sysL1) %ベクトル軌跡のプロット(ナイキスト線図)
xlim([-1.5,0]) %横軸(実軸)の範囲の指定
ylim([-1 1]) %縦軸(虚軸)の範囲の指定
title('K_p = 1'); %タイトルの表示

%図13.6(b)のプロット
subplot(1,3,2) %複数の図を並べるためのコマンド.1行3列の2列目という意味
nyquist(sysL2) %ベクトル軌跡のプロット(ナイキスト線図)
xlim([-1.5,0]) %横軸(実軸)の範囲の指定
ylim([-1 1]) %縦軸(虚軸)の範囲の指定
title('K_p = 2.4'); %タイトルの表示

%図13.6(c)のプロット
subplot(1,3,3) %複数の図を並べるためのコマンド.1行3列の3列目という意味
nyquist(sysL3) %ベクトル軌跡のプロット(ナイキスト線図)
xlim([-1.5,0]) %横軸(実軸)の範囲の指定
ylim([-1 1]) %縦軸(虚軸)の範囲の指定
title('K_p = 3'); %タイトルの表示