- 首先安装环境包
- 电路模型和微分方程
- python代码
目录
安装环境包
电路模型和微分方程
模型1
电路模型1
微分方程1
模型2
电路模型2
微分方程2
python代码
模型1
模型2
数值解结果
模型1
模型2结果
安装环境包
安装numpy(用于调节range) 和 matplotlib(用于绘图)
在命令行输入
pip install numpy
pip install matplotlib
电路模型和微分方程
模型1
无损害,电容电压为5V,电容为0.01F,电感为0.01H的并联谐振电路
电路模型1
微分方程1
模型2
带电阻损耗的电容电压为5V,电容为0.01F,电感为0.01H的的并联谐振
电路模型2
微分方程2
python代码
模型1
import numpy as np
import matplotlib.pyplot as plt
L = 0.01 #电容的值 F
C = 0.01 #电感的值 L
u_0 = 5 #电容的初始电压
u_dot_0 = 0
def equition(u,u_dot):#二阶方程
u_double_dot = -u/(L*C)
return u_double_dot
def draw_plot(time_step,time_scale):#时间步长和范围
u = u_0
u_dot = u_dot_0 #初始电压和电压的一阶导数
time_list = [0] #时间lis
Votage = [u] #电压list
plt.figure()
for time in np.arange(0,time_scale,time_step):#使用欧拉数值计算法 一阶近似
u_double_dot = equition(u,u_dot) #二阶导数
u_dot = u_dot + u_double_dot*time_step #一阶导数
u = u + u_dot*time_step #电压
time_list.append(time) #结果添加
Votage.append(u) #结果添加
print(u)
plt.plot(time_list,Votage,"b--",linewidth=1) #画图
plt.show()
plt.savefig("easyplot.png")
if __name__ == '__main__':
draw_plot(0.0001,1)
模型2
import numpy as np
import matplotlib.pyplot as plt
L = 0.01 #电容的值 F
C = 0.01 #电感的值 L
R = 0.1 #电阻值
u_0 = 5 #电容的初始电压
u_dot_0 = 0
def equition(u,u_dot):#二阶方程
u_double_dot =(-R*C*u_dot -u)/(L*C)
return u_double_dot
def draw_plot(time_step,time_scale):#时间步长和范围
u = u_0
u_dot = u_dot_0 #初始电压和电压的一阶导数
time_list = [0] #时间lis
Votage = [u] #电压list
plt.figure()
for time in np.arange(0,time_scale,time_step):#使用欧拉数值计算法 一阶近似
u_double_dot = equition(u,u_dot) #二阶导数
u_dot = u_dot + u_double_dot*time_step #一阶导数
u = u + u_dot*time_step #电压
time_list.append(time) #结果添加
Votage.append(u) #结果添加
print(u)
plt.plot(time_list,Votage,"b-",linewidth=1) #画图
plt.show()
plt.savefig("result.png")
if __name__ == '__main__':
draw_plot(0.0001,1)
数值解结果
模型1
纵轴为电容两端电压,横轴为时间与公式计算一致模型2结果
纵轴为电容两端电压,横轴为时间标题最后我们可以根据调节电阻到达不同的状态