diff --git a/main.py b/main.py index 690f4dd..d0f0ebf 100644 --- a/main.py +++ b/main.py @@ -71,7 +71,7 @@ def fun_sigma_i1( beta_i1 = math.atan(h_i1 / l_i1) _sigma_i1 = ( ( - g_i / 2 / area + g_i / 2 / area #g_i传入时已考虑导线分裂数 + lambda_i * l_i / 2 / math.cos(beta_i) + lambda_i1 * l_i1 / 2 / math.cos(beta_i1) + sigma_i * h_i / l_i @@ -102,12 +102,12 @@ def cal_loop(): t_array = data.t_array lambda_array = [lambda_m for j in range(span_count)] loop_count = 1 - sigma_0 = sigma_m * 0.8 + sigma_0 = sigma_m * 0.5 while True: - # 一次增加0.1N - sigma_0 = sigma_0 + 0.1 / data.area - sigma_array = [sigma_0 for j in range(span_count)] b_i = 0 + # 一次增加0.1N + sigma_0 = sigma_0 + 0.01 / data.area + sigma_array = [sigma_0 for j in range(span_count)] delta_l_i_array = [] for i in range(span_count - 1): h_i = h_array[i] @@ -131,7 +131,7 @@ def cal_loop(): delta_l_i_array.append(_delta_l_i) b_i += _delta_l_i length_i = string_length - g_i = string_g + g_i = string_g / data.conductor_n h_i1 = h_array[i + 1] l_i1 = l_array[i + 1] lambda_i1 = lambda_array[i + 1] @@ -153,10 +153,8 @@ def cal_loop(): break pass sigma_array[i + 1] = sigma_i1 - # print("第{loop_count}轮求解。".format(loop_count=loop_count)) - # print(b_i) loop_count += 1 - if math.fabs(b_i) < data.epslon: + if math.fabs(b_i) < data.epsilon: print("迭代{loop_count}次找到解。".format(loop_count=loop_count)) print("悬垂串偏移累加bi为{b_i}".format(b_i=b_i)) for i in range(span_count): @@ -168,7 +166,7 @@ def cal_loop(): h_array, l_array, string_length, - string_g, + string_g / data.conductor_n, sigma_array, delta_l_i_array, lambda_array, @@ -245,7 +243,7 @@ def verify( ) 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 + string_g / 2 / area + w_i # string_g已在传入时考虑了导线分裂数 ) # TODO 等式允许误差是否可调? if math.fabs(right_equ - left_equ) > 1e-4: