1.6.K
Gegeben
Symbole:
Größen:
a) Geometrie
Zeigen Sie, dass:
b) Knotenschnitt und Stabkräfte
Schneiden Sie frei am oberen Knoten, um die Stabkräfte \(S_1\) und \(S_2\) sichtbar zu machen.
Geben Sie zwei Gleichgewichtsbedingungen an, aus denen sich \(S_1\) und \(S_2\) Berechnen lassen.
Berechnen Sie \(S_1\) und \(S_1\).
Und zwar:
für die gegebenen Symbolen und
für die gegebenen Größen und gerundet auf Rundestellenwert \(0{,}01\).
Lösung für die gegebenen Symbole: Lösung für die gegebenen Größen und gerundet:Lösung
c) Lagerreaktionen
Berechnen Sie die Lagerreaktionen bei A und B:
für die gegebenen Symbolen und
für die gegebenen Größen und gerundet auf Rundestellenwert \(0{,}01\).
Die Stabkräfte wirken in entgegengesetzter Richtung auf die Lager. Lösung nach Einsetzen der zuvor berechneten Stabkräfte: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
# Printing:
def printout(x, unit=1, prec="nil", sub_list=[]):
x = x.subs(sub_list)
x /= unit
try:
x = x.applyfunc(simplify)
except:
tmp = x.simplify()
if tmp != None:
x = tmp
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
return
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)
prec = 2
a, F = symbols("a, F")
S1, S2 = symbols("S1, S2")
sub_list=[
(a, 3 *m),
(F, 5 *N)
]
pprint("\nS1 and S2:")
ca = 2/sqrt(5)
sa = 1/sqrt(5)
cb = 1/sqrt(2)
sb = 1/sqrt(2)
eq1 = Eq(0, -S1*sa + S2*sb)
eq2 = Eq(0, F + S1*ca + S2*cb)
eqs = [eq1, eq2]
sol = solve(eqs, [S1, S2])
S1 = sol[S1]
S2 = sol[S2]
pprint(S1)
pprint(S2)
pprint("\nS1 and S2 / N:")
printout(S1, unit=N, prec=prec, sub_list=sub_list)
printout(S2, unit=N, prec=prec, sub_list=sub_list)
Ah, Av, Bh, Bv = symbols("Ah, Av, Bh, Bv")
eq1 = Eq(Ah, -S1*sa)
eq2 = Eq(Av, -S1*ca)
eq3 = Eq(Bh, -S2*sb)
eq4 = Eq(Bv, -S2*cb)
eqs = [eq1, eq2, eq3, eq4]
pprint("\nSupport Reactions / N:")
sol = solve(eqs, [Ah, Av, Bh, Bv])
print_dict(sol, unit=N, unit_str="N", prec=prec, sub_list=sub_list)
[ ]: einfügen.▶ drücken.