Compare commits

..

No commits in common. "cc98c278001124c7da8d586668f83a7cc3e64a8a" and "7f03fc2b9c653c1f7a05df0ef3205bb361d0998d" have entirely different histories.

3 changed files with 21 additions and 31 deletions

View File

@ -21,7 +21,6 @@ class Parameter:
h_arm: float # 导、地线垂直坐标 h_arm: float # 导、地线垂直坐标
altitude: int # 海拔,单位米 altitude: int # 海拔,单位米
max_i: float # 最大尝试电流单位kA max_i: float # 最大尝试电流单位kA
rated_voltage: float # 额定电压
para = Parameter() para = Parameter()
@ -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 / 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 # 导线波阻抗

45
main.py
View File

@ -5,25 +5,29 @@ from loguru import logger
from core import * from core import *
import timeit 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.insulator_c_len}")
logger.info(f"导线串长 m {para.string_c_len}")
logger.info(f"地线串长 m {para.string_g_len}")
logger.info(f"挂点垂直坐标 m {para.h_arm}")
logger.info(f"挂点水平坐标 m {para.gc_x}")
logger.info(f"地面倾角 ° {[an*180/math.pi for an in para.ground_angels]}")
logger.info(f"海拔高度 m {para.altitude}")
logger.info(f"雷暴日 d {para.td}")
def egm(): def egm():
if len(sys.argv) < 2: if len(sys.argv) < 2:
toml_file_path = "default.toml" toml_file_path = "default.toml"
# # logger.info('没指定计算文件!程序结束。')
# # sys.exit(0)
# h_g_sag = 20 # 地线弧垂
# h_c_sag = 20 # 导线弧垂
# h_whole = 106.1 # 杆塔全高
# voltage_n = 3 # 工作电压分成多少份来计算
# td = 20 # 雷暴日
# insulator_c_len = 6.98 # 串子绝缘长度
# string_c_len = 9.2
# string_g_len = 0.63
# gc_x = [32.2 / 2, 32.2 / 2, 15, 17.0] # 导、地线水平坐标
# ground_angels = [40 / 180 * math.pi] # 地面倾角,向下为正
# h_arm = 34
# gc_y = [
# h_whole - string_g_len - h_g_sag * 2 / 3, # 地线对地平均高
# # h_whole - string_c_len - h_c_sag - 2.7, # 导线对地平均高
# h_whole - string_c_len - h_c_sag * 2 / 3 - h_arm, # 导线对地平均高
# # h_whole - string_c_len - h_c_sag - 35.7, # 导线对地平均高
# ]
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}")
@ -44,12 +48,10 @@ def egm():
para.h_arm = toml_parameter["h_arm"] para.h_arm = toml_parameter["h_arm"]
para.altitude = toml_parameter["altitude"] para.altitude = toml_parameter["altitude"]
para.max_i = toml_parameter["max_i"] para.max_i = toml_parameter["max_i"]
para.rated_voltage = toml_parameter["rated_voltage"]
toml_optional = toml_dict["optional"] toml_optional = toml_dict["optional"]
para.voltage_n = toml_optional["voltage_n"] # 工作电压分成多少份来计算 para.voltage_n = toml_optional["voltage_n"] # 工作电压分成多少份来计算
######################################################### #########################################################
# 以上是需要设置的参数 # 以上是需要设置的参数
parameter_display(para)
h_whole = para.h_whole h_whole = para.h_whole
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
@ -294,14 +296,7 @@ def egm():
# if abs(calculus-0.05812740052770032)<1e-5: # if abs(calculus-0.05812740052770032)<1e-5:
# abc=123 # abc=123
# pass # pass
rated_voltage = para.rated_voltage n_sf = 2 * ng / 10 * calculus * arc_possibility(750, insulator_c_len)
n_sf = (
2
* ng
/ 10
* calculus
* arc_possibility(rated_voltage, insulator_c_len)
)
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:.6}")

View File

@ -14,7 +14,6 @@ class CalculationParameter(BaseModel):
h_whole: float # 杆塔全高 h_whole: float # 杆塔全高
gc_x: tuple[float] # 导、地线水平坐标 gc_x: tuple[float] # 导、地线水平坐标
ground_angels: tuple[float] # 地面倾角,向下为正 ground_angels: tuple[float] # 地面倾角,向下为正
rated_voltage: float # 额定电压
fastapi_app = FastAPI() fastapi_app = FastAPI()