2.1.B

Gegeben

../../../_images/2.1.B.png

Symbole:

\[a, F, E, A\]

Beide Stäbe: E-Modul \(E\) und Querschnittsfläche \(A\).

Berechnen Sie:

  • die Stabkräfte \(S_1, S_2\),
    jeweils in \(\mathrm{kN}\) (Kilonewton) und gerundet auf Rundestellenwert \(0{,}01\),

  • die (genäherten) Stabverlängerungen \(\Delta l_1\) und \(\Delta l_2\),
    jeweils in \(\mathrm{mm}\) (Millimeter),

  • die Verschiebung des oberen Gelenks nach rechts sowie nach oben,
    jeweils in \(\mathrm{mm}\) (Millimeter) und gerundet auf Rundestellenwert \(0{,}0001.\)

Und zwar für die Größen:

\[\begin{split}E &= 200 \, \mathrm{GPa} \\ A &= 10 \, \mathrm{cm}^2 \\ a &= 1 \, \mathrm{m} \\ F &= 1000 \, \mathrm{N}\end{split}\]

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

../../../_images/all.X1.png

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

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

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

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

# Unknowns:
S1,S2,dl1,dl2 = symbols("S1,S2,dl1,dl2")
u1x,u1y,u2x,u2y,u3x,u3y = symbols("u1x,u1y,u2x,u2y,u3x,u3y")
R1x,R1y,R2x,R2y = symbols("R1x,R1y,R2x,R2y")

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

# External Forces:
R1 = Matrix([R1x, R1y])
R2 = Matrix([R2x, R2y])
F3 = Matrix([F, 0])

# Unit Vectors:
e1 = Matrix([0, 1])
w5 = sqrt(5)
e2 = Matrix([2 / w5, 1 / w5])

Zero = Matrix([0, 0])

# Equations
eq_1_2 = Eq(u1, Zero)
eq_3_4 = Eq(u2, Zero)

eq_5_6  = Eq(R1 + S1*e1, Zero)
eq_7_8  = Eq(R2 + S2*e2, Zero)
eq_9_10 = Eq(F3 - S1*e1 - S2*e2, Zero)

eq_11 = Eq(S1, EA * dl1/a )
eq_12 = Eq(S2, EA * dl2 / (w5*a) )

eq_13 = Eq(dl1, e1.dot(u3 - u1))
eq_14 = Eq(dl2, e2.dot(u3 - u2))

# Linear System:
eqns = [eq_1_2,eq_3_4,eq_5_6,eq_7_8,eq_9_10,eq_11,eq_12,eq_13,eq_14]
unks = [S1,S2, dl1,dl2, u1x,u1y,u2x,u2y,u3x,u3y, R1x,R1y,R2x,R2y]

sol = solve(eqns, unks)

