From cc98c278001124c7da8d586668f83a7cc3e64a8a Mon Sep 17 00:00:00 2001 From: n3040 Date: Sun, 26 Dec 2021 20:28:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=88=A0=E9=99=A4=E4=B8=80=E4=BA=9B=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=B3=A8=E9=87=8A=202.1000m=E4=BB=A5?= =?UTF-8?q?=E4=B8=8B=E8=BF=98=E4=B8=8D=E4=B8=8D=E4=BF=AE=E6=AD=A3=E6=B0=94?= =?UTF-8?q?=E9=9A=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core.py | 6 +++++- main.py | 35 ++++++++++++++++------------------- server.py | 1 + 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/core.py b/core.py index ccc41a6..d648fde 100644 --- a/core.py +++ b/core.py @@ -21,6 +21,7 @@ class Parameter: h_arm: float # 导、地线垂直坐标 altitude: int # 海拔,单位米 max_i: float # 最大尝试电流,单位kA + rated_voltage: float # 额定电压 para = Parameter() @@ -186,7 +187,10 @@ def solve_circle_line_intersection( def min_i(string_len, u_ph): # 海拔修正 altitude = para.altitude - k_a = math.exp(altitude / 8150) # 气隙海拔修正 + if altitude > 1000: + k_a = math.exp(altitude / 8150) # 气隙海拔修正 + else: + k_a = 1 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 ce4be50..3cc5648 100644 --- a/main.py +++ b/main.py @@ -5,29 +5,25 @@ 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.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(): if len(sys.argv) < 2: 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: toml_file_path = sys.argv[1] logger.info(f"读取文件{toml_file_path}") @@ -53,6 +49,7 @@ def egm(): para.voltage_n = toml_optional["voltage_n"] # 工作电压分成多少份来计算 ######################################################### # 以上是需要设置的参数 + parameter_display(para) h_whole = para.h_whole string_g_len = para.string_g_len string_c_len = para.string_c_len diff --git a/server.py b/server.py index dfc18c9..d9b350a 100644 --- a/server.py +++ b/server.py @@ -14,6 +14,7 @@ class CalculationParameter(BaseModel): h_whole: float # 杆塔全高 gc_x: tuple[float] # 导、地线水平坐标 ground_angels: tuple[float] # 地面倾角,向下为正 + rated_voltage: float # 额定电压 fastapi_app = FastAPI()