3.1.2.B
Gegeben
Symbole:
Dargestellt ist der „Zustand 0“.
Eine Punktmasse wird aus der Höhe \(h\) über einer entspannten Feder \(c\) losgelassen.
Die Punktmasse berührt nach einiger Zeit die Feder und staucht sie dann.
\(x\) ist die Verkürzung der Feder
\(E\) ist die kinetische Energie, und \(W\) ist die potentielle Energie.
Berechnen Sie die maximale Verkürzung der Feder \(x_1\).
a) „Zustand 0“
Berechnen Sie \(E\) und \(W\) von Masse und Feder im Zustand 0: Die Masse \(m\) ist diesem Zustand in Ruhe - und die Feder \(c\) ist entspannt.
Wenn das Nullniveau auf die Höhe gelegt wird, auf der sich die Masse im Zustand 0 (dem Anfangszustand) befindet, dann ist die potentielle Energie der Masse im Zustand 0: Kinetische Energie und Federenergie im Zustand 0:Lösung
b) „Zustand 1“
Berechnen Sie \(E\) und \(W\) von Masse und Feder im Zustand 1: Die Masse ist in diesem Zustand am tiefsten Punkt - und die Feder ist maximal gestaucht.
wobei \(x_1\) die Verkürzung der Feder im Zustand 1 ist.Lösung
c) Energiesatz
Sei \(x_1\) die \(x\)-Position der Punktmasse im Zustand 1 - bzw. die maximale Stauchung der Feder. Berechnen Sie dieses \(x_1\) mit dem Energiesatz.
Anwendung der p-q-Formel liefert: Auswertung führt auf ein positives und ein negatives \(x_1\). Da die Feder laut Aufgabenstellung gestaucht (und nicht gedehnt) wird, ist \(x_1>0\). Daher ist die gesuchte maximale Stauchung:Lösung
d) Maximale Stauchung
Berechnen Sie \(x_1\) für die Größen:
Damit: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
# ---
mass, grav, c, h = symbols("m, g, c, h")
sub_list = [
( mass, 1 *kg ),
( grav, 10 *m/s**2 ),
( c, 40 *N/m ),
( h, 1 *m ),
]
# state 1:
x1 = symbols("x1", positive=True)
Em = 0
Wm = - mass * grav * (h + x1)
Wc = c*x1**2/2
pprint("\nx1 / m:")
eq = Eq(Em + Wm + Wc, 0)
eq = eq.subs(sub_list)
sol = solve(eq, x1)
tmp = sol[0]
tmp /= m
pprint(tmp)
[ ]: einfügen.▶ drücken.