Каков сегодня выбор программного обеспечения для моделирования орбитальной механики?

Раньше я был знаком с различными вариантами программного обеспечения для моделирования орбитальной механики. Увы, те времена прошли. Какие есть варианты сегодня, предпочтительно отсортированные по платформам?

Этот и другие вопросы на этом сайте могут выиграть от их использования, чтобы сделать ответы более наглядными.

Обратите внимание , что такие вопросы, как этот, обычно не приветствуются на сайтах SE. В данном случае было сделано исключение ввиду его очевидной полезности и актуальности.

Два вопроса: 1) Какой из этих программных пакетов (если таковые имеются) может выполнять анализ траектории для зондов дальнего космоса, включая расчет гравитации? 2) Для тех из вас, кто знаком с пакетом анализа траектории NASA Copernicus, как они соотносятся?
Космическая программа Кербал :)
Попробуйте найти NEMO: bima.astro.umd.edu/nemo
Не симулятор, а скорее игрушка, n-body в 2D: nowykurier.com/toys/gravity/gravity.html . Действительно весело играть.

Ответы (13)

Чтобы добавить в список @Erik:

  • GMAT — кроссплатформенный, бесплатно. Продукт с открытым исходным кодом НАСА.

  • FreeFlyer — ПК, коммерческий. Вероятно, самый большой конкурент AGI.

  • Набор инструментов Java Astrodynamics Toolkit — кроссплатформенный, бесплатный. Еще один продукт с открытым исходным кодом, больше похожий на программную библиотеку, чем на полноценную среду моделирования.

  • Дизайнер орбит — Android, бесплатно. Даже не близко к тому же примерному уровню этих других пакетов, но может быть забавным способом поиграть с разными орбитами. Редактировать: я на самом деле только что скачал это, и я абсолютно зацепил. Настоятельно рекомендуется. (Предостережение: я фанат таких вещей, и на самом деле это может быть довольно скучным приложением для большинства людей).

Orbit Designer, кажется, исключен из списка игр (я изменил ссылку на страницу разработчиков, но это не так полезно) - есть ссылки (неизвестного качества) на загрузки apk, которые можно найти.
Черт возьми, сначала ты меня раскрутил насчет дизайнера Orbit, а теперь его нет. Я даже ничего не могу найти об этом; например, как это сделано или почему оно удалено. У кого-нибудь есть дополнительная информация?

Вот варианты, о которых я знаю навскидку:

Называть STK бесплатным немного вводит в заблуждение — хотя и существует бесплатная версия, ее возможности чертовски ограничены. Кроме того, по какой-то причине теперь это «Systems Toolkit».
@ Крис, правда.
Хотя это правда, что «бесплатный» STK ограничен, вы будете удивлены тем, на что он способен, даже бесплатно... Фактически, я довольно часто использую бесплатную версию. Просто действительно забавные игрушки стоят денег, вот и все...
+1 Когда я перехожу по ссылке на AGI/STK, у меня складывается первое впечатление, что это в основном для управления военными дронами (должно быть, это растущий рынок). Является ли это действительно его основным направлением или есть также и сильный угол освоения космоса? (Я все новичок в этом.)
Доступна ли бесплатная версия AGI/STK в России? Когда я пытаюсь открыть указанный выше URL-адрес ( agi.com/products/stk/modules/default.aspx/id/stk-free ), я попадаю на страницу с надписью «Из-за определенных операционных ограничений мы не можем выполнить ваши запрос через веб-сайт в это время.». Мне интересно, неправильный ли URL или по юридическим причинам.
Подозреваю, что вы живете слишком близко к Путину Дмитрию.
То же. Бесплатная версия STK может многое, и ее вполне достаточно для того, что мне нужно в большинстве случаев.

Помимо этих серьезных программ, упомянутых выше, есть интересная игра с довольно реалистичными орбитальными расчетами, вполне подходящая для обучения детей космосу: космическая программа Kerbal .

Что касается платной версии AGI, то она намного мощнее.

