2.1.J

Gegeben

../../../_images/2.1.J.png

Symbole:

\[l, F, E, A\]
  • \(l\): Länge des undeformierten Stabs

  • \(F\): Von außen aufgebrachte Kraft

  • \(E\): E-Modul

  • \(A\): Querschnittsfläche.

Gesucht:

  • \(u\): Verschiebung des rechten Stab-Endes nach rechts.

  • \(\Delta l\): (Genäherte) Stabverlängerung.

  • \(S\): Stabkraft.

Vollständige Lösung mit 2·k + 2·s + r = 9 Gleichungen und Unbekannten auf einer Seite

../../../_images/all.X5.png

Hinter jeder nummerierten Gleichung in Klammern: Gleichungsnummer und darin enthaltene neue Unbekannte.

SymPy

Source Code eines Programms dazu:

from sympy import symbols, Matrix, Eq, solve, pprint

# Given Symbols:
l, F, EA = symbols("l, F, EA")

# Unknowns:
S, dl, u1x, u1y, u2x, u2y, R1x, R1y, R2y = symbols("S, dl, u1x, u1y, u2x, u2y, R1x, R1y, R2y")

# Nodal Displacements:
u1 = Matrix([u1x, u1y])
u2 = Matrix([u2x, u2y])

# Nodal External Forces:
F1 = Matrix([R1x, R1y])
F2 = Matrix([F, R2y])

e = Matrix([1, 0])
Zero = Matrix([0, 0])

eq_1 = Eq(S, EA * dl/l )
eq_2 = Eq(dl, e.dot(u2 - u1))
eq_34 = Eq(F1 + S*e, Zero)
eq_56 = Eq(F2 - S*e, Zero)
eq_7 = Eq(u1x, 0)
eq_8 = Eq(u1y, 0)
eq_9 = Eq(u2y, 0)

eqns = [eq_1, eq_2, eq_34, eq_56, eq_7, eq_8, eq_9]
unks = [S, dl, u1x, u1y, u2x, u2y, R1x, R1y, R2y]

sol = solve(eqns, unks)
pprint(sol)

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.

Unvollständige Lösung mit 2·k + 2·s - r = 3 Gleichungen und Unbekannten auf einer Seite

../../../_images/all-1.X2.png

Hinter jeder nummerierten Gleichung in Klammern: Gleichungsnummer und darin enthaltene neue Unbekannte.

a) Gleichgewicht

Schneiden Sie den rechten Knoten frei, sodass die Stabkraft \(S\) sichtbar wird. Notieren Sie eine Gleichgewichtsbedingung, in der \(S\) als einzige Unbekannte erscheint.

Lösung

b) Kinematik: Einheitsvektor und Stabverlängerung

Berechnen Sie die \((x,y)\)-Komponenten eines nach rechts zeigenden Einheitsvektors \(\boldsymbol e\):

\[\begin{split}\begin{bmatrix} e_x \\ e_y \end{bmatrix} &= \begin{bmatrix} \ldots \\ \ldots \end{bmatrix}\end{split}\]

Berechnen Sie damit die (genäherte) Stabverlängerung \(\Delta l\). Zeigen Sie, dass:

\[\Delta l = u\]

Lösung

../../../_images/2.1.J_1.png

\((x,y)\)-Komponenten des Einheitsvektors und (genäherte) Stabverlängerung.

c) Elastizität

Verwenden Sie das Hookesche Gesetz. Drücken Sie damit \(S\) aus abhängig von \(\Delta l\).

Lösung

Hookesches Gesetz:

\begin{align} \label{eq-2.1.J-3} S = \tfrac{EA}{l} \Delta l \tag{3} \end{align}

d) Gleichungssystem und Lösung für Symbole

Berechnen Sie \(S, \Delta l, u\) für die gegebenen Symbole.

Lösung

(1), (2) und (3) sind drei Gleichungen zur Berechnung der drei Unbekannten \(S, \Delta l, u\):

\begin{align} S &= F \tag{1} \\ \Delta l &= u \tag{2} \\ S &= \tfrac{EA}{l} \Delta l \tag{3} \end{align}

Lösung:

\[\begin{split}S &= F \\ \Delta l &= \tfrac{l}{EA}F \\ u &= \tfrac{l}{EA}F\end{split}\]

e) Lösung für Größen

Berechnen Sie:

  • \(u\) in \(\mathrm{mm}\) (Millimeter) und gerundet auf Rundestellenwert \(0{,}0001\) für ein Gummiband:

    \begin{align*} l &= 10 \, \mathrm{cm} \\ F &= 2{,}5 \, \mathrm{N} \\ E &= 0{,}05 \, \mathrm{GPa} \\ A &= 10 \,\mathrm{cm} \cdot 0{,}06 \, \mathrm{mm} \end{align*}
  • \(u\) in \(\mathrm{m}\) (Meter) und gerundet auf Rundestellenwert \(0{,}0001\) für ein Stahlseil:

    \[\begin{split}l &= 1000 \, \mathrm{m} \\ F &= 10 \, \mathrm{kN} \\ E &= 200 \, \mathrm{GPa} \\ A &= 20 \, \mathrm{mm}^2\end{split}\]

Lösung

Einsetzen der gegebenen Größen in die Formel für die Verlängerung \(u\) liefert:

  • Gummiband:

    \begin{align*} u &\stackrel{\scriptscriptstyle{0{,}0001}}{\approx} 0{,}8333 \, \mathrm{mm} \end{align*}
  • Stahlseil:

    \[u = 2{,}5 \, \mathrm{m}\]

f) Verzerrung und Spannung

Berechnen Sie die Verzerrung \(\varepsilon\) gerundet auf Rundestellenwert \(0{,}0001\):

\[\begin{split}\varepsilon &= \tfrac{\Delta l}{l} \\ &\stackrel{\scriptscriptstyle{0{,}0001}}{\approx} \ldots\end{split}\]

und die Zugspannung \(\sigma\) in \(\mathrm{MPa}\) (Megapascal) gerundet auf Rundestellenwert \(0{,}0001\):

\[\begin{split}\sigma &= E \varepsilon \\ &\stackrel{\scriptscriptstyle{0{,}0001}}{\approx} \ldots \mathrm{MPa}\end{split}\]
  • für das Gummiband und

  • für das Stahlseil.

Lösung

  • Gummiband:

    \[\begin{split}\varepsilon &= 0{,}0083 \\ \sigma &= 0{,}4167 \,\mathrm{MPa}\end{split}\]
  • Stahlseil:

    \[\begin{split}\varepsilon &= 0{,}0025 \\ \sigma &= 500 \,\mathrm{MPa}\end{split}\]

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

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

l, F, E, A = symbols("l, F, E, A")

u, dl, S =  symbols("u, dl, S")

sub_list_rubber = [
    ( l, 10 *cm           ),
    ( F, 25*N/10     ),
    ( E, 5*GPa/100        ),
    ( A, 10 *cm *0.06*mm  ),
    ]

sub_list_steel = [
    ( l, 1000 *m           ),
    ( F,   10 *kN          ),
    ( E,  200 *GPa         ),
    ( A,   20 *mm**2       )
    ]

eq1 = Eq(dl, u)
eq2 = Eq(S, F)
eq3 = Eq(S, E*A/l*dl)

sol = solve([eq1, eq2, eq3], [u, dl, S])
pprint(sol)
u = sol[u]

pprint("\nDisplacement:")
pprint("Rubber:")
pprint("u / mm:")
printout(u, unit=mm, prec=4, sub_list=sub_list_rubber)

pprint("\nSteel:")
pprint("u / m:")
printout(u, unit=m, prec=4, sub_list=sub_list_steel)

pprint("\nStrain and Stress:")
pprint("Rubber:")
pprint("eps / 1:")
printout(u/l, unit=1, prec=4, sub_list=sub_list_rubber)
pprint("\nsig / MPa:")
printout(E*u/l, unit=MPa, prec=4, sub_list=sub_list_rubber)

pprint("\nSteel:")
pprint("eps / 1:")
printout(u/l, unit=1, prec=4, sub_list=sub_list_steel)
pprint("\nsig / MPa:")
printout(E*u/l, unit=MPa, prec=4, sub_list=sub_list_steel)

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.