2.1.M
Gegeben
Symbole:
\(\Delta T\): Temperaturzuwachs in allen Stäben.
\(A\): Querschnittsfläche aller Stäbe.
\((l_1, E_1, \alpha_1)\): Länge, E-Modul, Wärmeausdehnungskoeffizient der Stäbe links und rechts.
\((l_2, E_2, \alpha_2)\): Länge, E-Modul, Wärmeausdehnungskoeffizient des Stabs in der Mitte.
\((u_{1x}, u_{1y})\): Komponenten des Verschiebungsvektors eines Teilchens bei Gelenk 1.
Berechnen Sie dazu die unvollständige Lösung mit 2·k + 2·s - r = 8 Gleichungen und Unbekannten. Berechnen Sie insbesondere \(u_{1y}\).
a) Gleichgewicht
Geben Sie zwei Gleichgewichtsbedingung an, die Sie an einem Knotenschnitt um Knoten 1 ablesen können. Verwenden Sie die Abkürzung:
b) Kinematik: Einheitsvektoren und Verlängerungen
Berechnen Sie die Komponenten der Einheitsvektoren \(\boldsymbol e_1, \boldsymbol e_2, \boldsymbol e_3\), sodass diese entlang der Stäbe 1 und 2 und 3 nach unten zeigen.
Und berechnen Sie die (genäherten) Stabverlängerungen:
Lösung
c) Elastizität
Hookesches Gesetz: Drücken Sie die Stabkräfte aus abhängig von Verlängerung und Temperaturzuwachs.
Lösung
d) Gleichungssystem und Lösung für Spezialfall
Notieren Sie die unvollständige Lösung mit 2·k + 2·s - r = 8 Gleichungen und Unbekannten. Das heißt: Notieren Sie das Gleichungssystem mit den 8 Unbekannten.
Betrachten Sie ab jetzt den Spezialfall:
mit gegebenen Symbolen \(l, E, \alpha\).
Notieren Sie das Gleichungssystem mit den 8 Unbekannten für diesen Spezialfall. Und lösen Sie das Gleichungssystem. Wenn das erledigt ist: Verwenden Sie die folgenden gegebenen Größen:
Berechnen Sie hierfür \(u_{1y}\) in \(\mathrm{mm}\) (Millimeter) und gerundet auf Rundestellenwert \(0{,}01\). Zeigen Sie, dass:
8 Gleichungen zur Berechnung der 8 Unbekannten \(S_1, S_2, S_3, \Delta l_1, \Delta l_2, \Delta l_3, u_{1x}, u_{1y}\): Dies vereinfacht sich für den Spezialfall zu: Lösung für die gesuchte Verschiebung: Einsetzen der gegebenen Größen liefert: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, 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
# ---
l1,l2,E1,E2,al1,al2,dT,A,F = symbols("l1,l2,E1,E2,alpha2,alpha1,dT,A,F")
# Derived from given symbols:
a1dT = al1 * dT
a2dT = al2 * dT
# Unknowns:
S1,S2,S3,dl1,dl2,dl3,u1x,u1y = symbols("S1,S2,S3,dl1,dl2,dl3,u1x,u1y")
w = sqrt(2)/2
e1 = Matrix([w, w])
e2 = Matrix([0, 1])
e3 = Matrix([-w, w])
u1 = Matrix([u1x, u1y])
# 8 Equations:
eq1 = Eq( S1*w + S3*w + S2, F )
eq2 = Eq( S1*w, S3*w )
eq3 = Eq( dl1, e1.dot(u1))
eq4 = Eq( dl2, e2.dot(u1))
eq5 = Eq( dl3, e3.dot(u1))
eq6 = Eq( S1, E1*A*(dl1/l1 - a1dT) )
eq7 = Eq( S2, E2*A*(dl2/l2 - a2dT) )
eq8 = Eq( S3, E1*A*(dl3/l1 - a1dT) )
l, E, al = symbols("l, E, alpha")
sub_list = [
( l1, l ),
( l2, l ),
( E1, E ),
( E2, E ),
( al1, al ),
( al2, al ),
( F, 0 ),
]
# Solve Special Case for Symbols:
eqns = []
i = 0
for e in [eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8]:
i += 1
tmp = e.subs(sub_list)
eqns.append(tmp)
unks = [S1, S2, S3, dl1, dl2, dl3, u1x, u1y]
sol = solve(eqns, unks)
for s in sol:
pprint(s)
tmp = sol[s]
tmp = tmp.simplify()
pprint(tmp)
pprint("\n")
# Solve for Quantities:
sub_list = [
( l, 1 *m ),
( E, 200 *GPa ),
( al, S(5)/10**6 /K ),
( dT, 20 *K ),
( A, 50 *mm**2 ),
]
pprint("\nu1y / mm:")
printout(sol[u1y], unit=mm, prec=2, sub_list=sub_list)
[ ]: einfügen.▶ drücken.