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入門 サンプル集 |

コメント