2.1.S

Gegeben

../../../_images/2.1.S.png

Symbole:

\[a, EA, F\]

Größen:

\[\begin{split}a&=2\,\mathrm{m}\\ EA&=72\,\mathrm{GPa}\cdot 10\,\mathrm{cm}^2 \\ F&=100\,\mathrm{kN}\end{split}\]

Lösung auf einer Seite

../../../_images/a.X7.png

Unvollständige Lösung: Keine Gleichungen mit unbekannten Lagerreaktionen.

a) Stabkräfte

Berechnen Sie die Stabkräfte. Zeigen Sie, dass:

\[\begin{split}S_1 &= 2 F \\ S_2 &= -\sqrt 5 F\end{split}\]

b) Verschiebung

Berechnen Sie die Komponenten des Verschiebungsvektors von Knoten 1. Zeigen Sie, dass:

\[\begin{split}\begin{bmatrix} u_{1x} \\ u_{1y} \end{bmatrix} &\stackrel{\scriptscriptstyle{0{,}1}}{\approx} \begin{bmatrix} 11{,}1 \\ - 53{,}3 \end{bmatrix} \,\mathrm{mm}\end{split}\]

c) Probe mit Arbeitssatz

Berechnen Sie \(u_{1y}\) noch einmal. Und zwar zur Probe und mit dem Arbeitssatz. Zeigen Sie, dass:

\[\begin{split}u_{1y} &= - \tfrac{Fa}{EA} \left( 8 + 5 \sqrt 5\right) \\\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

# ---

a, EA, F = symbols("a, EA, F")

sub_list = [
    ( a,   2 *m              ),
    ( EA, 72 *GPa * 10*cm**2 ),
    ( F, 100 *kN             ),
    ]

# ---

prec = 1

w5 = sqrt(5)
# Cosine and Sine:
c = 2/w5
s = 1/w5

l1 = 2*a
l2 = w5*a
k1 = EA/l1
k2 = EA/l2

S1, S2, dl1, dl2, u1x, u1y = symbols("S1, S2, dl1, dl2, u1x, u1y")

e1 = Matrix([1, 0])
e2 = Matrix([c, s])

u1 = Matrix([u1x,u1y])

# Equilibrium:
eq1 = Eq(S1 + S2*c, 0)
eq2 = Eq( F + S2*s, 0)

# Elasticity:
eq3 = Eq(S1, k1*dl1)
eq4 = Eq(S2, k2*dl2)

# Kinemmatics:
eq5 = Eq(dl1, e1.dot(u1))
eq6 = Eq(dl2, e2.dot(u1))

eqns = [eq1, eq2, eq3, eq4, eq5, eq6]
unks = [S1, S2, dl1, dl2, u1x, u1y]

sol = solve(eqns, unks)

pprint("\n(S1, S2):")
S1 = sol[S1]
S2 = sol[S2]
S2 = S2.simplify()

for Sx in [S1, S2]:
    tmp = Sx
    tmp = tmp.simplify()
    pprint(tmp)

pprint("\nu1:")
u1x, u1y = sol[u1x], sol[u1y]
u1 = Matrix([u1x,u1y])
printout(u1, unit=1, prec="nil", sub_list=[])

pprint("\nu1 / mm:")
printout(u1, unit=mm, prec=prec, sub_list=sub_list)

pprint("\nChecking:")
u1y = symbols("u1y")

# Work done by force:
Wa = - half * F*u1y

# Stored energy:
Ws = half * (S1**2/k1 + S2**2/k2)

u1y = solve(Eq(Wa, Ws), u1y)
pprint(u1y)

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.