2.1.F
Gegeben
Symbole:
Dargestellt ist die undeformierte Lage.
Das Gelenk G erleidet eine Verschiebung, weil Stab 1 (Wärmeausdehnungskoeffizient \(\alpha\)) einer Temperaturzuwachs \(\Delta T\) ausgesetzt ist.
Finden Sie die unvollständige Lösung mit (2·k + 2·s - r = 6) Gleichungen und Unbekannten. Und berechnen Sie damit die Verschiebung des Gelenks G und die Verlängerungen der beiden Stäbe. Gehen Sie wie folgt vor.
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 = 14 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
# Given Symbols:
l2,phi,adT = symbols("l2,phi,adT")
# 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")
# Nodal Displacements:
u1 = Matrix([u1x, u1y])
u2 = Matrix([u2x, u2y])
u3 = Matrix([u3x, u3y])
# Nodal External Forces:
R1 = Matrix([R1x, R1y])
R2 = Matrix([R2x, R2y])
c, s = cos(phi), sin(phi)
e1 = Matrix([c, s])
e2 = Matrix([0, 1])
Zero = Matrix([0, 0])
# Assume any EA:
EA1, EA2 = symbols("EA1, EA2")
eq_1 = Eq( S1, EA1 * (dl1 / (l2/s) - adT ) )
eq_2 = Eq( S2, EA2 * dl2 / l2 )
eq_3 = Eq(dl1, e1.dot(u3 - u1))
eq_4 = Eq(dl2, e2.dot(u3 - u2))
eq_56 = Eq(R1 + S1*e1, Zero)
eq_78 = Eq(R2 + S2*e2, Zero)
eq_91 = Eq(- S1*e1 - S2*e2, Zero)
eq_11_12 = Eq(u1, Zero)
eq_13_14 = Eq(u2, Zero)
eqns = [eq_1, eq_2, eq_3, eq_4, eq_56, eq_78, eq_91, eq_11_12, eq_13_14]
unks = [S1,S2,dl1,dl2,u1x,u1y,u2x,u2y,u3x,u3y,R1x,R1y,R2x,R2y]
sol = solve(eqns, unks)
pprint("\nSolution (non-zero only):")
for s in sol:
tmp = sol[s]
if tmp != 0:
pprint("\n" + str(s) + ":")
pprint(tmp)
[ ]: einfügen.▶ drücken.
a) Geometrie
Berechnen Sie die Länge des Stabs 1 abhängig von den gegebenen Symbolen. Und verwenden Sie dann \(l_1\) als bekannt.
b) Gleichgewicht
Geben Sie zwei Gleichgewichtsbedingungen an - also notieren Sie zwei Gleichungen, in denen die unbekannten Stabkräfte \(S_1\) und \(S_2\) auftauchen - aber keine Lagerreaktionen.
Weil das System statisch bestimmt ist, lassen sich die Stabkräfte schon hier berechnen - unabhängig von den Deformationen. Man sieht, dass beide Stabkräfte gleich null sind. Aber das ist Teil der Lösung des Linearen Gleichungssystems, und diese Lösung wird erst am Ende berechnet und notiert.Lösung
c) Kinematik Einheitsvektoren und Stabverlängerungen
Geben Sie die \((x,y)\)-Komponenten der Einheitsvektoren \(\boldsymbol e_1\) und \(\boldsymbol e_2\) an:
Seien \((u_{3x}, u_{3y})\) die \((x,y)\)-Komponenten des Verschiebungsvektor \(\boldsymbol{u_3}\) eines Teilchens bei Knoten 3. Drücken Sie die (genäherten) Stabverlängerungen \(\Delta l_1\) und \(\Delta l_2\) aus abhängig von den \((x,y)\)-Komponenten von \(\boldsymbol{u_3}\) und den gegebenen Symbolen.
Lösung
d) Elastizität
Hookesches Gesetz: Notieren Sie den Zusammenhang zwischen den Stabkräften \(S_1, S_2\) und den (genäherten) Stabverlängerungen \(\Delta l_1, \Delta l_2\):
Lösung
e) Lösung für Symbole
Berechnen Sie \(S_1, S_2, u_{3x}, u_{3y}, \Delta l_1, \Delta l_2\) für die gegebenen Symbole.
Lineares Gleichungssystem mit 2·k + 2·s - r = 6 Gleichungen und Unbekannten. Unbekannte \(S_1, S_2, u_{3x}, u_{3y}, \Delta l_1, \Delta l_2\). Gleichung (0) notieren wir ganz am Ende. Denn \(l_1\) kennen wir schon. Lösung = diese 6 Gleichungen aufgelöst nach den 6 Unbekannten:Lösung
f) Lösung für Größen
Berechnen Sie \(u_{3x}, u_{3y}, \Delta l_1, \Delta l_2\) in \(\mathrm{mm}\) (Millimeter) und gerundet auf Rundestellenwert \(0{,}001\) für die folgenden Größen:
Zeigen Sie, dass gilt:
Einsetzen der gegebenen Größen liefert das Ergebnis. Siehe e) Lösung für Symbole.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, K
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
# Header ends here.
l2, phi, alpha, dT = symbols("l2, phi, alpha, dT")
c, s = cos(phi), sin(phi)
EA1, EA2 = symbols("EA1, EA2", positive=True)
sub_list=[
( l2 , S(6)/5 *m ),
( phi , 53 *deg ),
( alpha , 24.e-6 / K ),
( dT , 50 *K ),
]
S1, S2, dl1, dl2, u3x, u3y, l1 = symbols("S1, S2, dl1, dl2, u3x, u3y, l1")
unks = [S1, S2, dl1, dl2, u3x, u3y, l1]
eq0 = Eq( l1, l2/s)
eq1 = Eq(0, S1*c)
eq2 = Eq(0, S1*s + S2)
eq3 = Eq( dl1, u3x*c + u3y*s )
eq4 = Eq( dl2, u3y )
eq5 = Eq( S1, EA1 * (dl1/l1 - alpha*dT) )
eq6 = Eq( S2, EA2 * dl2/l2 )
eqns = [eq1,eq2,eq3,eq4,eq5,eq6, eq0]
sol = solve(eqns, unks, dict=True)
sol = sol[0]
pprint(sol)
u3x, u3y = sol[u3x],sol[u3y]
dl1, dl2 = sol[dl1],sol[dl2]
l1 = sol[l1]
pprint("\n(u3x, u3y, dl1, dl2, l1) / mm:")
for x in [u3x,u3y, dl1, dl2, l1]:
tmp = x
tmp = tmp.subs(sub_list)
tmp /= mm
tmp = iso_round(tmp, 3)
pprint(tmp)
[ ]: einfügen.▶ drücken.