Tags: Video

2.1.Q

Videos

Gegeben

../../../_images/2.1.Q.png

Symbole:

\[F, E, A, l\]

\(E, A\) für alle Stäbe gleich.

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

../../../_images/all.X7.png

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

# Parameters:
F, E, A, l = symbols("F, E, A, l")
EA = E*A

sub_list = [
    ( F,     5 *kN    ),
    ( E,   200 *GPa   ),
    ( A,    25 *mm**2 ),
    ( l,  1707 *mm    ),
    ]

# Shortcuts:
p1, p2, p3 = 45 *deg, 90 *deg, 135 *deg
c1, c2, c3 = cos(p1), cos(p2), cos(p3)
s1, s2, s3 = sin(p1), sin(p2), sin(p3)
l1, l2, l3 = sqrt(2)*l, l, sqrt(2)*l

# Symbols:
S1, S2, S3    = symbols("S1, S2, S3")
dl1, dl2, dl3 = symbols("dl1, dl2, dl3")

u1x, u1y = symbols("u1x, u1y")
u2x, u2y = symbols("u2x, u2y")
u3x, u3y = symbols("u3x, u3y")
u4x, u4y = symbols("u4x, u4y")

u1 = Matrix([u1x, u1y])
u2 = Matrix([u2x, u2y])
u3 = Matrix([u3x, u3y])
u4 = Matrix([u4x, u4y])

R1x, R1y = symbols("R1x, R1y")
R2x, R2y = symbols("R2x, R2y")
R3x, R3y = symbols("R3x, R3y")

R1 = Matrix([R1x, R1y])
R2 = Matrix([R2x, R2y])
R3 = Matrix([R3x, R3y])

e1 = Matrix([c1, s1])
e2 = Matrix([c2, s2])
e3 = Matrix([c3, s3])

Fv = Matrix([0, -F])

zero = Matrix([0, 0])

# Unknowns:
unks = [S1,S2,S3,\
    dl1,dl2,dl3,\
    u1x,u1y, u2x,u2y, u3x,u3y, u4x,u4y,\
    R1x,R1y, R2x,R2y, R3x,R3y
    ]

eqns = [
    Eq(          S1 ,  EA * dl1 / l1      ),
    Eq(          S2 ,  EA * dl2 / l2      ),
    Eq(          S3 ,  EA * dl3 / l3      ),
    Eq(          dl1 ,  e1.dot(u4 - u1 )  ),
    Eq(          dl2 ,  e2.dot(u4 - u2 )  ),
    Eq(          dl3 ,  e3.dot(u4 - u3 )  ),
    Eq(                 R1 + S1*e1, zero  ),
    Eq(                 R2 + S2*e2, zero  ),
    Eq(                 R3 + S3*e3, zero  ),
    Eq( Fv - S1*e1 - S2*e2 - S3*e3, zero  ), 
    Eq(                         u1, zero  ),
    Eq(                         u2, zero  ),
    Eq(                         u3, zero  ),
    ]

sol = solve(eqns, unks)

pprint("\n(S₁, S₂, S₃) / F:")
S1, S2, S3 = sol[S1], sol[S2], sol[S3]
for S in [S1, S2, S3]:
    tmp = S / F
    tmp = tmp.simplify()
    pprint(tmp)

pprint("\n(Δl₁, Δl₂, Δl₃) / ( Fl / (EA) ):")
dl1, dl2, dl3 = sol[dl1], sol[dl2], sol[dl3]
fac = F*l / EA
for dl in [dl1, dl2, dl3]:
    tmp = dl / fac
    tmp = tmp.simplify()
    pprint(tmp)

pprint("\n(u4x, u4y) / ( Fl / (EA) ):")
u4 = Matrix([sol[u4x], sol[u4y]])
printout(u4, unit=fac, prec="nil", sub_list=[])

pprint("\nu4y / mm:")
printout(u4[1], unit=mm, prec=5, 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.

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

../../../_images/all-1.X4.png

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

# Parameters:
F, E, A, l = symbols("F, E, A, l")
EA = E*A

# Shortcuts:
p1, p2, p3 = 45 *deg, 90 *deg, 135 *deg
c1, c2, c3 = cos(p1), cos(p2), cos(p3)
s1, s2, s3 = sin(p1), sin(p2), sin(p3)

r = sqrt(2)
c = r / 2

# Symbols:
S1, S2, S2p, S3    = symbols("S1, S2, S2p, S3")
dl1, dl2, dl3 = symbols("dl1, dl2, dl3")
u4x, u4y      = symbols("u4x, u4y")

sub_list = [
    ( F,        5 *kN     ),
    ( E,      200 *GPa    ),
    ( A,       25 *mm**2  ),
    ( l,     1707 *mm     ),
    ]

symm = True
# symm = False

# Equations:
if symm:
    pprint("Symmetry used.")
    unks = [S1, S2p, dl1, dl2, u4x, u4y]         # 6 Unknowns.
    eqns = [                                     # 6 Equations:
        Eq(          dl1 ,  S1/EA * r*l     ),   # 1
        Eq(          dl2 ,  S2p/(EA/2) * l  ),   # 2
        Eq(             0,  u4x             ),   # 3
        Eq(    0, S1*s1 + S2p + F/2         ),   # 4
        Eq(    dl1 ,  c1 * u4x + s1 * u4y   ),   # 5
        Eq(    dl2 ,  c2 * u4x + s2 * u4y   ),   # 6
        ]    
else:
    pprint("Symmetry not used.")
    unks = [S1, S2, S3, dl1, dl2, dl3, u4x, u4y] # 8 Unknowns.
    eqns = [                                     # 8 Equations:
        Eq(          dl1 ,  S1/EA * r*l     ),   # 1
        Eq(          dl2 ,  S2/EA * l       ),   # 2
        Eq(          dl3 ,  S3/EA * r*l     ),   # 3
        Eq(     - S1*c1 - S2*c2 - S3*c3, 0  ),   # 4
        Eq(  -F - S1*s1 - S2*s2 - S3*s3, 0  ),   # 5
        Eq(    dl1 ,  c1 * u4x + s1 * u4y   ),   # 6
        Eq(    dl2 ,  c2 * u4x + s2 * u4y   ),   # 7
        Eq(    dl3 ,  c3 * u4x + s3 * u4y   ),   # 8
        ]


sol = solve(eqns, unks)
fac = F*l / EA
if symm:
    S1, S2p  = sol[S1],  sol[S2p]
    dl1, dl2 = sol[dl1], sol[dl2]
    u4x, u4y = sol[u4x], sol[u4y]
    
    pprint("\n(S₁, S₂') / F:")
    for S in [S1, S2p]:
        tmp = S / F
        tmp = tmp.simplify()
        pprint(tmp)

    pprint("\n(Δl₁, Δl₂) / (Fl/EA):")
    for s in [dl1, dl2]:
        tmp = s / fac
        tmp = tmp.simplify()
        pprint(tmp)
else:
    S1, S2, S3    = sol[S1],  sol[S2],  sol[S3]
    dl1, dl2, dl3 = sol[dl1], sol[dl2], sol[dl3]
    u4x, u4y      = sol[u4x], sol[u4y]

    pprint("\n(S₁, S₂, S₃) / F:")
    for S in [S1, S2, S3]:
        tmp = S / F
        tmp = tmp.simplify()
        pprint(tmp)

    pprint("\n(Δl₁, Δl₂, Δl₃) / ( Fl / (EA) ):")
    for s in [dl1, dl2, dl3]:
        tmp = s / fac
        tmp = tmp.simplify()
        pprint(tmp)

pprint("\n(u4x, u4y) / ( Fl / (EA) ):")
u4 = Matrix([u4x, u4y])
printout(u4, unit=fac, prec="nil", sub_list=[])

pprint("\nu4y / mm:")
printout(u4[1], unit=mm, prec=5, 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.

a) Elastizität

Geben Sie Stabkräfte an abhängig von den genäherten Stabverlängerungen und den gegebenen Symbolen. D.h. notieren Sie das Hookesche Gesetz für die drei Stäbe.

Lösung

Die Stäbe 1 und 3 haben die Länge \(\sqrt 2 l\). Und Stab 2 hat die Länge \(l\).

\begin{align} S_1 &= EA \tfrac{\Delta l_1}{\sqrt 2 l}\tag{1, $\,\,S_1, \Delta l_1$}\\ S_2 &= EA \tfrac{\Delta l_2}{l} \tag{2, $\,\,S_2, \Delta l_2$} \\ S_3 &= EA \tfrac{\Delta l_3}{\sqrt 2 l}\tag{3, $\,\,S_3, \Delta l_3$} \end{align}

b) Gleichgewicht

