kleiner planetarer Simulator

Kibo

Registriertes Mitglied
Hmm erstaunlicherweise werden beim Runge Kutta die Bahnen ganz schön instabil im vergleich zum Euler.

Wer mal testen will hier die 2 verschiedenen Versionen

Mirrors

Rapidshare

Runge Kutta
Euler
Planeten Datei für Erde-Mond


Skydrive
Alle 3 Dateien

Anleitung: Jeweilige exe und die Planeten.txt im selben Ordner herunterladen und exe starten. Wenn die Planeten.txt für Erde-Mond nicht bei der Exe Datei mit zu liegt, wird ein Standartsystem erstellt. Die Szenerie wird mit WASD QY und den Pfeiltasten gesteuert.

mfg
 
Zuletzt bearbeitet:

Kibo

Registriertes Mitglied
Hallo Bernhard,

Die Startbedingungen gibt man über die Datei Planeten.txt vor:

Koordinaten in x y z Impuls in x y z Masse s v Dichte des Planeten

Die Koordinaten sind in Kilometern anzugeben, der Impuls gibt quasi Startgeschwindigkeit und Richtung eines Planeten vor und bezieht sich im Moment noch auf das Kilometer/Berechnungsschritt. Die Masse sollte in Kilogramm angeben werden und ist im Moment noch der Übersichtlichkeit halber um 20 Nullen gekürzt, man kann auch solche Werte wie 5.7e11 eingeben, daher wird das in der nächsten Version angepasst. Die werte s v bitte auf 0 lassen, das funktioniert noch nicht so richtig. Die Dichte wird in g/cm³ angegeben.

Das Formular im Programm ist analog zu der Textdatei zu betrachten, und ist gedacht um die aktuell berechneten Werte abzulesen und anzupassen.

Das Feature Maus funktioniert nicht mehr, bitte ignorieren.
Der Slider Genauigkeit ermöglicht das Anpassen der Schrittweite, Der Slider geht von 1-100 und wird im Programm durch 5 gerechnet und dann als Kehrwert für die Schrittweite genommen. Das bedeutet Geneauigkeit 1 entspricht einer Schrittweite von 5 Einheiten (Kilometern?) und 100 entspricht der Schrittweite 1/ (100/5) 0.05.

Für die schlechte Beschriftung möchte ich mich entschuldigen, das Programm ist ja noch in Arbeit.

mfg
 

Bernhard

Registriertes Mitglied
Hallo Kibo,

Die Startbedingungen gibt man über die Datei Planeten.txt vor:
die hatte mir gefehlt und damit wird jetzt alles gleich viel verständlicher :) . Nett wäre, wenn die Programme genau diese Datei selbst generieren, falls sie fehlt. Die aktuelle Default-Datei liefert ein Szenario, das eher an die Ergebnisse eines Teilchenbeschleunigers erinnert.

Die Masse sollte in Kilogramm angeben werden und ist im Moment noch der Übersichtlichkeit halber um 20 Nullen gekürzt, man kann auch solche Werte wie 5.7e11 eingeben, daher wird das in der nächsten Version angepasst.
Solche Spezialitäten solltest Du unbedingt vermeiden, da man die bei längeren Pausen sehr gerne vergisst. Es sei denn, Du machst Dir sehr genaue Notizen. Mir ist die letzten Tage selbst aufgefallen, wie wichtig Kommentare gerade in privaten Quelltexten sind.

Die werte s v bitte auf 0 lassen, das funktioniert noch nicht so richtig. Die Dichte wird in g/cm³ angegeben.

Das Formular im Programm ist analog zu der Textdatei zu betrachten, und ist gedacht um die aktuell berechneten Werte abzulesen und anzupassen.

Das Feature Maus funktioniert nicht mehr, bitte ignorieren.
Der Slider Genauigkeit ermöglicht das Anpassen der Schrittweite, Der Slider geht von 1-100 und wird im Programm durch 5 gerechnet und dann als Kehrwert für die Schrittweite genommen. Das bedeutet Geneauigkeit 1 entspricht einer Schrittweite von 5 Einheiten (Kilometern?) und 100 entspricht der Schrittweite 1/ (100/5) 0.05.

Für die schlechte Beschriftung möchte ich mich entschuldigen, das Programm ist ja noch in Arbeit.
OK, Rest ist erst mal Baustelle.

Jetzt zum Programm:
Bei dieser Auflösung (=visuell) und einem Umlauf sollte das Euler-Verfahren und das Runge-Kutta-Verfahren genau das gleiche Ergebnis berechnen. Du solltest den Quelltext des Runge-Kutta-Verfahrens nach kleinen aber wichtigen Fehlern durchsuchen. Wenn Du nicht weiterkommst, können wir den ersten Zeitschritt (ein Delta t) hier diskutieren, denn den kann man auch mit dem Taschenrechner nachrechnen.
MfG
 

Bernhard

Registriertes Mitglied
Hallo Kibo,

um den Fehler in deinem Programm zu finden schreibe ich erst mal die DGL an (leider ohne LaTeX):

Code:
\dot{\vec{x}_1} = \vec{v}_1
\dot{\vec{v}_1} = G m_2 \frac{\vec{x_2}-\vec{x_1}}{\| \vec{x_2}-\vec{x_1} \|^3}

\dot{\vec{x}_2} = \vec{v}_2
\dot{\vec{v}_2} = G m_1 \frac{\vec{x_1}-\vec{x_2}}{\| \vec{x_1}-\vec{x_2} \|^3}

Es ist eine gewöhnliche DGL 1. Ordnung mit den 12 Variablen x_1, v_1, x_2 und v_2. Der erste Schritt berechnet den Wert dieser Variablen nach der Zeit dt. Bei einem ersten Test, um den Fehler zu finden, würde ich dt vergleichsweise groß wählen, z.B. 1 Tag = 86400 Sekunden.

Man kann dann die vier Hilfsvariablen k_1, k_2, k_3 und k_4 des Runge-Kutta-Verfahrens berechnen und testen, ob das Programm diese Variablen korrekt berechnet.

Beim ersten Überfliegen der Gleichungen sollte man bemerken, dass in allen vier Teilgleichungen der DGL die Gravitationskonstante immer als Produkt mit der Masse der Erde oder der Masse des Mondes vorkommt. Man kann die Gravitationskonstante also mit diesen zwei Massen schon vor der eigentlichen Berechnung multiplizieren und das Ergebnis als Masse verwenden. Die Gravitationskonstante taucht im Programm dann vorerst gar nicht mehr auf, was die Fehlersuche etwas vereinfacht.

Dann sollte man noch bemerken, dass man direkt mit Orts- und Geschwindigkeitsvektoren rechnen kann. Der Umweg über eine Impulsvariable ist momentan eher hinderlich. Die Werte aus der Datei planeten.txt kann ich zudem nicht nachvollziehen. Bei einer mittleren Orbitalgeschwindigkeit des Mondes von 1 km/s und einer Masse von 7.xeXX würde ich einen Wert von 7.xeXX oder etwas vergleichbares als Impuls erwarten.
MfG
 

Kibo

Registriertes Mitglied
Hallo Bernhard,

Also deine Differentialgleichung kommt mir irgendwie spanisch vor :D Ich poste einfach mal den unterschiedlichen code. Ich hab ihn mal vonn Loops und Klassen befreit so dass man nicht viel umdenken muss, das ändert nichts am Ergebnis. Kommentare sind mit ; abgetrennt

Euler:
%Planeten%.hx:= %Planeten%.ix ; speichern des alten Impulses für trägheit
%Planeten%.hy:= %Planeten%.iy
%Planeten%.hz:= %Planeten%.iz

;steht in klasse this = planet um den es geht, gegner= beeinflussender planet

this.xd:=gegner.x-this.x ;Berechnung des Abstands zwischen den Planeten
this.yd:=gegner.y-this.y
this.zd:=gegner.z-this.z

abstand:=sqrt(this.xd*this.xd+this.yd*this.yd+this.zd*this.zd) ;bis hier

this.xn:=this.xd/abstand ; Einheitsvektor
this.yn:=this.yd/abstand
this.zn:=this.zd/abstand

this.s:=gegner.gm/(abstand*abstand) ; Berechnen der einwirkinden Gravitationskräfte

this.gx:=this.s*this.xn ; Verechnung der Grav mit der Richtung
this.gy:=this.s*this.yn
this.gz:=this.s*this.zn

;Ende Klassenteil

if (plzB=1)
%Planeten%.abstand:=abstand ; Speichert den Abstand zum Hauptkörper (idR Stern)


;aufaddieren des berechneten kraftvektors auf den vorhandenen impuls
%Planeten%.ix := %Planeten%.hx + %Planeten%.gx/genauigkeit
%Planeten%.iy := %Planeten%.hy + %Planeten%.gy/genauigkeit
%Planeten%.iz := %Planeten%.hz + %Planeten%.gz/genauigkeit

