In [1]:
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp
sp.init_printing()
In [2]:
E = 210e9 # Pa
fd = 235e6 # Pa
F = 100e3 # N
In [3]:
l1 = sp.sqrt(2)
l2 = sp.sqrt(5)
ca1 = 1/l1
sa1 = 1/l1
ca2 = 2/l2
sa2 = 1/l2
Výpočet osových sil¶
In [17]:
N1, N2 = sp.symbols('N_1 N_2')
# sum Fx = 0
sumFx = -N1 * ca1 + N2 * ca2
# sum Fz = 0
sumFz = -F + N1 * sa1 + N2 * sa2
res = sp.solve([sumFx, sumFz], [N1, N2])
In [18]:
N1 = res[N1]
N2 = res[N2]
N1.evalf(), N2.evalf()
Out[18]:
Minimální plocha a průměry¶
In [19]:
A1_min = N1 / fd
A2_min = N2 / fd
A1_min.evalf(), A2_min.evalf()
Out[19]:
In [20]:
d1 = sp.sqrt(4 * A1_min / sp.pi)
d2 = sp.sqrt(4 * A2_min / sp.pi)
d1.evalf(), d2.evalf()
Out[20]:
Průměry na celé [mm]¶
In [21]:
d1 = 0.023
d2 = 0.021
A1 = sp.pi * d1**2 / 4
A2 = sp.pi * d2**2 / 4
A1.evalf(), A2.evalf()
Out[21]:
Protažení jednotlivých prutů¶
In [22]:
dl1 = N1 * l1 / E / A1
dl2 = N2 * l2 / E / A2
dl1.evalf(), dl2.evalf()
Out[22]:
Posunutí styčníku od zatížení s využitím tečen¶
- znaménko mínus u ca2 na základě známenek funce kosinus (2. kvadrant)
- případně lze zachovat +, ale je potřeba místo úhlu $\alpha_2$ použít $(180-\alpha_2)$
In [23]:
u, w = sp.symbols('u w')
sp.solve([u * ca2 + w * sa2 - dl2,
- u * ca1 + w * sa1 - dl1], [u, w])
Out[23]:
In [24]:
u, w = sp.symbols('u w')
sp.solve([-u * ca2 + w * sa2 - dl2,
u * ca1 + w * sa1 - dl1], [u, w])
Out[24]:
Přesné řešení pomocí kružnic¶
In [25]:
res = sp.solve([(u - 2)**2 + (w + 1)**2 - (l2 + dl2)**2,
(u + 1)**2 + (w + 1)**2 - (l1 + dl1)**2], [u, w])
display(res)
res[1]
Out[25]:
In [ ]: