修复一个十分严重的公式错误
This commit is contained in:
parent
2b898e41db
commit
2ac34196f0
4
core.py
4
core.py
|
|
@ -144,9 +144,9 @@ def fun_calculus_pw(theta, max_w):
|
||||||
for cal_w in w_samples[:-1]:
|
for cal_w in w_samples[:-1]:
|
||||||
r_pw += (
|
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))
|
+ 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
|
/ 2
|
||||||
) * d_w
|
) * d_w
|
||||||
|
|
|
||||||
32
main.py
32
main.py
|
|
@ -3,22 +3,42 @@ import timeit
|
||||||
|
|
||||||
|
|
||||||
def egm():
|
def egm():
|
||||||
|
cccCount=0
|
||||||
for u_bar in range(1):
|
for u_bar in range(1):
|
||||||
u_ph = math.sqrt(1) * 750 * math.cos(2 * math.pi / 3 * 0) / 1.732 # 运行相电压
|
u_ph = math.sqrt(1) * 750 * math.cos(2 * math.pi / 3 * 0) / 1.732 # 运行相电压
|
||||||
h_whole = 140 # 杆塔全高
|
h_whole = 140 # 杆塔全高
|
||||||
string_len = 6.8 # 串子绝缘长度
|
insulator_c_len = 6.8 # 串子绝缘长度
|
||||||
h_gav = h_whole - 0.5 - 11.67 * 2 / 3 # 地线对地平均高
|
string_c_len = 9.2
|
||||||
h_cav = h_gav - 9.2 - 2.7 - (14.43 - 11.67) * 2 / 3 # 导线对地平均高
|
string_g_len = 0.5
|
||||||
dgc = 0 # 导地线水平距离
|
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
|
i_max = 0
|
||||||
_min_i = 20 # 尝试的最小电流
|
i_min = min_i(insulator_c_len, u_ph / 1.732)
|
||||||
|
_min_i = i_min # 尝试的最小电流
|
||||||
_max_i = 200 # 尝试的最大电流
|
_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)): # 雷电流
|
for i_bar in np.linspace(_min_i, _max_i, int((_max_i - _min_i) / 0.1)): # 雷电流
|
||||||
print(f"尝试计算电流为{i_bar:.2f}")
|
print(f"尝试计算电流为{i_bar:.2f}")
|
||||||
rs = rs_fun(i_bar)
|
rs = rs_fun(i_bar)
|
||||||
rc = rc_fun(i_bar, u_ph)
|
rc = rc_fun(i_bar, u_ph)
|
||||||
rg = rg_fun(i_bar, h_cav)
|
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)
|
circle_intersection = solve_circle_intersection(rs, rc, h_gav, h_cav, dgc)
|
||||||
if not circle_intersection: # if circle_intersection is []
|
if not circle_intersection: # if circle_intersection is []
|
||||||
# print("保护弧和暴露弧无交点,检查设置参数。程序退出。")
|
# print("保护弧和暴露弧无交点,检查设置参数。程序退出。")
|
||||||
|
|
@ -56,8 +76,6 @@ def egm():
|
||||||
if distance > rc:
|
if distance > rc:
|
||||||
print("暴露弧已经完全被屏蔽")
|
print("暴露弧已经完全被屏蔽")
|
||||||
break
|
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_min, u_ph, h_gav, h_cav, dgc, 2)
|
||||||
cad.draw(i_max, u_ph, h_gav, h_cav, dgc, 6)
|
cad.draw(i_max, u_ph, h_gav, h_cav, dgc, 6)
|
||||||
cad.save()
|
cad.save()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue