2.1.G
a) Stablängen
Geben Sie die Längen der undeformierten Stäbe an, und zwar abhängig von \(a\):
b) Geometrie
Berechnen Sie den Kosinus und den Sinus des Winkels \(\beta\) im Aufgabenbild.
c) Einheitsvektoren & Gleichgewicht
Berechnen Sie die \((x,y)\)-Komponenten der Einheitsvektoren:
Schneiden Sie Knoten A frei. Notieren Sie zwei Gleichgewichtsbedingungen, d.h. zwei Aussagen über \(S_1, S_2, S_3.\)
d) Kinematik: Verlängerungen
Berechnen Sie die (genäherten) Stabverlängerungen abhängig von \(u_x\) und \(u_y\), also abhängig von den \((x,y)\)-Komponenten des Verschiebungsvektors \(\boldsymbol u\) des Knotens A.
Lösung
e) Elastizität (Hookesches Gesetz)
Drücken Sie die Stabkräfte aus abhängig von deren Verlängerungen und dem Temperaturzuwachs:
Lösung
f) Gleichungssystem
Nummerieren Sie alle Unbekannten und die Gleichungen, aus denen man diese Unbekannten berechnet.
Die oben nummerierten Gleichungen sind 8 Gleichungen zur Berechnung der 8 Unbekannten \((u_x, u_y, S_1, S_2, S_3, \Delta l_1, \Delta l_2, \Delta l_3)\).Lösung
g) Lösung für gegebene Größen
Seien ab hier folgende Größen gegeben:
Zeigen Sie, dass für diese Größen gilt:
Das Einsetzen der gegebenen Größen in die 8 Gleichungen liefert für jede Gleichung eine wahre Aussage. Und damit ist gezeigt, dass dies dies Lösung des Gleichungssystems ist.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 var, Eq, solve, pprint, Matrix, S, pi
# Units:
(mm, cm) = ( m/1000, m/100 )
Newton = kg*m/s**2
kN = 10**3*Newton
Pa = Newton/m**2
MPa = 10**6*Pa
GPa = 10**9*Pa
deg = pi/180
half = S(1)/2
# Rounding:
def iso_round(x, pv):
try:
x = float(x)
tmp = round(x, pv)
except TypeError:
from functools import partial
func = partial(round, ndigits = pv)
tmp = x.applyfunc(func)
return tmp
# ---
a, b, c, E, alpha, dT, A = var("a, b, c, E, alpha, dT, A")
sub_list = [
( a , 1 *m ),
( E , 200 *GPa ),
( A , 1000 *mm**2 ),
( alpha , S(10)**(-5) /K ),
( dT , (126+half) *K ),
]
l1, l2, l3 = 5*a, 4*a, 5*a
EA = E*A
adT = alpha * dT
# Solve without using symmetry:
ux,uy,dl1,dl2,dl3,S1,S2,S3 = var("ux,uy,dl1,dl2,dl3,S1,S2,S3")
unks = [ux,uy,dl1,dl2,dl3,S1,S2,S3]
u = Matrix([ux, uy])
e1 = Matrix([S(3)/5, S(4)/5])
e2 = Matrix([0, 1])
e3 = Matrix([-S(3)/5, S(4)/5])
# Equilibrium:
eq1 = Eq( S1*3/5, S3*3/5 ) # horizontal
eq2 = Eq( S1*4/5 + S3*4/5 + S2, 0) # vertical
# Kinematics:
eq3 = Eq( dl1, e1.dot(u) )
eq4 = Eq( dl2, e2.dot(u) )
eq5 = Eq( dl3, e3.dot(u) )
# Elasticity:
eq6 = Eq( S1, EA * (dl1/l1 - adT) )
eq7 = Eq( S2, EA * (dl2/l2 - adT) )
eq8 = Eq( S3, EA * (dl3/l3 - adT) )
eqns = [eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8]
sol = solve(eqns, unks)
ux, uy = sol[ux], sol[uy]
dl1, dl2, dl3 = sol[dl1], sol[dl2], sol[dl3]
S1, S2, S3 = sol[S1], sol[S2], sol[S3]
pprint("\n(ux, uy, dl1, dl2, dl3) / mm:")
for tmp in [ux, uy, dl1, dl2, dl3]:
tmp = tmp.subs(sub_list)
tmp /= mm
tmp = iso_round(tmp,2)
pprint(tmp)
pprint("\n(S1, S2, S3) / kN:")
for tmp in [S1, S2, S3]:
tmp = tmp.subs(sub_list)
tmp /= kN
pprint(tmp)
[ ]: einfügen.▶ drücken.