;Oben = Innerer schleifenteil, wird für jeden anderen Körper im System durchgeführt

%Planeten%.x:=%Planeten%.x+ %Planeten%.ix/genauigkeit ; Berechnung der neuen Koordinaten aus den summierten Kräften
%Planeten%.y:=%Planeten%.y+ %Planeten%.iy/genauigkeit
%Planeten%.z:=%Planeten%.z+ %Planeten%.iz/genauigkeit

Teil 2 folgt
 

Kibo

Registriertes Mitglied
Nächste Ladung, klassisches Runge Kutta:

%Planeten%.hx:= %Planeten%.ix ; speichern des alten Impulses für trägheit
%Planeten%.hy:= %Planeten%.iy
%Planeten%.hz:= %Planeten%.iz

;Klassenteil ist der selbe daher siehe Teil 1

if (plzB=1)
%Planeten%.abstand:=abstand


%Planeten%.P1ix := %Planeten%.hx + %Planeten%.gx/(genauigkeit*2) ; %Planeten%.g/(genauigkeit*2 )=m1 prognose punkt 1 impuls (halbe schrittweite)
%Planeten%.P1iy := %Planeten%.hy + %Planeten%.gy/(genauigkeit*2)
%Planeten%.P1iz := %Planeten%.hz + %Planeten%.gz/(genauigkeit*2)

%Planeten%.P1x:=%Planeten%.x+ %Planeten%.P1ix/(genauigkeit*2) ;prognose punkt 1 koordinaten
%Planeten%.P1y:=%Planeten%.y+ %Planeten%.P1iy/(genauigkeit*2)
%Planeten%.P1z:=%Planeten%.z+ %Planeten%.P1iz/(genauigkeit*2)

%Planeten%.xd:=%PlanetenB%.x-%Planeten%.P1x ; abstand
%Planeten%.yd:=%PlanetenB%.y-%Planeten%.P1y
%Planeten%.zd:=%PlanetenB%.z-%Planeten%.P1z

abstand:=sqrt(%Planeten%.xd*%Planeten%.xd+%Planeten%.yd*%Planeten%.yd+%Planeten%.zd*%Planeten%.zd) ; immernoch abstand
%Planeten%.xn:=%Planeten%.xd/abstand
%Planeten%.yn:=%Planeten%.yd/abstand
%Planeten%.zn:=%Planeten%.zd/abstand

%Planeten%.s:=%PlanetenB%.gm/(abstand*abstand) ; gravitation

%Planeten%.g2x:=%Planeten%.s*%Planeten%.xn ;%Planeten%.g/(genauigkeit*2 )=m2 ; gravitationsvektor
%Planeten%.g2y:=%Planeten%.s*%Planeten%.yn
%Planeten%.g2z:=%Planeten%.s*%Planeten%.zn

%Planeten%.P2ix := %Planeten%.hx + %Planeten%.g2x/(genauigkeit*2) ; %Planeten%.g/(genauigkeit*2 )=m2 ;Prognosepunkt 2 impuls
%Planeten%.P2iy := %Planeten%.hy + %Planeten%.g2y/(genauigkeit*2)
%Planeten%.P2iz := %Planeten%.hz + %Planeten%.g2z/(genauigkeit*2)

%Planeten%.P2x:=%Planeten%.x+ %Planeten%.P2ix/(genauigkeit*2) ;teil 2 ; Prognosepunkt 2 koordninaten
%Planeten%.P2y:=%Planeten%.y+ %Planeten%.P2iy/(genauigkeit*2)
%Planeten%.P2z:=%Planeten%.z+ %Planeten%.P2iz/(genauigkeit*2)

%Planeten%.xd:=%PlanetenB%.x-%Planeten%.P2x ; siehe oben usw und so fort
%Planeten%.yd:=%PlanetenB%.y-%Planeten%.P2y
%Planeten%.zd:=%PlanetenB%.z-%Planeten%.P2z

abstand:=sqrt(%Planeten%.xd*%Planeten%.xd+%Planeten%.yd*%Planeten%.yd+%Planeten%.zd*%Planeten%.zd)
%Planeten%.xn:=%Planeten%.xd/abstand
%Planeten%.yn:=%Planeten%.yd/abstand
%Planeten%.zn:=%Planeten%.zd/abstand

%Planeten%.s:=%PlanetenB%.gm/(abstand*abstand)

