2.4.4.K
Gegeben
Gegebene Symbole:
Gegebene Größen:
Wegen \(t \ll b\) und \(t\ll h\) werden folgende Annahmen gemacht:
Flächeninhalt der Gurtfläche: \(A_1 = b \cdot t\).
Flächeninhalt der Stegfläche: \(A_2 = h \cdot t\).
Berechnen Sie die Schubspannung \(\tau\) aufgrund Querkraft \(Q\). Gehen Sie wie folgt vor:
a) Flächeninhalt
Berechnen Sie für die gegebenen Größen den Flächeninhalt der Gesamtfläche:
Lösung
b) Flächenmittelpunkt
Berechnen Sie die Position des Flächenmittelpunkts der Gesamtfläche mit:
Lösung
c) Flächenträgheitsmoment
Berechnen Sie das Flächenträgheitsmoment der Gesamtfläche als Summe der Flächenträgheitsmomente der Flächen \(A_1\) und \(A_2\) und unter Vernachlässigung des Terms der Ordnung \(t^3\).
Flächenträgheitsmoment \(I_{yy1}\) der Gurtfläche und Flächenträgheitsmoment \(I_{yy2}\) der Stegfläche: Damit:Lösung
d) Restfläche und Statisches Moment
Die Position \(s\) der türkisfarbenen Faser, auf der die Schubspannung berechnet wird, ist gegeben. Unter der Faser ist die lila Restfläche. Berechnen Sie:
die \(z\)-Position \(z_R\) des Flächenmittelpunkts dieser Restfläche und
den Flächeninhalt \(A_R\) dieser Restfläche.
Und berechnen Sie damit das Statische Moment:
Damit:Lösung
e) Schubspannung
Berechnen Sie die Schubspannung \(\tau_{xs} = \tau_{sx}\) bzw. kurz:
Zeigen Sie, dass:
Einsetzen der gegebenen Größen liefert die Behauptung. Bemerkung Ohne Näherungen und für beliebige \(b, h, t\) ist: Einsetzen der gegebenen Größen liefert Werte, die wenig abweichen von den oben berechneten Werten: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 numpy import linspace, array
import matplotlib.pyplot as plt
# 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
# --- Start of Input ---
a, t, Qz = symbols("a, t, Qz", positive=True)
prec = 2
case = 1
if case == 1:
b, h = 2*a, 3*a
sub_list = [
(a, 1 *cm),
(t, S(1)/4 *cm),
(Qz, S(15) *kN),
]
positions = ["Halbe Steghöhe"]
elif case == 2:
b, h = 3*a, 2*a
sub_list = [
(a, 1 *cm),
(t, S(1)/4 *cm),
(Qz, S(15) *kN),
]
positions = ["Schwerpunkt"]
elif case == 3:
b, h = 2*a, 4*a
sub_list = [
(a, 1 *cm),
(t, S(1)/4 *cm),
(Qz, S(15) *kN),
]
positions = ["Schwerpunkt"]
elif case == 4:
b, h = 1*a, 2*a
sub_list = [
(a, 1 *cm),
(t, S(1)/4 *cm),
(Qz, S(15) *kN),
]
positions = ["Halbe Steghöhe"]
plot = True
plot = False
# --- End of Input ---
A1, A2 = b*t, h*t
A = A1 + A2
pprint("\nA / cm²:")
printout(A, unit=cm**2, prec=2, sub_list=sub_list)
pprint("\nzb:")
zbar = (0 * A1 + half*h*A2)/A
pprint(zbar)
pprint("\nzb / cm:")
printout(zbar, unit=cm, prec=2, sub_list=sub_list)
pprint("\nIyy / cm⁴:")
Iyy1 = zbar*zbar*A1
Iyy2 = t*h**3/12 + (half*h - zbar)**2 * A2
Iyy = Iyy1 + Iyy2
printout(Iyy, unit=cm**4, prec=2, sub_list=sub_list)
pprint("\nIyy:")
pprint(Iyy)
def t_over_QA(pos):
if pos == "Halbe Steghöhe":
s = half*h
zF = half*h - zbar
elif pos == "Schwerpunkt":
s = h - zbar
zF = zbar - zbar
elif pos == "Oberes Stegende":
s = h
zF = 0 - zbar
else:
s = h - zbar - pos
zR = - zbar + h - half*s
# pprint("\nzR / cm:")
# printout(zR, unit=cm, prec=prec, sub_list=sub_list)
AR = s * t
# pprint("\nAR / cm²:")
# printout(AR, unit=cm**2, prec=10, sub_list=sub_list)
Sy = zR*AR
# pprint("\nSy:")
# pprint(Sy)
# pprint("\nSy / cm³:")
# printout(Sy, unit=cm**3, prec=prec, sub_list=sub_list)
tau = - Sy / (Iyy * t) * Qz
# pprint("\ntau:")
# pprint(tau)
# pprint("\ntau / MPa:")
# printout(tau, unit=MPa, prec=1, sub_list=sub_list)
if not plot:
pprint("\nzꜰ / cm:")
printout(zF, unit=cm, prec=prec, sub_list=sub_list)
pprint("\ns / cm:")
printout(s, unit=cm, prec=prec, sub_list=sub_list)
pprint("\nzʀ / cm:")
printout(zR, unit=cm, prec=prec, sub_list=sub_list)
pprint("\nAʀ / (cm²):")
printout(AR, unit=cm**2, prec=prec, sub_list=sub_list)
pprint("\nSy / (cm³):")
printout(Sy, unit=cm**3, prec=prec, sub_list=sub_list)
pprint("\nτ / MPa:")
printout(tau, unit=MPa, prec=0, sub_list=sub_list)
return - Sy / (Iyy * t) * (b+h)*t
# positions = ["Schwerpunkt"]
for pos in positions:
pprint("\nPosition: " + pos)
tmp = t_over_QA(pos)
pprint("\nτ / (Q/A):")
pprint(tmp)
tmp = iso_round(tmp,prec)
pprint(tmp)
if plot:
top = float(-zbar/a)
bot = float((h - zbar)/a)
za = linspace(top, bot, 50 )
t_QA = []
for z in za:
tau = t_over_QA(z*a)
tau *= -1
t_QA.append(tau)
tmax = max(t_QA)
h1 = (h - zbar - half*h)/a
h2 = 0
hl = [-zbar/a, h1, h2, (h-zbar)/a]
hl = array(list(map(float, hl)))
plt.gca().invert_yaxis()
plt.grid()
plt.xlabel("τ / ( Q / A ), pos. gezählt in dieselbe Richtung wie Q." )
plt.ylabel("z / a")
h = str(h).replace("*", "")
b = str(b).replace("*", "")
plt.title("τ / (Q/A) im Steg abh. von z-Position. Parameter: (b, h) = ("+b+", "+h+")")
plt.plot(array(t_QA), za, color="#f01111")
plt.hlines(hl, 0.,max(t_QA), colors="grey")
plt.savefig("tau_(b,h)=("+b+","+h+").png")
plt.show()
[ ]: einfügen.▶ drücken.