printout_sol(sol, unit=F, unit_str="F", prec="nil", 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.

Von-Hand-Lösung des Linearen Gleichungssystems

Ausgangspunkt sind 14 Gleichungen mit 14 Unbekannten. Man kann schrittweise vorgehen, und eine nach der anderen Unbekannten eliminieren und damit die Anzahl der Unbekannten reduzieren.

  1. Zuerst die Gleichungen zu den Zwängen verwenden, um die 4 Unbekannten \(u_{1x}, u_{1y}, u_{2x}, u_{2y}\) aus den Gleichungen (13) und (14) zu eliminieren. Damit entfallen die Gleichungen (1) bis (4). Und aus (13) und (14) wird:

    \begin{align} \Delta l_1 &= \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} u_{3x} \\ u_{3y} \end{bmatrix} = u_{3y} \tag{13a} \\ \Delta l_2 &= \begin{bmatrix} \tfrac{2}{\sqrt 5} & \tfrac{1}{\sqrt 5} \end{bmatrix} \begin{bmatrix} u_{3x} \\ u_{3y} \end{bmatrix} \tag{14a} \end{align}

    Es verbleiben: 10 Gleichungen mit 10 Unbekannten.

  2. \(\Delta l_1\) aus (13a) sowie \(\Delta l_2\) aus (14a) einsetzen in (11) und (12), um die 2 Unbekannten \(\Delta l_1, \Delta l_2\) zu eliminieren. Damit entfallen die Gleichungen (13a) und (14a). Und aus (11) und (12) wird:

    \begin{align} S_1 &= k \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} u_{3x} \\ u_{3y} \end{bmatrix} = k u_{3y} \tag{11a}\\ S_2 &= \tfrac{k}{\sqrt 5} \begin{bmatrix} \tfrac{2}{\sqrt 5} & \tfrac{1}{\sqrt 5} \end{bmatrix} \begin{bmatrix} u_{3x} \\ u_{3y} \end{bmatrix} = \tfrac k 5 ( 2 u_{3x} + u_{3y} ) \tag{12a} \end{align}

    mit der Abkürzung \(k=\tfrac{EA}{a}.\)

    Es verbleiben: Die 8 Gleichungen (5-10) sowie (11a, 12a) mit 8 Unbekannten.

  3. \(S_1\) aus (11a) sowie \(S_2\) aus (12a) einsetzen in die 6 Gleichungen (5) bis (10), um die 2 Unbekannten \(S_1, S_2\) zu eliminieren. Damit entfallen die Gleichungen (11a) und (12a). Und aus den Gleichungen (5) bis (10) wird:

    \begin{align} \begin{bmatrix} R_{1x} \\ R_{1y} \end{bmatrix} + k u_{3y} \begin{bmatrix} 0 \\ 1 \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \tag{5a, 6a} \\ \begin{bmatrix} R_{2x} \\ R_{2y} \end{bmatrix} + (\tfrac 2 5 k u_{3x} + \tfrac 1 5 k u_{3y}) \begin{bmatrix} \tfrac{2}{\sqrt 5} \\ \tfrac{1}{\sqrt 5} \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \tag{7a, 8a}\\ \begin{bmatrix} F \\ 0 \end{bmatrix} - k u_{3y} \begin{bmatrix} 0 \\ 1 \end{bmatrix} - (\tfrac 2 5 k u_{3x} + \tfrac 1 5 k u_{3y}) \begin{bmatrix} \tfrac{2}{\sqrt 5} \\ \tfrac{1}{\sqrt 5} \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \tag{9a, 10a} \end{align}

    Es verbleiben: Diese 6 Gleichungen (5a-10a) mit den 6 Unbekannten \(R_{1x}, R_{1y}, R_{2x}, R_{2y}, u_{3x}, u_{3y}.\)

  4. Wegen (5a) gilt:

    \[\underline{R_{1x}=0}\]

    Es verbleiben: Die 5 Gleichungen (6a-10a) mit den 5 Unbekannten \(R_{1y}, R_{2x}, R_{2y}, u_{3x}, u_{3y}.\)

  5. Wegen (6a) gilt \(k u_{3y}= - R_{1y}.\) Letzteres verwenden, um \(k u_{3y}\) aus den Gleichungen (7a) bis (10a) zu eliminieren. Damit entfällt (6a). Und es bleibt:

    \begin{align} \begin{bmatrix} R_{2x} \\ R_{2y} \end{bmatrix} + (\tfrac 2 5 k u_{3x} - \tfrac 1 5 R_{1y}) \begin{bmatrix} \tfrac{2}{\sqrt 5} \\ \tfrac{1}{\sqrt 5} \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \tag{7b, 8b}\\ \begin{bmatrix} F \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ R_{1y} \end{bmatrix} - (\tfrac 2 5 k u_{3x} - \tfrac 1 5 R_{1y}) \begin{bmatrix} \tfrac{2}{\sqrt 5} \\ \tfrac{1}{\sqrt 5} \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \tag{9b, 10b} \end{align}

    Es verbleiben: Diese 4 Gleichungen mit den 4 Unbekannten \(R_{1y}, R_{2x}, R_{2y}, u_{3x}.\)

  6. Aus der Addition (8b) + (10b) erkennt man, dass \(R_{2y}= - R_{1y}.\) Dieses \(R_{2y}\) einsetzen in (8b), um \(R_{2y}\) zu eliminieren. Damit entfällt (10b). Und es bleibt:

    \begin{align} \begin{bmatrix} R_{2x} \\ - R_{1y} \end{bmatrix} + (\tfrac{2}{5\sqrt 5} k u_{3x} - \tfrac{1}{5\sqrt 5} R_{1y}) \begin{bmatrix} 2 \\ 1 \end{bmatrix} &= \begin{bmatrix} 0 \\ 0 \end{bmatrix} \tag{7b, 8c}\\ F - \tfrac{2}{\sqrt 5} (\tfrac 2 5 k u_{3x} - \tfrac 1 5 R_{1y}) &= 0 \tag{9c} \end{align}

    Und das sind 3 Gleichungen für \(R_{1y}, R_{2x}, u_{3x}.\)

  7. Dieselben Gleichungen lassen sich aus wie folgt schreiben:

    \begin{align} \tfrac 1 2 R_{2x} + \tfrac{2}{5\sqrt 5} k u_{3x} - \tfrac{1}{5\sqrt 5} R_{1y} &= 0 \tag{7b} \\ - R_{1y} + \tfrac{2}{5\sqrt 5} k u_{3x} - \tfrac{1}{5\sqrt 5} R_{1y} &= 0 \tag{8c} \\ \tfrac 4 5 k u_{3x} - \tfrac 2 5 R_{1y} &= \sqrt 5 F \tag{9c} \end{align}
  8. Wegen (7b) und (8c) gilt \(\tfrac 1 2 R_{2x}=- R_{1y}.\) Und (8c) und (9c) lassen sich kürzer schreiben:

    \begin{align} \tfrac 1 2 R_{2x} &= - R_{1y} \tag{7c} \\ 2k u_{3x} - ( 5\sqrt 5 + 1 ) R_{1y} &= 0 \tag{8c} \\ 2 k u_{3x} - R_{1y} &= \tfrac 5 2 \sqrt 5 F \tag{9c} \end{align}

    Das sind immer noch 3 Gleichungen für \(R_{1y}, R_{2x}, u_{3x}.\) Aber jetzt lässt sich \(R_{1y}\) berechnen aus (8c) - (9c). Und es ergibt sich:

    \[- 5\sqrt 5 R_{1y} = - \tfrac 5 2 \sqrt 5 F \quad \leadsto \quad \underline{R_{1y} = \tfrac 1 2 F}\]

