diff --git a/data.py b/data.py index c2b707d..edc5d69 100644 --- a/data.py +++ b/data.py @@ -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] \ No newline at end of file diff --git a/main.py b/main.py index 52b9921..dda4259 100644 --- a/main.py +++ b/main.py @@ -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("等式满足。")