1.5.I
Gegeben
Symbole: \(a, F>0\) und davon abhängig \(M=aF.\)
Gegebene Größen:
Und davon abhängig \(M = 15\,\mathrm{Nm}.\)
Bestimmen Sie die Lagerreaktion bei B. Gehen Sie wie folgt vor:
a) Komponenten von F
Zeigen Sie, dass für die gegebenen Größen gilt:
Mit dem Winkel \(\alpha\) siehe nächster Aufgabenteil gilt: Außerdem ist: und damit ergibt sich das, was zu zeigen ist.Lösung
b) Lagerreaktion bei B
Berechnen Sie die Lagerreaktion bei B mit der Moment-Gleichgewichtsbedingung um A. Und zwar:
für die gegebenen Symbole und
für die gegebenen Größen.
c) Vektoren
Verwenden Sie ab hier folgende Symbole:
Berechnen Sie die \((x,y,z)\)-Komponenten der Vektoren \(\boldsymbol r_F\) und \(\boldsymbol r_B\):
d) Kraft- und Momentvektoren
Geben Sie die zur Kraft \(F\) und zur Lagerreaktion bei B und zum Moment \(M\) gehörenden Vektoren an. Und zwar ihre \((x,y,z)\)-Komponenten:
Lösung
e) Berechnung mit Vektoren
Berechnen Sie die Kraft \(B_v\), und zwar mit den zuvor berechneten Vektoren.
Die Summe aller Momente um A muss gleich null sein. Die ersten beiden Gleichungen dieser Matrix-Gleichung liefern nur die Aussage, dass \(0=0\). Die dritte Gleichung liefert wie oben: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, exp, simplify # noqa: F401
from sympy import atan, sympify
from numpy import shape, eye
# 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
cm = m/100
mm = m/1000
# 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
def printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[]):
for s in sol:
if unit_str:
print("\n"+str(s) + " / " + unit_str + ":")
else:
print("\n"+str(s) + ":")
x = sol[s]
x = x.subs(sub_list)
x /= unit
try:
x = x.applyfunc(simplify)
# old:
# except:
# new:
except AttributeError:
x = x.simplify()
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
# ---
f35 = S(3)/5
f43 = S(4)/3
f45 = S(4)/5
symbolic = True
# symbolic = False
if symbolic:
# quantity = symbol:
a = symbols("a")
F = symbols("F", positive=True)
Ah, Av, Bv = symbols("Ah Av Bv")
else:
# quantity = number and unit:
a = 1 * m
F = 15 * N
M = a * F
Fh = F*3/5
Fv = F*4/5
if symbolic:
pprint("\n(Fh, Fv) / F:")
tmp = Fh/F
pprint(tmp)
tmp = Fv/F
pprint(tmp)
else:
pprint("\n(Fh, Fv) / N:")
tmp = Fh/N
pprint(tmp)
tmp = Fv/N
pprint(tmp)
Ah, Av, Bv= symbols("Ah, Av, Bv")
eq1 = Eq(0, Ah + Fh)
eq2 = Eq(0, Av + Bv + Fv)
eq3 = Eq(0,- M + 9*a*Fv - a*Fh + 12*a*Bv)
sol = solve([eq1,eq2,eq3],[Ah,Av,Bv])
if symbolic:
printout_sol(sol, unit=F, unit_str="F", prec="nil", sub_list=[])
else:
printout_sol(sol, unit=N, unit_str="N", prec="nil", sub_list=[])
rF = Matrix([ 9*a, a, 0 ])
rB = Matrix([ 12*a, 0, 0 ])
Bv = symbols("Bv")
Fv = Matrix([ Fh, Fv, 0])
B = Matrix([ 0, Bv, 0 ])
M = Matrix([ 0, 0, -M ])
MF = rF.cross(Fv)
MB = rB.cross(B)
sum_M = MF + MB + M
Zero = Matrix([ 0, 0, 0 ])
eq_M = Eq(Zero, sum_M)
sol=solve(eq_M, Bv)
tmp = sol[Bv]
if symbolic:
pprint("\nBv / F:")
tmp /= F
pprint(tmp)
[ ]: einfügen.▶ drücken.