Tags: Web-App

1.7.J

Gegeben

../../../_images/1.7.J.png

Symbole: \(q, F\)

Und davon abhängig: \(q = \tfrac F a\)

a) Lagerreaktionen

Berechnen Sie die 3 Lagerreaktionen abhängig von den gegebenen Symbolen.

Lösung

../../../_images/1.7.J_1.png

Lösung:

\[\begin{split}A_{h} &= 0 \\ A_{v} &= \tfrac{5 F}{12} \\ B_{v} &= \tfrac{13 F}{12}\end{split}\]

b) Schnittgrößen aus Gleichgewichtsbedingungen

Sei \(Q_1\) die Querkraft im ersten Bereich links und \(M_1\) das Biegemoment im ersten Bereich links. Und seien \(Q_2, M_2, Q_3, M_3\) die Schnittgrößen im zweiten und dritten Bereich.

Berechnen Sie die dimensionslosen Schnittgrößen in den 3 Bereichen abhängig von den gegebenen Symbole \(a\) und \(F\). Verwenden Sie dazu die Gleichgewichtsbedingungen. Zeigen Sie, dass:

\[\begin{split}\tfrac{Q_1}{F} &= \tfrac{5}{12}\\ \tfrac{M_1}{Fa} &= \tfrac{5 \xi_1}{12}\\ \\ \tfrac{Q_2}{F} &= - \tfrac{7}{12}\\ \tfrac{M_2}{Fa} &= - \tfrac{7 \xi_2}{12} + \tfrac{5}{12}\\ \\ \tfrac{Q_3}{F} &= \tfrac{\xi_3^{2}}{2} - \xi_3 + \tfrac{1}{2}\\ \tfrac{M_3}{Fa} &= \tfrac{\xi_3^{3}}{6} - \tfrac{\xi_3^{2}}{2} + \tfrac{\xi_3}{2} - \tfrac{1}{6}\end{split}\]

mit den Abkürzungen \(\xi_1 = \tfrac{x_1}{a}\) und \(\xi_2 = \tfrac{x_2}{a}\) und \(\xi_3 = \tfrac{x_3}{a}\).

Lösung

../../../_images/1.7.J_2.png

Einsetzen der Lagerreaktionen liefert die Behauptung.

c) Funktionsgraphen

Zeichnen Sie die dimensionslosen Schnittgrößen:

  • \(\tfrac{Q_1}{F}\) und \(\tfrac{M_1}{Fa}\) über \(\xi_1=\tfrac{x_1}{a}\)

  • \(\tfrac{Q_2}{F}\) und \(\tfrac{M_2}{Fa}\) über \(\xi_2=\tfrac{x_2}{a}\)

  • \(\tfrac{Q_3}{F}\) und \(\tfrac{M_3}{Fa}\) über \(\xi_3=\tfrac{x_3}{a}\)

Lösung

Bokeh Plot

d) Schnittgrößen aus Differentialgleichungen

Berechnen Sie Querkraft und Biegemoment noch einmal. Verwenden Sie dazu diesmal die Differentialgleichungen.

Lösung

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, integrate

# 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 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

def printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[]):
    for s in sol:
        if unit_str:
            print("\n"+str(s) + " / " + unit_str + ":")
        else:
            print("\n"+str(s) + ":")

        x = sol[s]
        x = x.subs(sub_list)
        x /= unit
        try: 
            x = x.applyfunc(simplify)
        except:
            x = x.simplify()
        if prec != "nil":
            x = iso_round(x, prec)
        pprint(x)
    return

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)

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

Ah, Av, Bv = symbols("Ah, Av, Bv")

R = q*a/2

eq1 = Eq(  Ah, 0)
eq2 = Eq(  Av + Bv, F + R)
eq3 = Eq(  a*F, 2*a*Av + a/3*R)

unks = [Ah, Av, Bv]
eqs = [eq1, eq2, eq3]
sol = solve(eqs, unks)
pprint(sol)

[Ahs, Avs, Bvs] = [sol[x] for x in sol]

x, xi  = symbols('x, xi')

var = 1
var = 2

assert(var==1 or var==2)

qx = q*(1-x/a)

if var==1: # Var. 1: Using Equilibrium Conditions:
    Q1 = Av
    M1 = Av*x

    Q2 = Av - F
    M2 = Av*(a+x) - F*x

    hx = a - x
    Rx = (qx * hx)/2
    Q3 = Rx
    M3 = -hx/3*(Rx)
elif var==2: # Var. 2: Using Differential Equations:
    Q0, M0, q = Av, 0, 0
    Q1 = Q0 - integrate(q, (x,0,x))
    M1 = M0 + integrate(Q1, (x,0,x))

    Q0, M0, q = Av - F, a*Av, 0
    Q2 = Q0 - integrate(q, (x,0,x))
    M2 = M0 + integrate(Q2, (x,0,x))

    Q0, M0, q = Av - F + Bv, 2*a*Av - a*F, qx
    Q3 = Q0 - integrate(q, (x,0,x))
    M3 = M0 + integrate(Q3, (x,0,x))

sub_list =[
    (Ah, Ahs),
    (Av, Avs),
    (Bv, Bvs),
    ]

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

# Dimensionless:
[Q1,Q2,Q3] = [X / F   for X in [Q1,Q2,Q3]]
[M1,M2,M3] = [X / (F*a) for X in [M1,M2,M3]]

pprint("Section Loads Q / F and M / (aF):")
for X in [Q1,M1, Q2,M2, Q3,M3]:
    pprint("\n")
    X = X.expand()
    X = X.simplify()
    pprint(X)
    

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.