AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

Ein Thema von fishbrain · begonnen am 3. Sep 2010 · letzter Beitrag vom 9. Sep 2010
Antwort Antwort
Seite 2 von 2     12
ub60

Registriert seit: 14. Nov 2004
17 Beiträge
 
#11

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 6. Sep 2010, 01:27
Also, ich hab das Ganze vor mehr als 15 Jahren in Pascal geschrieben. Geschwindigkeit ist kein Problem, Genauigkeit bei "normalen" Planetenbewegungen auch nicht.
Mein damaliger Ansatz war einfach das Gravitationsgesetz (zwischen beliebig vielen Körpern) und eine ständige Neuberechnung des x- und y-Anteils der Geschwindigkeit.

ub60
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#12

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 6. Sep 2010, 02:24
Also, ich hab das Ganze vor mehr als 15 Jahren in Pascal geschrieben. Geschwindigkeit ist kein Problem, Genauigkeit bei "normalen" Planetenbewegungen auch nicht.
Mein damaliger Ansatz war einfach das Gravitationsgesetz (zwischen beliebig vielen Körpern) und eine ständige Neuberechnung des x- und y-Anteils der Geschwindigkeit.

ub60
Wie hast du das genau gemacht? Hast du die Kraft von der Sonne auf jeden Planeten gerechnet oder von jeder Masse zu jeder Mass? Bzw hast du alle Planeten angezeigt oder nur die inneren / äußeren?
Das mit der ständigen neuberechnung des x/y anteils versteh ich auch nicht. Hast du nur einmal die Geschwindigkeit berechnet und dann nurnoch die Richtung der Geschwindigkeit geändert?
  Mit Zitat antworten Zitat
ub60

Registriert seit: 14. Nov 2004
17 Beiträge
 
#13

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 6. Sep 2010, 09:24
Wie hast du das genau gemacht? ... oder von jeder Masse zu jeder Masse?
Genau so.

Hier einige Details:
  • Ich habe nur zweidimensional gerechtet, dreidimensional würde aber analog gehen.
  • Wählen eines (kartesischen) Koordinatenursprungs für die Berechnung (beliebig, die Sonne wäre aber ganz gut, muss jedoch nicht sein).
  • Eingabe der Anfangsgeschwindigkeiten bezüglich des Ursprungs, dabei Geschwindigkeit in x- und y-Anteil trennen.
  • Als Beispiel: Wenn die Sonne in der Mitte ist und die Erde unter der Sonne (bei 270°) nach rechts fliegen soll (also Umkreisen gegen den Uhrzeigersinn), so ist der x-Anteil die Bahngeschwindigkeit, der y-Anteil gleich 0.
  • Jetzt in einer Schleife für alle beteiligten Objekte:
    • Berechnung der Abstände untereinander (verschachtelte Schleife),
    • Berechnung der Kräfte, über die Positionen Berechnung der x- und y-Anteile der Kräfte,
    • Addition aller Kräfte,
    • mit Hilfe der Masse Berechnung der Beschleunigungs- bzw. Geschwindigkeitsanteile,
    • mit Hilfe des gewählten Intervalls Bestimmung der neuen Koordinaten.

So, ich hoffe, das hilft. Ist ja schon fast das ganze Programm

ub60
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
291 Beiträge
 
#14

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 6. Sep 2010, 09:54
Ich habe sowas auch schonmal geschrieben, allerdings nicht mit "Merkur" und "Saturn" sondern mit einem anonymen Massepunkt. Ich weiß ja nicht, was von Dir erwartet wird, aber ich glaube schonmal eine Sonnensystem-Animation gesehen zu haben (Abenteuer Forschung o.ä.) und da waren die Bewegungen aller Planeten noch relativ gut erkennbar.
So (http://www.youtube.com/watch?v=ZGKCYRGotGc) sollte es wahrscheinlich lieber nicht werden, da erscheint mir einiges falsch, ich dachte ich suche mal ein Beispiel, aber das hier ist anscheinend totaler Schrott.
Die zu großen Geschwindigkeitsunterschiede waren doch das eigentliche Problem, oder?

Viele Grüße
Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#15

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 6. Sep 2010, 22:21
So ich habe nun die Berechnung in nen extra thread ausgelagert. Bei 3 Objekten hab ich noch 200k Berechnungen pro Sekunde. Das sollte für die meisten Fälle langen. In kritischen Situationen wird die Notbremse gezogen

Vielen Dank für eure Ideen
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#16

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 9. Sep 2010, 07:00
Ok hab noch eine Verbesserung falls es jemanden interressiert:
Anstatt den Zeitunterschied zwischen den Messungen mit gettickcount zu messen benutze ich jetzt QueryPerformanceCounter. Logischerweise eine signifikante Verbesserung.
  Mit Zitat antworten Zitat
ub60

Registriert seit: 14. Nov 2004
17 Beiträge
 
#17

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 9. Sep 2010, 09:22
Ok hab noch eine Verbesserung falls es jemanden interressiert:
Also, mich interessiert nicht nur die Verbesserung, sondern das ganze Programm
Gibt es das irgendwo?
Vorzugsweise den Quelltext?
Aber die Hauptfrage: In welchen zeitlichen Abständen berechnest Du die Phasen der Simulation (die einzelnen Schritte der Bewegung)?

ub60
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#18

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 9. Sep 2010, 11:22
hm ich denke ich werde bald (1-2 Wochen) die erste Version uploaden. Ob OS oder nicht weiß ich noch nicht.

Zu den zeitlichen Abständen:
Angenommen wir simulieren 2 Objekte, dann wird im Schnitt 800000 mal pro Sekunde gerechnet. Wenn wir jetzt eine Simulationsgeschwindigkeit von 1s entspricht 1 Jahr nehmen macht das eine Berechnung alle 38s Simulationszeit. Das sollte für die meisten Fälle genügen. Aber das wirklich interressante daran ist ja, dass dieses Intervall in der realität Null ist . Crazy wenn man drüber nachdenkt
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf