修复一个十分严重的公式错误

This commit is contained in:
facat 2021-09-20 22:33:11 +08:00
parent 2b898e41db
commit 2ac34196f0
2 changed files with 29 additions and 11 deletions

View File

@ -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
View File

@ -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()