2.4.3.F
Dgl. mit \(q = 0\) notieren und integrieren: Randbedingungen und allgemeine Lösung Auswertung der ersten beiden Randbedingungen liefert \(C_3 = 0\) und \(C_4 = 0\), sodass verbleibt: Über \(w'''\) sowie \(w'\) haben wir keine Informationen. Wir verwenden daher nur zwei dieser 4 Gleichungen, nämlich: Auswerten der verbleibenden zwei Randbedingungen liefert: Konstanten berechnen: Lösen des LGS liefert: Einsetzen dieser Konstanten in die allgemeine Lösung \(w\) von oben liefert die spezielle Lösung: mit \(\xi = \tfrac x a.\) Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf Standard-Lösungsweg
SymPy
from sympy import symbols, Eq, solve, pprint
a, EI = symbols("a, EI", positive = True)
MB = symbols("MB")
C1, C2 = symbols("C1, C2")
eq1 = Eq( -EI * (C1 * a + C2), MB )
eq2 = Eq( C1 * a**3 / 6 + C2 * a**2 / 2 , 0 )
sol = solve([eq1, eq2], [C1, C2])
pprint("\nConstants of Integration:")
pprint(sol)
x = symbols("x")
C1, C2 = sol[C1], sol[C2]
w = C1 * x**3 / 6 + C2 * x**2 / 2
pprint("\nw(ξ):")
xi = symbols("xi")
w = w.subs(x, xi*a)
w = w.collect(MB*a**2/EI)
pprint(w)
[ ]: einfügen.▶ drücken.
a) Biegemoment
Zeigen Sie an einem Freikörperbild, dass:
mit der zunächst unbekannten Lagerkraft \(B\).
Bemerkung \(M(x)\) kann auch an einem Freikörperbild mit positivem Schnittufer berechnet werden, aber dazu müssten die Lagerreaktionen bei A bekannt sein oder zuvor berechnet werden. Der Freischnitt mit negativem Schnittufer ermöglicht es, \(M(x)\) zu berechnen, ohne die Lagerreaktionen bei A zu kennen.Lösung
b) Integration und allgemeine Lösung
Zeigen Sie, dass:
die allgemeine Lösung ist mit \(C_1\) und \(C_2\) als zunächst unbekannte Integrationskonstanten.
Lösung
c) Randbedingungen und spezielle Lösung
Geben Sie 2 Randbedingungen an, die bei A gelten. Zeigen Sie, dass aus diesen Randbedingungen folgt, dass:
sodass:
mit \(\xi = \tfrac x a.\)
Randbedingungen bei A: Diese zwei Aussagen eingesetzt in die allgemeine Lösung und die Ableitung der allgemeinen Lösung ergibt ein Lineares Gleichungssystem für die zwei Integrationskonstanten \(C_1\) und \(C_2\). Lösung:Lösung
d) Weitere Randbedingung
Berechnen Sie \(B\) (abhängig von den gegebenen Symbolen), sodass gilt:
Zeigen Sie, dass:
Zeigen Sie, dass mit diesem \(B\) gilt:
Einsetzen von \(B=-\tfrac 3 2 \tfrac{M_B}{a}\) in die spezielle Lösung liefert: Es gilt \(w=0\) für folgende Positionen: \(x=0\), d.h. \(\xi = \tfrac x a = 0\) \(x=a\), d.h. \(\xi = \tfrac x a = 1\)Lösung
f) Funktionsgraph
Sei wie oben:
Seien ab hier folgende Größen gegeben:
Zeigen Sie, dass mit diesen Größen gilt:
Zeichnen Sie \(w\) in \(\mathrm{mm}\) (Millimeter) über \(x\) in \(\mathrm{m}\) (Meter).
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
from sympy import expand, collect, diff, 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
cm = m/100
mm = m/1000
kNm = kN*m
# 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
# ---
f22, f32, f42 = S(2)/2, S(3)/2, S(4)/2
a, MB, EI, B = symbols('a, MB, EI, B')
x, xi = symbols("x, xi")
M = (a - x) * B + MB
C1, C2 = symbols('C1, C2')
wpp = - 1/EI * M
wp = integrate(wpp,x) + 1/EI*C1
w = integrate(wp,x) + 1/EI*C2
pprint("\nEI w:")
w = expand(w)
w = collect(w,B)
w = w.simplify()
pprint(w*EI)
# w(0) = 0
# w'(0) = 0
bc1 = Eq(w.subs(x,0), 0)
bc2 = Eq(wp.subs(x,0), 0)
pprint("\nC1, C2:")
eqns = [bc1, bc2]
unknowns = [C1, C2]
sol = solve(eqns, unknowns)
sC1 = sol[C1]
sC2 = sol[C2]
pprint(sC1)
pprint(sC2)
pprint("\nEI w for unknown B:")
w = w.subs({C1: sC1, C2: sC2})
w = w.subs(x, xi*a)
EIw1 = EI*w
tmp = EIw1.expand()
tmp = collect(tmp,B*a**3)
pprint(tmp)
pprint("\nEI w for known B:")
wB = w.subs(xi,1)
sol = solve(Eq(wB,0) , B)
sB = sol[0]
tmp = w.subs(B, sB)
EIw2 = tmp*EI
tmp = EIw2
tmp = tmp.expand()
tmp = collect(tmp,MB*a**2)
pprint(tmp)
pprint("\nEI ψ:")
# xi = x/a
# d/dxi = d/dx a
EIp = - diff(EIw2, xi)/a
tmp = EIp.expand()
tmp = collect(tmp,MB*a)
pprint(tmp)
pprint("\nw / mm for quantities:")
sub_list=[
( a, 4 *m ),
( MB, 1000 *kNm ),
( EI, 210*GPa * 4000*cm**4 ),
]
w = EIw2 / EI
tmp = w.subs(sub_list)
tmp = tmp.expand()
tmp /= mm
tmp = tmp.expand()
tmp = tmp.simplify()
pprint(tmp)
pprint("\nψ / deg for quantities:")
tmp = EIp/EI
tmp = tmp.subs(sub_list)
tmp = tmp.expand()
tmp /= deg
tmp = tmp.simplify()
pprint(tmp)
[ ]: einfügen.▶ drücken.