%Planeten%.g3x:=%Planeten%.s*%Planeten%.xn ;%Planeten%.g/(genauigkeit*2 )=m3 teil 1
%Planeten%.g3y:=%Planeten%.s*%Planeten%.yn
%Planeten%.g3z:=%Planeten%.s*%Planeten%.zn

%Planeten%.P3ix := %Planeten%.hx + %Planeten%.g3x/genauigkeit ; %Planeten%.g/(genauigkeit*2 )=m3
%Planeten%.P3iy := %Planeten%.hy + %Planeten%.g3y/genauigkeit
%Planeten%.P3iz := %Planeten%.hz + %Planeten%.g3z/genauigkeit

%Planeten%.P3x:=%Planeten%.x+ %Planeten%.P3ix/genauigkeit ;teil 2
%Planeten%.P3y:=%Planeten%.y+ %Planeten%.P3iy/genauigkeit
%Planeten%.P3z:=%Planeten%.z+ %Planeten%.P3iz/genauigkeit

%Planeten%.xd:=%PlanetenB%.x-%Planeten%.P3x
%Planeten%.yd:=%PlanetenB%.y-%Planeten%.P3y
%Planeten%.zd:=%PlanetenB%.z-%Planeten%.P3z

abstand:=sqrt(%Planeten%.xd*%Planeten%.xd+%Planeten%.yd*%Planeten%.yd+%Planeten%.zd*%Planeten%.zd)
%Planeten%.xn:=%Planeten%.xd/abstand
%Planeten%.yn:=%Planeten%.yd/abstand
%Planeten%.zn:=%Planeten%.zd/abstand

%Planeten%.s:=%PlanetenB%.gm/(abstand*abstand)

%Planeten%.g4x:=%Planeten%.s*%Planeten%.xn ;%Planeten%.g/(genauigkeit*2 )=m4 teil 1
%Planeten%.g4y:=%Planeten%.s*%Planeten%.yn
%Planeten%.g4z:=%Planeten%.s*%Planeten%.zn

%Planeten%.P4ix := %Planeten%.hx + %Planeten%.g4x/genauigkeit ; %Planeten%.g/(genauigkeit*2 )=m4
%Planeten%.P4iy := %Planeten%.hy + %Planeten%.g4y/genauigkeit
%Planeten%.P4iz := %Planeten%.hz + %Planeten%.g4z/genauigkeit

%Planeten%.ix:=1/6*(%Planeten%.P1ix + 2 * %Planeten%.P2ix + 2*%Planeten%.P3ix + %Planeten%.P4ix) Verrechnung der 3 Prognosepunkte zum dann verwendeten Impuls
%Planeten%.iy:=1/6*(%Planeten%.P1iy + 2 * %Planeten%.P2iy + 2*%Planeten%.P3iy + %Planeten%.P4iy)
%Planeten%.iz:=1/6*(%Planeten%.P1iz + 2 * %Planeten%.P2iz + 2*%Planeten%.P3iz + %Planeten%.P4iz)

; ende innere schleife, ausgeführt für jeden gegnerischen Körper

%Planeten%.x:=%Planeten%.x+ %Planeten%.ix/genauigkeit ; Verrechnen des summierten neuen Impuls mit den Koordinaten
%Planeten%.y:=%Planeten%.y+ %Planeten%.iy/genauigkeit
%Planeten%.z:=%Planeten%.z+ %Planeten%.iz/genauigkeit

Ich hoffe es ist einigermaßen verständlich. Falls fragen sein sollten immer her damit.
 

Kibo

Registriertes Mitglied
Ich muss gestehen, das war reines Ausprobieren, und zwar im Euler:eek:
Auch da geben die Werte ja keine perfekt kreisrunde Bahn, aber sie bleibt für viele Umläufe stabil.

Mir ist da noch eine kleine Idee gekommen. Beim RK berechne ich ja 3 Prognosepunkte von denen ich mir dann die Steigungen ausborge, Diese Prognosepunkte werden innerhalb des einen Rechenschritts nur für einen gegnerischen Planeten gerechnet, kann das das Ergebnis negativ beeinflussen? In dem benutzten Szenario, sollte es ja egal sein, da es ja nur 2 Körper im System gibt.

Ich werde mir mal ein ,paar Kontrollmechanismen überlegen, und mir meinen Impulsvektor genauer angucken, wird zeit das der mit reellen Zahlen rechnet. Empfiehlst du da sowas wie die Bahngeschwindigkeit in m/s oder Kraft in Newton?

mfg
 

mac

Registriertes Mitglied
Hallo Kibo,

