![]() |
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Zitat:
Zitat:
Zitat:
|
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Zitat:
Zitat:
Zitat:
|
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Hi,
ich habe ein kleines Problem, vielleicht einfach nur einen Denkfehler. Wenn ich z.B. aus Christian S.'s den Richtungsvektor vom Merkur am 11. Dezember 2001 nehme (0,022484267 0,001329795 -0,001620828) und folgendes berechne, müsste ich die Momentangeschwindigkeit bekommen, oder? |(150/86400) * [0.022484267;0.001329795;-0.001620828]| Ich habe den Richtungsvektor (in AU/Tag) mit 150/86400 multipliziert (AU/Tag -> km/s), das entspräche dann in etwa km/s, oder? Die Länge des Richtungsvektores wäre dann die Geschwindigkeit im km/s Das Ergebnis der obigen Zeile entspricht dann: 3.92·10^-5 km/s und das kann ja nicht sein (Vergleich: Mittlere Orbitalgeschwindigkeit vom Merkur: 47,87 km/s [Quelle: Wikipedia]) Kann mir jemand helfen, wo mein Denkfehler / Rechenfehler liegt? |
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Richtungsvektor (in AU/Tag) / 86400 [s/Tag] * 149597870 [km/AU] = [km/s]
Eine Astronomische Einheit hat 150 Millionen Kilometer ;) |
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Danke dir, das sagt wohl alles aus: :wall:
:mrgreen: Ein anderes Problem (ich glaube es ist eher ein physikalisches, daher nur Pseudocode):
Code:
Die Planetenbewegungen sehen nicht sehr natürlich aus und wenn ich ehrlich bin, bin ich beim Tippen dieses Beitrages in mehreren Zeilen gestutzt. Vielleicht komme ich noch selbst darauf, was ich falsch gemacht habe, ansonsten bräuchte ich nochmal eure Hilfe. :oops:
# Mir liegen die Werte in den Grundeinheiten vor, d.h. m, s und kg
# Vektoren (Richtung und Position) enthalten X, Y, Z PlanetX = Aktueller Planet, für den gerade neue Werte berechnet werden Mache mit allen Planeten (jeweils PlanetY), wenn PlanetX <> PlanetY: Kraft := (0.0000000000667428 * PlanetX.Masse * PlanetY.GetMasse) / (Abstand(PlanetX, PlanetY)) Summe := Summe + Kraft * (PlanetY.Position - PlanetX.Position) # Neue Richtung (gerichtete Geschwindigkeit) PlanetX.Richtung := PlanetX.Richtung + (dt * (Summe / PlanetX.Masse)) PlanetX.Position := PlanetX.Position + (dt * PlanetX.Richtung) |
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Ich seh den Fehler :mrgreen:
Wie sieht Abstand() aus? ich vermute, du nimmst hier die normale euklidische Norm. Dann muss da aber Abstand^3 stehen ;) Das liegt daran, dass du nachher noch einmal den Abstand drauf multiplizierst. Würdest du nachher den Vektor auf 1 normieren (da, wo du die Kraft zur Summe addierst) müsstest du immernoch durch Abstand^2 teilen. So, wie das jetzt da steht, spielt der Abstand keine Rolle für die Größe der Kraft. Das wäre sicherlich ein interessantes Universum :mrgreen: |
Re: Physikgesetze zur Simulation unseres Sonnensystemes
Ja danke, das ist mir dann irgendwann auch aufgefallen. ^^
Code:
Wenn ich mich nicht irre, ist in meinem letzten Beitrag ein Fehler drin. Die Position berechnet sich: s = 1/2 * a*dt^2 + v0*dt + s0
# Mir liegen die Werte in den Grundeinheiten vor, d.h. m, s und kg
# Vektoren (Richtung und Position) enthalten X, Y, Z PlanetX = Aktueller Planet, für den gerade neue Werte berechnet werden Mache mit allen Planeten (jeweils PlanetY), wenn PlanetX <> PlanetY: Kraft := (0.0000000000667428 * PlanetX.Masse * PlanetY.GetMasse) / (Abstand(PlanetX, PlanetY)) Summe := Summe + Kraft * (PlanetY.Position - PlanetX.Position) # Neue Richtung (gerichtete Geschwindigkeit) PlanetX.Richtung := PlanetX.Richtung + (dt * (Summe / PlanetX.Masse)) PlanetX.Position := PlanetX.Position + (dt * PlanetX.Richtung) Ich hatte die Position aber mit s = s0 + dt (v0 + dt * a) berechnet. Ausmultipliziert heißt das: s0 + v0*dt + a*dt^2. Da scheint 1/2 abhanden bekommen zu sein. Dennoch bin ich mit beiden Rechnungen nicht zufrieden, da ich selbst bei einem dt von 1 Sekunde nach 1 Tag Abweichungen habe (Werte mit der Datei von Christian S. abgeglichen). Die X-Koordinate der Sonne z.B. hat eine Abweichung von 0,000000061. Da die Koordinaten in Astronomischer Einheit angegeben sind, beträgt die Abweichung 9 km nach einem Tag. Das ist zwar nicht sehr viel, aber woher kann das kommen? Andere Körper im Weltall, die ich in meiner Simulation nicht berücksichtige? Ungewollte Rundungen seitens des Computers? EDIT: Das mit der Abweichung hat sich erledigt. Seitdem ich noch die anderen Himmelskörper hinzugefügt habe (Pluto und Mond) war eine Abweichung kaum noch messbar. Mittlerweile bin ich mir auch sicher, dass mein Weg schon richtig ist. Es gibt ja auch die Formel s = a*t^2, wobei hier a die Endbeschleunigung und nicht die Durchschnittsbeschleunigung ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz