Pythonで並列共振のインピーダンスの変化を見る

python

Pythonで直列共振のインピーダンスの変化を見る。誘導性リアクタンスと容量性リアクタンスは

\begin{align}
X_L = 2 \pi f L \hspace{10mm} X_C=\frac{1}{2 \pi f C}
\end{align}

これよりインピーダンスの大きさは

\begin{align}
Z=\sqrt{\left \{\frac{\omega^2 R L^2}{(R-\omega^2RLC)^2+\omega^2L^2}\right \} ^2+ \left \{ \frac{\omega R^2 L (1- \omega^2 L C )}{(R-\omega^2RLC)^2+\omega^2L^2} \right \}^2}
\end{align}

また共振周波数は

\begin{align}
f=\frac{1}{2 \pi \sqrt{LC}}
\end{align}

グラフが最大値を取るときの周波数が共振周波数である。

以下コード

import numpy as np
import matplotlib.pyplot as plt

R = 10
C = 0.01 * 10 ** (-6)
L = 4.7 * 10 ** (-3)
N = 1000
f = np.linspace(20000, 30000, N)

Z = [0] * N

for i in range(0, N):
    omega = 2 * np.pi * f[i]
    den = (R - omega ** 2 * R * L * C) ** 2 + (omega ** 2 * L ** 2)

    real = (omega ** 2 * R * L ** 2) / den
    comp = (omega * R ** 2 * L * (1 - omega ** 2 * L * C)) / den

    Z[i] = np.sqrt(real ** 2 + comp ** 2)

print(1 / (2 * np.pi * np.sqrt(L * C)))
plt.plot(f, Z)
plt.grid()
plt.show()

コメント

タイトルとURLをコピーしました