def _bjelkeformel_P(mast, j, fh):
"""Beregner deformasjoner i kontakttrådhøyde grunnet en punklast.
Dersom lasten angriper under kontakttrådhøyde:
:math:`\\delta = \\frac{P*x^2}{6EI}(3fh-x)`
Dersom lasten angriper over kontakttrådhøyde:
:math:`\\delta = \\frac{P*fh^2}{6EI}(3x-fh)`
:param Mast mast: Aktuell mast som beregnes
:param Kraft j: Last som skal påføres ``mast``
:param float fh: Kontakttrådhøyde :math:`[m]`
:return: Matrise med forskyvningsbidrag :math:`[mm]`
:rtype: :class:`numpy.array`
"""
D = numpy.zeros((5, 8, 3))
if j.e[0] < 0:
E = mast.E
delta_topp = mast.h + j.e[0]
delta_topp = 0 if delta_topp < 0 else delta_topp
L = (mast.h - delta_topp) * 1000
delta_y = integrate.quad(mast.Iy_int_P, 0, L, args=(delta_topp,))
delta_z = integrate.quad(mast.Iz_int_P, 0, L, args=(delta_topp,))
I_y = L ** 3 / (3 * delta_y[0])
I_z = L ** 3 / (3 * delta_z[0])
f_y = j.f[1]
f_z = j.f[2]
x = -j.e[0] * 1000
fh *= 1000
if fh > x:
D[j.type[1], j.type[0], 1] = (f_z * x**2) / (6 * E * I_y) * (3 * fh - x)
D[j.type[1], j.type[0], 0] = (f_y * x**2) / (6 * E * I_z) * (3 * fh - x)
else:
D[j.type[1], j.type[0], 1] = (f_z * fh ** 2) / (6 * E * I_y) * (3 * x - fh)
D[j.type[1], j.type[0], 0] = (f_y * fh ** 2) / (6 * E * I_z) * (3 * x - fh)
return D
评论列表
文章目录