ボード線図(Bode plot)は、制御工学や信号処理の分野でよく使用されるグラフで、システムの周波数応答を視覚化するために用いられます。
Pythonを使用してボード線図を描くには、主に次の2つのライブラリを利用します。
- NumPy: 数値計算を行うためのライブラリ
- Matplotlib: グラフを描画するためのライブラリ
目次
必要なライブラリをインストールする
まず、必要なライブラリをインストールします。
ターミナルまたはコマンドプロンプトで以下のコマンドを実行してください。
pip install numpy matplotlib
Pythonでボード線図を作成するステップ
以下の手順に従って、ボード線図を作成します。
必要なライブラリをインポートする
はじめにNumPyとMatplotlibをインポートします。
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
システムの伝達関数を定義する
ボード線図を作成するためには、まずシステムの伝達関数を定義します。
伝達関数は周波数応答を見るための基礎となります。
例えば、以下のように定義します。
# ここでは、分子と分母の係数を指定して伝達関数を定義します。
num = [1] # 分子の係数
den = [1, 1] # 分母の係数
system = signal.TransferFunction(num, den)
周波数応答を求める
次に周波数応答を求めます。
freqresp関数を使用して、指定した周波数範囲での応答を計算します。
w, mag, phase = signal.bode(system)
ボード線図をプロットする
最後にMatplotlibを使用してボード線図を描画します。
fig, (ax1, ax2) = plt.subplots(2, 1)
# 振幅応答をプロット
ax1.semilogx(w, mag)
ax1.set_title('Bode Plot')
ax1.set_ylabel('Magnitude (dB)')
# 位相応答をプロット
ax2.semilogx(w, phase)
ax2.set_xlabel('Frequency (rad/sec)')
ax2.set_ylabel('Phase (degrees)')
plt.show()
まとめ
Pythonとその強力なライブラリであるNumPyとMatplotlibを使用することで、簡単にボード線図を描画することができます。
伝達関数を定義し、周波数応答を計算し、それをプロットすることで、システムの周波数特性を視覚的に理解することができます。
制御システムや信号処理の分野で働くエンジニアや研究者にとって、こうした視覚化ツールは非常に有用です。
以上、Pythonでボード線図を描く方法についてでした。
最後までお読みいただき、ありがとうございました。