Tags: Web-App

1.7.K

Gegeben

../../../_images/1.7.K.png

Symbole: \(a, q > 0\)

a) Lagerreaktionen

Berechnen Sie:

  • die Kraft \(A\), die bei A vom Lager nach oben auf den Balken wirkt und

  • die Kraft \(B\), die bei B vom Lager nach oben auf den Balken wirkt.

Zeigen Sie, dass:

\begin{align*} A &= 1 \cdot qa \\ B &= 5 \cdot qa \\ \end{align*}

Lösung

Die Resultierende \(R\) (nach unten positiv gezählt) ist:

\[R = 6 \cdot qa\]

Diese Kraft verteilt sich entsprechend der Hebel. Auswerten der Gleichgewichtsbedingungen liefert die Behauptung.

b) Querkraft & Biegemoment

Berechnen Sie die Schnittgrößen Querkraft und Biegemoment.

  • Zeigen Sie, dass in Bereich 1 = links gilt für alle \(0 < x < 12 a\):

    \begin{align*} Q_1 &= qa & &\Leftrightarrow & \tfrac{Q_1}{qa} &= 1 \\ M_1 &= qax & &\Leftrightarrow & \tfrac{M_1}{qa^2} &= \tfrac{x}{a} = \xi \end{align*}

    mit \(\xi = \tfrac{x}{a}\) und für alle \(0 < \xi < 12.\)

  • Zeigen Sie, in Bereich 2 = rechts gilt für alle \(12 a < x < 18 a\):

    \begin{align*} \tfrac{Q_2}{qa} &= 13 - \xi \\ \tfrac{M_2}{qa^2} &= \tfrac 1 2 \left( 8 - \xi \right) \cdot \left( \xi - 18 \right) \end{align*}

    wieder mit \(\xi = \tfrac{x}{a}\) und für alle \(12 < \xi < 18.\)

Lösung

Freischneiden liefert diese Behauptung.

Im Bereich rechts werden Querkraft und Biegemoment am negativen Schnittufer berechnet als:

\[\begin{split}Q_2 &= - B + q(18 a - x) \\ &= - 5qa + 18qa - qx \\ &= 13qa - qx \\ &= qa(13 - \tfrac x a) \\ &= qa(13 - \xi) \\ \\ M_2 &= B (18 a - x) - \tfrac 1 2 q(18 a - x)^2 \\ &= 5qa (18 a - x) - \tfrac 1 2 q (324 a^2 - 36 ax + x^2) \\ &= 90 qa^2 - 5 qax - 162 qa^2 + 18 qax - \tfrac 1 2 qx^2 \\ &= -72 qa^2 + 13 qax - \tfrac 1 2 qx^2 \\ &= qa^2\left\{-72 +13 \xi - \tfrac 1 2 \xi^2\right\} \\ &= qa^2\left\{ \tfrac 1 2 \left( 8 - \xi \right) \cdot \left( \xi - 18 \right)\right\}\end{split}\]

c) Funktionsgraphen

Zeichnen Sie die dimensionslosen Schnittgrößen in ein einziges Diagramm.

  • Zeichnen Sie \(\tfrac{Q_1}{qa}\) und \(\tfrac{M_1}{qa^2}\) im Bereich \(0 < x < 12 a\) bzw. \(0 < \xi < 12.\)

  • Zeichnen Sie \(\tfrac{Q_2}{qa}\) und \(\tfrac{M_2}{qa^2}\) im Bereich \(12 a < x < 18 a\) bzw. \(12 < \xi < 18.\)

Lösung

1.7.K

d) Extremwert

Berechnen Sie die Position \(x_0\) bzw. \(\xi_0\) , bei der das Biegemoment maximal ist. Zeigen Sie, dass:

\begin{align*} x_0 &= 13 a & &\Leftrightarrow & \xi_0 &= 13 \end{align*}

mit \(\xi_0 = \tfrac{x_0}{a}.\)

Und berechnen Sie das Moment \(M_{\mathsf{max}}\) an dieser Position. Zeigen Sie, dass:

\begin{align*} M_{\mathsf{max}} &= \tfrac{25}{2} qa^2 & &\Leftrightarrow & \tfrac{M_{\mathsf{max}}}{qa^2} &= \tfrac{25}{2} \end{align*}

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, exp, simplify  # noqa: F401
from sympy import diff

import pickle

# 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
one       = S(1)
# 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)
    # old:
    # except:
    # new:
    except AttributeError:
        tmp = x.simplify()
        if tmp is not None:
            x = tmp
    if prec != "nil":
        x = iso_round(x, prec)
    pprint(x)
    return

# --- Input starting here.

# 10 04:
case = "ex_1"
case = "ex_2"
case = "1.7.K"

pprint("\nCase:")
pprint(case)
# --- Input ending here.

a, q = symbols("a, q", positive=True)
x, xi = symbols("x, xi", positive=True)

# scale:
# total length =  a  ->  scale = 1
# total length = 3a  ->  scale = 3

# alpha:
# left = 2a, right = 2a ->  alpha = 1/2
# left = 4a, right = 3a ->  alpha = 4/7
# left = 2a, right = 1a ->  alpha = 2/3

if case == "ex_1":
    scale = 3
    alpha = S(2)/3
elif case == "ex_2":
    scale = 4
    alpha = half
elif case == "1.7.K":
    scale = 18
    alpha = S(2)/3
else:
    exit()

ltot = scale*a
beta = 1 - alpha
len1, len2 = alpha*ltot, beta*ltot

R = len2*q

pprint("\nA / (qa):")
A = half*beta*R
printout(A, unit=q*a, prec="nil", sub_list=[])

pprint("\nB / (qa):")
B = R - A
printout(B, unit=q*a, prec="nil", sub_list=[])

pprint("\nQ1 / (qa):")
Q1 = A
Q1 = Q1.subs(x, xi*a)
printout(Q1, unit=q*a, prec="nil", sub_list=[])
pprint("\nM1 / (qa²):")
M1 = A*x
M1 = M1.subs(x, xi*a)
printout(M1, unit=q*a*a, prec="nil", sub_list=[])

pprint("\nQ2 / (qa):")
Q2 = -B + q*(ltot - x)
Q2 = Q2.subs(x, xi*a)
printout(Q2, unit=q*a, prec="nil", sub_list=[])
    
pprint("\nM2 / (qa²):")
M2 = B*(ltot - x) - half*q*(ltot-x)**2
M2p = diff(M2, x)
M2 = M2.subs(x, xi*a)
printout(M2, unit=q*a*a, prec="nil", sub_list=[])

pprint("\nx₀ / a:")
eq = Eq(M2p, 0)
sol = solve(eq, x)
x0 = sol[0]
printout(x0, unit=a, prec="nil", sub_list=[])
pprint("\nMmax / (qa²):")
Mmax = M2.subs(xi, x0/a)
printout(Mmax, unit=q*a*a, prec="nil", sub_list=[])

# Save to database for plotting:
db = {
    "a": a, 
    "q": q, 
    "xi": xi,
    "scale": scale, 
    "alpha": alpha, 
    "Q1": Q1, 
    "M1": M1, 
    "Q2": Q2, 
    "M2": M2, 
    }

pickle.dump(db, open("db.pickle", "wb"))

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.