Das magnetische Pendel

Dieser Artikel basiert auf dem, in der Zeitschrift Spektrum der Wissenschaft, veröffentlichten Beitrag "Experimente zum Chaos" [1] aus dem Jahr 1994. Darin wurde unter anderem eine Simulation beschrieben, welche die chaotische Bewegung eines magnetischen Pendels unter dem Einfluss der Schwerkraft und dreier Magnete simuliert. Auf dieser Webseite wird eine Implementierung dieser Simulation vorgestellt.

a pattern created by the magnetic pendulum simulation Ein durch die Simulation erzeugtes Muster. Drei Magnete sind an den Ecken eines gleichseitigen Dreiecks angeordnet. Die Pendelaufhängung befindet sich in der Bildmitte.

Die Simulation berechnet die Pendelbewegung durch Integration der Bewegungsgleichung des Pendelkörpers. Die Pendelbewegung wird durch Reibung, Gravitation und magnetische Anziehungskraft beeinflusst. Die Kräfte sind so aufeinander abgestimmt, dass das Pendel infolge des reibungsbedingten Energieverlustes über einem der drei Magnete zum Stillstand kommt.

Färbt man den Startpunkt der Pendelspur in der Farbe des Magneten ein, über dem das Pendel zum Stillstand kam und führt die Simulation für eine Vielzahl möglicher Startpunkte auf einem Gitter durch, so erhält man ein farbiges Muster. Das Ergebnis eines Simulationsdurchganges ist im Bild links dargestellt. Es wird deutlich, dass selbst kleine Variationen im Startpunkt nach kurzer Zeit zu großen Änderungen in der Pendelspur führen können. Das Ergebnis (die Farbe des Zielmagneten) wird dadurch schwer vorhersagbar. Beobachtungen, wie diese sind nicht neu. Bereits im Jahr 1963 entdeckte Edward Lorenz, ein amerikanischer Mathematiker und Meteorologe, ein ähnliches Verhalten als er den Einfluss der Startbedingungen auf Wettersimulationen untersuchte. Er schrieb:

"Ein Meteorologe bemerkte, dass wenn die Theorie korrekt wäre, der Flügelschlag einer Möwe ausreichen könnte um den Verlauf des Wetters für immer zu ändern. Diese Kontroverse ist noch nicht endgültig geklärt, doch neueste Forschungsergebnisse scheinen den Möwen Recht zu geben." [4]

In späteren Reden wurde aus der "Möwe" ein poetisch klingenderer "Schmetterling" und der Begriff "Schmetterlingseffekt" war geboren. Was das im Bezug auf das Magnetpendel bedeutet, kann in der hier gezeigten Live-Version ausprobiert werden. Es zeigt sich beispielsweise schnell, dass geringere Reibung das chaotische Verhalten verstärkt.

Der Quellcode dieser in Typescript geschriebenen Pendelsimulation ist Teil des begleitend zu dieser Webseite bereitgestellten Educational-Javascripts-Typescript Archivs und kann auf GitHub herunter geladen werden.

Der Schmetterlingseffekt

Das hier vorgestellte Programm demonstriert den Schmetterlingseffekt. Für diejenigen, die mit dem Begriff nicht vertraut sind, empfielt sich der entsprechende Eintrag in der Wikipedia. Hier ein kurzer Auszug:

Bild eines Schmetterlings.

"Als Schmetterlingseffekt bezeichnet man den Effekt, dass in komplexen, dynamischen Systemen eine große Empfindlichkeit auf kleine Abweichungen in den Anfangsbedingungen besteht. Geringfügig veränderte Anfangsbedingungen können im langfristigen Verlauf zu einer völlig anderen Entwicklung führen. Die Bezeichnung Schmetterlingseffekt stammt von einer bildhaften Veranschaulichung dieses Effekts von Edward N. Lorenz am Beispiel des Wetters, in der er fragt ob der Flügelschlag eines Schmetterlings in Brasilien einen Tornado in Texas auslösen kann."

Die Antwort hierauf müsste wohl ein "Unter Umständen ja" sein. Im Übrigen: Bevor nun jemand auf die Idee kommt, Schmetterlinge zu jagen um Stürme zu verhindern muss man sich klar machen, das der Flügelschlag den Sturm auch verhindern könnte. Es gibt Situationen in denen Wetterlagen nicht stabil sind und sich in völlig verschiedene Richtungen entwickeln können. Vergleichbar in etwa mit einer Kugel, die einen Bergrücken entlangrollt. Je nachdem ob sie ein wenig mehr auf der einen oder anderen Seite gestartet wird, wird sie letztendlich eine andere Hangseite hinab rollen. Die Endpositionen unterscheiden sich dramatisch, obwohl die Startpositionen vielleicht nur Millimeter voneinander entfernt waren. Bezogen auf das Wetter bedeutet dies, dass eine kleine Veränderung in der Ausgangssituation, zum Beispiel ein Hochdruckgebiet, das sich 1 mm weiter nördlich befindet, das Wetter in einem anderen Teil des Kontinents einige Zeit später völlig verändern kann. Aus genau diesem Grund können Wetterberichte keine beliebig langen Zeiträume vorhersagen, denn je weiter in die Zukunft gerechnet wird, umso empfindlicher wird das Endergebnis in Bezug auf minimale Variationen der Ausgangsbedingungen. Diese Ausgangsbedingungen sind jedoch nicht beliebig genau bestimmbar.

Die Pendelsimulation

Grafische Darstellung des Experimentalaufbaus Grafische Darstellung des Experimentes (Bild mit freundlicher Genehmigung von Paul Nylander).

Farbfunktionen Gegenüberstellung von drei unterschiedlichen Farbfunktionen.

Im diesem Abschnitt werde ich das zugrundeliegende numerische Modell vorstellen und zeigen, wie kleine Änderungen in den Anfangsbedingungen der Simulation die Endposition des Pendels stark beeinflussen können. Dies führt in letzter Konsequenz zu einer Unvorhersehbarkeit der Pendelendposition, da bereits kleinste Änderungen am Anfang das Ergebnis dramatisch beeinflussen.

Das klassische Modell geht von einem Pendel aus, das von drei Magneten angezogen wird. Jedem Magneten ist eine Farbe zugeordnet. Die Magnete sind unterhalb des Pendels auf einer Ebene in einem gleichseitigen Dreieck angeordnet. Das Pendel ist mittig darüber aufgehängt. Die Magnete sind stark genug, um das Pendel niemals in der Mitte zur Ruhe kommen zu lassen.

Im Bild rechts ist das Modell schematisch dargestellt. Die Simulation berechnet die Bewegung des Pendels unter dem Einfluss der drei Magnete, der auf das Pendel wirkenden Schwerkraft sowie der Reibungskraft. Infolge von Energieverlusten durch die Reibungskraft wird das Pendel früher oder später über einem der Magnete zur Ruhe kommen. Der Startpunkt des Pendels wird dann mit der Farbe des Magneten eingefärbt, über dem es zur Ruhe kam. Führt man dies für alle Punkte im Simulationsbereich durch, so erhält man ein farbiges Muster aus roten, grünen und blauen Punkten.

Mit der bislang beschriebenen Methode sind allerdings nur dreifarbige Bilder möglich. Es wäre wünschenswert in den Bildern mehr Farben oder zumindest Schattierungen zu verwenden. Eine Information, die dafür verfügbar ist, ist die Spurlänge. Dafür wird eine Farbfunktion als Funktion der Spurlänge eingeführt. Zur Erleichterung der Skalierung wird die maximale Spurlänge in die Berechnung einbezogen. Prinzipiell kann man beliebige Funktionen verwenden. Die rechts dargestellten Funktionen erzeugen gute Ergebnisse.

Abdunkeln der Farben nach Farbspurlänge Abdunkeln der Farben nach Farbspurlänge

Anfangspositionen, die in längeren Spuren resultieren, werden in dunkleren Schattierungen dargestellt. Die hier zum Download angebotene Version der Pendelsimulation erlaubt die Verwendung beliebiger Farbfunktionen.

Idealisiertes Modell

Wem sich nun die Frage stellt, wie das Pendel mit seinen drei Raumdimensionen und der Bewegung auf einer Kugeloberfläche in ein mathematisches Modell umgesetzt wird, dem sei gesagt: Das ist einfach! Wie heißt es doch so schön? "Was nicht passt wird passend gemacht" Getreu diesem Grundsatz wird einfach angenommen, das Pendel sei sehr lang. Unter dieser Voraussetzung kann man die Bewegung der Pendelmasse als Bewegung in einer Ebene über den Magneten idealisieren. Für ein langes Pendel mit geringer Auslenkung kann man weiterhin annehmen, die Rücktriebskraft, welche es zum Zentrum zurück zieht, ist proportional zur Auslenkung. Sie verhält sich dem Hookesches Gesetz entsprechend. Das alles ist äußerst praktisch, denn nun kann man in zwei Dimensionen rechnen, ohne sich um Drehmomente, Rotationswinkel, Kreuzprodukte und ähnliches Gedanken machen zu müssen.

