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