1.6.G
Gegeben
Symbole: \(a, F, G\)
Am Knoten D ist ein Seil angebracht.
Die Gelenke haben keine räumliche Ausdehnung, sodass gilt: \(\alpha=45^\circ.\)
Der Kontakt zwischen den Gelenken und dem über die Gelenke gelegten Seil ist reibungslos.
a) Lagerreaktionen
Berechnen Sie die Lagerreaktionen.
b) Stäbe 4, 5 und 7
Berechnen Sie \(S_4, S_5, S_7\). Schneiden Sie dazu in einem Freischnitt durch alle drei Stäbe.
c) Spezialfall
Berechnen Sie \(S_4, S_5, S_7\) für folgende Größen:
Lösung
Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf SymPy
from sympy.physics.units import kg, m, s
from sympy import pi, S, pprint, symbols, cos, sin, Matrix, Eq, solve, sqrt
# Units:
N = kg*m/s**2
k, M, G = 10**3, 10**6, 10**9
kN = k*N
Pa = N/m**2
MPa, GPa = M*Pa, G*Pa
deg = pi/180
half = S(1)/2
# Rounding:
def iso_round(x, pv):
try:
x = float(x)
tmp = round(x, pv)
except TypeError:
x = x.evalf()
from functools import partial
func = partial(round, ndigits = pv)
tmp = x.applyfunc(func)
return tmp
def print_dict(sol, unit=1, unit_str=None, prec="nil", sub_list=[]):
tmp = {str(k): v for k, v in sol.items()}
tmp = sorted(tmp.items())
for k, v in tmp:
if unit_str:
print("\n"+str(k) + " / " + unit_str + ":")
else:
print("\n"+str(k) + ":")
v = v.subs(sub_list)
v /= unit
try:
v = v.applyfunc(simplify)
except:
v = v.simplify()
if prec != "nil":
v = iso_round(v, prec)
pprint(v)
a, F, G = symbols("a, F, G")
Ah, Av, Bv = symbols('Ah, Av, Bv')
sub_list = [
(F, 1 *N),
(G, 1 *N),
]
eqns = [
Eq( 0, Ah + F ),
Eq( 0, Av + Bv - G ),
Eq( 0, - G * a + Bv * 2 * a - F * a ),
]
unks = [Bv, Ah, Av]
sol = solve(eqns, unks)
pprint(sol)
S4, S5, S7 = symbols('S4, S5, S7')
Bv = sol[Bv]
c = sqrt(2)/2
eqns = [
Eq( 0, -G - S7 - S5 - S4*c + F - G*c ),
Eq( 0, -G*c + S4*c + Bv ),
Eq( 0, a*S4*c + a*S5 ),
]
unks=[S4, S5, S7]
sol = solve(eqns, unks)
pprint(sol)
print_dict(sol, unit=N, unit_str="N", prec="nil", sub_list=sub_list)
[ ]: einfügen.▶ drücken.