1.5.C
Berechnen Sie die Lagerreaktionen. Gehen Sie wie folgt vor.
a) Resultierende
Verwenden Sie die gegebenen Symbole: Berechnen Sie damit die Resultierende \(R\) der verteilten Kraft und die Position ihrer Wirkungslinie.
Siehe Freischnitt im nächsten Aufgabenteil.Lösung
b) Lagerreaktionen
Berechnen Sie sämtliche Lagerreaktionen für die gegebenen Symbole.
Lösung: Das liefert dieselben Anteile horizontal/vertikal wie bei Variante 1, nämlich:Lösung: Variante 2
c) Ergebnisse für Größen
Berechnen Sie die Lagerreaktionen bei A und B für die folgenden gegebenen Größen, und zwar in \(\mathrm{N}\) (Newton) und gerundet auf Rundestellenwert \(1\).
Einsetzen liefert: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, integrate, simplify
from sympy import python
import pickle
# 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)
# old:
# except:
# new:
except AttributeError:
tmp = x.simplify()
if tmp is not None:
x = tmp
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
return
# ---
fac, alpha, a, b, q = symbols("fac, alpha, a, b, q")
# # Parameters:
# sub_list=[
# ( alpha, 30 *deg ),
# ( a, S(3)/2 *m ),
# ( b, 1 *m ),
# ( q, 600 *N/m ),
# ]
# # 1:
# fac = S(1)
# # 2:
# fac = S(2)/3
# # 3:
# fac = S(1)/3
# # 4:
# fac = S(1)/2
# # HA:
# sub_list=[
# ( alpha, 45 *deg ),
# ( a, S(3)/2 *m ),
# ( b, 1 *m ),
# ( q, 600 *N/m ),
# ]
# fac = S(1)/4
# 1
sub_list=[
( fac, S(1) ),
( alpha, 30 *deg ),
( a, S(3)/2 *m ),
( b, 1 *m ),
( q, 600 *N/m ),
]
# 2
sub_list=[
( fac, S(2)/3 ),
( alpha, 30 *deg ),
( a, S(3)/2 *m ),
( b, 1 *m ),
( q, 600 *N/m ),
]
# 3
sub_list=[
( fac, S(1)/3 ),
( alpha, 30 *deg ),
( a, S(3)/2 *m ),
( b, 1 *m ),
( q, 600 *N/m ),
]
# 4
sub_list=[
( fac, S(1)/2 ),
( alpha, 30 *deg ),
( a, S(1)/2 *m ),
( b, 1 *m ),
( q, 600 *N/m ),
]
# Exam:
sub_list=[
( fac, S(3)/4 ),
( alpha, 45 *deg ),
( a, S(3)/2 *m ),
( b, 1 *m ),
( q, 100 *N/m ),
]
qL = fac*q
qR = (1-fac)*q
x = symbols("x")
qx = qL + (qR - qL)*x/(2*b)
R = integrate(qx, (x, 0, 2*b))
xR = integrate(x*qx/R, (x, 0, 2*b))
pprint("\nR / N, xR / m:")
printout(R, unit=N, prec="nil", sub_list=sub_list)
printout(xR, unit=m, prec="nil", sub_list=sub_list)
Ah, Bv, Ch, Cv, Dh, Dv = symbols("Ah, Bv, Ch, Cv, Dh, Dv")
pprint("\nVar. 1:")
ca, sa = cos(alpha), sin(alpha)
# Equilibrium conditions:
eq1 = Eq( 0, Ah - Ch )
eq2 = Eq( 0, Bv + Cv - R )
eq3 = Eq( 0, xR*R - b*Bv -2*b*Cv )
eq4 = Eq( 0, Ch - Dh )
eq5 = Eq( 0, Cv - Dv )
eq6 = Eq( 0, - Dh*ca + Dv*sa )
eqns = [eq1,eq2,eq3,eq4,eq5,eq6]
unknowns = [Ah, Bv, Ch, Cv, Dh, Dv]
sol = solve(eqns, unknowns)
pprint(sol)
pprint("\nVar. 2:")
D = symbols('D')
eq1 = Eq( 0, Ah - D*sa )
eq2 = Eq( 0, R - Bv - D*ca )
eq3 = Eq( 0, -b*Bv + (2*b-xR)*R )
eqns = [eq1, eq2, eq3]
unknowns = [Ah, Bv, D]
sol = solve(eqns, unknowns)
Ah = sol[Ah]
Bv = sol[Bv]
printout(Ah, unit=1, prec="nil")
printout(Bv, unit=1, prec="nil")
printout(Ah, unit=N, prec=20, sub_list=sub_list)
printout(Bv, unit=N, prec=20, sub_list=sub_list)
[ ]: einfügen.▶ drücken.