Processing math: 100%

2017年7月4日火曜日

pythonで1次遅れのボード線図を描く その2


一般的な場合の1次遅れの伝達関数


前回、具体的な伝達関数を使って、1次遅れの伝達関数のボード線図を書いて見ました。
では、一般的な場合はどうかと言うことを考えて見たいと思います。

さて、一般的な場合というのはどういうことかというと、1次遅れの伝達関数をゲインKと時定数\tauというものを使って記述するのが、普通のようです。
以下のようになります。

\begin{equation} G(s)=\frac{K}{\tau s + 1} \end{equation}


周波数伝達関数


さて、この式からボード線図を描くのに必要なゲインと位相を求めましょう。
まずsj \omegaを代入します。そして分母を有理化します。

\begin{equation} G(j \omega)=\frac{K}{1 + \tau \omega j} \frac{1- \tau \omega j}{1-\tau \omega j} = \frac{K(1 - \tau \omega j)}{1+(\tau \omega)^2} \end{equation}


ゲインの計算


ゲインを求めると

\begin{equation} |G(j \omega)|=\sqrt{\frac{K^2 + (-K \tau \omega )^2}{\{1+(\tau \omega)^2\}^2}} =\sqrt{ \frac{K^2 \{1 + (\tau \omega)^2 \}}{\{1+(\tau \omega)^2\}^2} } =\frac{K \sqrt{1+ (\tau \omega)^2}}{ 1 + (\tau \omega)^2} \end{equation}


\begin{equation} \begin{split} 20 \log |G(j \omega)|&=20 \log \frac{K \sqrt{1+ (\tau \omega)^2}}{ 1 + (\tau \omega)^2}\\ &=20 \log K + 10 \log \{1 +  (\tau \omega)^2 \} - 20 \log \{1 +  (\tau \omega)^2 \}\\ &=20 \log K - 10 \log \{1 +  (\tau \omega)^2 \} \end{split} \end{equation}


簡単になりましたね。

位相の計算


位相を求めましょう。

\begin{equation} \angle |G(j \omega)| = \tan^{-1} ( -\tau \omega)= - \tan^{-1}  \tau \omega \end{equation}


数値計算


#ここからソース
import numpy as np
import matplotlib.pyplot as plt
tau = 2.0
K=5
omega=np.logspace(-2,2,100)
gain=20*np.log10(K) -10*np.log10(1+(tau*omega)**2)
phase=-np.arctan(tau*omega)*180/np.pi
plt.subplot(2,1,1)
plt.plot(omega, gain,'-')
plt.xscale('log')
plt.grid(which='major')
plt.grid(which='minor')
plt.ylabel('Mag[dB]')
plt.xlabel('Freq[rad/s]')
plt.subplot(2,1,2)
plt.plot(omega, phase, '-')
plt.xscale('log')
plt.grid(which='major')
plt.grid(which='minor')
plt.ylabel('phase[deg]')
plt.xlabel('Freq[rad/s]')
plt.show()
#ここまでソース

0 件のコメント:

コメントを投稿