From ca9c2edacf9965c86553b33f0ff4d90beb427c0b Mon Sep 17 00:00:00 2001 From: facat Date: Fri, 11 Dec 2020 21:38:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=87=91=E6=95=B0=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E4=B9=8B=E5=89=8D=E8=AE=A1=E7=AE=97=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 125 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 52 deletions(-) diff --git a/main.py b/main.py index d0f0ebf..727427d 100644 --- a/main.py +++ b/main.py @@ -19,13 +19,13 @@ import data def delta_li( h_i: float, - l_i: float, + l_i, lambda_i: float, _alpha: float, _elastic: float, _t_e: float, t_i: float, - sigma_i: float, + sigma_i, _lambda_m: float, _t_m: float, _sigma_m: float, @@ -71,7 +71,7 @@ def fun_sigma_i1( beta_i1 = math.atan(h_i1 / l_i1) _sigma_i1 = ( ( - g_i / 2 / area #g_i传入时已考虑导线分裂数 + 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 @@ -100,19 +100,21 @@ def cal_loop(): h_array = data.h_array l_array = data.l_array t_array = data.t_array - lambda_array = [lambda_m for j in range(span_count)] + lambda_i_array = data.lambda_i_array loop_count = 1 - sigma_0 = sigma_m * 0.5 + sigma_0 = sigma_m * 0.2 while True: + if 207052==loop_count: + aaa=1 b_i = 0 # 一次增加0.1N - sigma_0 = sigma_0 + 0.01 / data.area + sigma_0 = sigma_0 + 0.1 / data.area sigma_array = [sigma_0 for j in range(span_count)] delta_l_i_array = [] - for i in range(span_count - 1): + for i in range(span_count): h_i = h_array[i] l_i = l_array[i] - lambda_i = lambda_array[i] + lambda_i = lambda_i_array[i] t_i = t_array[i] sigma_i = sigma_array[i] _delta_l_i = delta_li( @@ -134,26 +136,26 @@ def cal_loop(): 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] - try: - sigma_i1 = fun_sigma_i1( - area, - sigma_i, - b_i, - length_i, - g_i, - h_i, - l_i, - lambda_i, - h_i1, - l_i1, - lambda_i1, - ) - except ValueError: - break - pass - sigma_array[i + 1] = sigma_i1 - loop_count += 1 + if i= loop_end: print("!!!未找到解。") print(sigma_array) @@ -208,17 +211,12 @@ def verify( 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, @@ -234,26 +232,49 @@ def verify( ) 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 = ( - lambda_i * l_i / 2 / math.cos(beta_i) - + sigma_i * h_i / l_i - + (lambda_i1 * l_i1 / 2 / math.cos(beta_i1) - sigma_i1 * h_i1 / l_i1) - ) - 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已在传入时考虑了导线分裂数 - ) - # TODO 等式允许误差是否可调? - if math.fabs(right_equ - left_equ) > 1e-4: - print(math.fabs(right_equ - left_equ)) - print("!!!应力等式不满足") - return + if i 1e-4: + print(math.fabs(right_equ - left_equ)) + print("!!!应力等式不满足") + return print("等式满足。") cal_loop() +import sympy - -print("Finished.") +# sympy.init_printing(use_unicode=False) +# a, b, c, d = sympy.symbols("a b c d") +# m, w, n, t = sympy.symbols("m w n t") +# b1, b2, b3 = sympy.symbols("b1 b2 b3") +# x = sympy.symbols("x") +# fx = (a * sympy.exp(-x / b1) + b * sympy.exp(-t / b1) + c) * sympy.cos( +# w * x + d +# ) + m * sympy.exp(-t / b3) * sympy.sin(w * x + n) +# int_f = sympy.integrate(fx, x) +# sympy.pprint(int_f, use_unicode=True) +# sympy.print_mathml(int_f) +# import sympy.matrices +# u_list=sympy.symbols("u1:101") +# sympy.pprint(u_list) +# m=sympy.Matrix(u_list) +# sympy.pprint(m) +# print("Finished.")