2.1.R
a) Geometrie: Stablängen
Berechnen Sie \(l_1\) und \(l_2\), definiert als die Längen der Stäbe im undeformierten Zustand. Und zwar abhängig von den gegebenen Symbolen. Vervollständigen Sie die folgenden Aussagen.
Lösung
b) Geometrie: Einheitsvektoren
Geben Sie die \((x,y)\)-Komponenten der Einheitsvektoren \(\boldsymbol e_1\) und \(\boldsymbol e_2\) und \(\boldsymbol e_3\) an. Vervollständigen Sie die folgenden Aussagen.
Lösung
c) r = 6 Gleichungen zu Zwängen
An den 4 Knoten gibt es insgesamt 2·k = 8 Knotenverschiebungen (grün), nämlich \(u_{1x}, u_{1y}, u_{2x}, u_{2y}, u_{3x}, u_{3y}, u_{4x}, u_{4y}.\) Aufgrund der Lagerung sind einige dieser Verschiebungen gleich null. Vervollständigen Sie die folgenden 6 Aussagen für die 6 Unbekannten \(u_{1x}, u_{1y}, u_{2x}, u_{2y}, u_{4x}, u_{4y}.\)
Lösung
d) 2·k = 8 Gleichungen zum Gleichgewicht
An jedem der 4 Knoten können verschiedenartige Kräfte wirken:
Kräfte von außen, z.B. die gegebene Kraft \(F\) am Knoten 3.
Kräfte von außen, z.B. die unbekannte Lagerreaktion \(R_{2y}\) am Knoten 2.
Kräfte von innen, z.B. die unbekannte Stabkraft \(S_2\) am Knoten 3.
Vervollständigen Sie die folgenden 6 Aussagen:
Lösung
e) s = 3 Gleichungen zur Kinematik
Jeder der 3 Stäbe könnte eine Verlängerung erleiden. Diese Verlängerung hängt ab von den Verschiebungen der Knoten des jeweiligen Stabs. Vervollständigen Sie die folgenden 3 Aussagen:
Lösung
f) s = 3 Gleichungen zur Elastizität
Jeder der 3 Stäbe ist elastisch. Vervollständigen Sie die folgenden 3 Aussagen:
Lösung
g) r + 2·k + 2·s Gleichungen / Unbekannte
Die Unbekannten sind r = 6 Lagerreaktionen, s = 3 Stabverlängerungen, s = 3 Stabkräfte und 2·k = 8 Verschiebungen. Das Auflösen der Gleichungen nach diesen Unbekannten ergibt die Lösung. Ein Teil dieser Lösung ist:
Berechnen Sie diese Verschiebung
in \(\mathrm{mm}\) (Millimeter)
gerundet auf \(0{,}001\)
für die Größen:
\[\begin{split}\beta &= 0^\circ \\ E &= 200 \, \mathrm{GPa} \\ A &= 10 \, \mathrm{cm}^2 \\ a &= 1 \, \mathrm{m} \\ F &= 1000 \, \mathrm{N}\end{split}\]
Lösung
Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf SymPy
from sympy.physics.units import kg, m, s
from sympy import pi, S, pprint, symbols, cos, sin, Matrix, Eq, solve, sqrt, exp, simplify
from sympy import default_sort_key
# 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
# Given Symbols:
a, EA, F, beta = symbols("a, EA, F, beta")
sub_list = [
( EA, 200*GPa * 10*cm**2 ),
( a, 1 *m ),
( F, 1000 *N ),
( beta, 0 *deg ),
]
# Variables:
S1,S2,S3 = symbols("S1,S2,S3")
dl1,dl2,dl3 = symbols("dl1,dl2,dl3")
u1x,u1y,u2x,u2y,u3x,u3y,u4x,u4y = symbols("u1x,u1y,u2x,u2y,u3x,u3y,u4x,u4y")
R1x,R1y, R2x,R2y, R4x,R4y = symbols("R1x,R1y, R2x,R2y, R4x,R4y")
# Displacements:
u1 = Matrix([u1x, u1y])
u2 = Matrix([u2x, u2y])
u3 = Matrix([u3x, u3y])
u4 = Matrix([u4x, u4y])
# External Forces:
R1 = Matrix([R1x, R1y])
R2 = Matrix([R2x, R2y])
R4 = Matrix([R4x, R4y])
c, s = cos(beta), sin(beta)
cb, sb = symbols("cᵦ, sᵦ")
sub_list_shortcuts = [
( c, cb ),
( s, sb ),
]
F3 = Matrix([F*c, F*s])
# Unit Vectors:
e1 = Matrix([0, 1])
w5 = sqrt(5)
e2 = Matrix([2 / w5, 1 / w5])
e3 = Matrix([1, 0])
Zero = Matrix([0, 0])
# ---
eqns = []
# r = 6 Constraint Equations:
eqns.append( Eq(u1, Zero) )
eqns.append( Eq(u2, Zero) )
eqns.append( Eq(u4, Zero) )
# 2k = 8 Equilibrium Equations:
eqns.append( Eq(R1 + S1*e1, Zero) )
eqns.append( Eq(R2 + S2*e2, Zero) )
eqns.append( Eq(F3 - S1*e1 - S2*e2 - S3*e3, Zero) )
eqns.append( Eq(R4 + S3*e3, Zero) )
# s = 3 Kinematic Equations:
eqns.append( Eq(dl1, e1.dot(u3 - u1)) )
eqns.append( Eq(dl2, e2.dot(u3 - u2)) )
eqns.append( Eq(dl3, e2.dot(u3 - u4)) )
# s = 3 Elasticity Equations:
eqns.append( Eq(S1, EA * dl1 / a ) )
eqns.append( Eq(S2, EA * dl2 / (w5*a) ) )
eqns.append( Eq(S3, EA * dl3 / (2*a) ) )
# Unknowns:
unks = [
S1,S2,S3,
dl1,dl2,dl3,
u1x,u1y,u2x,u2y,u3x,u3y,u4x,u4y,
R1x,R1y,R2x,R2y,R4x,R4y
]
pprint("\nSolution (all zero-results suppressed):")
sol = solve(eqns, unks)
for s in sorted(sol, key=default_sort_key):
tmp = sol[s]
if tmp != 0:
pprint("\n")
s = str(s)
pprint(str(s)+":")
tmp = tmp.simplify()
tmp = tmp.subs(sub_list_shortcuts)
pprint(tmp)
pprint("\nu3y / mm:")
printout(sol[u3y], unit=mm, prec=3, sub_list=sub_list)
[ ]: einfügen.▶ drücken.