Gelöste Aufgaben/Kv53: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Zeile 139: Zeile 139:
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{MyCodeBlock|title=Post-Processing


|text=
Wir tragen hier die Ergebnisse auf:
Wir tragen hier die Ergebnisse auf:


Zeile 163: Zeile 164:
</td><td>[[Datei:Kv53-32.png|rahmenlos]]
</td><td>[[Datei:Kv53-32.png|rahmenlos]]
</td></tr>
</td></tr>
</table>[[Datei:Kv53-33.png|mini|Reibkoeffizient ''μ''|alternativtext=|ohne]]
</table>Zu dieser Lösung gehört die Reibkraft
Zu dieser Lösung gehört die Reibkraft
[[Datei:Kv53-33.png|mini|Reibkoeffizient ''μ''|ohne]]
|code=
<syntaxhighlight lang="lisp" line start=1>
/*********************************************************/
/* plot results */
for i: 1 thru length(initiVals) do
(T[i] : makelist(ivs[i][j][1],j,1,length(ivs[i])),
uD[i] : makelist(ivs[i][j][2],j,1,length(ivs[i])),
vD[i] : makelist(ivs[i][j][3],j,1,length(ivs[i])),
mD[i] : makelist(subst(params,mu[1])*mu(ivs[i][j][3]/subst(params,epsilon),charc),j,1,length(ivs[i])),
plot2d([discrete, T[i], uD[i]],
      [title, sconcat("start @: ",string(initiVals[i]))],
                  [xlabel,"τ/1->"], [ylabel,"U/1->"]));


<!-------------------------------------------------------------------------------->
/* phase plot */
{{MyCodeBlock|title=Post-Processing
curves : makelist([discrete,uD[i],vD[i]],i,1,length(initiVals))$
plot2d(curves, [legend, false], [x,-0.2,1.2],
                  [ylabel,"V/1->"], [xlabel,"U/1->"],
                  [legend, "first initial conditions", "second  initial conditions"]);


|text=Text
/* friction characteristic plot */
|code=
curves : makelist([discrete,T[i],mD[i]],i,1,length(initiVals))$
<syntaxhighlight lang="lisp" line start=1>
plot2d(curves, [legend, false], [y,-0.3,+0.3],
1+1
                  [ylabel,"mu/1->"], [xlabel,"tau/1->"]);
</syntaxhighlight>
</syntaxhighlight>
}}
}}

Version vom 27. März 2021, 06:47 Uhr


Aufgabenstellung

Eine Kiste der Masse m bewegt sich auf einer schiefen Ebene, die unter dem Winkel α gegenüber der Horizontalen geneigt ist. Zwischen Kiste und Ebene wirkt eine Reibkraft (Haft-Koeffizient μ0, Reib-Koeffizient μ1). Zu Beginn der Bewegung wird die Kiste wie skizziert um den Betrag Δℓ in eine Feder der Steifigkeit k eingedrückt und dann losgelassen.


Lageplan

Gesucht ist die nichtlineare Bewegungsgleichung mit Reibkennlinie sowie die numerische Lösung als Anfangswertproblem.

Dabei sollen verschiedene Ergebnis-Muster gezeigt werden:

  1. die Kiste bleibt nach der ersten Aufwärts-Bewegung auf der Ebene bei B haften und bewegt sich nicht weiter.
  2. die Kiste erfährt mehrere Aufwärts- und Abwärts-Bewegungen, bevor sie liegen bleibt.

Lösung mit Maxima

Lorem Ipsum ....

tmp

Wir stellen die Bewegungsgleichungen des Systems als System con Differentialgleichungen erster Ordnung auf. Die Nichtlinearität kommt aus der Reibkraft und dem "Abheben" der Kiste von der Feder.

Header

Text


1+1




tmp

Die System-Parameter sind

.

Zum Dimensionslos-Machen der Bewegungsgleichungen brauchen wir später eine Bezugslänge ℓB und eine Bezugszeit tB, die wir mit Hilfe der Eigenfrequenz der zugeordneten linearen Systems so wählen:

(Achtung: das macht "1"-periodische Lösungen)

Die Bezugslänge wählen wir zusätzlich so, dass

Kennlinie

Nun müssen wir zwei Kennlinien definieren: die Kontakt-Kennlinie mit der Feder und die Reib-Kennlinie zwischen Körper und Ebene.

Für den nichtlinearen Kontakt wählen wir

oder analog

.

Und für Δℓ =-u sieht sie dann so aus.

Aus numerischer Sicht ist diese Kennlinie "Pfusch" - sie ist nicht stetig differenzierbar. Wenn wir also auf Probleme bei der Lösung stoßen - hier loht es sich, wieder einzusteigen .

Reib-Kennlinie

Bei der Reib-Kennlinie geben wir uns mehr Mühe - sie sei ein punktsymmetrisches Polynom

Und für die Parameter

mit

erhalten wir die Kennlinie rechts:

Declarations

Text


1+1




Die Gleichgewichtsbeziehungen kommen aus dem Kräftegleichgewicht. Das Freikörperbild

liefert die Bewegungsgleichung

mit

.

Mit den Bezugsgrößen und

finden wir als Bewegungsgleichung des Systems dann

tmp

Equilibrium Conditions

Text


1+1




tmp

Umschreiben in ein Differentialgleichungssystem erster Ordnung - wie wir es für die numerische Lösung brauchen - liefert

.

Mit den Anfangsbedingungen

erhalten wir aus einer Lösungsroutine nach dem Runge-Kutta-Verfahren 4.ter Ordnung das numerische Ergebnis.


Solving

Text


1+1




Post-Processing

Wir tragen hier die Ergebnisse auf:

... in dieser Spalte für die Anfangsbedingungen ... in dieser Spalte für die Anfangsbedingungen
zunächst im Zeitbereich

Im Phasenraum können wir beide Lösungen übereinander plotten:

Phasendiagramm (beide Lösungen)

Und wir können uns die Reibkraft anschauen - mit den Spitzen, zu denen Haften auftritt:

Reibkoeffizient μ

Machen wir den WInkel der Ebene etwas flacher - hier α = 4° - so bleibt die Kiste im Umkehrpunkt liegen. Man sieht: sie haftet nicht wirklich, sondern rutscht nur sehr langsam die Ebene herunter.

Damit wir den Effekt des "Haftens" genauer abbilden, können wir das ε noch kleiner machen.

Lösung im Zeitbereich für Lösung im Phasenraum für

Zu dieser Lösung gehört die Reibkraft

Reibkoeffizient μ

/*********************************************************/
/* plot results */
for i: 1 thru length(initiVals) do
	(T[i] : makelist(ivs[i][j][1],j,1,length(ivs[i])),
	 uD[i] : makelist(ivs[i][j][2],j,1,length(ivs[i])),
	 vD[i] : makelist(ivs[i][j][3],j,1,length(ivs[i])),
	 mD[i] : makelist(subst(params,mu[1])*mu(ivs[i][j][3]/subst(params,epsilon),charc),j,1,length(ivs[i])),
	 plot2d([discrete, T[i], uD[i]],
	      [title, sconcat("start @: ",string(initiVals[i]))],
	                   [xlabel,"τ/1->"], [ylabel,"U/1->"]));

/* phase plot */
curves : makelist([discrete,uD[i],vD[i]],i,1,length(initiVals))$
plot2d(curves, [legend, false], [x,-0.2,1.2],
                   [ylabel,"V/1->"], [xlabel,"U/1->"], 
                   [legend, "first initial conditions", "second  initial conditions"]);

/* friction characteristic plot */
curves : makelist([discrete,T[i],mD[i]],i,1,length(initiVals))$
plot2d(curves, [legend, false], [y,-0.3,+0.3],
                   [ylabel,"mu/1->"], [xlabel,"tau/1->"]);




Lageplan

Links

  • ...

Literature

  • ...