Machen Sie einen Knotenschnitt am Knoten 4. Geben Sie zwei Gleichgewichtsbedingungen an.

Lösung

c) Kinematik

Geben Sie die (genäherten) Stabverlängerungen \(\Delta l_1, \Delta l_2, \Delta l_3\) an abhängig von den \((x,y)\)-Komponenten \((u_{4x}, u_{4y})\) des Verschiebungsvektors \(\boldsymbol u_4\) von Knoten 4.

Lösung

\((x,y)\)-Komponenten der Einheitsvektoren:

\begin{align*} \begin{bmatrix} e_{1x} \\ e_{1y} \end{bmatrix} &= \begin{bmatrix} c_{45^\circ} \\ s_{45^\circ} \end{bmatrix} \\ \begin{bmatrix} e_{2x} \\ e_{2y} \end{bmatrix} &= \begin{bmatrix} c_{90^\circ} \\ s_{90^\circ} \end{bmatrix} \\ \begin{bmatrix} e_{3x} \\ e_{3y} \end{bmatrix} &= \begin{bmatrix} c_{135^\circ} \\ s_{135^\circ} \end{bmatrix} \end{align*}

Stabverlängerungen:

\begin{align*} \Delta l_1 &= \begin{bmatrix} c_{45^\circ} & s_{45^\circ} \end{bmatrix} \begin{bmatrix} u_{4x} \\ u_{4y} \end{bmatrix} \\ &= \begin{bmatrix} \tfrac{\sqrt2}{2} & \tfrac{\sqrt2}{2} \end{bmatrix} \begin{bmatrix} u_{4x} \\ u_{4y} \end{bmatrix} \\ &= \tfrac{\sqrt2}{2} (u_{4x} + u_{4y})\tag{6, $\,\,u_{4x}, u_{4y}$} \\ \Delta l_2 &= \begin{bmatrix} c_{90^\circ} & s_{90^\circ} \end{bmatrix} \begin{bmatrix} u_{4x} \\ u_{4y} \end{bmatrix} \\ &= \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} u_{4x} \\ u_{4y} \end{bmatrix} \\ &= u_{4y}\tag{7} \\ \Delta l_3 &= \begin{bmatrix} c_{135^\circ} & s_{135^\circ} \end{bmatrix} \begin{bmatrix} u_{4x} \\ u_{4y} \end{bmatrix} \\ &= \begin{bmatrix} \tfrac{-\sqrt2}{2} & \tfrac{\sqrt2}{2} \end{bmatrix} \begin{bmatrix} u_{4x} \\ u_{4y} \end{bmatrix} \\ &= \tfrac{\sqrt2}{2} (-u_{4x} + u_{4y})\tag{8} \end{align*}

d) Gleichungssystem und Lösung

Berechnen Sie abhängig von den gegebenen Symbolen:

\begin{align*} S_1 &= \ldots F \\ S_2 &= \ldots F \\ S_3 &= \ldots F \\ \Delta l_1 &= \ldots \frac{Fl}{EA} \\ \Delta l_2 &= \ldots \frac{Fl}{EA} \\ \Delta l_3 &= \ldots \frac{Fl}{EA} \\ u_{4x} &= \ldots \frac{Fl}{EA} \\ u_{4y} &= \ldots \frac{Fl}{EA} \end{align*}

Berechnen Sie außerdem \(u_{4y}\) für folgende Größen:

\begin{align*} F &= 5\,\mathrm{kN} \\ E &= 200\,\mathrm{GPa} \\ A &= 25\,\mathrm{mm}^2 \\ l &= 1707\,\mathrm{mm} \end{align*}

Und zwar in \(\mathrm{mm}\) (Millimeter) und gerundet auf Rundestellenwert \(0{,}00001\):

\[u_{4y} \stackrel{\scriptscriptstyle{0{,}00001}}{\approx} \ldots \, \mathrm{mm}\]

Lösung

Die o.g. Gleichungen sind 8 Gleichungen zur Berechnung der 8 Unbekannten \((S_1, S_2, S_3, \Delta l_1, \Delta l_2, \Delta l_3, u_{4x}, u_{4y})\).

Lösung:

\begin{align*} S_1 &= \left(-1 + \frac{\sqrt{2}}{2} \right) F \notag \\ S_2 &= \left(-2 + \sqrt{2} \right) F \notag \\ S_3 &= \left(-1 + \frac{\sqrt{2}}{2} \right) F \notag \\ \Delta l_1 &= \left( - \sqrt{2} + 1 \right) \frac{Fl}{EA} \notag \\ \Delta l_2 &= \left( -2 + \sqrt{2} \right) \frac{Fl}{EA} \notag \\ \Delta l_3 &= \left( - \sqrt{2} + 1 \right) \frac{Fl}{EA} \notag \\ u_{4x} &= 0 \cdot \frac{Fl}{EA}\notag \\ u_{4y} &= \left( -2 + \sqrt{2} \right) \frac{Fl}{EA} \notag \\ \notag \\ u_{4y} &\stackrel{\scriptscriptstyle{0{,}00001}}{\approx} -0{,}99994\,\mathrm{mm} \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

# 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

# Parameters:
F, E, A, l = symbols("F, E, A, l")
EA = E*A

# Shortcuts:
p1, p2, p3 = 45 *deg, 90 *deg, 135 *deg
c1, c2, c3 = cos(p1), cos(p2), cos(p3)
s1, s2, s3 = sin(p1), sin(p2), sin(p3)

r = sqrt(2)
c = r / 2

# Symbols:
S1, S2, S2p, S3    = symbols("S1, S2, S2p, S3")
dl1, dl2, dl3 = symbols("dl1, dl2, dl3")
u4x, u4y      = symbols("u4x, u4y")

sub_list = [
    ( F,        5 *kN     ),
    ( E,      200 *GPa    ),
    ( A,       25 *mm**2  ),
    ( l,     1707 *mm     ),
    ]

symm = True
# symm = False

# Equations:
if symm:
    pprint("Symmetry used.")
    unks = [S1, S2p, dl1, dl2, u4x, u4y]         # 6 Unknowns.
    eqns = [                                     # 6 Equations:
        Eq(          dl1 ,  S1/EA * r*l     ),   # 1
        Eq(          dl2 ,  S2p/(EA/2) * l  ),   # 2
        Eq(             0,  u4x             ),   # 3
        Eq(    0, S1*s1 + S2p + F/2         ),   # 4
        Eq(    dl1 ,  c1 * u4x + s1 * u4y   ),   # 5
        Eq(    dl2 ,  c2 * u4x + s2 * u4y   ),   # 6
        ]    
