修复一个十分严重的公式错误
This commit is contained in:
parent
2b898e41db
commit
2ac34196f0
8
core.py
8
core.py
|
|
@ -141,12 +141,12 @@ def fun_calculus_pw(theta, max_w):
|
|||
abc = 123
|
||||
pass
|
||||
w_samples, d_w = np.linspace(0, max_w, int(max_w / w_fineness) + 1, retstep=True)
|
||||
for cal_w in w_samples[: -1]:
|
||||
for cal_w in w_samples[:-1]:
|
||||
r_pw += (
|
||||
(
|
||||
abs(angel_density(cal_w)) * math.sin(theta - cal_w + math.pi)
|
||||
abs(angel_density(cal_w)) * math.sin(theta - (cal_w - math.pi / 2))
|
||||
+ abs(angel_density(cal_w + d_w))
|
||||
* math.sin(theta - cal_w - d_w + math.pi)
|
||||
* math.sin(theta - (cal_w + d_w - math.pi / 2))
|
||||
)
|
||||
/ 2
|
||||
) * d_w
|
||||
|
|
@ -154,7 +154,7 @@ def fun_calculus_pw(theta, max_w):
|
|||
|
||||
|
||||
def calculus_bd(theta, rc, rs, rg, dgc, h_cav, h_gav): # 对θ进行积分
|
||||
max_w=0
|
||||
max_w = 0
|
||||
# 求暴露弧上一点的切线
|
||||
line_x = math.cos(theta) * rc + dgc
|
||||
line_y = math.sin(theta) * rc + h_cav
|
||||
|
|
|
|||
32
main.py
32
main.py
|
|
@ -3,22 +3,42 @@ import timeit
|
|||
|
||||
|
||||
def egm():
|
||||
cccCount=0
|
||||
for u_bar in range(1):
|
||||
u_ph = math.sqrt(1) * 750 * math.cos(2 * math.pi / 3 * 0) / 1.732 # 运行相电压
|
||||
h_whole = 140 # 杆塔全高
|
||||
string_len = 6.8 # 串子绝缘长度
|
||||
h_gav = h_whole - 0.5 - 11.67 * 2 / 3 # 地线对地平均高
|
||||
h_cav = h_gav - 9.2 - 2.7 - (14.43 - 11.67) * 2 / 3 # 导线对地平均高
|
||||
dgc = 0 # 导地线水平距离
|
||||
insulator_c_len = 6.8 # 串子绝缘长度
|
||||
string_c_len = 9.2
|
||||
string_g_len = 0.5
|
||||
dgc = -2.9 # 导地线水平距离
|
||||
vertical_dgc = 2.7 # 导地线挂点垂直距离
|
||||
h_g_avr_sag = 11.67 * 2 / 3
|
||||
h_c_avr_sag = (14.43 - 11.67) * 2 / 3
|
||||
h_gav = h_whole - string_g_len - h_g_avr_sag # 地线对地平均高
|
||||
h_cav = h_gav - string_c_len - vertical_dgc - h_c_avr_sag # 导线对地平均高
|
||||
shield_angle = math.atan(dgc / (vertical_dgc + string_c_len)) * 180 / math.pi
|
||||
print(f"保护角{shield_angle:.3f}°")
|
||||
# 迭代法计算最大电流
|
||||
i_max = 0
|
||||
_min_i = 20 # 尝试的最小电流
|
||||
i_min = min_i(insulator_c_len, u_ph / 1.732)
|
||||
_min_i = i_min # 尝试的最小电流
|
||||
_max_i = 200 # 尝试的最大电流
|
||||
#TODO remove it
|
||||
cad = Draw()
|
||||
cad.draw(i_min, u_ph, h_gav, h_cav, dgc, 2)
|
||||
for i_bar in np.linspace(_min_i, _max_i, int((_max_i - _min_i) / 0.1)): # 雷电流
|
||||
print(f"尝试计算电流为{i_bar:.2f}")
|
||||
rs = rs_fun(i_bar)
|
||||
rc = rc_fun(i_bar, u_ph)
|
||||
rg = rg_fun(i_bar, h_cav)
|
||||
#######
|
||||
cccCount+=1
|
||||
if cccCount%30==0:
|
||||
import core
|
||||
core.gMSP.add_circle((0, h_gav), rs)
|
||||
core.gMSP.add_circle((dgc, h_cav), rc_fun(i_bar, -u_ph),dxfattribs={"color": 4})
|
||||
core.gMSP.add_circle((dgc, h_cav), rc)
|
||||
#######
|
||||
circle_intersection = solve_circle_intersection(rs, rc, h_gav, h_cav, dgc)
|
||||
if not circle_intersection: # if circle_intersection is []
|
||||
# print("保护弧和暴露弧无交点,检查设置参数。程序退出。")
|
||||
|
|
@ -56,8 +76,6 @@ def egm():
|
|||
if distance > rc:
|
||||
print("暴露弧已经完全被屏蔽")
|
||||
break
|
||||
i_min = min_i(string_len, u_ph / 1.732)
|
||||
cad = Draw()
|
||||
cad.draw(i_min, u_ph, h_gav, h_cav, dgc, 2)
|
||||
cad.draw(i_max, u_ph, h_gav, h_cav, dgc, 6)
|
||||
cad.save()
|
||||
|
|
|
|||
Loading…
Reference in New Issue