2.1.I
Gegeben
Symbole:
Drei Stäbe mit E-Modul \(E\) und Querschnittsfläche \(A\).
Hinter jeder nummerierten Gleichung in Klammern: Gleichungsnummer und darin enthaltene neue Unbekannte. Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf Vollständige Lösung mit 2·k + 2·s + r = 19 Gleichungen und Unbekannten auf einer Seite
SymPy
from sympy import pi,S,pprint,symbols,cos,sin,Matrix,Eq,solve,sqrt,exp,default_sort_key
# ---
E, A, l1, a, alpha, F = symbols("E, A, l1, a, alpha, F")
EA = E*A
c, s = cos(alpha), sin(alpha)
l2 = a/s
l3 = l2
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")
R1y,R3x,R3y,R4x,R4y = symbols("R1y,R3x,R3y,R4x,R4y")
e1 = Matrix([1, 0])
e2 = Matrix([s, c])
e3 = Matrix([s,-c])
F = Matrix([ F, 0 ])
R1 = Matrix([ 0, R1y])
R3 = Matrix([R3x, R3y])
R4 = Matrix([R4x, R4y])
u1 = Matrix([u1x, u1y])
u2 = Matrix([u2x, u2y])
u3 = Matrix([u3x, u3y])
u4 = Matrix([u4x, u4y])
zero = Matrix([0, 0])
# ---
eq1 = Eq( S1, EA*dl1/l1 )
eq2 = Eq( S2, EA*dl2/l2 )
eq3 = Eq( S3, EA*dl3/l3 )
eq4 = Eq( dl1, e1.dot(u1 - u2) )
eq5 = Eq( dl2, e2.dot(u2 - u3) )
eq6 = Eq( dl3, e3.dot(u2 - u4) )
eq7x = Eq( F + R1 - S1*e1, zero )
eq9x = Eq( S1*e1 - S2*e2 - S3*e3, zero )
eq11x = Eq( R3 + S2*e2, zero)
eq13x = Eq( R4 + S3*e3, zero)
eq15 = Eq(u1y, 0)
eq16x = Eq(u3, zero)
eq18x = Eq(u4, zero)
eqns = [eq1,eq2,eq3,eq4,eq5,eq6,eq7x,eq9x,eq11x,eq13x,eq15,eq16x,eq18x]
unks = [S1,S2,S3, dl1,dl2,dl3, u1x,u1y,u2x,u2y,u3x,u3y,u4x,u4y, R1y,R3x,R3y,R4x,R4y]
sol = solve(eqns, unks, dict=True)
sol = sol[0]
pprint("\nSolution (non-zero only):")
for s in sol:
tmp = sol[s]
if tmp != 0:
tmp = tmp.simplify()
pprint("\n" + str(s) + ":")
pprint(tmp)
[ ]: einfügen.▶ drücken.
Hinter jeder nummerierten Gleichung in Klammern: Gleichungsnummer und darin enthaltene neue Unbekannte. Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf Unvollständige Lösung mit 2·k + 2·s - r = 9 Gleichungen und Unbekannten auf einer Seite
SymPy
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
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
# ---
E, A, l1, a, alpha, F = symbols("E, A, l1, a, alpha, F")
EA = E*A
# sub_list = [
# ( E, 200 *GPa ),
# ( A, 500 *mm**2 ),
# ( l1, 2 *m ),
# ( a, S(5)/2 *m ),
# ( alpha, 60 *deg ),
# ( F, 10 *kN ),
# ]
sub_list=[
( E, 200 *GPa ),
( A, 500 *mm**2 ),
( l1, 1 *m ),
( a, S(14)/10 *m ),
( alpha, 60 *deg ),
( F, 100 *kN ),
]
E, A, l1, a, alpha, F = symbols("E, A, l1, a, alpha, F")
EA = E*A
ca, sa = cos(alpha), sin(alpha)
l2, l3, S1, S2, S3 = symbols("l2, l3, S1, S2, S3 ")
u1x, u2x, u2y, dl1, dl2, dl3 = symbols("u1x, u2x, u2y, dl1, dl2, dl3")
unks = [ l2, l3, S1, S2, S3, u1x, u2x, u2y, dl1, dl2, dl3 ]
eqA = Eq( l2, a / sa )
eqB = Eq( l3, a / sa )
eq1 = Eq( S1, EA * dl1 / l1 )
eq2 = Eq( S2, EA * dl2 / l2 )
eq3 = Eq( S3, EA * dl3 / l2 )
eq4 = Eq( dl1, u1x - u2x )
eq5 = Eq( dl2, sa*u2x + ca*u2y )
eq6 = Eq( dl3, sa*u2x - ca*u2y )
eq7 = Eq( S1, F )
eq8 = Eq( S2*sa + S3*sa, S1 )
eq9 = Eq( S2*ca, S3*ca )
eqns = [eqA,eqB,eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9]
sol = solve(eqns, unks, dict=True)
sol = sol[0]
pprint("\nSolution (non-zero only):")
for s in sol:
tmp = sol[s]
if tmp != 0:
tmp = tmp.simplify()
pprint("\n" + str(s) + ":")
pprint(tmp)
pprint("\nu1x / mm:")
tmp = sol[u1x]
tmp = tmp.subs(sub_list)
tmp /= mm
tmp = iso_round(tmp, 2)
pprint(tmp)
[ ]: einfügen.▶ drücken.
a) Geometrie
Berechnen Sie die Längen \(l_2, l_3\) der undeformierten Stäbe 2 und 3:
Lösung
b) Elastizität
Hookesches Gesetz: Notieren Sie den Zusammenhang zwischen den Stabkräften \(S_1, S_2, S_3\) und den (genäherten) Stabverlängerungen \(\Delta l_1, \Delta l_2, \Delta l_3\):
Lösung
c) Kinematik: Einheitsvektoren und Verlängerungen
Berechnen Sie die \((x,y)\)-Komponenten der Einheitsvektoren \(\boldsymbol e_1, \boldsymbol e_2\) und \(\boldsymbol e_3\):
An der Skizze kann man ablesen, dass: Zur Veranschaulichung betrachtet man z.B. \(\alpha = 60^\circ.\) Die Skizze zeigt diesen Fall. Hier gilt: Dies passt zu dem, was man in der Skizze sieht. Um standardmäßig vorgehen zu können: definiert man Winkel \(\varphi_2\) bzw. \(\varphi_3\). notiert man den Zusammenhang zwischen \(\alpha\) und \(\varphi_2\) bzw. \(\varphi_3\). verwendet man Additionstheoreme.Lösung
Details
Berechnen Sie die (genäherten) Stabverlängerungen \(\Delta l_1, \Delta l_2, \Delta l_3\) abhängig von den Knotenverschiebungen. Verwenden Sie Ihre Kenntnisse über die Einheitsvektoren.
Genäherte Verlängerung:Lösung
d) Gleichgewicht
Geben Sie drei Aussagen (Gleichgewichtsbedingungen) an, in denen die Stabkräfte \(S_1, S_2, S_3\) auftauchen - aber keine Reaktionskräfte:
g) Gleichungssystem und Lösung
Aus den Gleichungen (a), (b) lassen sich sofort die Stablängen \(l_2, l_3\) berechnen. Es verbleiben dann noch 9 Gleichungen für 9 Unbekannte. Nennen Sie diese 9 Unbekannten.
Berechnen Sie dann \(u_{1x}\) in \(\mathrm{mm}\) (Millimeter) gerundet auf Rundestellenwert \(0{,}01\) für folgende Größen:
Zeigen Sie, dass:
9 Gleichungen für die 9 Unbekannten: \(S_1, S_2, S_3, u_{1x}, u_{2x}, u_{2y}, \Delta l_1, \Delta l_2, \Delta l_3\): Das Lösen des Gleichungssystems und das Einsetzen der gegebenen Größen liefert:Lösung