else:
    pprint("Symmetry not used.")
    unks = [S1, S2, S3, dl1, dl2, dl3, u4x, u4y] # 8 Unknowns.
    eqns = [                                     # 8 Equations:
        Eq(          dl1 ,  S1/EA * r*l     ),   # 1
        Eq(          dl2 ,  S2/EA * l       ),   # 2
        Eq(          dl3 ,  S3/EA * r*l     ),   # 3
        Eq(     - S1*c1 - S2*c2 - S3*c3, 0  ),   # 4
        Eq(  -F - S1*s1 - S2*s2 - S3*s3, 0  ),   # 5
        Eq(    dl1 ,  c1 * u4x + s1 * u4y   ),   # 6
        Eq(    dl2 ,  c2 * u4x + s2 * u4y   ),   # 7
        Eq(    dl3 ,  c3 * u4x + s3 * u4y   ),   # 8
        ]


sol = solve(eqns, unks)
fac = F*l / EA
if symm:
    S1, S2p  = sol[S1],  sol[S2p]
    dl1, dl2 = sol[dl1], sol[dl2]
    u4x, u4y = sol[u4x], sol[u4y]
    
    pprint("\n(S₁, S₂') / F:")
    for S in [S1, S2p]:
        tmp = S / F
        tmp = tmp.simplify()
        pprint(tmp)

    pprint("\n(Δl₁, Δl₂) / (Fl/EA):")
    for s in [dl1, dl2]:
        tmp = s / fac
        tmp = tmp.simplify()
        pprint(tmp)
else:
    S1, S2, S3    = sol[S1],  sol[S2],  sol[S3]
    dl1, dl2, dl3 = sol[dl1], sol[dl2], sol[dl3]
    u4x, u4y      = sol[u4x], sol[u4y]

    pprint("\n(S₁, S₂, S₃) / F:")
    for S in [S1, S2, S3]:
        tmp = S / F
        tmp = tmp.simplify()
        pprint(tmp)

    pprint("\n(Δl₁, Δl₂, Δl₃) / ( Fl / (EA) ):")
    for s in [dl1, dl2, dl3]:
        tmp = s / fac
        tmp = tmp.simplify()
        pprint(tmp)

pprint("\n(u4x, u4y) / ( Fl / (EA) ):")
u4 = Matrix([u4x, u4y])
printout(u4, unit=fac, prec="nil", sub_list=[])

pprint("\nu4y / mm:")
printout(u4[1], unit=mm, prec=5, 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.

e) Symmetrie

Zeigen Sie, dass Sie bei Ausnutzung der Symmetrie dieselbe Lösung für \(u_{4y}\) erhalten.

Lösung

../../../_images/2.1.Q_symm.png

