Das Doppelpendel

Das Projekt Doppelpendel ist ein Anwendungsfall aus der klassischen Mechanik (siehe untere Animation). Das System besteht aus zwei miteinander verbundenen Pendeln, wobei wir die Luftreibung zunächst vernachlässigen. Die Herleitung der Bewegungsgleichungen des Doppelpendels erfolgt am elegantesten mittels der Euler-Lagrange Gleichungen, bzw. mittels der Hamilton Theorie. In der Euler-Lagrange Theorie beschreibt man das Doppelpendel mittels zweier generalisierten Koordinaten $\theta_1(t)$ und $\theta_2(t)$, welche die Ausschläge der beiden Pendel als Pendelwinkel zur Vertikalen beschreiben. Die generalisierten Geschwindigkeiten $\dot{\theta_1}(t)$ und $\dot{\theta_2}(t)$ stellen die Winkelgeschwindigkeiten der beiden Pendel dar. Betrachtet man die Bewegung des Doppelpendels in der x-y-Ebene, so ergibt sich die folgende Lagrangefunktion des Systems (siehe Walter Greiner, 'Klassische Mechanik II' [8. Auflage, 2008, Kapitel V15. Seite 269], beachte leicht abgeänderte Koordinatenwahl) \[ \begin{eqnarray} L = T - V &=& \frac{1}{2} m_1 \left[ \dot{x_1}(t)^2 + \dot{y_1}(t)^2 \right] + \frac{1}{2} m_2 \left[ \dot{x_2}(t)^2 + \dot{y_2}(t)^2 \right] - V \\ \hbox{mit:} && x_1 = l_1 \, \hbox{sin}(\theta_1) \, , \,\, y_1 = -l_1 \, \hbox{cos}(\theta_1) \quad , \,\, x_2 = l_1 \, \hbox{sin}(\theta_1) + l_2 \, \hbox{sin}(\theta_2) \, , \,\, y_2 = -l_1 \, \hbox{cos}(\theta_1) - l_2 \, \hbox{cos}(\theta_2) \\ && V = V(\theta_1,\theta_2) = m_1 \, g \left[ l_1 + l_2 - l_1 \, \hbox{cos}(\theta_1) \right] + m_2 \, g \left[ l_1 + l_2 - \left( l_1 \, \hbox{cos}(\theta_1) + l_2 \, \hbox{cos}(\theta_2) \right) \right] \quad , \end{eqnarray} \] wobei $m_1$ und $m_2$ die Massen und $l_1$ und $l_2$ die Längen des Pendels darstellen.

Mittels der Lagrange-Gleichungen \[ \begin{equation} \frac{d }{dt} \left( \frac{\partial L}{\partial \dot{\theta}_1} \right) - \frac{\partial L}{\partial \theta_1} \, =\, 0 \quad \hbox{und} \quad \frac{d }{dt} \left( \frac{\partial L}{\partial \dot{\theta}_2} \right) - \frac{\partial L}{\partial \theta_2} \, =\, 0 \end{equation} \] gelangt man zu zwei gekoppelten Differentialgleichungen zweiter Ordnung, die man dann in ein System von vier gekoppelten DGLs erster Ordnung umschreiben muss um es numerisch lösen zu können.

Mögliche Teilaufgaben des Projektes

Berechnen Sie zunächst auf analytischem Weg, mittels eines Jupyter Notebooks unter Verwendung der SymPy Bibliothek, die Euler-Lagrange Gleichungen des Doppelpendels und schreiben Sie dann die Bewegungsgleichung in ein System von erster Ordnung Differentialgleichungen um.

Lösen Sie das System von Differentialgleichungen erster Ordnung mittels eines C++ Programms und benutzen Sie das Runge-Kutta Ordnung vier Verfahren.

Betrachten Sie unterschiedliche Anfangsbedingungen und Parameterwerte ($m_1$, $m_2$, $l_1$ und $l_2$) und visualisieren Sie ihre Ergebnisse mittels eines Python Skriptes bzw. Jupyter Notebooks.

Die zugrundeliegende Bewegungsgleichung des Doppelpendels ist stark nichtlinear, sodass kleine Abänderungen in den Anfangswerten, nach einiger Zeit qualitativ unterschiedliche Bewegungen zur Folge haben. Fertigen Sie zwei Simulationen an, die sich in ihren Anfangswerten (z.B. der Anfangsauslenkung des ersten Pendels $\theta_1(0)$) nur um einen Epsilonbetrag $\Delta \epsilon$ unterscheiden und betrachten Sie sich, ab wann die Pendel-Trajektorien sich qualitativ unterscheiden.

Vernachlässigen Sie nun nicht mehr die Luftreibung und bauen Sie einen zusätzlichen Reibungsterm in die Lagrangedichte ein. Lösen die dann die resultierenden Bewegungsgleichungen numerisch.

Schreiben Sie Ihr Programm so um, dass das Doppelpendel eine Klasse (mit eigenen Daten-Member, Member Funktionen und Konstruktoren) repräsentiert.

Weitere Links