Doppelpendel - Berechnung mit Simulink
|
Achtung, hier wird geschummelt! | |||||
|
Ein Doppelpendel wird definiert durch die beiden Pendelmassen m1 und m2, die auf die jeweiligen Schwerpunkte bezogenen Massenträgheitsmomente JS1 und JS2, die Schwerpunktabstände von den Drehpunkten s1 und s2 und den Abstand l1 der beiden Drehpunkte voneinander.
Die Bewegung soll durch die Funktionen φ1(t) und φ2(t) beschrieben werden, die für das Zeitintervall t = 0 ... 10 s zu berechnen sind.
Die Aufgabe wird in den Kapiteln "Prinzipien der Mechanik" und "Verifizieren von Computerrechnungen" behandelt.
Die gegebenen Werte gelten für zwei schlanke Stäbe gleicher Masse und gleicher Länge. Sie sollen aus der nebenstehend skizzierten Anfangslage ohne Anfangsgeschwindigkeiten freigelassen werden, so dass folgende Anfangsbedingungen gelten:
Unter Verwendung der in der Aufgabenstellung skizzierten Koordinaten gelten folgende Bewegungs-Differenzialgleichungen (die ausführlich kommentierte Herleitung findet man im Kapitel "Prinzipien der Mechanik"):
Damit kann das Anfangswertproblem so formuliert werden, wie man es in Simulink modellieren kann:
Das nachfolgend zu sehende Simulink-Blockschaltbild bildet das oben angegebene Anfangswertproblem ab:
Nachdem (z. B. wie oben beschrieben) die Problemparameter als Zahlenwerte eingegeben wurden, sollte man sich über Simulation|Configuration parameters ... die Standardeinstellungen ansehen, mindestens aber den Zeitbereich für die Berechnung einstellen:
Wenn dieses Fenster wie abgebildet aussieht, kann die Rechnung aus dem Fenster mit der Darstellung des Blockschaltbilds über das Menüangebot Simulation|Start gestartet werden. Man sieht zunächst nichts, die Ergebnisse landen in den "Scopes". Durch Doppelklick auf Scope "phi1(t)" wird die graphische Darstellung des Bewegungsgesetzes des oberen Pendels, durch Doppelklick auf Scope "phi2(t)" wird die graphische Darstellung des Bewegungsgesetzes des unteren Pendels sichtbar (es ist empfehlenswert, jeweils nach dem Öffnen des Graphik-Fensters auf das "Fernglas"-Symbol zu klicken, wodurch automatisch ein geeigneter Maßstab für die Darstellung gewählt wird):
Die Kurve der Kontrollfunktion Tges(t) (nebenstehendes Bild, erscheint nach Doppelklick auf Scope "Tges(t)") liefert ein wichtiges Indiz für die Richtigkeit der Rechnung: Es müsste sich im Idealfall eine horizontale Gerade ergeben. Man sieht, dass die Kontrollfunktion davon einige Abweichungen zeigt. Dies sollte Anlass dafür sein, eine etwas genauere Rechnung zu erzwingen. Dazu kann man im Fenster "Configuration parameters" die Einstellungen ändern.
Die "Zacken" in der Kurve der Kontrollfunktion verschwinden jedoch nicht völlig, was vor allem daran liegt, dass nach Anklicken des "Fernglases" die optimale Einstellung des Bereichs der vertikalen Koordinatenachse gnadenlos auch die kleinsten Abweichungen visualisiert.
Für diese Aufgabe (und den vorgegebenen Zeitbereich) ändern sich die Bewegungsgesetze auch bei genauerer Rechnung aber nicht mehr nennenswert, so dass die oben zu sehenden Bewegungsgesetze als ausreichend genau angesehen werden dürfen. Aber die "nie ganz saubere Kontrollfunktion" sollte immer daran erinnern, wie riskant solche numerischen Berechnungen sind und dass man in jedem Fall mehrere Rechnungen, Verfahren und Softwareprodukte bemühen sollte, ehe man den Ergebnissen vertraut. Diese Simulink-Rechnung sollte eigentlich auch nur die Berechnung mit zwei unterschiedlichen Integrationsverfahren bestätigen.
Die Benutzeroberfläche von Simulink, die im Vergleich zu vielen anderen so ganz anders aussieht, suggeriert, dass hier mit einem Blockschaltbild eine Art Regelkreis definiert wird. Tatsächlich ist das wirklich nur die Oberfläche, intern wird (natürlich!) numerisch gerechnet, und eigentlich passiert nichts anderes als nach dem Schreiben eines Matlab-Scripts, wie es zum Beispiel auf den Seiten "Doppelpendel - Berechnung mit Matlab" oder "Doppelpendel - Matlab (mit Kontrollen)" demonstriert wird.
Man kann sich das anzeigen lassen (und gegebenenfalls beeinflussen), was intern geschieht. In dem Fenster, das über das Menüangebot Simulation|Configuration Parameters ... erreicht wird (Ausschnitt ist hier zu sehen) sieht man, dass die Voreinstellung für den Solver genau der ode45-Algorithmus ist, der auch als Standard-Solver für Matlab-Scripts (und damit für die Berechnungen, auf die oben verwiesen wird) verwendet wird. Man kann sowohl diese Einstellung als auch die "MaxStep"-Einstellungen, auf die bei den Matlab-Berechnungen ausführlich eingegangen wird, verändern.
Fazit: Simulink ist nur eine andere Oberfläche für die Matlab-Funktionen.
Das oben zu sehende Simulink-Blockschaltbild steht als doppelpendelsim.mdl zum Download zur Verfügung.