1.7.J
a) Lagerreaktionen
Berechnen Sie die 3 Lagerreaktionen abhängig von den gegebenen Symbolen.
b) Schnittgrößen aus Gleichgewichtsbedingungen
Sei \(Q_1\) die Querkraft im ersten Bereich links und \(M_1\) das Biegemoment im ersten Bereich links. Und seien \(Q_2, M_2, Q_3, M_3\) die Schnittgrößen im zweiten und dritten Bereich.
Berechnen Sie die dimensionslosen Schnittgrößen in den 3 Bereichen abhängig von den gegebenen Symbole \(a\) und \(F\). Verwenden Sie dazu die Gleichgewichtsbedingungen. Zeigen Sie, dass:
mit den Abkürzungen \(\xi_1 = \tfrac{x_1}{a}\) und \(\xi_2 = \tfrac{x_2}{a}\) und \(\xi_3 = \tfrac{x_3}{a}\).
c) Funktionsgraphen
Zeichnen Sie die dimensionslosen Schnittgrößen:
\(\tfrac{Q_1}{F}\) und \(\tfrac{M_1}{Fa}\) über \(\xi_1=\tfrac{x_1}{a}\)
\(\tfrac{Q_2}{F}\) und \(\tfrac{M_2}{Fa}\) über \(\xi_2=\tfrac{x_2}{a}\)
\(\tfrac{Q_3}{F}\) und \(\tfrac{M_3}{Fa}\) über \(\xi_3=\tfrac{x_3}{a}\)
Lösung
d) Schnittgrößen aus Differentialgleichungen
Berechnen Sie Querkraft und Biegemoment noch einmal. Verwenden Sie dazu diesmal die Differentialgleichungen.
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, integrate
# 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
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)
a, F = symbols("a, F")
q = F/a
Ah, Av, Bv = symbols("Ah, Av, Bv")
R = q*a/2
eq1 = Eq( Ah, 0)
eq2 = Eq( Av + Bv, F + R)
eq3 = Eq( a*F, 2*a*Av + a/3*R)
unks = [Ah, Av, Bv]
eqs = [eq1, eq2, eq3]
sol = solve(eqs, unks)
pprint(sol)
[Ahs, Avs, Bvs] = [sol[x] for x in sol]
x, xi = symbols('x, xi')
var = 1
var = 2
assert(var==1 or var==2)
qx = q*(1-x/a)
if var==1: # Var. 1: Using Equilibrium Conditions:
Q1 = Av
M1 = Av*x
Q2 = Av - F
M2 = Av*(a+x) - F*x
hx = a - x
Rx = (qx * hx)/2
Q3 = Rx
M3 = -hx/3*(Rx)
elif var==2: # Var. 2: Using Differential Equations:
Q0, M0, q = Av, 0, 0
Q1 = Q0 - integrate(q, (x,0,x))
M1 = M0 + integrate(Q1, (x,0,x))
Q0, M0, q = Av - F, a*Av, 0
Q2 = Q0 - integrate(q, (x,0,x))
M2 = M0 + integrate(Q2, (x,0,x))
Q0, M0, q = Av - F + Bv, 2*a*Av - a*F, qx
Q3 = Q0 - integrate(q, (x,0,x))
M3 = M0 + integrate(Q3, (x,0,x))
sub_list =[
(Ah, Ahs),
(Av, Avs),
(Bv, Bvs),
]
[Q1,Q2,Q3,M1,M2,M3] = [X.expand().subs(sub_list) for X in [Q1,Q2,Q3,M1,M2,M3]]
[Q1,Q2,Q3,M1,M2,M3] = [X.expand().subs(q*a, F) for X in [Q1,Q2,Q3,M1,M2,M3]]
[Q1,Q2,Q3,M1,M2,M3] = [X.expand().subs(x,xi*a) for X in [Q1,Q2,Q3,M1,M2,M3]]
# Dimensionless:
[Q1,Q2,Q3] = [X / F for X in [Q1,Q2,Q3]]
[M1,M2,M3] = [X / (F*a) for X in [M1,M2,M3]]
pprint("Section Loads Q / F and M / (aF):")
for X in [Q1,M1, Q2,M2, Q3,M3]:
pprint("\n")
X = X.expand()
X = X.simplify()
pprint(X)
[ ]: einfügen.▶ drücken.