parent
cc98c27800
commit
8ec26aa3a3
6
core.py
6
core.py
|
|
@ -10,7 +10,6 @@ gCount = 1
|
||||||
class Parameter:
|
class Parameter:
|
||||||
h_g_sag: float # 地线弧垂
|
h_g_sag: float # 地线弧垂
|
||||||
h_c_sag: float # 导线弧垂
|
h_c_sag: float # 导线弧垂
|
||||||
h_whole: float # 杆塔全高
|
|
||||||
voltage_n: int # 工作电压分成多少份来计算
|
voltage_n: int # 工作电压分成多少份来计算
|
||||||
td: int # 雷暴日
|
td: int # 雷暴日
|
||||||
insulator_c_len: float # 串子绝缘长度
|
insulator_c_len: float # 串子绝缘长度
|
||||||
|
|
@ -187,10 +186,7 @@ def solve_circle_line_intersection(
|
||||||
def min_i(string_len, u_ph):
|
def min_i(string_len, u_ph):
|
||||||
# 海拔修正
|
# 海拔修正
|
||||||
altitude = para.altitude
|
altitude = para.altitude
|
||||||
if altitude > 1000:
|
k_a = math.exp((altitude-1000) / 8150) # 气隙海拔修正
|
||||||
k_a = math.exp(altitude / 8150) # 气隙海拔修正
|
|
||||||
else:
|
|
||||||
k_a = 1
|
|
||||||
u_50 = 1 / k_a * (530 * string_len + 35) # 50045 上附录的公式,实际应该用负极性电压的公式
|
u_50 = 1 / k_a * (530 * string_len + 35) # 50045 上附录的公式,实际应该用负极性电压的公式
|
||||||
z_0 = 300 # 雷电波阻抗
|
z_0 = 300 # 雷电波阻抗
|
||||||
z_c = 251 # 导线波阻抗
|
z_c = 251 # 导线波阻抗
|
||||||
|
|
|
||||||
15
main.py
15
main.py
|
|
@ -5,12 +5,13 @@ from loguru import logger
|
||||||
from core import *
|
from core import *
|
||||||
import timeit
|
import timeit
|
||||||
|
|
||||||
|
|
||||||
# 打印参数
|
# 打印参数
|
||||||
def parameter_display(para: Parameter):
|
def parameter_display(para: Parameter):
|
||||||
logger.info(f"额定电压 kV {para.rated_voltage}")
|
logger.info(f"额定电压 kV {para.rated_voltage}")
|
||||||
logger.info(f"导线弧垂 m {para.h_c_sag}")
|
logger.info(f"导线弧垂 m {para.h_c_sag}")
|
||||||
logger.info(f"地线弧垂 m {para.h_g_sag}")
|
logger.info(f"地线弧垂 m {para.h_g_sag}")
|
||||||
logger.info(f"全塔高 m {para.h_whole}")
|
logger.info(f"全塔高 m {para.h_arm[0]}")
|
||||||
logger.info(f"串绝缘距离 m {para.insulator_c_len}")
|
logger.info(f"串绝缘距离 m {para.insulator_c_len}")
|
||||||
logger.info(f"导线串长 m {para.string_c_len}")
|
logger.info(f"导线串长 m {para.string_c_len}")
|
||||||
logger.info(f"地线串长 m {para.string_g_len}")
|
logger.info(f"地线串长 m {para.string_g_len}")
|
||||||
|
|
@ -23,7 +24,7 @@ def parameter_display(para: Parameter):
|
||||||
|
|
||||||
def egm():
|
def egm():
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
toml_file_path = "default.toml"
|
toml_file_path = "article.toml"
|
||||||
else:
|
else:
|
||||||
toml_file_path = sys.argv[1]
|
toml_file_path = sys.argv[1]
|
||||||
logger.info(f"读取文件{toml_file_path}")
|
logger.info(f"读取文件{toml_file_path}")
|
||||||
|
|
@ -32,7 +33,7 @@ def egm():
|
||||||
toml_parameter = toml_dict["parameter"]
|
toml_parameter = toml_dict["parameter"]
|
||||||
para.h_g_sag = toml_parameter["h_g_sag"] # 地线弧垂
|
para.h_g_sag = toml_parameter["h_g_sag"] # 地线弧垂
|
||||||
para.h_c_sag = toml_parameter["h_c_sag"] # 导线弧垂
|
para.h_c_sag = toml_parameter["h_c_sag"] # 导线弧垂
|
||||||
para.h_whole = toml_parameter["h_whole"] # 杆塔全高
|
# para.h_whole = toml_parameter["h_whole"] # 杆塔全高
|
||||||
para.td = toml_parameter["td"] # 雷暴日
|
para.td = toml_parameter["td"] # 雷暴日
|
||||||
para.insulator_c_len = toml_parameter["insulator_c_len"] # 串子绝缘长度
|
para.insulator_c_len = toml_parameter["insulator_c_len"] # 串子绝缘长度
|
||||||
para.string_c_len = toml_parameter["string_c_len"]
|
para.string_c_len = toml_parameter["string_c_len"]
|
||||||
|
|
@ -50,7 +51,7 @@ def egm():
|
||||||
#########################################################
|
#########################################################
|
||||||
# 以上是需要设置的参数
|
# 以上是需要设置的参数
|
||||||
parameter_display(para)
|
parameter_display(para)
|
||||||
h_whole = para.h_whole
|
h_whole = para.h_arm[0] # 塔全高
|
||||||
string_g_len = para.string_g_len
|
string_g_len = para.string_g_len
|
||||||
string_c_len = para.string_c_len
|
string_c_len = para.string_c_len
|
||||||
h_g_sag = para.h_g_sag
|
h_g_sag = para.h_g_sag
|
||||||
|
|
@ -304,10 +305,10 @@ def egm():
|
||||||
)
|
)
|
||||||
avr_n_sf += n_sf / voltage_n
|
avr_n_sf += n_sf / voltage_n
|
||||||
n_sf_phases[phase_conductor_foo][u_bar] = n_sf
|
n_sf_phases[phase_conductor_foo][u_bar] = n_sf
|
||||||
logger.info(f"工作电压为{u_ph:.2f}kV时,跳闸率是{n_sf:.6}")
|
logger.info(f"工作电压为{u_ph:.2f}kV时,跳闸率是{n_sf:.16f}")
|
||||||
logger.info(f"跳闸率是{avr_n_sf:.6f}")
|
logger.info(f"跳闸率是{avr_n_sf:.16f}")
|
||||||
logger.info(
|
logger.info(
|
||||||
f"不同相跳闸率是{np.array2string(np.mean(n_sf_phases,axis=1),precision=6)}"
|
f"不同相跳闸率是{np.array2string(np.mean(n_sf_phases,axis=1),precision=16)}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue