減衰振動第2弾です(^^)/
問題は、LCRの直列回路に電圧を与えたときにキャパシタにたまる電荷です。微分方程式は次のように書けます。
LCR直列回路(R = 2オーム、L = 1ミリヘンリー、C = 10マイクロファラド)に1ボルトのステップ入力を与えてコンデンサの電圧の応答(ステップ応答)を観測すると次のようになると、ChatGPTは教えてくれました。
ChatGPTが作成したPythonプログラムは次の通りです。
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp
#Constants for L, C, R
R_updated = 2 # Resistance in Ohms
L_updated = 1e-3 # Inductance in Henry
C_updated = 10e-6 # Capacitance in Farads
#Differential equation function for the LCR circuit with step input
def lcr_step_response(t, y):
Q, dQdt = y
V_in = 1 if t > 0 else 0 # Step input: 0V for t <= 0, 1V for t > 0
return [dQdt, (V_in – Q/C_updated – R_updated*dQdt) / L_updated]
#Solve the differential equation for the step response
sol_step_response = solve_ivp(lcr_step_response, [0, 0.01], [0, 0], t_eval=np.linspace(0, 0.01, 10000))
#Calculate the capacitor voltage from the charge for the step response
capacitor_voltage_step_response = sol_step_response.y[0] / C_updated
#Plotting the step response
plt.figure(figsize=(10, 6))
plt.plot(sol_step_response.t, capacitor_voltage_step_response)
plt.title(‘Step Response of the LCR Circuit (Direct Differential Equation Solution)’)
plt.xlabel(‘Time (s)’)
plt.ylabel(‘Capacitor Voltage (V)’)
plt.grid(True)
plt.show()
ChatGPTは次のように言ってます。
「このプログラムは、LCR回路に対するステップ入力(1ボルト)の応答を計算するために微分方程式を解いています。解は、コンデンサに蓄積される電荷量として計算され、それをコンデンサの静電容量で割ることによりコンデンサの電圧が求められます。プロットは、コンデンサの電圧を時間の関数として示しており、ステップ入力に対する回路の動的な応答を観測できます。」
なるほど、物理の微分方程式も、ChatGPTに任せればへっちゃらだい … と思います。