2.7.B
Gegeben
Symbole:
\(a\)
Länge des einseitig eingespannten Balkens.\(EI\)
Biegesteifigkeit des Balkens.\(M_A\)
Moment am linken Rand.Balken-Bezugssystem:
\(x\) nach rechts, \(x=0\) am linken Rand.
\(z\) nach unten, \(z=0\) auf der Balken-Mittellinie.
\(y\) zu uns, \(y=0\) auf der Balken-Mittellinie.
Berechnen Sie den Neigungswinkel \(\psi_A\) am linken Balkenrand bei \(x=0\).
a) Biegemoment
Berechnen Sie das Biegemoment \(M(x)\) im Innern des Balkens, welches definiert ist für den Definitionsbereich \(0 < x < a.\) Das heißt: Drücken Sie \(M(x)\) aus abhängig von den gegebenen Symbolen.
Lösung
b) Formänderungsenergie
Berechnen Sie die Formänderungsenergie \(W\) des Balkens ab abhängig von den gegebenen Symbolen.
Lösung
c) Arbeit
Berechnen Sie die durch \(M_A\) am Balken geleistete Arbeit \(A\), und zwar abhängig von den gegebenen Symbolen und dem gesuchten Neigungswinkel \(\psi_A\).
Lösung
d) Neigungswinkel
Berechnen Sie den Neigungswinkel \(\psi_A\) für folgende Größen:
Zeigen Sie, dass:
Für die Symbole: Einsetzen der gegebenen Größen liefert die Behauptung.Lösung
e) Funktionsgraph
Für die gegebenen Größen: Zeichnen Sie den Funktionsgraph der Funktion \(\psi(x)\) in das folgende Diagramm ein. Tipp:
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 integrate
import matplotlib.pyplot as plt
from numpy import linspace
from matplotlib.ticker import FuncFormatter
# 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)
except:
tmp = x.simplify()
if tmp != None:
x = tmp
if prec != "nil":
x = iso_round(x, prec)
pprint(x)
return
x, MA = symbols("x, Mᴀ", real=True)
a, E, I = symbols("a, E, I", positive=True)
sub_list = [
( a, 3 *m ),
( MA, 30 *kN*m ),
( E, 200 *GPa ),
( I, 65*10**6 *mm**4 ),
]
EI = E*I
W = half/EI*integrate(MA**2, (x, 0, a))
pA = symbols("ψᴀ", real=True)
A = half*MA*pA
pprint("\nψᴀ / deg:")
sol = solve(Eq(A, W), pA)
pA = sol[0]
printout(pA, unit=deg, prec=3, sub_list=sub_list)
# x / a:
x = linspace(0, 1, 301)
x3 = 3*x
x1 = x*3.
w = -x**2/2. + x - 0.5
a = 3.
MA = 30.*1000.
E = 200.*10.**9.
I = 65.*10.**6. * (1./1000.)**4.
fac = MA*a*a/(E*I)
w1 = 1000.*fac*w
psi = x - 1.0
fac /= a
psi1 = 180./float(pi)*fac*psi
f = -psi1
fig, ax = plt.subplots()
show = True
# show = False
ax.set(xlabel='x / m', ylabel='ψ / deg')
ax.set_xlim(0, 3)
ax.set_ylim(0, 0.4)
ax.grid()
# fig.savefig("imgA_empty.svg")
if show:
ax.plot(x3, f, color="#00e4e4")
outfile = "imgA.svg"
else:
outfile = "imgAempty.svg"
def comma_formatter(x, pos):
return str(iso_round(x,5)).replace('.', ',')
plt.gca().xaxis.set_major_formatter(FuncFormatter(comma_formatter))
plt.gca().yaxis.set_major_formatter(FuncFormatter(comma_formatter))
fig.savefig(outfile, transparent=True)
# fig.savefig("test.png")
plt.show()
[ ]: einfügen.▶ drücken.