Gelöste Aufgaben/Kw23: Unterschied zwischen den Versionen
Zeile 15: | Zeile 15: | ||
Dabei modellieren Sie die Kugel als elastisch, die Unterlage als starr. Die Kugel können Sie sich so wie unten skizziert im unteren Teil durch eine Feder ersetzt denken.<onlyinclude> | Dabei modellieren Sie die Kugel als elastisch, die Unterlage als starr. Die Kugel können Sie sich so wie unten skizziert im unteren Teil durch eine Feder ersetzt denken.<onlyinclude> | ||
[[Datei:Kw23-01.png|alternativtext=|links|mini|119x119px|Lageplan]] | [[Datei:Kw23-01.png|alternativtext=|links|mini|119x119px|Lageplan]] | ||
Eine elastische Kugel wird im Erdschwerefeld losgelassen und „springt“ wie ein Flummi auf und ab. Gesucht ist die | Eine elastische Kugel wird im Erdschwerefeld losgelassen und „springt“ wie ein Flummi auf und ab. Gesucht ist die numerische Lösung als Anfangswertproblem. | ||
</onlyinclude> | </onlyinclude> | ||
Version vom 27. März 2021, 07:44 Uhr
Aufgabenstellung
Eine Kugel (Masse m, Radius r) wird aus der Höhe H im Erdschwerefeld losgelassen, kommt auf den Boden auf und „springt“ dann wie ein Flummi auf und ab. Der Stoß zwischen Kugel und Oberfläche sei ideal-elastisch. Gefragt ist eine numerische Lösung des Problems als Anfangswertproblem.
Dabei modellieren Sie die Kugel als elastisch, die Unterlage als starr. Die Kugel können Sie sich so wie unten skizziert im unteren Teil durch eine Feder ersetzt denken.
Eine elastische Kugel wird im Erdschwerefeld losgelassen und „springt“ wie ein Flummi auf und ab. Gesucht ist die numerische Lösung als Anfangswertproblem.
Lösung mit Maxima
Die Schwierigkeit kommt aus der Modellierung der Kontaktkraft zwischen Boden und Kugel. Oft reicht es, ein phänomenologisches Modell zu implementieren - also die Kontaktkraft als reine "Federkraft" zu interpretieren.
Kugel-Modell: elastischer Kontakt mit Einfederung w. | |
---|---|
Die Federkraft K ist also Null, solange die Kugel die Oberfläche nicht berührt und sie sei hier - eine weitere drastische Vereinfachung - proportional zur Federkompression w, wenn sich Kugel und Oberfläche berühren:
Header
Wir lösen das Anfangswertproblem zu einer nichtlinearen Bewegungsgleichung. Die Nichtlinearität kommt aus der Kontaktbedingung der Kugel mit der Oberfläche.
Die Bewegungsgleichung ist stückweise linear, hier erfassen wir sie durch eine Kennlinie, die wir zwischen den linearen Bereich ausrunden. Das Ausrunden macht die numerische Integration schneller.
/*********************************************************/
/* MAXIMA script */
/* version: wxMaxima 15.08.2 */
/* author: Andreas Baumgart */
/* last updated: 2017-09-24 */
/* ref: Kw23 (TM-C, Labor 5) */
/* description: finds the solution for */
/* the nonlinear IVP */
/*********************************************************/
Declarations
Wir verwenden die Parameter
Die Kennlinie für den Kontakt definieren wir stückweise zu
Und so sieht sie dann aus:
/*********************************************************/
/* declarations */
assume(g>0, r>0);
/* parameter */
params: [k = kappa*m*g/r, /*spring stiffness*/
t[B] = sqrt(2*r/g), /*reference time*/
kappa = 100]; /*dim'less spring stiffness*/
/**** define nonlinear spring characteristic ***/
K(w,epsilon) := if w <- epsilon then
0
elseif w< epsilon then
(w/epsilon+1)^2*epsilon/4
else
w;
plot2d(K(w,0.5),[w,-1,1],
[ylabel,"K/(k*W)->"], [xlabel,"w/W->"],
[legend, "restoring force, ε=0.5"]);
Equilibrium Conditions
Die Gleichgewichtsbedingung lesen wir mit dem Prinzip von d'Alembert aus dem Freikörperbild ab:
Mit der dimensionslosen Zeit und Höhe
- ,
sowie
wird daraus
- .
Weil wir ab hier mit den dimensionslosen Koordinaten weiterarbeiten, lassen wir die Tilde über dem h gleich wieder weg - so wird's übersichtlicher.
/********************************/
/* define ODE in dim'less coordinate h */
dgl : m*r/t[B]^2*'diff(h,t,2)-k*r*K(-h,1/100)+m*g = 0;
dgl : expand(solve(dgl, 'diff(h,t,2)))[1];
dgl : expand(subst(params,dgl));
Solving
Die Bewegungsgleichung zweiter Ordnung schrieben wir nun um als zwei Bewegungsgleichungen erster Ordnung zu
- .
Die rechte Seite der gewöhnlichen Differentialgleichung ("Right-hand-side of ODE") lautet damit
Und diese können wir - hier mit dem Runge-Kutta-Verfahren 4.ter Ordnung - lösen.
/********************************/
/* numerical solution of IVP */
times : subst([t0 = 0, tmax = 10, dt = 0.01],
[t, t0, tmax, dt]);
dgl1stOrder : subst(params,[v,float(expand(rhs(dgl)))]);
stateVabs : [h,v];
initiVals : [10,0];
ivs : rk(dgl1stOrder, stateVabs, initiVals, times)$
Post-Processing
Wir tragen die Höhe h über der Zeit und h über v im Phasendiagramm auf:
Height h:
Phase Diagram:
/********************************/
/* plot time functions */
T : makelist(ivs[j][1],j,1,length(ivs))$
H : makelist(ivs[j][2],j,1,length(ivs))$
V : makelist(ivs[j][3],j,1,length(ivs))$
plot2d([discrete, T, H],
[title, sconcat("start @: ",string(initiVals))],
[xlabel,"τ/1->"], [ylabel,"h/1->"]);
/* phase plot */
plot2d([discrete,H,V], [legend, false], [x,-1,10],
[ylabel,"V/1->"], [xlabel,"H/1->"]);
Links
- ...
Literature
- ...