У меня нет проблем со ссылкой, но помимо игрового ракурса модель орбитальной механики использует сферу влияния. Он не может справиться с симуляцией N-тел. Забавно, но на этом все.
Удивительная игра Kerbal Space Program, но ей не хватает симуляции из-за упрощения гравитации.
Ну, это зависит от ваших целей, которых ОП на самом деле не достиг. Если вы хотите точно смоделировать орбитальную механику нашей Солнечной системы, правда, KSP не подойдет. Если вы хотите развить интуицию в общих чертах орбитальной механики, это фантастически хорошо.
Да, эта рекомендация очень плохая. Для вставок LLI KSP не учитывает требуемые изменения плоскости, поэтому общее количество требуемой дельты-V вообще неверно. Это просто игра, не используйте ее ни для чего, кроме обучения детей или игры.
Как сравнивается Orbiter с точки зрения моделирования орбитальной механики?
Новый мод Principia для KSP позволяет моделировать физику n тел, включая точки Лагранжа, границы слабой стабильности и т. д. Предупреждение, поскольку Кербин имеет гораздо меньший радиус, чем Земля, но имеет поверхностную гравитацию 1g (невероятно плотная), это не будет реалистично точным. без мода RSS (Real Solar System) и, возможно, Realism Overhaul (RO). @ Рикардо ЛЛИ или ТЛИ? Я точно знаю, что для выхода на любую наклонную орбиту вокруг Луны или возврата с нее мне всегда требуется больше дельта-V. Также имейте в виду, что наклон Муна равен 0, в отличие от Земли и Луны.
Орбитер намного точнее и соответственно сложнее в освоении. Если вам просто нужно визуализировать концепции, KSP, безусловно, лучший выбор. XKCD соглашается: google.com/…

Что касается игр/симуляторов, я наткнулся на Orbiter . Кажется, у него довольно много дополнений и форум . К сожалению, работает только под Windows.

Я согласен, Orbiter — блестящий симулятор, и с его сильным сообществом моддеров доступно несколько замечательных дополнений.
Я не тестировал его подробно, но Orbiter устанавливается и работает на Ubuntu 18.04 Linux с стабильной версией 3.0 довольно хорошо.

Бессовестная заглушка для Tudat (TU Delft Astrodynamics Toolbox) ...

Если вы ищете что-то, что дает вам большую свободу в настройке и экспериментах с симуляциями, вы можете рассмотреть проект C++ с открытым исходным кодом, над которым я работал последние несколько лет в рамках моей докторской диссертации. Большинство аспирантов в моей группе используют его, поэтому в него вложено много усилий.

Есть ли где-нибудь список характеристик? Я не мог найти ни одного.
На самом деле мы занимаемся оптимизацией документации, поэтому список функций все еще находится в стадии разработки. Вы можете найти рабочий список функций здесь: tudat.tudelft.nl/projects/tudat/wiki/Feature_documentation . Кроме того, интерфейсы задокументированы с помощью Doxygen: tudat.tudelft.nl/projects/tudat/wiki/Doxygen_API_documentation . Наконец, пакет, который можно загрузить, включает в себя два примера симулятора: один воспроизводит орбиты двух разных спутников вокруг Земли, а другой — упрощенную группировку Галилея.

Orekit — лучший инструмент космической механики, который я знаю. Разработанная на Java (кроссплатформенная), Orekit представляет собой библиотеку с открытым исходным кодом для космической динамики , основанную на Common Apache Math.

Несмотря на то, что пока у него нет инструмента визуализации, другая модель силы, которую он содержит, делает его действительно хорошим выбором, если вы планируете решить задачу точной динамики полета.

Orekit включает все доступные соглашения IERS для определения фрейма. Он включает орбитальные пропагаторы трех типов:
- аналитические (Кеплера, Экштейна-Хешлера, SDP4/SGP4 с поправками 2006 г.)
- числовые (с настраиваемыми силовыми моделями)
- полуаналитические пропагаторы на основе полуаналитической спутниковой теории Дрейпера (DSST) с настраиваемыми силовыми моделями .

Дополнительную информацию вы найдете по тому же адресу над надстройкой Rugged. Rugged — это инструмент картографирования «датчик-земля», который учитывает цифровые модели рельефа (DEM) при расчете линии прямой видимости. Это бесплатная библиотека промежуточного уровня, написанная на Java и реализованная как дополнение к Orekit.

Вот некоторые из функций, которые предоставляет Orekit:

Время

high accuracy absolute dates
time scales (TAI, UTC, UT1, GPS, TT, TCG, TDB, TCB, GMST, GST ...)
transparent handling of leap seconds

Геометрия

frames hierarchy supporting fixed and time-dependent (or telemetry-dependent) frames
predefined frames (EME2000/J2000, ICRF, GCRF, ITRF93, ITRF97, ITRF2000, ITRF2005, ITRF2008 and intermediate frames, TOD, MOD, GTOD and TOD frames, Veis, topocentric, tnw and qsw local orbital frames, spacecraft body, Moon, Sun, planets, solar system barycenter, Earth-Moon barycenter)
user extensible (used operationally in real time with a set of about 60 frames on several spacecraft)
transparent handling of IERS Earth Orientation Parameters (for both new CIO-based frames following IERS 2010 conventions and old equinox-based frames)
transparent handling of JPL DE 4xx (405, 406 and more recent) and INPOP ephemerides
transforms including kinematic combination effects
composite transforms reduction and caching for efficiency
extensible central body shapes models (with predefined spherical and ellipsoidic shapes)
cartesian and geodesic coordinates, kinematics

Состояние космического корабля

Cartesian, Keplerian (including hyperbolic), circular and equinoctial parameters
Two-Line Elements
transparent conversion between all parameters
automatic binding with frames
attitude state and derivative
Jacobians
mass management
user-defined associated state (for example battery status, or higher order derivatives, or anything else)

Распространение

analytical propagation models:
    Kepler
    Eckstein-Heschler
    SDP4/SGP4 with 2006 corrections
numerical propagation with:
    customizable force models:
        central attraction
        gravity models (automatic reading of ICGEM (new Eigen models), SHM (old Eigen models), EGM and GRGS gravity field files formats, even compressed)
        atmospheric drag (DTM2000, Jacchia-Bowman 2006, Harris-Priester and simple exponential models) and Marshall solar Activity Future Estimation
        third body attraction (with data for Sun, Moon and all solar systems planets)
        radiation pressure with eclipses
        solid tides, with or without solid pole tide
        ocean tides, with or without ocean pole tide
        general relativity
        multiple maneuvers
    state of the art ODE integrators (adaptive stepsize with error control, continuous output, switching functions, G-stop, step normalization ...)
    computation of Jacobians with respect to orbital parameters and selected force models parameters
    serialization mechanism to store complete results on persistent storage for later use
semi-analytical propagation based on Draper Semianalytic Satellite Theory (DSST) with customizable force models:
    central body with full gravity model
    third body attraction
    atmospheric drag
    radiation pressure with eclipses
tabulated ephemerides:
    file based
    memory based
    integration based
unified interface above analytical/numerical/semianalytical/tabulated propagators for easy switch from coarse analysis to fine simulation with one line change
all propagators can be used in several different modes:
    slave mode: propagator is driven by calling application
    master mode: propagator drives application callback functions
    ephemeris generation mode: all intermediate results are stored during propagation and provided back to the application which can navigate at will through them, effectively using the propagated orbit as if it was an analytical model, even if it really is a numerically propagated one, which is ideal for search and iterative algorithms
handling of discrete events during integration (models changes, G-stop, simple notifications ...)
predefined discrete events:
    eclipse (both umbra and penumbra)
    ascending and descending node crossing
    apogee and perigee crossing
    alignment with some body in the orbital plane (with customizable threshold angle)
    raising/setting with respect to a ground location (with customizable triggering elevation)
    date
    altitude crossing
    target detection in sensor field of view (circular or dihedral)
    complex geographic zones traversal
    impulse maneuvers occurrence
possibility of slightly shifting events in time (for example to switch from solar pointing mode to something else a few minutes before eclipse entry and reverting to solar pointing mode a few minutes after eclipse exit)

Отношение

extensible attitude evolution models
predefined laws:
    central body related attitude (nadir pointing, center pointing, target pointing, yaw compensation, yaw-steering)
    orbit referenced attitudes (LOF aligned, offset on all axes)
    space referenced attitudes (inertial, celestial body-pointed, spin-stabilized)
    tabulated attitudes

Обработка файла орбиты

loading of SP3-a and SP3-c orbit files
loading of CCSDS orbit data messages

Модели атмосферы

tropospheric delay (modified Saastamoinen)
geomagnetic field (WMM, IGRF)

Настраиваемая загрузка данных

loading from local disk
loading from classpath
loading from network (even through internet proxies)
support for zip archives
support from gzip compressed files
plugin mechanism to delegate loading to user defined database or data access library

Локализовано на нескольких языках

English
French
Galician
German
Greek
Italian
Norwegian
Romanian
Spanish

ПиЭфем :

PyEphem обеспечивает астрономические вычисления научного уровня для языка программирования Python. Учитывая дату и местоположение на поверхности Земли, он может вычислить положение Солнца и Луны, планет и их лун, а также любых астероидов, комет или спутников Земли, элементы орбиты которых может указать пользователь. Предусмотрены дополнительные функции для вычисления углового расстояния между двумя объектами в небе, для определения созвездия, в котором находится объект, и для определения времени восхода, прохождения и захода объекта в определенный день.

Числовые процедуры, лежащие в основе PyEphem, взяты из замечательного астрономического приложения XEphem , автор которого, Элвуд Дауни, любезно разрешил нам использовать их в качестве основы для PyEphem.

jovian_moon_chart.py

Этот скрипт распечатывает расположение спутников Юпитера вокруг Юпитера в течение следующих нескольких дней.

import ephem

moons = ((ephem.Io(), 'i'),
         (ephem.Europa(), 'e'),
         (ephem.Ganymede(), 'g'),
         (ephem.Callisto(), 'c'))

# How to place discrete characters on a line that actually represents
# the real numbers -maxradii to +maxradii.

linelen = 65
maxradii = 30.

