AstroLab - wir bauen uns ein kleines Universum

Dies ist eine aktuelle Baustelle (24.1.2017), deren Ziel ein kleiner Editor ist, mit dem ihr Planeten, Monde und Sonnen umeinander kreisen lassen könnt. Die Demos weiter unten funktionieren bereits.

Heute wollen wir uns einmal damit beschäftigen ein kleines Sonnensystem zu bauen. Insgeheim träumt jeder davon Herrscher über Sonnen, Planeten und andere Objekte des Universums zu sein. Doch nicht jeder kann ein Darth Vader sein. Nun die gute Nachricht: Atomek zeigt euch wie es trotzdem geht! Weltherrschaft für den kleinen Mann.

Ziel dieser Webseite ist es, euch zu zeigen, dass Himmelsmechanik mit dem Computer nicht soo schwer ist. Wir bauen uns ein kleines System aus Sonnen, Planeten und Monden und schauen ihnen zu wie sie einander umkreisen.

Typische Konstellationen

Eine fette Sonne wird von
einem Planeten umkreist.
Ein altes
Doppelsternsystem.
Ein Mond begleitet
einen Planeten
Sonne, Erde und Mond

Ein wenig Physik

Wir wollen also Himmelskörper umeinander kreisen lassen. Dazu legen wir zu Beginn deren Massen, Orte und Geschwindigkeiten fest. Dann berechnen wir für kleine Zeitabschnitte die neuen Positionen und Geschwindigkeiten. Um die Physik und ihre Darstellung einfach zu halten, treffen wir ein paar Maßnahmen:

Es ist kein Problem die Simulation auf drei Dimensionen zu erweitern, allerdings sind die Effekte dann nicht so deutlich.

Das Weg-Zeit-Gesetz

Das Weg-Zeit-Gesetz bestimmt den Ort eines beschleunigten Objektes nach einer Zeitspanne t.

(1)s = s0 + v0⋅t + ½⋅a⋅t²

Darin ist s der Ort, s0 der anfängliche Ort, v0 die Anfangsgeschwindigkeit, a die gleichförmige Beschleunigung und t der Zeitraum. Davon abgeleitet, legt das Geschwindigkeits-Zeit-Gesetz die Geschwindigkeit v des Objektes nach dem Zeitraum t fest:

(2)v = v0 + a⋅t

Massenträgheit und Anziehungskraft

Bekannt, weil von uns zuvor gewählt, sind Orte und Geschwindigkeiten der Objekte. Wir benötigen also die Beschleunigung um Ort und Geschwindigkeit zu ermitteln. Die Beschleunigung ist eine Folge der Anziehungskraft F der Massen m.

(3)F = m⋅a <=> a = F/m

Die Kraft F ist die Massenanziehung, deren Gesetz 1687 von Newton erlassen wurde. Zuvor konnten die Massen tun was sie wollten:

(4)F = G⋅m1⋅m2/r²

Darin sind m1 und m2 die Massen der beteiligten Objekte, ist das Quadrat ihres Abstandes und G ist die Gravitationskonstante, die wir gleich betrachten werden.

Einheiten

Die große Welt funktioniert mit der Gravitationskonstanten G = 6.674E-11 m³/kg/s², die Objekte wiegen Phantastilliarden von Tonnen und wir müssen ewig warten, um eine Bewegung zu beobachten. Das ist alles ein wenig sperrig und wir sind ungeduldig, daher setzen wir G zu 1 und eine Sonne habe ca. 10t Masse. Die Längeneinheit sei das Pixel px und die Zeit können wir auch etwas beschleunigen. So kommen wir zu handlichen Größenverhältnissen und Zahlenwerten.

Das Berechnungsverfahren

Wir kennen nun die physikalischen Zusammenhänge. Die folgende Betrachtung führt zum Lösungsweg:

Bei einer gegebenen Zahl von Objekten, halten wir eines fest und summieren die Anziehungskräfte auf dieses Objekt durch die anderen Objekte auf. Dann berechnen wir den neuen Ort und die neue Geschwindigkeit durch die summierte Kraft aus. So verfahren wir reihum mit allen beteiligten Objekten.

Wir betrachten also die Objekte reihum für einen Zeitraum dt, während dessen wir die Szene "erstarren" lassen. Hierin liegt die Annäherung, denn die Wirkung der Objekte aufeinander müsste eigentlich integriert werden, bzw. müsste die Szene durch Differentialgleichungen beschrieben werden. Wenn es mehr als zwei Objekte hat, gibt es keine geschlossene Lösung mehr, d.h. es ist dann eine Iteration durch den Computer erforderlich.

Wenn wir die Kräfte bzw. die Beschleunigungen komponentenweise, d.h. nach x und y getrennt betrachten, werden die Rechenausdrücke einfach und schnell. Wir benötigen keine transzendenten Funktionen wie sin und cos. Wenn man F aus Gl.(4) in Gleichung (3) einsetzt, erhalten wir einen Ausdruck für die Beschleunigung, bei dem die Masse des betrachteten Subjektes sich herauskürzt. Wir bestimmen den Abstand r bzw. r2 aus den Koordinatendifferenzen dx und dy der Objekte. Die ermittelte Beschleunigung zerlegen wir mit Hilfe des Verhältnisses ax/F = dx/r bzw. ay/F = dy/r in seine Komponenten und summieren diese auf. So erhalten wir Σaxi und Σayi, die wir in die komponentenbezogenen Weg-Zeit- bzw. Weg-Geschwindigkeitsgleichungen einsetzen können.

Setzen wir willkürlich einige Objekte in der Wildnis aus, hat solch ein System einen Impuls, der es "wandern" lässt. Um das zu vermeiden, können wir abschließend den Impuls des Systems kompensieren, indem die Geschwindigkeit des Systemimpulses von allen Objekten abgezogen wird.

JavaScript-Code, Rechenkern und Animation

Die Datei astroscene.js enthält den Rechenkern, der die Objekte enthält und ihren nächsten Ort und die nächste Geschwindigkeit bestimmt.

Die Datei astroplayer.js enthält die Klasse AstroPlayer, die eine AstroScene zum Leben erweckt und auf einem Canvas abspielen kann. Außerdem enthält der Player eine Methode zum erstellen eines Sternenhintergrundes.