Eine Laufkatze (Masse mK) trägt eine Last (Masse einschließlich Anhängevorrichtung: mL, Massenträgheitsmoment bezüglich des Schwerpunktes S: JL). In der skizzierten Ruhelage beginnt für eine kurze Zeit Δt die konstante Antriebskraft F0 zu wirken, die danach wieder abgeschaltet wird. Nach dem Zurücklegen der Strecke a stößt die Laufkatze auf einen elastischen Puffer (Federzahl c).
Die Bewegung von Laufkatze und Last soll, beginnend aus der Ruhelage, für die ersten 10 Sekunden analysiert werden.
Gegeben:
mK = 100 kg ; JL = 400 kgm2 ; lS = 4 m ; F0 = 2000 N ;
mL = 500 kg ; c = 200000 N/m ; Δt = 1 s ; a = 5 m .
Die Aufgabe wird in den Kapiteln "Prinzipien der Mechanik" und "Verifizieren von Computerrechnungen" behandelt.
Die Besonderheit dieser Aufgabe besteht in dem Eintreten von "Ereignissen" (Abschalten der Antriebskraft, Zu- und Abschalten einer Feder). Man erfasst sie, indem an die Stelle der Kraft F0 die zeitabhängige Kraft Ft tritt und die Federkonstante c durch ct ersetzt wird:
Unter Verwendung der nebenstehend skizzierten Koordinaten gelten folgende Bewegungs-Differenzialgleichungen (die ausführlich kommentierte Herleitung findet man im Kapitel "Prinzipien der Mechanik"):
Die Matlab-Solver für die numerische Integration erwarten ein Differenzialgleichungssystem 1. Ordnung. Deshalb werden die beiden neuen Variablen v und ω eingeführt:
Damit kann das Anfangswertproblem so formuliert werden, wie man es Matlab anbieten kann:
Weil das Bewegungs-Differenzialgleichungssystem in den Beschleunigungsgliedern gekoppelt ist, entsteht nach dem Umschreiben auf ein System 1. Ordnung auf der linken Seite des Differenzialgleichungssystems eine "Massenmatrix" M. Matlab kann damit umgehen, man muss nur über die "options", die dem Solver (hier: ode45) übergeben werden, ankündigen, dass eine gesonderte Function diese Matrix beschreibt (hier wird für diese Function der Name Massenmatrix gewählt).
Die beiden Functions, mit denen das Differenzialgleichungssystem definiert wird (hier willkürlich Massenmatrix und RechteSeite genannt) empfangen die gleichen Werte: Zeit t und Vektor der Funktionswerte mit x(t), φ(t), v(t), ω(t), so dass gemeinsam mit den gegebenen Parametern der Aufgabenstellung alle Informationen verfügbar sind, um die aktuelle Massenmatrix und die aktuelle rechte Seite des Differenzialgleichungssystems zu berechnen und abzuliefern.
Es wird der Matlab-Standard-Solver ode45 verwendet. Weil keine weiteren Maßnahmen vorgesehen sind, um die Ergebnisse zu verifizieren, wird die "MaxStep-option" vorsichtshalber mit dem relativ kleinen Wert 0.01 belegt, der ausreichend kleine Schrittweiten erzeugen wird. Der Rest des Scripts dürfte selbsterklärend sein:
Hinweis: In der Function RechteSeite sind die
beiden Zeilen mit den Abfragen, ob die Antriebskraft gerade wirkt und ob
gerade Kontakt mit der Feder besteht, farblich hervorgehoben.
Diese besonders einfache
Realisierung von "Ereignissen" ist aber prinzipiell
"nicht ganz sauber", weil in jedem
Integrationsschritt die Differenzialgleichungen mehrfach ausgewertet
werden müssen. Eine Änderung der Parameter innerhalb eines
Integrationsschrittes kann den Algorithmus der automatischen
Schrittweitensteuerung so ungünstig beeinflussen, dass
die Rechnung kollabiert (ein einfaches Beispiel dafür findet
man hier).
Für das Laufkatzen-Problem funktioniert jedoch diese
"schnelle, aber nicht ganz saubere Lösung"
sehr gut. Die "saubere Variante", die die Möglichkeiten der
Matlab-Event-Strategie nutzt, findet man auf der Seite
"Laufkatze - Berechnung mit der Event-Strategie".
Das Matlab-Script liefert als Ergebnis nur die beiden Bewegungsgesetze x(t) (Laufkatze) und φ(t) (Pendeln der Last) ab. In der nebenstehenden Graphik sieht man, dass die Laufkatze offensichtlich zweimal an die Feder stößt, bevor sie ihren Rückweg antritt und mehrmals (auch ohne äußere Krafteinwirkung) ihre Bewegungsrichtung ändert. Dieses etwas überraschende Verhalten wird hier ausführlich diskutiert.
Die nachfolgend zu sehende Animation der Bewegung zeigt jedoch die gegenseitige Beeinflussung der Bewegungen von Laufkatze und Last, so dass das Bewegungsgesetz der Laufkatze durchaus plausibel erscheint.
Das oben zu sehende Matlab-Script steht als Laufkatze.m zum Download zur Verfügung.
Außerdem ist eine Modifikation dieses Scripts (LaufkatzeAni.m) verfügbar, mit dem gezeigt wird, wie mit ganz einfachen Mitteln mit Matlab eine Bewegungssimulation erzeugt werden kann. Es ist nicht die oben zu sehenden Animation, sondern eine aus wenigen Linien konstruierte Bewegung, von der nebenstehend ein "Schnappschuss" zu sehen ist.