von hier: http://ssd.jpl.nasa.gov/horizons.cgi bekommst Du reale Daten.

Bei Ephemeris Type wählst Du VECTORS
Target Body die jeweiligen Objekte Sonne/Planeten/Monde/ Die mußt Du, soweit ich das bisher verstanden habe, leider alle einzeln abfragen. Und daß ich hier auch Sonne geschrieben habe, war kein Versehen.
Bei Coordinate Origin wählst Du Solar System Barycenter (SSB) (500@0)
Bei Time Span einen im Prinzip beliebigen Start und Stopwert. Grundsätzliche Fehler in Deiner Codierung werden sich aber bereits nach einer einzigen Iteration durch den Datenvergleich zeigen, also z.B. nach einer Sekunde oder einer Stunde.
Bei Table Settings wählst Du output units=KM-S m/s mußt Du daraus selber errechnen. Ich würde dabei, wo immer das möglich ist, die SI-Einheiten verwenden und wenn Du davon abweichen mußt, dann dokumentiere das im Programm incl. der Begründung, warum Du das tust.
Und dann noch Display/Output Da steht zur Auswahl HTML, plain text und download/save. Das mußt Du ausprobieren.

Du bekommst damit, soweit mir bekannt, die derzeit besten Daten für Position und Geschwindigkeit aller bekannten Objekte im Sonnensystem.

Als primären Test würde ich allerdings ein einziges schweres Zentralobjekt und einen einzigen masselosen Körper auf einer Kreisbahn wählen. Die Startwerte dafür kannst Du bekanntlich über die Formel zur 1. kosmischen Geschwindigkeit beliebig genau errechnen. http://de.wikipedia.org/wiki/Kosmische_Geschwindigkeiten

Als nächsten Test gibst Du dem Masselosen Körper eine Masse und bestimmst die Position beider Körper über http://de.wikipedia.org/wiki/Baryzentrum und ihre Geschwindigkeit über die Umlaufzeit um den so ermittelten Schwerpunkt des Systems (den Du dabei als Koordinatenursprung wählst) mit http://de.wikipedia.org/wiki/Satellitenbahn

Herzliche Grüße

MAC
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Hallo Kibo,

Empfiehlst du da sowas wie die Bahngeschwindigkeit in m/s oder Kraft in Newton?
ich fände es prima, wenn Du alles auf SI-Einheiten umstellen würdest. Alle sechs Koordinaten also in m. Anstelle des Impulses sollte die Datei Planeten.txt die Startgeschwindigkeiten in m/s enthalten. Die Masse sollte man in kg angeben.

Die Datei Planeten.txt sähe dann beispielsweise so aus:
Code:
KoordX	KoordY	KoordZ	v_X	v_Y	 	v_Z	Masse		s	v	Name    dichte	s und v sind noch nicht implementiert
-4.67e6	0.0	0.0	0.0	0.01	 	0.0	5.974e24	0	0	erde	5.515e3
3.794e8	0.0	0.0	0.0	-1.01e3 	0.0	7.349e22	0	0	mond	3.341e3
Damit sollte das Programm Euler dann funktionieren. Falls es das nicht macht, müsste man erst mal dort nach Fehlern suchen. Man gibt damit ein System vor, das in etwa durch Schwerpunktkoordinaten vorgegeben wird. Bitte beachte dabei, dass ich in z-Richtung die Startkoordinaten und die Startgeschwindigkeiten gleich Null gesetzt habe. Das vereinfacht die Rechnung zusätzlich.

Auf die Daten der NASA-Horizons Seite können wir in diesem Stadium vorerst noch verzichten. Die Konstellation Erde-Mond ist für den Anfang ideal, weil sie sehr übersichtlich ist.
MfG
 
Zuletzt bearbeitet:

mac

Registriertes Mitglied
Hallo Bernhard,

Auf die Daten der NASA-Horizons Seite können wir in diesem Stadium vorerst noch verzichten. Die Konstellation Erde-Mond ist für den Anfang ideal, weil sie sehr übersichtlich ist.
MfG
Das Erde-Mond-System ist in meinen Augen nicht so gut geeignet, weil die überprüfbaren Daten nicht mit den Modelldaten übereinstimmen können. Besser wäre stattdessen der Test, den ich im letzten Absatz des Posts 33 vorgeschlagen hatte, der auch bei 2D noch genauso gut funktioniert und sehr leicht unabhängig überprüfbar ist.

Herzliche Grüße

MAC
 

Bernhard

