Pythonでボード線図(ゲイン・位相)を描く方法について入門者向けにまとめました。
ボード線図(ゲイン・位相)を描く
Pythonでは、scipyモジュールの以下のメソッドを使うことで簡単にボード線図を求めることができます。
書式 | 説明 |
---|---|
G = signal.lti(num, den) | 分子係数num、分母の係数denの伝達関数Gを定義します。 |
w, mag, phase = signal.bode(G) | 伝達関数Gのボード線図を計算します。(各周波数w、ゲインmag、位相phase) |
サンプルコード
サンプルプログラムのソースコードです。
このサンプルでは、次の一次遅れのボード線図を求めます。
(1)
# -*- coding: utf-8 -*- from scipy import signal import matplotlib.pyplot as plt # 伝達関数の定義 num = [1] # 分子の係数 den = [1, 1] # 分母の係数 G = signal.lti(num, den) # ボード線図の計算 w, mag, phase = signal.bode(G) # ゲイン線図の描画 plt.subplot(2, 1, 1) plt.semilogx(w, mag) plt.ylabel("Gain[dB]") plt.grid() # 位相線図の描画 plt.subplot(2, 1, 2) plt.semilogx(w, phase) plt.xlabel("w[rad/sec]") plt.ylabel("Phase[deg]") plt.grid() plt.show()
実行結果
サンプルプログラムの実行結果です。
– | 関連記事 |
---|---|
1 | Pythonで制御工学シミュレーション |
2 | Python入門 サンプル集 |
コメント