Vergleich von Pendelrücktriebskraft mit der von den Magneten verursachten Anziehungskraft. Vergleich von Pendelrücktriebskraft mit der von den Magneten verursachten Anziehungskraft.

So viel mehr Aufwand, wäre es zugegebenermaßen nicht gewesen die komplette Physik zu implementieren, aber die Realität hat mal wieder einen entscheidenden Nachteil: Das Ergebnis würde müsste auf eine Kugeloberfläche abgebildet werden. Das wäre ein wenig unpraktisch, denn im Gegensatz zu Bildern kann man Kugeln weder an die Wand hängen noch als Desktophintergrund verwenden.

Für die Berechnungen wird angenommen, die Magnete üben eine Kraft auf das Pendel aus, die proportional zum inversen Quadrat der Pendelentfernung vom Magneten ist. Dies ist ein typischer Zusammenhang, wie er auch beim Gravitationsgesetz oder beim Coloumbschen Gesetz zu beobachten ist. Das ist allerdings nur die halbe Wahrheit, denn dieses Kraftgesetz würde nur gelten, wenn die Kraft von magnetischen Monopolen verursacht würde und die gibt es nach bisherigem Kenntnisstand nicht. Magnete sind immer Dipole und ein Dipol verursacht eine Kraft, die proportional zu 1/r³ ist. Dies wird hier ignoriert, kann aber vom interessierten Leser im Konfigurationsfile der zum Download angebotenen Version der Pendelsimulation selbst eingestellt werden. Weiterhin werden elektrische Effekte, wie zum Beispiel Induktion und dadurch im Pedel selbst verursachte Magnetfelder vernachlässigt.

Die Bewegungsgleichungen

Die Positionen des Pendels ergeben sich durch zweifache Integration der auf das Pendel wirkenden Gesamtbeschleunigung. Die Beschleunigung folgt unmittelbar aus Newtons zweiten Bewegungsgesetz. Die Kraft, die notwendig ist, um einen Körper zu bewegen, oder dessen Bewegung zu ändern entspricht dem Produkt aus Masse und Beschleunigung. Damit kann die Beschleunigung direkt berechnet werden.

\begin{equation} \nonumber\vec{F} = m \vec{a} \end{equation} \begin{equation} \nonumber\vec{a} = {\vec{F} \over m} \end{equation}

Da die Ausgangsposition und die Initialgeschwindigkeit sich aus den Anfangsbedingungen ergeben, muß nur noch die Gesamtbeschleunigung berechnet werden. Diese ergibt sich aus der Summe der durch die Magnete verursachten Beschleunigungen plus der durch die Pendelrücktriebskraft verursachten Beschleunigung minus der durch die Reibung verursachte Bremswirkung. Aus praktischen Erwägungen wird für alle weiteren Betrachtungen eine Pendelmasse von 1 Masseneinheit angenommen. Es ergeben sich folgende Gleichungen:

Beschleunigung durch die Rücktriebskraft, die auf das Pendel wirkt:

\begin{equation} \nonumber\vec{a}_g = k_g \cdot \vec{r} \end{equation}

Beschleunigung die durch einen einzelnen Magneten auf das Pendel wirkt:

\begin{equation} \nonumber\vec{a}_m = k_m \cdot \frac{\vec{r}}{|\vec{r}|^3} \end{equation}

Verlangsamung durch Reibung:

\begin{equation} \nonumber \vec{a}_f = -k_f \cdot \vec{v} \end{equation}

Gesamtbeschleunigung des Pendels:

\begin{equation} \nonumber \vec{a}_t = \vec{a}_g + \Big( \sum_{m=1}^3{\vec{a}_m} \Big) - \vec{a}_f \end{equation}

wobei:

  • \(\vec{a}_t\) - Gesamtpendelbeschleunigung
  • \(\vec{a}_g\) - Beschleunigung durch Rücktriebskraft (Gravitation)
  • \(\vec{a}_m\) - Beschleunigung durch Magnet mit Index m
  • \(\vec{a}_f\) - Verlangsamung durch Reibung
  • \(k_f\) - Reibungskonstante
  • \(k_g\) - Stärke der Rücktriebskraft
  • \(k_m\) - Magnetstärke
  • \(\vec{r}\) - Pendelposition