Jetzt wird rückwärts eingesetzt:

  • \(R_{1y} = \tfrac 1 2 F\) einsetzen in (9c) liefert:

    \[2 k u_{3x} = \tfrac 1 2 F + \tfrac 5 2 \sqrt 5 F \quad \leadsto \quad \underline{u_{3x} = \tfrac{(1 + 5 \sqrt 5)F}{4 k}}\]
  • \(R_{1y} = \tfrac 1 2 F\) einsetzen in (7c) liefert:

    \[\tfrac 1 2 R_{2x} = - R_{1y} \quad \leadsto \quad \underline{R_{2x} = - F}\]
  • Schritt 5 von oben führte auf \(R_{2y}= - R_{1y}\). Und mit dem jetzt berechneten \(R_{1y}= \tfrac 1 2 F\) gilt:

    \[\underline{R_{2y}= - \tfrac 1 2 F}\]
  • \(R_{1y} = \tfrac 1 2 F\) einsetzen in (6c) liefert:

    \[k u_{3y} = - \tfrac 1 2 F \quad \leadsto \quad \underline{u_{3y} = - \tfrac 1 2 \tfrac{F}{k}}\]
  • \(u_{3y}\) einsetzen in (13a) liefert:

    \[\underline{\Delta l_1 = - \tfrac 1 2 \tfrac{F}{k}}\]
  • \(u_{3y}\) sowie das berechnete \(u_{3x}\) einsetzen in (14a) liefert:

    \[\begin{split}\underline{\Delta l_2} &= \tfrac{2}{\sqrt 5} \tfrac{(1 + 5 \sqrt 5)F}{4 k} - \tfrac{1}{\sqrt 5} \tfrac 1 2 \tfrac{F}{k} \\ &= \left( \tfrac{1 + 5 \sqrt 5}{2 \sqrt 5} - \tfrac{1}{2\sqrt 5}\right)\tfrac{F}{k} \\ &= \underline{\tfrac 5 2 \tfrac{F}{k}}\end{split}\]
  • \(u_{3y}\) einsetzen in (11a) liefert:

    \[\underline{S_1} = - k \tfrac 1 2 \tfrac{F}{k} = \underline{- \tfrac 1 2 F}\]
  • \(u_{3x}\) und \(u_{3y}\) einsetzen in (12a) liefert:

    \[\begin{split}\underline{S_2} &= \tfrac k 5 ( 2 \tfrac{(1 + 5 \sqrt 5)F}{4 k} - \tfrac 1 2 \tfrac{F}{k} ) \\ &= \tfrac 1 5 ( \tfrac{(1 + 5 \sqrt 5)}{2} - \tfrac{1}{2} )F \\ &= \underline{\tfrac{\sqrt 5}{2} F}\end{split}\]

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

