1.5.I

Gegeben

../../../_images/1.5.I.png

Symbole: \(a, F>0\) und davon abhängig \(M=aF.\)

Gegebene Größen:

\[\begin{split}a &= 1 \,\mathrm{m} \\ F &= 15 \,\mathrm{N}\end{split}\]

Und davon abhängig \(M = 15\,\mathrm{Nm}.\)

Bestimmen Sie die Lagerreaktion bei B. Gehen Sie wie folgt vor:

a) Komponenten von F

Zeigen Sie, dass für die gegebenen Größen gilt:

\begin{align*} F_h &= 9\,\mathrm{N} & F_v &= 12\,\mathrm{N} \end{align*}

Lösung

Mit dem Winkel \(\alpha\) siehe nächster Aufgabenteil gilt:

\begin{align*} c_\alpha &= \tfrac 3 5 & s_\alpha &= \tfrac 4 5 \end{align*}

Außerdem ist:

\begin{align*} F_h &= F c_\alpha & F_v &= F s_\alpha \end{align*}

und damit ergibt sich das, was zu zeigen ist.

b) Lagerreaktion bei B

Berechnen Sie die Lagerreaktion bei B mit der Moment-Gleichgewichtsbedingung um A. Und zwar:

  • für die gegebenen Symbole und

  • für die gegebenen Größen.

Lösung

../../../_images/1.5.I_1.png

Einsetzen von \(F_h, F_v, M\) und Auflösen nach \(B_v\) liefert:

\[\begin{split}B_v &= - \tfrac{7}{15}F \\ &= - 7 \,\mathrm{N}\end{split}\]

c) Vektoren

Verwenden Sie ab hier folgende Symbole:

../../../_images/1.5.I_2.png

Berechnen Sie die \((x,y,z)\)-Komponenten der Vektoren \(\boldsymbol r_F\) und \(\boldsymbol r_B\):

\[\begin{split}\begin{bmatrix} r_{Fx} \\ r_{Fy} \\ r_{Fz} \end{bmatrix} &= \dots \\ \begin{bmatrix} r_{Bx} \\ r_{By} \\ r_{Bz} \end{bmatrix} &= \dots\end{split}\]

Lösung

../../../_images/1.5.I_2.png
\[\begin{split}\begin{bmatrix} r_{Fx} \\ r_{Fy} \\ r_{Fz} \end{bmatrix} &= \begin{bmatrix} 9a\\ a\\ 0 \end{bmatrix} \\ \begin{bmatrix} r_{Bx} \\ r_{By} \\ r_{Bz} \end{bmatrix} &= \begin{bmatrix} 12 a\\ 0\\ 0 \end{bmatrix}\end{split}\]

d) Kraft- und Momentvektoren

Geben Sie die zur Kraft \(F\) und zur Lagerreaktion bei B und zum Moment \(M\) gehörenden Vektoren an. Und zwar ihre \((x,y,z)\)-Komponenten:

\[\begin{split}\begin{bmatrix} F_x \\ F_y \\ F_z \end{bmatrix} &= \dots \\ \begin{bmatrix} B_x \\ B_y \\ B_z \end{bmatrix} &= \dots \\ \begin{bmatrix} M_x \\ M_y \\ M_z \end{bmatrix} &= \dots \\\end{split}\]

Lösung

\[\begin{split}\begin{bmatrix} F_x \\ F_y \\ F_z \end{bmatrix} &= \begin{bmatrix} F_h \\ F_v \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} \tfrac35 F \\ \tfrac45 F \\ 0 \end{bmatrix} \\ \begin{bmatrix} B_x \\ B_y \\ B_z \end{bmatrix} &= \begin{bmatrix} 0 \\ B_v \\ 0 \end{bmatrix} \\ \begin{bmatrix} M_x \\ M_y \\ M_z \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \\ -M \end{bmatrix}\end{split}\]

e) Berechnung mit Vektoren

Berechnen Sie die Kraft \(B_v\), und zwar mit den zuvor berechneten Vektoren.

Lösung

Die Summe aller Momente um A muss gleich null sein.

\begin{align*} & & \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \\ -M \end{bmatrix} + \begin{bmatrix} 9a\\ a\\ 0 \end{bmatrix} \times \begin{bmatrix} F_h \\ F_v \\ 0 \end{bmatrix} + \begin{bmatrix} 12 a\\ 0\\ 0 \end{bmatrix} \times \begin{bmatrix} 0 \\ B_v \\ 0 \end{bmatrix} \end{align*}

Die ersten beiden Gleichungen dieser Matrix-Gleichung liefern nur die Aussage, dass \(0=0\). Die dritte Gleichung liefert wie oben:

\begin{align*} & & 0 &= - M + 9 a F_v - a F_h + 12 a B_v \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 atan, sympify
from numpy import shape, eye

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


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)
        # old: 
        # except:
        # new:
        except AttributeError:
            x = x.simplify()
        if prec != "nil":
            x = iso_round(x, prec)
        pprint(x)
        
# ---

f35 = S(3)/5
f43 = S(4)/3
f45 = S(4)/5

symbolic = True
# symbolic = False

if symbolic:
    # quantity = symbol:
    a = symbols("a")
    F = symbols("F", positive=True)
    Ah, Av, Bv = symbols("Ah Av Bv")
else:
    # quantity = number and unit:
    a = 1 * m
    F = 15 * N

M = a * F

Fh = F*3/5
Fv = F*4/5

if symbolic:
    pprint("\n(Fh, Fv) / F:")
    tmp = Fh/F
    pprint(tmp)
    tmp = Fv/F
    pprint(tmp)
else:
    pprint("\n(Fh, Fv) / N:")
    tmp = Fh/N
    pprint(tmp)
    tmp = Fv/N
    pprint(tmp)

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

eq1 = Eq(0, Ah + Fh)
eq2 = Eq(0, Av + Bv + Fv)
eq3 = Eq(0,- M + 9*a*Fv - a*Fh + 12*a*Bv)

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

if symbolic:
    printout_sol(sol, unit=F, unit_str="F", prec="nil", sub_list=[])
else:
    printout_sol(sol, unit=N, unit_str="N", prec="nil", sub_list=[])

rF = Matrix([  9*a, a, 0 ])
rB = Matrix([ 12*a, 0, 0 ])

Bv = symbols("Bv")
Fv = Matrix([ Fh, Fv, 0])
B = Matrix([ 0, Bv, 0 ])
M = Matrix([ 0, 0, -M ])

MF = rF.cross(Fv)
MB = rB.cross(B)

sum_M = MF + MB + M
Zero = Matrix([ 0, 0, 0 ])
eq_M = Eq(Zero, sum_M)

sol=solve(eq_M, Bv)
tmp = sol[Bv]
if symbolic:
    pprint("\nBv / F:")
    tmp /= F
    pprint(tmp)

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.