2.1.N
Finden Sie die unvollständige Lösung mit 2·k + 2·s - r = 9 Gleichungen und Unbekannten. 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 = 15 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, simplify, 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
# Given Symbols:
a, EA, F = symbols("a, EA, F")
# Unknowns:
S1,S2,S3, dl1,dl2,dl3 = symbols("S1,S2,S3, dl1,dl2,dl3")
u1x,u1y,u2x,u2y,u3x,u3y = symbols("u1x,u1y,u2x,u2y,u3x,u3y")
R1x,R1y,R3x = symbols("R1x,R1y,R3x")
# Displacements:
u1 = Matrix([u1x, u1y])
u2 = Matrix([u2x, u2y])
u3 = Matrix([u3x, u3y])
# External Forces:
R1 = Matrix([R1x, R1y])
R3 = Matrix([R3x, 0])
F2 = Matrix([0, -F])
# Unit Vectors:
e1 = Matrix([1, 0])
c = sqrt(2)/2
e2 = Matrix([-c , c])
e3 = Matrix([0, 1])
Zero = Matrix([0, 0])
# Equations
eq_1_2 = Eq(u1, Zero)
eq_3 = Eq(u3x, 0)
eq_4_5 = Eq(R1 + S1*e1 + S3*e3, Zero)
eq_6_7 = Eq(F2 - S1*e1 + S2*e2, Zero)
eq_8_9 = Eq(R3 - S2*e2 - S3*e3, Zero)
eq_10 = Eq(S1, EA * dl1 / a )
eq_11 = Eq(S2, EA * dl2 / (sqrt(2)*a) )
eq_12 = Eq(S3, EA * dl3 / a )
eq_13 = Eq(dl1, e1.dot(u2 - u1))
eq_14 = Eq(dl2, e2.dot(u3 - u2))
eq_15 = Eq(dl3, e3.dot(u3 - u1))
# Linear System:
eqns = [eq_1_2, eq_3, eq_4_5, eq_6_7, eq_8_9, eq_10, eq_11, eq_12, eq_13, eq_14, eq_15]
unks = [S1,S2,S3, dl1,dl2,dl3, u1x,u1y,u2x,u2y,u3x,u3y, R1x,R1y,R3x]
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")
tmp /= F
pprint(str(s)+" / F:")
tmp = tmp.simplify()
pprint(tmp)
[ ]: einfügen.▶ drücken.
Hinter jeder nummerierten Gleichung in Klammern: Gleichungsnummer und darin enthaltene neue Unbekannte.Unvollständige Lösung mit 2·k + 2·s - r = 9 Gleichungen und Unbekannten auf einer Seite
a) Gleichgewicht
Es gibt drei Gleichgewichtsbedingungen, in denen die Stabkräfte \(S_1, S_2, S_3\) auftauchen, aber keine Lagerreaktionen. Sie können diese drei Aussagen aus Knotenschnitten um den Knoten 2 bzw. um den Knoten 3. Finden Sie diese drei Aussagen.
b) Kinematik
Berechnen Sie die (genäherten) Stabverlängerungen \(\Delta l_1, \Delta l_2, \Delta l_3\) abhängig von \(u_{2x}, u_{2y}, u_{3y}\).
Seien \(\boldsymbol u_1, \boldsymbol u_2, \boldsymbol u_3\) die Knoten-Verschiebungs-Vektoren. Und seien \(\boldsymbol e_1, \boldsymbol e_2, \boldsymbol e_3\) die Einheitsvektoren entlang der Stäbe mit den \((x,y)\)-Komponenten: Es gelten folgende Näherungen für die Stabverlängerungen: Geschrieben mit Matrix-Multiplikation:Lösung
c) 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_2.\)
Stablängen: Hookesches Gesetz:Lösung
d) Lösung für Symbole
Zeigen Sie, dass:
Gleichungssystem mit 2·k + 2·s - r = 9 Gleichungen und Unbekannten: Schritte zur Lösung des Gleichungssystems: Stabkräfte \(S_1, S_2, S_3\) aus den ersten 3 Gleichungen berechnen. Diese Stabkräfte in die letzten drei Gleichungen einsetzen. Verlängerungen \(\Delta l_1, \Delta l_2, \Delta l_3\) eliminieren. Die gesuchten Verschiebungen \(u_{2x}, u_{2y}. u_{3y}\) ablesen.Lösung
e) Lösung für Größen
Berechnen Sie \(u_{2y}\) in \(\mathrm{mm}\) (Millimeter) für die Größen:
Runden Sie auf Rundestellenwert \(0{,}01\) Zeigen Sie, dass:
Einsetzen der gegebenen Größen liefert wie behauptet: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
# 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
# ---
a, F, EA = symbols("a, F, EA")
sub_list = [
(a, 1 *m),
(F, 1 *kN),
(EA, 210 *GPa * 1 *cm**2)
]
l1, l2, l3 = a, sqrt(2)*a, a
S1, S2, S3 = - F, sqrt(2)*F, -F
dl1, dl2, dl3 = l1/EA*S1, l2/EA*S2, l3/EA*S3
s22 = sqrt(2)/2
e1 = Matrix([1, 0])
e2 = Matrix([-s22, s22])
e3 = Matrix([0, 1])
u2x, u2y, u3y = symbols("u2x, u2y, u3y")
u1 = Matrix([0,0])
u2 = Matrix([u2x,u2y])
u3 = Matrix([0,u3y])
eq1 = Eq(dl1, e1.dot(u2-u1))
eq2 = Eq(dl2, e2.dot(u3-u2))
eq3 = Eq(dl3, e3.dot(u3-u1))
sol = solve([eq1, eq2, eq3],[u2x, u2y, u3y])
pprint(sol)
u2y = sol[u2y]
pprint("\nu2y:")
printout(u2y, unit=1, prec="nil", sub_list=[])
pprint("\nu2y / mm:")
printout(u2y, unit=mm, prec=2, sub_list=sub_list)
[ ]: einfügen.▶ drücken.