Registriertes Mitglied
Das Erde-Mond-System ist in meinen Augen nicht so gut geeignet, weil die überprüfbaren Daten nicht mit den Modelldaten übereinstimmen können.

Hallo MAC,

im Prinzip schlagen wir das gleiche vor, nämlich das Zweikörper-Problem. Mein Vorschlag für die Datei Planeten.txt setzt nur die mittlere Orbitalgeschwindigkeit des Mondes (s. Wikipedia) voraus und liefert über die Berechnung der Schwerpunktskoordinaten mit Hilfe der Distanz Erde-Mond (384.400 km) die vorgeschlagenen Daten.

Ich bin mir momentan auch nicht sicher, ob der Fehler anstelle im RK-Modul nicht im Euler-Modul liegt. Beide Module sollten aber im Display für einen Umlauf das gleiche Ergebnis liefern.
MfG
 

Bernhard

Registriertes Mitglied
Die Datei Planeten.txt sähe dann beispielsweise so aus:
Code:
KoordX	KoordY	KoordZ	v_X	v_Y	 	v_Z	Masse		s	v	Name    dichte	s und v sind noch nicht implementiert
-4.67e6	0.0	0.0	0.0	0.01	 	0.0	5.974e24	0	0	erde	5.515e3
3.794e8	0.0	0.0	0.0	-1.01e3 	0.0	7.349e22	0	0	mond	3.341e3
Mit den Formeln aus dem Wikipedia-Artikel zum Zweikörperproblem kann man daraus bereits die genaue Bahn berechnen:
E = -3.88e28 J, L = 2.82e34 Js, mu = 7.26e22 kg, epsilon = 0.094, p = 3.74e8 m, a = 3.77e8 m und b = 3.76e8 m
Es ergibt sich also eine nahezu kreisförmige Bahn und das sollte sowohl die Berechnung nach Euler, als auch mit Runge-Kutta bestätigen.
MfG
 

Kibo

Registriertes Mitglied
Vielen Dank für eure Vorschläge,

Meine Zeit für für das Programm ist Werktags arbeitstechnisch relativ knapp bemessen. Ich kann schon mal sagen, dass die Umstellung der Entfernungs- und Massenangaben überhaupt kein Problem darstellt, beim Impuls konnte ich aus Zeitmangel noch nicht viel machen. Werte von genau 0 sind in dem Programm schwierig umsetzbar, die führen aus mir nicht bekannten Gründen im kompilierten Programm zu reihenweise leeren Variablen, gleich nach dem ersten Start, daher vermeide Ich diese vorerst.

mfg
 
Zuletzt bearbeitet:

Bernhard

Registriertes Mitglied
Werte von genau 0 sind in dem Programm schwierig umsetzbar, die führen aus mir nicht bekannten Gründen im kompilierten Programm zu reihenweise leeren Variablen, gleich nach dem ersten Start, daher vermeide Ich diese vorerst.
Das ist wirklich unschön. Gibt es da keinen Workaround? Kann man eventuell einen bestimmten String oder ein bestimmtes Sonderzeichen einlesen und im Programm die zugehörige Variable dann auf Null setzen?
 

Bernhard

Registriertes Mitglied
Die Datei Planeten.txt sähe dann beispielsweise so aus:
Code:
KoordX	KoordY	KoordZ	v_X	v_Y	 	v_Z	Masse		s	v	Name    dichte	s und v sind noch nicht implementiert
-4.67e6	0.0	0.0	0.0	0.01	 	0.0	5.974e24	0	0	erde	5.515e3
3.794e8	0.0	0.0	0.0	-1.01e3 	0.0	7.349e22	0	0	mond	3.341e3
Hallo Kibo,

Bei v_Y_Erde habe ich mich verrechnet. Die neuen Zahlen für eine Kreisbahn lauten:
Code:
KoordX	KoordY	KoordZ	v_X	v_Y	 	v_Z	Masse		s	v	Name    dichte	s und v sind noch nicht implementiert
-4.67e6	0.0	0.0	0.0	12.45	 	0.0	5.974e24	0	0	erde	5.515e3
3.797e8	0.0	0.0	0.0	-1.012e3 	0.0	7.349e22	0	0	mond	3.341e3
Der Abstand zwischen Erde und Mond beträgt dann konstant 384.400 km. Die Ableitung des Differenzvektors der beiden Ortsvektoren (=v) habe ich mit sqrt( G * (m_1 + m_2) / r ) berechnet.
 
Zuletzt bearbeitet:
Oben