Proceduralne generowanie częściowo poprawnych układów planetarnych

14

Istnieje więc wiele zasobów, które można znaleźć za pośrednictwem Google lub korzystając z wyszukiwania tutaj, w jaki sposób proceduralnie wygenerować całą galaktykę. Ale nie mogłem znaleźć żadnego dobrego zasobu na temat generowania układów planetarnych spełniających następujące kryteria:

Systemy nie muszą być dokładnymi symulacjami orbit, ale powinny znajdować się w pobliżu prawdopodobnych orbit. Nie obchodzi mnie żadna symulacja, która by obchodziła, jak system może wyglądać za 200 000 lat, orbity mogą być solidne. Główny problem, przed którym stoję, polega na tym, jak losowo wygenerować system, który można by uznać za wiarygodny. Staje się to szczególnie interesujące, gdy masz układ z gwiazdą podwójną.

Samo losowe tworzenie orbit nie stworzy wiarygodnego systemu, w efekcie powstanie oczywiście niedziałająca orbita. Tak, zdaję sobie sprawę z problemu z ciałem N :), ale to nie pomaga, przynajmniej tak mi się wydaje, rozwiązać problem generowania wiarygodnego systemu proceduralnego?

Myślę, że możesz po prostu losowo spawnować planety na ich orbicie i nadać im masę, a następnie użyć matematyki N-ciała, aby obliczyć, czy są one mniej lub bardziej poprawne, jeśli nie, zacznij od nowa i losowo wygeneruj nowe orbity, dopóki nie otrzymasz czegoś, co pasuje , ale byłoby to bardzo nieefektywne.

burzum
źródło
Możesz najpierw wygenerować masę, a może nawet gęstość i średnicę (może się to zdarzyć losowo w określonych granicach), a następnie obliczyć potrzebny promień orbity i prędkości na podstawie jakiegoś wzoru. Jeśli jest już planeta w tym promieniu orbity, po prostu wygeneruj ponownie. To powinno znacznie zredukować zbędne pokolenia i powinno wyglądać raczej rozsądnie, tym bardziej, jeśli losowo przechylisz orbity nieco. Nie będzie to jednak uwzględniać międzyplanetarnej interakcji grawitacyjnej, ale biorąc pod uwagę dość podstawową reprezentację, może to wystarczyć.
cozmic
4
Aby odpowiedzieć na to pytanie, musisz być astronomem, a nie twórcą gier. To może być bardziej pytanie dla astronomii. SE.
Filipiny
Stwórz zestaw reguł, aby planeta była rentowna. Utwórz zestaw reguł, aby zestaw planet był opłacalny. Sprawdź te zasady. Gotowy.
Maszt
To nie odpowiada dokładnie na twoje pytanie, ale może się okazać, że moja praca jest pomocna: quotientring.com Istnieją pewne odpowiedzi w zestawie reguł Cosmos-2: alternityrpg.net/resources/1375/original/cosmos-2.pdf
MackT wtorek

Odpowiedzi:

11

Aby stworzyć wiarygodny układ słoneczny, upewnij się, że każda orbita znajduje się w sferze wpływu ciała macierzystego, ale nie w obrębie sfery wzgórza lub granicy roche innego ciała.

Strefy wpływów to maksymalny promień wokół planety, gdzie można oczekiwać stabilnych satelity.

Granica Roche jest promieniem orbitalny minimum jedno ciało niebieskie może mieć wokół drugiego. Kiedy znajduje się na niższej orbicie, rozpada się i staje się pierścieniem.

Wzgórze sfera jest istotne, gdy chcemy zapobiec stworzenie dwóch satelitów, w tym samym ciele, które mają bardzo bliskich orbitach. Jest to zakres między minimalnym i maksymalnym promieniem orbity, który planeta „zajmuje”.

Wszystkie trzy wartości można obliczyć na podstawie masy i promienia orbity za pomocą wzorów w powiązanych artykułach z Wikipedii.

Chciałbym więc wypróbować następujący algorytm:

  1. Utwórz losową liczbę ciał niebieskich o losowym promieniu i masie orbity. Promień i masa powinny być w skali logarytmicznej.
  2. Zaczynając od najmniejszej do największej, oblicz kulę wzgórzową każdej planety. Każda mniej masywna planeta w kuli wzgórza bardziej masywnej planety staje się księżycem tej planety. Generuj losowo promień orbity księżyca wokół rodzica z logarytmicznym rozkładem między 0 a sferą wpływu rodzica.
  3. Wykonaj krok 2 dla wszystkich układów księżycowych, aby rozwiązać konflikty wzgórz księżycowych. To, czy księżyc może mieć stabilnego satelitę, jest przedmiotem dyskusji wśród społeczności astronomicznej (żaden przykład nie jest znany w naszym Układzie Słonecznym). Jeśli nie chcesz żadnych księżyców, po prostu usuń mniejszy księżyc lub umieść go na innej losowej orbicie.
  4. Sprawdź limit Roche każdego obiektu wokół jego obiektu nadrzędnego. Gdy jest poniżej limitu roche, przekonwertuj go na pierścień (lub po prostu usuń).

Dotyczy to układów pojedynczych gwiazd, ale nie układów podwójnych . Binarny układ gwiezdny ma dwie gwiazdy, które krążą wokół wspólnego centrum barowego. Planety mogą orbitować jedną z gwiazd (orbita typu S) lub wspólny środek ciężkości na bardzo szerokiej orbicie (orbicie typu P).

Jeśli chcesz mieć podwójny układ gwiezdny, zalecałbym najpierw wygenerowanie drugiej gwiazdy jako kolejnego satelity wokół gwiazdy podstawowej. Cokolwiek w kuli wzgórzowej drugiej gwiazdy krąży wokół drugiej gwiazdy i wszystko o promieniu mniejszym niż kulka wzgórzowa drugiej gwiazdy krąży wokół pierwszej gwiazdy. Oblicz barycentrum i obierz obie gwiazdy z ich księżycami. Wszystko, co ma większy obit niż kula wzgórza, okrąża środek ciężkości dwóch gwiazd (orbita typu P).

Trójstronne i większe układy gwiazd n-ary są stabilne tylko wtedy, gdy gwiazdy powyżej 2. są bardzo małe w porównaniu do innych. Z tymi dodatkowymi gwiazdami należy obchodzić się tak jak z każdą inną planetą.

Philipp
źródło
Dodam tylko trzecie prawo ruchu planetarnego Keplera do tej odpowiedzi,The square of the orbital period of a planet is directly proportional to the cube of the semi-major axis of its orbit.
Draco18s nie ufa już SE
15

Uprość fizykę 2-ciał. Fizyka N-ciała jest ogólnie chaotyczna i nie można symulować ich na stabilnej orbicie.

Pojedyncze gwiazdy

W przypadku układów z jedną gwiazdką zignorowałbym problem z ciałem N i po prostu stworzyłem zestaw planet z grubsza rozmieszczonych w geometrycznie wzrastającej odległości od Słońca . Być może możesz mieć zasadę, że jeśli wygenerowana zostanie szczególnie duża planeta, wszyscy sąsiedzi, którzy są zbyt blisko, ulegają destabilizacji i tworzą pas asteroid .

Planety blisko gwiazdy niekoniecznie są skaliste, jak ma to miejsce w naszym Układzie Słonecznym .

Masa, odległość i prędkość orbity planety są ze sobą powiązane - kiedy losowo wybierasz wartości, uzależnij jedną z nich (prawdopodobnie prędkość orbity) od pozostałych dwóch.

Gwiazdy binarne

Tak naprawdę wcześniej nie wiedziałem nic o zamieszkałych gwiazdach binarnych, zanim sprawdziłem Wikipedię w poszukiwaniu tej odpowiedzi, więc czytajcie na Habitability_of_binary_star_systems, gdzie otrzymałem niektóre z tych liczb.

  1. Na planetach nieokrągłych (planeta krąży tylko jedna z gwiazd w układzie podwójnym), jeśli odległość planety do jej pierwotnej powierzchni przekracza około jednej piątej najbliższego podejścia drugiej gwiazdy, stabilność orbity nie jest gwarantowana. Oznacza to, że jeśli gwiazdy A i B tworzą układ podwójny z odległością AB , możesz mieć stabilne orbity planetarne wokół A lub B w odległości mniejszej niż 0,2 * AB . W przypadku tych systemów ponownie użyłbym fizyki 2-ciał jako przybliżenia.

  2. W układach krążeniowych, o ile planeta znajduje się 2-4 razy dalej od pary binarnej od siebie, możesz ponownie potraktować to jako problem z dwoma ciałami, gdy planeta krąży wokół środka masy dwóch gwiazdy

  3. Możesz także mieć planety krążące wokół punktów Lagrange'a L4 i L5 układu podwójnego . Dyskutowałem o tym tylko w ustawieniach science fiction - myślę, że znane są tylko ciała wielkości asteroid, które zajmują punkty Lagrange'a planet w naszym Układzie Słonecznym, chociaż mogą być przydatne w statkach kosmicznych. Technicznie rzecz biorąc, jedna z gwiazd musi być znacznie większa od drugiej, aby punkty te były stabilne , ale to od Ciebie zależy, jak bardzo chcesz, aby prawdziwa fizyka przeszkadzała w ustawieniach gry.

Jimmy
źródło
1
Układy trzech ciał mają znane okresowe rozwiązania, które można zakodować na stałe i
wybierać
1
@Nakilon Pytanie dotyczyło jednak prawdopodobnych układów planetarnych. Każde ze znanych rozwiązań problemu 3 ciał z masami nieistotnymi jest praktycznie niemożliwe do wystąpienia w sposób naturalny. Mogą jednak wystąpić w grze z wystarczająco zaawansowanymi kosmitami, którzy lubią robić astroinżynieria .
Philipp,
0

To długi komentarz uzupełniający istniejące odpowiedzi.

Przy wystarczającym czasie układ planetarny staje się głównie płaski. Równie dobrze możesz uprościć symulację, ustawiając ją od początku jako planarną. Następnie możesz wykonać resztę za pomocą równania Bineta , przynajmniej jeśli korzystasz z uproszczenia 2-ciał, które zasugerował Jimmy. Jeśli zaniedbujesz ogólną teorię względności, rozwiązanie jest analityczne; jeśli nie, potrzebujesz czegoś takiego jak Runge-Kutta.

JG
źródło