ひよこエンジニア

ひよこエンジニア

エンジニアになりたての25歳です。【電気回路】・【プログラミング×株】について記録を残してきます。

【RLC直列回路】Pythonで解いてみた!

今回はRLC直列回路の過渡現象をpythonで見てみました。 過渡現象の計算は学生時代かなり苦労した記憶があります(笑)

Pythonで解くにあたって、手計算のようなきれいな式変形はせず、二階微分方程式を解いていきます!(きれいに式変形する方法知っている人がいたら教えてほしい。。。)

RLC直列回路

回路図をこちらに示します。

f:id:shota_elec_py:20201014230928p:plain
RLC直列回路

定常状態ではショートになるLとオープンになるCが直列接続されているので、イメージとしたら一定時間経てば回路に流れる電流は0でしょう。

微分方程式

それでは微分方程式を立てていきましょう!

キルヒホッフの第二法則を適用していきます。

import sympy as sym
import numpy as np
import matplotlib.pyplot as plt
E,R,L,C,q,t,C1,C2=sym.symbols('E R L C q t C1 C2')
q=sym.Function('q')

eq1=sym.Eq(E,L*sym.diff(q(t),t,2)+R*sym.diff(q(t))+q(t)/C)

ここでは電荷q(t)を変数として方程式を立てました。

電流を変数とした場合、Cにかかる電圧の式に積分が入ります。微分方程式を解く際は、式中の項に積分が存在すると解けないため、電流の定義式$$i(t)=\frac{d}{d t} {q\left (t \right )}$$$$ を用いて二階微分方程式の形に直しました。

この方程式を解いていきます。

eq2=sym.dsolve(eq1,q(t))

$$q{\left (t \right )} =CE+C_{1}e^{\frac{t}{2 L}\left(-R-\sqrt{R^{2}-\frac{4L}{C}}\right)} $$

$$+C_{2}e^{\frac{t}{2L}\left(-R+\sqrt{R^{2}-\frac{4L}{C}}\right)}$$

続いて、eq2をtで微分して、電流の方程式を作ります。

eq4=sym.diff(eq2.rhs,t)

これら二式に、初期条件を与えます。t=0時、コンデンサに蓄積された電荷が0で、流れる電流値が0だと仮定します。

eq3=sym.Eq(0,eq2.rhs.subs(t,0))
eq5=sym.Eq(0,eq4.subs(t,0))

$$ C_{1} = \frac{C E R}{2 \sqrt{R^{2} - \frac{4 L}{C}}} - \frac{C E}{2} $$

$$ C_{2 }=- \frac{C E R}{2 \sqrt{R^{2} - \frac{4 L}{C}}} - \frac{C E}{2} $$

C1,C2をeq2に代入し、微分することで、電流の方程式を導出。

eq7=eq2.subs(C1,sol1)
eq7=eq7.subs(C2,sol2)
eq8=sym.diff(eq7.rhs,t)
eq8=sym.simplify(eq8)

式がぐちゃぐちゃです(笑) $$\frac{C E \sqrt{\frac{1}{C} \left(C R^{2} - 4 L\right)}}{C R^{2} - 4 L} \left(e^{\frac{t}{L} \sqrt{\frac{1}{C} \left(C R^{2} - 4 L\right)}} - 1\right) e^{- \frac{t}{2 L} \left(R + \sqrt{\frac{1}{C} \left(C R^{2} - 4 L\right)}\right)}$$

後はパラメータを入力していきます。 記載のパラメータは、根号の中身が正の場合です。

para={E:12, R:11, L:2.5,C:0.1}
i=eq8.subs(para)
F_i=sym.lambdify(t,i,'numpy')
s=np.linspace(0,10,10000)

fig=plt.figure()
plt.plot(s,F_i(s),label='i(t)_(1)',color="b")
plt.xlabel("Time[t]")
plt.ylabel("Ampare[A]")
plt.legend()
plt.show

出力するグラフはこんな感じです。 上式に出てくる根号 $$ \sqrt{\frac{1}{C} \left(C R^{2} - 4 L\right)}$$ の中身が 負、0、正 でそれぞれ結果が異なります。 根号の中身が値が負になると、減衰しながら正弦波のような振る舞いをします。 根号の中身が0or正になると、グラフの形はにているのですが、0のほうがより急な減衰の仕方であると確認できます。

f:id:shota_elec_py:20201014230937p:plain
根号内符号=負

f:id:shota_elec_py:20201014230933p:plain
根号内符号=正, 根号内0

まとめ

今回はRLC直列回路の過渡応答について確認しました。 個人的には直流電源から交流の波形が確認できることが面白いかなと思います。 とりあえず電気回路をpythonで計算する知識は身につきました! 今後もこんな感じで備忘録として残していきたいと思います!