Integration der Pendelspur

Gibt man eine Startposition und eine Startgeschwindigkeit für das Pendel vor, so kann man mit einem passenden Integrationsverfahren die komplette Spur berechnen. Für diese Simulation wird das Beeman-Integrationsschema verwendet. Dieses Schema wird häufig auf Probleme der Molekulardynamik angewendet und ist ein zur Verlet-Integration verwandtes Verfahren. Es ist einfach zu implementieren und sieht in C++ wie folgt aus:

for (int ct=0; ct<m_nMaxSteps && bRunning; ++ct)
{
  // compute new position
  pos[0] += vel[0]*dt + sqr(dt) * (2.0/3.0 * (*acc)[0] - 1.0 / 6.0 * (*acc_p)[0]);
  pos[1] += vel[1]*dt + sqr(dt) * (2.0/3.0 * (*acc)[1] - 1.0 / 6.0 * (*acc_p)[1]);

  (*acc_n) = 0.0;    // reset accelleration

  // Calculate Force, we deal with Forces proportional
  // to the distance or the inverse square of the distance
  for (std::size_t i=0; i<src_num; ++i)
  {
    const Source &src( m_vSources[i] );
    r = pos - src.pos;
    if (src.type==Source::EType::tpLIN)
    {
      // Hooke's law:          _
      //         _             r         _   
      //  m * a = - k * |r| * --- = -k * r
      //                      |r|
      //
      (*acc_n)[0] -= src.mult * r[0];
      (*acc_n)[1] -= src.mult * r[1];
    } 
    else
    {     
      // Magnet Forces: _
      //      _         r
      //  m * a = k * -----
      //               |r³|
      //
      double dist( sqrt( sqr(src.pos[0] - pos[0]) +  
                         sqr(src.pos[1] - pos[1]) + 
                         sqr(m_fHeight) ) );
      (*acc_n)[0] -= (src.mult / (dist*dist*dist)) * r[0]; 
      (*acc_n)[1] -= (src.mult / (dist*dist*dist)) * r[1]; 
    }

    // Check abort condition
    if (ct>m_nMinSteps && abs(r)<src.size && abs(vel)<m_fAbortVel)
    {
      bRunning = false;
      stop_mag = (int)i;
      break;
    }
  }   // for all sources

  // 3.) Friction proportional to velocity
  (*acc_n)[0] -= vel[0] * m_fFriction;
  (*acc_n)[1] -= vel[1] * m_fFriction;    

  // 4.) Beeman integration for velocities
  vel[0] += dt * ( 1.0/3.0 * (*acc_n)[0] + 5.0/6.0 * (*acc)[0] - 1.0/6.0 * (*acc_p)[0] );
  vel[1] += dt * ( 1.0/3.0 * (*acc_n)[1] + 5.0/6.0 * (*acc)[1] - 1.0/6.0 * (*acc_p)[1] );

  // 5.) flip the acc buffer
  tmp = acc_p;
  acc_p = acc;
  acc   = acc_n;
  acc_n = tmp;
}

Download

Zum kompilieren des Programmarchivs wird Visual Studio 2013 benötigt. Eine vorkompilierte Version befindet sich im ZIP-Archiv. Das Programm sollte auch unter Linux mit Wine funktionieren. (Die hier gezeigten Animationen entstanden unter Linux)

C++ Version herunterladen

Die Funktionsweise der C++ Beispielapplikation ist hier im Detail beschrieben

Typescript Version herunterladen

Galerie

Abschließend möchte ich einige Bilder präsentieren, die mit dem hier vorgestellten Programm berechnet wurden. Die Simulationen unterscheiden sich durch die Anzahl der Magnete, deren Stärke, Position und des Punktes der Pendelaufhängung.

Gallery Eine Auswahl von Bildern berechnet mit unterschiedlichen Parametern.
Animation, welche die Farbmuster bei 6 rotierenden Magneten zeigt.

Quellenangaben

  1. “Experimente zum Chaos.” Sascha Hilgenfeldt und HANS-Christoph Schulz, Specktrum der Wissenschaft 1, 1994, Seite 72
  2. “Butterfly Effect.” Wikipedia: The Free Encyclopedia. Wikimedia Foundation, Inc., Web. Date accessed (01 February 2015).
  3. “Fractals” Internetseite von Paul Nylander, Web.
  4. "The Predictability of Hydrodynamic Flow" Lorenz, Edward N. (1963). Transactions of the New York Academy of Sciences. 25 (4): 409–432.