6 Gleichungen zur Berechnung der 6 Unbekannten \((S_1, S_2', \Delta l_1, \Delta l_2, u_{4x}, u_{4y})\) und Lösung:

\begin{align*} \Delta l_1 &= \tfrac{S_1}{EA} \sqrt 2 l \tag{1} \\ \Delta l_2 &= \tfrac 1 2 \tfrac{S_2}{EA} l \tag{2} \\ \Delta l_1 &= \tfrac{\sqrt2}{2} (u_{4x} + u_{4y}) \tag{3} \\ \Delta l_2 &= u_{4y} \tag{4} \\ 0 &= \tfrac 1 2 F + S_1 c_1 + S_2' \tag{5} \\ 0 &= u_{4x} \tag{6}\\ \notag\\ S_1 &= \left(-1 + \frac{\sqrt{2}}{2} \right) F \notag \\ S_2' &= \tfrac 1 2 \left(-2 + \sqrt{2} \right) F = \tfrac12 S_2 \notag \\ \Delta l_1 &= \left( - \sqrt{2} + 1 \right) \frac{Fl}{EA} \notag \\ \Delta l_2 &= \left( -2 + \sqrt{2} \right) \frac{Fl}{EA} \notag \\ u_{4x} &= 0 \cdot \frac{Fl}{EA}\notag \\ u_{4y} &= \left( -2 + \sqrt{2} \right) \frac{Fl}{EA} \notag \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

# 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

# Parameters:
F, E, A, l = symbols("F, E, A, l")
EA = E*A

# Shortcuts:
p1, p2, p3 = 45 *deg, 90 *deg, 135 *deg
c1, c2, c3 = cos(p1), cos(p2), cos(p3)
s1, s2, s3 = sin(p1), sin(p2), sin(p3)

r = sqrt(2)
c = r / 2

# Symbols:
S1, S2, S2p, S3    = symbols("S1, S2, S2p, S3")
dl1, dl2, dl3 = symbols("dl1, dl2, dl3")
u4x, u4y      = symbols("u4x, u4y")

sub_list = [
    ( F,        5 *kN     ),
    ( E,      200 *GPa    ),
    ( A,       25 *mm**2  ),
    ( l,     1707 *mm     ),
    ]

symm = True
# symm = False

# Equations:
if symm:
    pprint("Symmetry used.")
    unks = [S1, S2p, dl1, dl2, u4x, u4y]         # 6 Unknowns.
    eqns = [                                     # 6 Equations:
        Eq(          dl1 ,  S1/EA * r*l     ),   # 1
        Eq(          dl2 ,  S2p/(EA/2) * l  ),   # 2
        Eq(             0,  u4x             ),   # 3
        Eq(    0, S1*s1 + S2p + F/2         ),   # 4
        Eq(    dl1 ,  c1 * u4x + s1 * u4y   ),   # 5
        Eq(    dl2 ,  c2 * u4x + s2 * u4y   ),   # 6
        ]    
else:
    pprint("Symmetry not used.")
    unks = [S1, S2, S3, dl1, dl2, dl3, u4x, u4y] # 8 Unknowns.
    eqns = [                                     # 8 Equations:
        Eq(          dl1 ,  S1/EA * r*l     ),   # 1
        Eq(          dl2 ,  S2/EA * l       ),   # 2
        Eq(          dl3 ,  S3/EA * r*l     ),   # 3
        Eq(     - S1*c1 - S2*c2 - S3*c3, 0  ),   # 4
        Eq(  -F - S1*s1 - S2*s2 - S3*s3, 0  ),   # 5
        Eq(    dl1 ,  c1 * u4x + s1 * u4y   ),   # 6
        Eq(    dl2 ,  c2 * u4x + s2 * u4y   ),   # 7
        Eq(    dl3 ,  c3 * u4x + s3 * u4y   ),   # 8
        ]


sol = solve(eqns, unks)
fac = F*l / EA
if symm:
    S1, S2p  = sol[S1],  sol[S2p]
    dl1, dl2 = sol[dl1], sol[dl2]
    u4x, u4y = sol[u4x], sol[u4y]
    
    pprint("\n(S₁, S₂') / F:")
    for S in [S1, S2p]:
        tmp = S / F
        tmp = tmp.simplify()
        pprint(tmp)

    pprint("\n(Δl₁, Δl₂) / (Fl/EA):")
    for s in [dl1, dl2]:
        tmp = s / fac
        tmp = tmp.simplify()
        pprint(tmp)
else:
    S1, S2, S3    = sol[S1],  sol[S2],  sol[S3]
    dl1, dl2, dl3 = sol[dl1], sol[dl2], sol[dl3]
    u4x, u4y      = sol[u4x], sol[u4y]

    pprint("\n(S₁, S₂, S₃) / F:")
    for S in [S1, S2, S3]:
        tmp = S / F
        tmp = tmp.simplify()
        pprint(tmp)

    pprint("\n(Δl₁, Δl₂, Δl₃) / ( Fl / (EA) ):")
    for s in [dl1, dl2, dl3]:
        tmp = s / fac
        tmp = tmp.simplify()
        pprint(tmp)

pprint("\n(u4x, u4y) / ( Fl / (EA) ):")
u4 = Matrix([u4x, u4y])
printout(u4, unit=fac, prec="nil", sub_list=[])

pprint("\nu4y / mm:")
printout(u4[1], unit=mm, prec=5, 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.