2.4.4.B
Gegeben
Größen:
Balken mit Rechteckquerschnitt mit veränderlicher Höhe.
a) Lagerreaktionen
Berechnen Sie die Lagerreaktionen bei A.
b) Schnittgrößen
Berechnen Sie die Schnittgrößen:
c) Widerstandsmoment
Das Widerstandsmoment für einen Rechteckquerschnitt ist:
Zeigen Sie, dass das Widerstandsmoment am rechten Rand bei \(h(x=a)=30\,{\mathrm{mm}}\) ist:
Das zeigt man durch Einsetzen.Lösung
d) Maximale Normalspannung
Berechnen Sie die maximale Normalspannung bei A \(\sigma_{\mathsf{max}}\), nämlich:
Und damit:Lösung
e) Gleiche Normalspannung bei gegebener Höhe
An welcher Stelle \(x^*\) mit \(h(x^*)=10\,{\mathrm{mm}}\) ist die maximale Normalspannung genauso groß ist wie die maximale Normalspannung bei A?
Berechnen Sie \(x^*\) in \(\mathrm{mm}\) (Millimeter) gerundet auf Rundestellenwert \(0{,}1\).
Laut Aufgabenstellung: Und damit bekannt: Damit die maximalen Biegespannungen gleich sind, muss gelten: Dies ist eine (lineare) Gleichung zur Berechnung von \(x^*\), nämlich: Lösung:Lösung
f) Gleiche Normalspannung überall
Geben Sie de Funktion \(h(x)\) an, sodass an jeder Stelle die maximale Normalspannung genauso groß ist wie die maximale Normalspannung bei A.
Und zeichnen Sie den Funktionsgraph der (dimensionslosen) Funktion \(h(x) \, / \, h_a\) über \(x \, / \, a\).
Laut (1) muss für alle \(x\) gelten: Und damit: mit \(\xi = \tfrac x a\).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 lambdify
import matplotlib.pyplot as plt
from numpy import linspace, array
# 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
# ---
F, a, b, ha = symbols("F, a, b, ha")
x, hx = symbols("x, hx")
sub_list=[
( F, 1 *N ),
( a, 600 *mm ),
( b, 6 *mm ),
( ha, 30 *mm ),
( hx, 10 *mm ),
]
def Wy(b,h):
return b/6 * h**2
pprint("\nWy(a):")
Wa = Wy(b, ha)
pprint(Wa)
pprint("\nWy(a) / mm³:")
printout(Wa, unit=mm**3, prec=0, sub_list=sub_list)
Mx = -x*F
Mx_max = abs(Mx.subs(x,a))
pprint("\n|M(a)|:")
pprint(Mx_max)
pprint("\ns_max:")
s_max = Mx_max / Wa
pprint(s_max)
pprint("\ns_max / (N / mm²):")
printout(s_max, unit=N/mm**2, prec=3, sub_list=sub_list)
pprint("\nx*:")
Wx = Wy(b,hx)
eq = Eq( F*a/Wa, F*x/Wx )
x_star = solve(eq,[x])[0]
tmp = x_star
pprint(x_star)
# xi = x / a
xia = linspace(float(0), float(1),5000)
# function to be plotted:
xi = symbols("xi")
f = xi**0.5
f = lambdify(xi,f,"numpy")
f = array(f(xia))
tmp = plt.plot(xia, f, "b-", label="$h(x) \\, / \\, h_a$")
tmp = plt.xlabel("$x \\, / \\, a$")
# tmp = plt.ylabel("$h(x) \\, / \\, h_a$")
tmp = plt.legend(loc="best")
tmp = plt.grid()
plt.savefig("2.4.4.B_sqrt.svg", transparent=True)
plt.show()
[ ]: einfügen.▶ drücken.