../../../_images/all-1.X.png

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

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

# 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

# ---

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

sub_list = [
    ( EA, 200*GPa * 10*cm**2 ),
    ( a,  1       *m         ),
    ( F,  1000    *N         ),
    ]

l1, l2 = a, sqrt(5)*a

u3x,u3y,dl1,dl2,S1,S2 = symbols("u3x,u3y,dl1,dl2,S1,S2")
unks = [u3x,u3y,dl1,dl2,S1,S2]

w5 = sqrt(5)
c1, s1 = 0, 1
c2, s2 = 2/w5, 1/w5

u3 = Matrix([u3x, u3y])
e1 = Matrix([c1, s1])
e2 = Matrix([c2, s2])

# Equations:
eq1 = Eq(S2*c2, F)
eq2 = Eq(S2*s2 + S1, 0)

eq3 = Eq(dl1, e1.dot(u3))
eq4 = Eq(dl2, e2.dot(u3))

eq5 = Eq(dl1, S1/EA*l1)
eq6 = Eq(dl2, S2/EA*l2)

# Linear system:
eqns = [eq1,eq2,eq3,eq4,eq5,eq6]
sol = solve(eqns, unks)

pprint(sol)
S1, S2 = sol[S1],sol[S2]
dl1, dl2 = sol[dl1], sol[dl2] 
u3x, u3y = sol[u3x], sol[u3y]

pprint("\n(S1, S2) / kN:")
for S in [S1, S2]:
    printout(S, unit=kN, prec=2, sub_list=sub_list)

pprint("\n(dl₁, dl₂) / mm:")
for dl in [dl1, dl2]:
    printout(dl, unit=mm, prec=7, sub_list=sub_list)

pprint("\n(u3x, u3y) / mm:")
for u in [u3x, u3y]:
    printout(u, unit=mm, prec=4, sub_list=sub_list)


print("\nChecking u3x:")
print("\n(S1, S2):")
S2 = F / c2
S1 = - S2*s2 
pprint(S1)
pprint(S2)

print("\nW:")
W = half/EA*(S1*S1*l1 + S2*S2*l2)
pprint(W)

print("\nu3x / mm:")
u3x = symbols("u3x")
eq = Eq(half*F*u3x, W)
sol = solve(eq, u3x)
u3x = sol[0]
printout(u3x, unit=mm, prec=4, 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.