1.6.N

Gegeben

../../../_images/1.6.N.png

Symbole: \(a, q\)

Und davon abhängig: \(F_1 = 2qa, F_2 = qa\)

a) Geometrie

Zeigen Sie, dass:

\[\begin{split}\cos\alpha = c_\alpha &= \tfrac{2}{5} \sqrt{5} \quad & \quad \cos\beta = c_\beta &= \tfrac{1}{2}\sqrt{2} \\ \sin\alpha = s_\alpha &= \tfrac{1}{5}\sqrt{5} \quad & \quad \sin\beta = s_\beta &= \tfrac{1}{2}\sqrt{2}\end{split}\]

Lösung

Pythagoras:

\[\begin{split}c_\alpha &= \tfrac{2a}{\sqrt{4a^2 + a^2}} \\ &= \tfrac{2}{\sqrt{4 + 1}} \\ &= \tfrac{2}{\sqrt{5}} \\ &= \tfrac{2}{5} \sqrt{5}\end{split}\]

Ebenso wird gezeigt:

\[\begin{split}s_\alpha &= \tfrac{1}{5}\sqrt{5} \\ c_\beta &= \tfrac{1}{2}\sqrt{2} \\ s_\beta &= \tfrac{1}{2}\sqrt{2}\end{split}\]

b) Freikörperbilder

Schneiden Sie frei, sodass folgende Kräfte sichtbar werden:

  • die Lagerreaktionen bei A und B

  • die Gelenkkräfte bei G und

  • die drei Stabkräfte

Zeichnen Sie drei Freikörperbilder, in denen diese Kräfte sichtbar sind.

Lösung

../../../_images/1.6.N_1.png

Freischnitte, mit denen alle Lagerreaktionen, Gelenkkräfte und Stabkräfte berechnet werden können. Alternativ lassen sich auch die Lagerreaktionen vorab berechnen an einem Freikörperbild des Gesamtsystems.

c) Gleichgewichtsbedingungen

Verwenden Sie die Gleichgewichtsbedingungen, um ein Gleichungssystem aufzustellen, was aus acht Gleichungen für die acht Unbekannten (Lagerreaktionen, Gelenkkräfte, Stabkräfte) besteht.

Lösung

../../../_images/1.6.N_2.png

Acht Gleichungen zur Berechnung der acht Unbekannten \(A_v, B_h, B_v, G_h, G_v, S_1, S_2, S_3\).

d) Lösung

Lösen Sie das lineare Gleichungssystem. D.h. berechnen Sie die Unbekannten abhängig von den gegebenen Symbolen.

Lösung

Lösung:

\[\begin{split}A_{v} &= \tfrac{9}{4} a q \\ \left( B_{h}, B_{v} \right) &= \left( 0 , \tfrac{11}{4} \right) a q \\ \left( G_{h}, G_{v} \right) &= \left( 5, \tfrac{9}{4} \right) a q \\ \left( S_{1}, S_{2}, S_{3} \right) &= \left( \tfrac{5}{2} \sqrt{5}, - \tfrac{13}{2}, 5 \sqrt{2} \right) a q\end{split}\]

e) Ergebnisse für Größen

Berechnen Sie die drei Stabkräfte für folgende Größen, und zwar gerundet auf Rundestellenwert \(0{,}1\!:\)

\[\begin{split}a &= 1 \mathrm{m} \\ q &= 2 \, \tfrac{\mathrm{N}}{\mathrm{m}}\end{split}\]

Lösung

Einsetzen liefert:

\begin{align*} S_{1}& \stackrel{\scriptscriptstyle{0{,}1}}{\approx} 11{,}2 \, \mathrm{N}& S_{2}& \stackrel{\scriptscriptstyle{0{,}1}}{\approx} -13{,}0 \, \mathrm{N}& S_{3}& \stackrel{\scriptscriptstyle{0{,}1}}{\approx} 14{,}1 \, \mathrm{N} \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

# 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, q = symbols("a, q")

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

F1 = 2*q*a
F2 = q*a

R = 2*q*a

Av, Bh, Bv, Gh, Gv, S1, S2, S3 = \
    symbols("Av, Bh, Bv, Gh, Gv, S1, S2, S3")

ca = 2/sqrt(5)
sa = 1/sqrt(5)
cb = 1/sqrt(2)
sb = 1/sqrt(2)

# 1:
e1 = Eq( S1*ca, Gh )
e2 = Eq( Av + Gv, F1 + S1*sa )
e3 = Eq( a*Av, a*Gv )

# 2:
e4 = Eq( Gh + Bh, S3*cb )
e5 = Eq( Bv, R + Gv + S2 + S3*sb )
e6 = Eq( 0, a*(R+S2) + 2*a*Gv)

# 3:
e7 = Eq( S1*ca, S3*cb )
e8 = Eq( F2, S2 + S1*sa + S3*sb )

eqs=[e1, e2, e3, e4, e5, e6, e7, e8]
unks = [Av, Bh, Bv, Gh, Gv, S1, S2, S3]

sol = solve(eqs, unks)
printout_sol(sol, unit=1, unit_str=None, prec="nil", sub_list=[])
printout_sol(sol, unit=N, unit_str="N", prec="nil", sub_list=sub_list)

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.