二次遅れ系のボード線図

二次遅れ系のボード線図

はじめに

今回は、下期令和4年機械問15に出題された二次遅れ系のボード線図について,pythonで描写することが出来るか試みる。
前半はcontrolというライブラリなしで行い、後半はありで行う。なので、ボード線図の書き方をしっかり把握したい方は前半のプログラムを参照されたい。

問題提起

R=1[Ω],L=0.01[H],C=100[uF]とした時のボード線図を描写するという問題である。

が伝達関数となるので、周波数伝達関数は以下の通りである。

ゆえに、ゲインは以下の様になる。

また、位相は以下の様になる。

pythonを用いたプログラミング

プログラムコードを以下の場合に分けてそれぞれ示す。

ゲインの場合


import math
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

#パラメーターの詳細
R=1
L=0.01
C=100*10**(-6)
omega = np.arange(0.0, 10**6, 0.1)

#ゲインの定義
g=20*np.log10(((1-L*C*omega**2)**2+(omega*C*R)**2)**(-0.5))
#横軸対数表示
plt.gca().set_xscale('log')
plt.plot(omega, g, 'b-')
plt.title('ボード線図')
plt.xlabel('ω[rad/s]')
plt.ylabel('ゲイン[dB]')

plt.show()

折れ点角周波数付近でゲインが上昇しているのが分かる。

位相の場合

import math
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

#パラメーターの詳細
R=1
L=0.01
C=100*10**(-6)
omega = np.arange(0.0, 10**6, 0.1)

#位相角の定義
theta = np.degrees(np.arctan((omega*C*R/(1-omega**2*L*C))**(-1)))
#横軸対数表示
plt.gca().set_xscale('log')
plt.plot(omega, theta, 'b-')
plt.title('ボード線図')
plt.xlabel('ω[rad/s]')
plt.ylabel('位相[度]')

plt.show()

ライブラリを用いた場合

from control.matlab import *
from matplotlib import pyplot as plt


R=1
L=0.01
C=100*10**(-6)

# 伝達関数のパラメータ
num = [ 1]     # 分子の係数
den = [L*C, C*R, 1]     # 分母の係数
sys = tf(num, den)  # 伝達関数モデルの作成
bode(sys)           # ボード線図のプロット
plt.show()

参考文献



電材館 第二種電気工事士 技能試験セット 「 電線2回分 」 「 ホーザン 工具 」 「 動画解説・テキスト付き 」 2023年


参加者500人以上
電験三種や電気工事士など
資格合格を目指す人が集まる
無料のオンラインサロン
【みんなのデンキ塾】

参加申請は公式ツイッターから



関連記事

コメント

  1. この記事へのコメントはありません。

コメントするためには、 ログイン してください。