Tags: Web-App

1.7.H

Gegeben

../../../_images/1.7.H.png

Symbole:

\[a, q, F\]

a) Lagerreaktionen und Gelenkkräfte

../../../_images/1.7.H_1.png

Die Freikörperbilder sind gegeben. Zeigen Sie, dass folgende Lagerreaktionen und Gelenkkräfte die sechs Gleichgewichtsbedingungen erfüllen:

\[\begin{split}A_{h} &= 0 \\ A_{v} &= - F \\ B_{v} &= 2 F + 2 a q \\ G_{h} &= 0 \\ G_{v} &= F \\ M_A &= F a\end{split}\]

Gehen Sie dazu wie folgt vor:

  1. Notieren Sie die Gleichgewichtsbedingungen (sechs Gleichungen).

  2. Setzen Sie die sechs angegebenen Größen \(A_h, A_v, \ldots\) in diese Gleichungen ein.

  3. Zeigen Sie, dass Sie sechs wahre Aussagen erhalten.

Lösung

../../../_images/1.7.H_1a.png

Einsetzen der gegebenen Lagerreaktionen und Gelenkkräfte in die 6 Gleichgewichtsbedingungen führt auf wahre Aussagen.

b) Schnittgrößen berechnen

Berechnen Sie die Querkraft- und Biegemoment-Funktionen:

  • \(Q_1(x_1), M_1(x_1)\) zwischen A und G

  • \(Q_2(x_2), M_2(x_2)\) zwischen G und B

  • \(Q_3(x_3), M_3(x_3)\) zwischen B und dem rechten Ende des Balkens.

Und zwar abhängig von den gegebenen Symbolen \(a\) und \(q\) und für den Fall, dass \(F = aq.\)

Zeigen Sie, dass:

\[\begin{split}\tfrac{Q_1}{qa} &= - 1 \\ \tfrac{M_1}{qa^2} &= - \left( \tfrac{x_1}{a} \right) + 1 \\ \tfrac{Q_2}{qa} &= - \left( \tfrac{x_2}{a} \right) - 1\\ \tfrac{M_2}{qa^2} &= - \tfrac12 \left( \tfrac{x_2}{a} \right) \left\{\left( \tfrac{x_2}{a} \right) + 2\right\}\\ \tfrac{Q_3}{qa} &= - \left( \tfrac{x_3}{a} \right) + 2\\ \tfrac{M_3}{qa^2} &= - \tfrac12 \left( \tfrac{x_3}{a} \right)^{2} + 2 \left( \tfrac{x_3}{a} \right) - \tfrac{3}{2} \\\end{split}\]

Lösung

../../../_images/1.7.H_2.png

Einsetzen von \(F=qa\) und Einsetzen der Lagerreaktionen liefert die Behauptung.

c) Schnittgrößen zeichnen

Gehen Sie weiterhin davon aus, dass \(F = aq\). Zeichnen Sie die dimensionslosen Schnittgrößen:

  • \(\tfrac{Q_1}{qa}\) und \(\tfrac{M_1}{qa^2}\)

  • \(\tfrac{Q_2}{qa}\) und \(\tfrac{M_2}{qa^2}\)

  • \(\tfrac{Q_3}{qa}\) und \(\tfrac{M_3}{qa^2}\)

Lösung

Bokeh Plot

SymPy

Source Code eines Programms dazu:

from sympy.physics.units import kg, m, s
from sympy import pi, S, pprint, symbols, cos, sin, Matrix, Eq, solve, sqrt, lambdify
import matplotlib.pyplot as plt
plt.rcParams['axes.formatter.use_locale'] = True

from numpy import linspace, full_like, 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

# 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 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)
        
def fill_array(f,x,xia):
    if f.is_constant(x):
        res = full_like(xia,f)
    else:
        res = lambdify(x,f,"numpy")
        res = array(res(xia))
    return res

# ---

a, q, F = symbols("a, q, F")


sub_list = [
    ( a, 1 *m   ),
    ( q, 1 *N/m ),
    ( F, 1 *N   ),
    ]

Ah, Av, MA, Bv, Gh, Gv \
    = symbols("Ah, Av, MA, Bv, Gh, Gv")

R = 2*a*q

# equilibrium conditions:
eq1 = Eq(0,  Ah + Gh)
eq2 = Eq(0,  Av + Gv)
eq3 = Eq(0,  -MA + a*Gv )
eq4 = Eq(0,  Gh )
eq5 = Eq(0,  Gv + R + F - Bv )
eq6 = Eq(0,  a*(R-Bv) + 2*a*F )

unks = [Ah, Av, MA, Bv, Gh, Gv]
eqs = [eq1, eq2, eq3, eq4, eq5, eq6]

sol = solve(eqs, unks)

pprint("\nSupport Reactions:")
print_dict(sol, unit=1, unit_str=None, prec="nil", sub_list=[])


[Ah, Av, MA, Bv, Gh, Gv] = [sol[X] for X in [Ah, Av, MA, Bv, Gh, Gv]]

x  = symbols('x')

R2 = (2*a - x)*q
R3 = (a - x)*q

pprint("\nSection Forces:")
Q1 =  Av
M1 =  MA + Av*x

Q2 = F + R2 - Bv
M2 = (a-x)*Bv - (2*a-x)*R2/2 - (2*a-x)*F

Q3 = F + R3
M3 = -(a-x)*R3/2 - (a-x)*F

# Make unitless:
xi = symbols("xi")

[Q1,Q2,Q3,M1,M2,M3] = [X.expand().subs(F,q*a) 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]]
[Q1,Q2,Q3] = [X / (q*a)   for X in [Q1,Q2,Q3]]
[M1,M2,M3] = [X / (q*a*a) for X in [M1,M2,M3]]

for x in [Q1,Q2,Q3,M1,M2,M3]:
    x = x.simplify()
    pprint(x)

xia = linspace(float(0),float(1))

[Q1,Q2,Q3,M1,M2,M3] = [fill_array(X,xi,xia) for X in [Q1,Q2,Q3,M1,M2,M3]]

# prepare plotting:
# figure with three subplots:
f, (ax1, ax2, ax3) = plt.subplots(1, 3, sharey=True)

tmp = [ax.axhline(ls="-", lw=1, color="black") for ax in [ax1,ax2,ax3]]

# axes-decoration:
tmp = ax1.set_xlabel("$x_1  /  a$")
tmp = ax2.set_xlabel("$x_2  /  a$")
tmp = ax3.set_xlabel("$x_3  /  a$")

tmp = [ax.grid() for ax in [ax1, ax2, ax3]]
tmp = [ax.set_xlim(0,1) for ax in [ax1, ax2, ax3]]

# xticks:
tmp = [ax.set_xticks([float(0.25),float(0.5),float(0.75)]) for ax in [ax1,ax2,ax3]]

# plot functions:
tmp = ax1.plot(xia, Q1, "b-" )
tmp = ax1.plot(xia, M1, "r--")
tmp = ax2.plot(xia, Q2, "b-" )
tmp = ax2.plot(xia, M2, "r--")
tmp = ax3.plot(xia, Q3, "b-",  label="$Q \, / \, (qa)$")
tmp = ax3.plot(xia, M3, "r--", label="$M \, / \, (qa^2)$")

tmp = ax3.legend(loc="best")
f.subplots_adjust(wspace=0)
plt.show()

Programm ausführen? Dazu:

  1. Copy: Source Code in die Zwischenablage kopieren.

  2. Paste: Source Code ins Eingabefeld hinter [ ]: einfügen.

  3. Play: Knopf ▶ drücken.