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