1.5.H
Gegeben
Symbole:
Größen:
a) Freischneiden, Lagerreaktionen
Berechnen Sie diese Lagerreaktionen bei A und die Seilkraft unter Verwendung von:
zwei Kraft-Gleichgewichtsbedingungen und
einer Moment-Gleichgewichtsbedingung.
Rechnen Sie zuerst mit Symbolen. Setzen Sie danach die gegebenen Größen ein, und runden Sie Ihre Ergebnisse auf Rundestellenwert \(0{,}01\).
Lösung mit Symbolen: Lösung mit Größen und gerundet auf Rundestellenwert \(0{,}01\):Lösung
b) Drei äquivalente Aussagen
Beginnen Sie erneut. Berechnen Sie diese Lagerreaktionen und diese Seilkraft jetzt unter Verwendung von:
zwei Moment-Gleichgewichtsbedingungen und
einer Kraft-Gleichgewichtsbedingung.
c) Weitere drei äquivalente Aussagen
Beginnen Sie erneut. Berechnen Sie diese Lagerreaktionen und diese Seilkraft jetzt unter Verwendung von drei Moment-Gleichgewichtsbedingungen.
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
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)
except:
x = x.simplify()
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
return
# ---
alpha, F, r = symbols("alpha, F, r")
sub_list=[
( alpha , 30 *deg ),
( F , 5 *N ),
( r , 2 *m/10 ),
]
Ah, Av, S= symbols("Ah, Av, S")
ca = cos(alpha)
sa = sin(alpha)
pprint("\n--- 1 ---")
eq1 = Eq(0, Ah + S*sa) # right
eq2 = Eq(0, Av - S*ca - F) # up
eq3 = Eq(0, r*F - r*S) # about A
sol = solve([eq1, eq2, eq3], [Ah, Av, S])
printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[])
pprint("\n--- 2 ---")
eq1 = eq1 # right
eq2 = eq3 # about A
eq3 = Eq(0, r*sa*Ah - r*ca*Av + r*(1+ca)*F) # about B
sol = solve([eq1, eq2, eq3], [Ah, Av, S])
printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[])
pprint("\n--- 3 ---")
eq1 = eq2 # about A
eq2 = eq3 # about B
eq3 = Eq(0, r*Av - r*(1 + ca)*S*ca - r*sa*S*sa) # about C
sol = solve([eq1, eq2, eq3], [Ah, Av, S])
printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[])
[ ]: einfügen.▶ drücken.