修复了(5-61)的一个公式,计算悬垂串偏移值的bug。

This commit is contained in:
facat 2020-06-28 12:29:54 +08:00
parent 0e01470341
commit d7a7769a2e
2 changed files with 41 additions and 7 deletions

View File

@ -14,5 +14,5 @@ sigma_m = 28517 / area # 架线时,初伸长未释放前的最低点水平应
span_count = 3 # 几个档距
# n个档距,n-1个直线塔
h_array = [0, 0, 0]
l_array = [400, 400, 400]
l_array = [200, 400, 600]
t_array = [15, 15, 15]

46
main.py
View File

@ -93,8 +93,8 @@ def cal_loop():
alpha = data.alpha # 导线膨胀系数 1/°C
elastic = data.elastic # 弹性系数 N/mm2
area = data.area # 导线面积 mm2
lambda_m = data.lambda_m # 导线比载 N/(m.mm)
sigma_m = data.sigma_m # 架线时初伸长未释放前的最低点水平应力。单位N/mm2
lambda_m = data.lambda_m # 导线比载 N/(m.mm)
sigma_m = data.sigma_m # 架线时初伸长未释放前的最低点水平应力。单位N/mm2
span_count = data.span_count # 几个档距
# n个档距,n-1个直线塔
h_array = data.h_array
@ -167,6 +167,13 @@ def cal_loop():
sigma_array,
delta_l_i_array,
lambda_array,
t_array,
alpha,
elastic,
t_e,
lambda_m,
t_m,
sigma_m
)
break
if loop_count >= loop_end:
@ -186,19 +193,44 @@ def verify(
sigma_array: [float],
delta_l_i_array: [float],
lambda_array: [float],
t_array,
alpha,
elastic,
t_e,
lambda_m,
t_m,
sigma_m,
):
# 用新版大手册p329页(5-61)最第一个公式校验
# 用新版大手册p329页(5-61)第一个公式校验
b_i=0
for i in range(len(delta_l_i_array)):
sigma_i = sigma_array[i]
sigma_i1 = sigma_array[i + 1]
left_equ = sigma_array[i + 1]
_delta_l_i = delta_l_i_array[i]
t_i = t_array[i]
# 此处用新版大手册p329页(5-58)校验偏移值。
lambda_i = lambda_array[i]
lambda_i1 = lambda_array[i + 1]
h_i = h_array[i]
h_i1 = h_array[i + 1]
l_i = l_array[i]
l_i1 = l_array[i + 1]
cal_delta_l_i = delta_li(
h_i,
l_i,
lambda_i,
alpha,
elastic,
t_e,
t_i,
sigma_i,
lambda_m,
t_m,
sigma_m,
)
if math.fabs(cal_delta_l_i - _delta_l_i) > 1e-4:
print('!!!偏移等式不满足。')
beta_i = math.atan(h_i / l_i)
beta_i1 = math.atan(h_i1 / l_i1)
w_i = (
@ -206,11 +238,13 @@ def verify(
+ sigma_i * h_i / l_i
+ (lambda_i1 * l_i1 / 2 / math.cos(beta_i1) - sigma_i1 * h_i1 / l_i1)
)
right_equ = sigma_i + delta_l_i_array[i] / math.sqrt(
string_length ** 2 - delta_l_i_array[i] ** 2
b_i+=delta_l_i_array[i]
right_equ = sigma_i + b_i / math.sqrt(
string_length ** 2 - b_i ** 2
) * (string_g / 2 / area + w_i)
if math.fabs(right_equ - left_equ) > 1e-4:
print("!!!等式不满足")
print(math.fabs(right_equ - left_equ))
print("!!!应力等式不满足")
return
print("等式满足。")