1.5.D
Gegeben
Zwei glatte (Kreis-)Zylinder drücken gegen einen Balken.
Die Balkendicke \(t\) ist gegenüber \(a\) vernachlässigbar klein.
Symbole:
Berechnen Sie die Lagerreaktionen. Gehen Sie wie folgt vor.
a) Lagerreaktionen und Kontaktkräfte
Berechnen Sie die Lagerreaktionen, die Seilkraft und die Kontaktkräfte.
b) Ergebnisse für gegebene Größen
Berechnen Sie Lagerreaktionen, die Seilkraft und die Kontaktkräfte für folgende Größen - und gerundet auf Rundestellenwert \(1\).
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
# 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
# ---
a, g, mass, M = symbols("a, g, mass, M")
sub_list=[
( a, half *m ),
( g, 10 *m/s**2 ),
( mass, 10 *kg ),
( M, 10 *N*m ),
]
Ah, Av, B, N1, N2, N3, S = symbols("Ah, Av, B, N1, N2, N3, S")
alpha = 45 *deg
ca = cos(alpha)
sa = sin(alpha)
# ---
eq1 = Eq(0, N1 - S*sa)
eq2 = Eq(0, S*ca- mass*g)
sol = solve([eq1, eq2],[S, N1])
pprint(sol)
S, N1 = sol[S], sol[N1]
pprint("\nS / N:")
printout(S, unit=N, prec=0, sub_list=sub_list)
pprint("\nN1 / N:")
printout(N1, unit=N, prec=0, sub_list=sub_list)
# ---
eq3 = Eq(0, N2 - N1)
eq4 = Eq(0, N3 - mass*g)
sol = solve([eq3, eq4],[N2, N3])
pprint(sol)
N2, N3 = sol[N2], sol[N3]
pprint("\nN2 / N:")
printout(N2, unit=N, prec=0, sub_list=sub_list)
pprint("\nN3 / N:")
printout(N3, unit=N, prec=0, sub_list=sub_list)
# ---
eq5 = Eq(0, Ah - N2)
eq6 = Eq(0, Av + B - N3)
eq7 = Eq(0, M + 2*a*B + a*N2/2 - 5*a/2*N3)
sol = solve([eq5, eq6, eq7], [Ah, Av, B])
pprint(sol)
Ah, Av = sol[Ah], sol[Av]
pprint("\nAh / N:")
printout(Ah, unit=N, prec=0, sub_list=sub_list)
pprint("\nAv / N:")
printout(Av, unit=N, prec=0, sub_list=sub_list)
[ ]: einfügen.▶ drücken.