図13.4のプロット

In [1]:
#計算とグラフプロットに必要なモジュールの読み込み
import numpy as np
from control import matlab
from matplotlib import pyplot as plt
from scipy import arange 
from scipy import signal
In [2]:
#制御対象のパラメータを与える
T = 1.0 #T=1

#制御対象の分子・分母多項式を与える
num = [0, 1] #分子多項式
den = [T, 1] #分母多項式

#比例ゲインのパラメータを与える
Kp = 1.0 #K_p=1

#コントローラの分子・分母多項式を与える
numc = [Kp] #K_p=1の場合の分子多項式
denc = [1] #分母多項式

#制御対象とコントローラの伝達関数表現を与える
sys = matlab.tf(num, den) #制御対象の伝達関数表現
c = matlab.tf(numc, denc) #Kp=1の場合のコントローラの伝達関数表現

#開ループ伝達関数を求める
sysL = c*sys #開ループ伝達関数
In [3]:
#角周波数の範囲を指定
w = np.logspace(-2, 2, 1000) #対数的に等間隔なベクトルの生成(10^{-2}から10^{2}で1000点)

#ナイキスト線図の計算
matlab.nyquist(sysL, w) #ナイキスト線図の計算とプロット
plt.grid(color='gray') #罫線を灰色で表示
plt.xlabel("Re") #横軸のラベル表示
plt.ylabel("Im") #縦軸のラベル表示
plt.show() #グラフの表示