def put(line, character, radii):
    if abs(radii) > maxradii:
        return
    offset = radii / maxradii * (linelen - 1) / 2
    i = int(linelen / 2 + offset)
    line[i] = character

interval = ephem.hour * 3
now = ephem.now()
now -= now % interval

t = now
while t < now + 2:
    line = [' '] * linelen
    put(line, 'J', 0)
    for moon, character in moons:
        moon.compute(t)
        put(line, character, moon.x)
    print str(ephem.date(t))[5:], ''.join(line).rstrip()
    t += interval

print 'East is to the right;',
print ', '.join([ '%s = %s' % (c, m.name) for m, c in moons ])
3/2 12:00:00                         g e     J   i                    c
3/2 15:00:00                        ge       J    i                    c
3/2 18:00:00                      g e        J     i                   c
3/2 21:00:00                     g e         J    i                    c
3/3 00:00:00                    g  e         J  i                       c
3/3 03:00:00                   g   e         Ji                         c
3/3 06:00:00                  g    e       i J                          c
3/3 09:00:00                  g     e   i    J                          c
3/3 12:00:00                 g       e i     J                          c
3/3 15:00:00                 g        ie     J                          c
3/3 18:00:00                 g         i e   J                          c
3/3 21:00:00                 g           i e J                          c
3/4 00:00:00                 g             i e                          c
3/4 03:00:00                  g              Jie                        c
3/4 06:00:00                  g              J  ie                      c
3/4 09:00:00                   g             J    ie                   c
East is to the right; i = Io, e = Europa, g = Ganymede, c = Callisto
PyEphem не вычисляет орбиты для гипотетических объектов, он только сообщает вам, где находятся реально существующие объекты.
@barrycarter: Что мешает пользователю ввести гипотетические элементы орбиты?
Вы правы, моя ошибка! rhodesmill.org/pyephem/quick.html#bodies-with-orbital-elements отмечает, что вы можете создавать тела с вашими собственными элементами орбиты. Я знаю, что pyephem использует DE421 для определения положения планет, и просто предположил, что он использует аналогичные данные для планетарных спутников. На самом деле, я знал, что это не так, поскольку я явно запросил это как функцию для Skyfield, преемника pyephem: github.com/brandon-rhodes/python-skyfield/issues/19 .
@barrycarter Действительно ли это дает точные результаты, учитывая эффекты Луны, Солнца и зональных гармоник? Также мы можем рассмотреть Юпитер и Венеру.

Вот еще несколько вещей, в зависимости от того, что вы ищете...

ВЕБ

Хотя это и не симулятор орбитальной механики, я нашел этот браузер траекторий от НАСА интересным.

Больше похоже на игру приложение запуска LEO и симулятор запуска .

Есть 3D-симулятор JPL и Симулятор объектов, сближающихся с Землей (оба веб-интерфейсы). Также есть симулятор JPL SSD и вот несколько кратких инструкций по началу работы . Вот так:

система

*никс

Для систем *nix (linux, unix) также есть набор инструментов FERMI с обзором здесь .

Windows-ПК

Популярная и бесплатная игра - орбитальный симулятор в 3D, упомянутый охотником на оленей.

iTraject может быть очень полезен для изучения орбитальной механики. Его численный решатель делает его очень гибким. Он также использует очень точные астрономические алгоритмы для астрономических положений. Фактически вы можете установить начальную дату, с помощью аналитических расчетов предсказать, когда ваш автомобиль окажется в SOI Луны, и совершить облет Луны. Кроме того, вы можете получить параметры наземной станции, эпохи и кеплеровских элементов с текущим временем.

вот видео: http://www.youtube.com/watch?v=msCEdOq5WhI

Обратите внимание, что если вы связаны с приложением, вы должны четко указать это в сообщении. В противном случае спасибо за информацию.

Вы можете попробовать Stellarium для определения местоположения большинства небесных объектов из земного кадра. Насколько я знаю, он очень хорошо работает в Linux, а также доступен для OS X и Windows.

Stellarium не вычисляет орбиты гипотетических объектов, он только сообщает вам, где находятся реально существующие объекты.

Эрик Стоункинг / Центр космических полетов имени Годдарда НАСА делится «42» как (в основном безвредным) моделированием динамики космического корабля.

Он кроссплатформенный, имеет различные возможности и в целом является отличным инструментом.

https://github.com/ericsstoneking/42

Посмотрите PIGI от Sabre Astronautics. https://saberastro.com/

На сегодняшний день лучшая графика и отличная простота использования, потрясающие для визуализации орбит на всех планетах.

Их обычная лицензия стоит всего 15 долларов в месяц, так что на нее стоит обратить внимание. ПК и Mac.

https://saberastro.com/products/

Эта ссылка ведет не туда.