在自动微分中引用等式检查。
This commit is contained in:
parent
2984fac87b
commit
b4db8b612e
|
|
@ -37,8 +37,8 @@ string_g = data.string_g # 串重 单位N
|
|||
t_m_data = data.t_m # 导线架设时的气温。单位°C
|
||||
t_e_data = data.t_e # 架线时考虑初伸长的降温,取正值。单位°C
|
||||
alpha_data = data.alpha # 导线膨胀系数 1/°C
|
||||
elastic = data.elastic # 弹性系数 N/mm2
|
||||
area = data.area # 导线面积 mm2
|
||||
elastic_data = data.elastic # 弹性系数 N/mm2
|
||||
area_data = data.area # 导线面积 mm2
|
||||
lambda_m_data = data.lambda_m # 导线比载 N/(m.mm)
|
||||
sigma_m_data = data.sigma_m # 架线时,初伸长未释放前的最低点水平应力。单位N/mm2
|
||||
span_count = data.span_count # 几个档距
|
||||
|
|
@ -116,7 +116,7 @@ def evaluate_d_delta_l_i_sigma_i(val_delta_l_li, val_sigma_i):
|
|||
(l_i, l_array[i]),
|
||||
(lambda_i, lambda_i_array[i]),
|
||||
(alpha, alpha_data),
|
||||
(E, elastic),
|
||||
(E, elastic_data),
|
||||
(t_e, t_e_data),
|
||||
(t_i, t_data),
|
||||
(lambda_m, lambda_m_data),
|
||||
|
|
@ -174,7 +174,7 @@ def evaluate_d_sigma_i1_d_delta_l_i(val_delta_l_li, val_sigma_i):
|
|||
_val = d_sigma_i1_d_l_i.subs(
|
||||
[
|
||||
(G_i, string_g / conductor_n),
|
||||
(A, area),
|
||||
(A, area_data),
|
||||
(lambda_i, lambda_i_array[i]),
|
||||
(lambda_i1, lambda_i_array[i + 1]),
|
||||
(_sigma_i, val_sigma_i[i]),
|
||||
|
|
@ -277,7 +277,7 @@ def solve():
|
|||
l_array[i],
|
||||
lambda_i_array[i],
|
||||
alpha_data,
|
||||
elastic,
|
||||
elastic_data,
|
||||
t_e_data,
|
||||
t_data,
|
||||
val_sigma_i[i],
|
||||
|
|
@ -290,7 +290,7 @@ def solve():
|
|||
fx_sigma_i1.append(
|
||||
val_sigma_i[i + 1]
|
||||
- main.fun_sigma_i1(
|
||||
area,
|
||||
area_data,
|
||||
val_sigma_i[i],
|
||||
math.fsum(val_delta_li[0 : i + 1]),
|
||||
string_length,
|
||||
|
|
@ -346,7 +346,30 @@ def solve():
|
|||
print(loop)
|
||||
print(val_delta_li)
|
||||
print(val_sigma_i)
|
||||
verify(val_delta_li,val_sigma_i)
|
||||
|
||||
|
||||
def verify(val_delta_li, val_sigma_i):
|
||||
main.verify(
|
||||
area_data,
|
||||
h_array,
|
||||
l_array,
|
||||
string_length,
|
||||
string_g / conductor_n,
|
||||
val_sigma_i,
|
||||
val_delta_li,
|
||||
lambda_i_array,
|
||||
t_data,
|
||||
alpha_data,
|
||||
elastic_data,
|
||||
t_e_data,
|
||||
lambda_m_data,
|
||||
t_m_data,
|
||||
sigma_m_data,
|
||||
1e-5,
|
||||
)
|
||||
|
||||
|
||||
solve()
|
||||
|
||||
print("Finished.")
|
||||
|
|
|
|||
10
main.py
10
main.py
|
|
@ -160,7 +160,9 @@ def cal_loop():
|
|||
for i in range(span_count):
|
||||
print("第{i}档导线应力为{tension}".format(i=i, tension=sigma_array[i]))
|
||||
for i in range(span_count - 1):
|
||||
print("第{i}串偏移值为{bias}".format(i=i, bias=math.fsum(delta_l_i_array[0:i])))
|
||||
print(
|
||||
"第{i}串偏移值为{bias}".format(i=i, bias=math.fsum(delta_l_i_array[0:i]))
|
||||
)
|
||||
verify(
|
||||
area,
|
||||
h_array,
|
||||
|
|
@ -204,6 +206,7 @@ def verify(
|
|||
lambda_m,
|
||||
t_m,
|
||||
sigma_m,
|
||||
epsilon=1e-4,
|
||||
):
|
||||
# 用新版大手册p329页(5-61)第一个公式校验
|
||||
b_i = 0
|
||||
|
|
@ -249,13 +252,14 @@ def verify(
|
|||
string_g / 2 / area + w_i # string_g已在传入时考虑了导线分裂数
|
||||
)
|
||||
# TODO 等式允许误差是否可调?
|
||||
if math.fabs(right_equ - left_equ) > 1e-4:
|
||||
if math.fabs(right_equ - left_equ) > epsilon:
|
||||
print(math.fabs(right_equ - left_equ))
|
||||
print("!!!应力等式不满足")
|
||||
return
|
||||
print("等式满足。")
|
||||
|
||||
if __name__=='__main__':
|
||||
|
||||
if __name__ == "__main__":
|
||||
cal_loop()
|
||||
import sympy
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue