unbanlanced_tension/exp.py

119 lines
3.1 KiB
Python
Raw Normal View History

2020-12-13 16:57:48 +08:00
import sympy
import math
# h 悬点高差
# l_i 悬点档距
# alpha 导线膨胀系数 1/°C
# elastic 弹性系数 N/mm2
# t_e 架线时考虑初伸长的降温取正值。单位°C
# lambda_i 计算不平衡张力时导线比载 N/(m.mm)
# sigma_i 计算不平衡张力时最低点水平应力 单位N/mm2
# t_i 计算不平衡张力时导线温度 单位°C
# lambda_m 导线架线时时导线比载 N/(m.mm)
# sigma_m 导线架线时时最低点水平应力 单位N/mm2
# t_m 导线架线时时导线温度 单位°C
def delta_li():
(
delta_l_i,
l_i,
lambda_i,
alpha,
E,
t_e,
t_i,
lambda_m,
t_m,
sigma_m,
sigma_i,
beta_i
) = sympy.symbols(
"""
delta_l_i,
l_i,
lambda_i,
alpha,
E,
t_e,
t_i,
lambda_m,
t_m,
sigma_m,
sigma_i,
beta_i,"""
)
# beta_i = sympy.atan(h_i / l_i) # 高差角
_delta_li = delta_l_i - (
l_i
/ ((sympy.cos(beta_i) ** 2) * (1 + (lambda_i * l_i / sigma_i) ** 2 / 8))
* (
(l_i * sympy.cos(beta_i)) ** 2
/ 24
* ((lambda_m / sigma_m) ** 2 - (lambda_i / sigma_i) ** 2)
+ ((sigma_i - sigma_m) / E / sympy.cos(beta_i))
+ alpha * (t_i + t_e - t_m)
)
)
# d_delta_li_sigma_i = sympy.diff(_delta_li, sigma_i)
return _delta_li
# area 导线截面 单位mm2
# sigma_i 第i档内水平应力 单位N/mm2
# b_i 悬垂串沿线路方向水平偏移距离,沿大号方向为正,反之为负。 单位m
# stringlen_i 第i基直线塔串长 单位m
# G_i 第i基直线塔串重 单位N
# h_i 悬垂串处千中垂位置时,,第 i 基对第 i-1 杆塔上导线悬挂点间的高差大号比小号杆塔悬挂点高者h本身为正值反之为负值。
# lambda_i 第i档导线比载 N/(m.mm)
# h_i1 悬垂串处千中垂位置时,第 i+1 基对第 i 杆塔上导线悬挂点间的高差大号比小号杆塔悬挂点高者h本身为正值反之为负值。
# lambda_i1
def fun_sigma_i1(delta_Li):
(
G_i,
A,
lambda_i,
lambda_i1,
sigma_i,
h_i,
h_i1,
l_i,
l_i1,
stringlen_i,
sigma_i1,
beta_i,
beta_i1,
) = sympy.symbols(
"""
G_i,
A,
lambda_i,
lambda_i1,
sigma_i,
h_i,
h_i1,
l_i,
l_i1,
stringlen_i,
sigma_i1,
beta_i,
beta_i1
"""
)
def b_i():
_t = sympy.Float(0)
for f in delta_Li:
_t += f
return _t
_sigma_i1 = sigma_i1 - (
(
G_i / 2 / A # G_i传入时已考虑导线分裂数
+ lambda_i * l_i / 2 / sympy.cos(beta_i)
+ lambda_i1 * l_i1 / 2 / sympy.cos(beta_i1)
+ sigma_i * h_i / l_i
)
+ sigma_i / b_i() * sympy.sqrt(stringlen_i ** 2 - b_i() ** 2)
) / (sympy.sqrt(stringlen_i ** 2 - b_i() ** 2) / b_i() + h_i1 / l_i1)
return _sigma_i1