English Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 1 из 212»
Форум » SpaceEngine » Моддинг и дополнения » Калькулятор орбит КА (утилита для расчета орбит КА при полете внутри системы)
Калькулятор орбит КА
duborДата: Вторник, 19.05.2015, 18:13 | Сообщение # 1
Космонавт
Группа: Пользователи
Пират
Сообщений: 65
Награды: 0
Статус: Offline
Чтобы не совсем уже пустую тему создавать, сначала картинка, того что уже есть:


А вообще цель такая:
написать калькулятор для расчета траектории КА
- задаем звездную/планетарную систему (на картинке орбиты 23 спутников Юпитера)
- задаем параметры КА (какие двигатели, какой запас реактивной массы, масса самого КА и т.п.)
- задаем желаемые параметры орбиты (крайние параметры по времени полета или расходу реактивной массы)
- получаем варианты траекторий с раскладкой по маневрам (тут двигатель работает, тут баллистический полет, тут гравитационный маневр и т.п.)

Хочется советов/литературы:
- есть ли аналоги таких калькуляторов (из более менее вменяемого видел что-то такое для Kerbal)
- м.б. есть хорошая литература или статьи

Пока более менее ясная картина/литература есть для ограниченной задачи трех тел - это то, что для полетов на луну использовали. Для межпланетных перелетов есть общие слова, что орбиту надо делить на три участка с учетом сферы действия планет/звезды.

А еще буду рад предложениям по функционалу, интерфейсу: в каком виде и что было бы полезно? (у меня все это пока стихийно складывается, начинал вообще только с одного окна с кеплеровскими орбитами спутников Юпитера)
Прикрепления: 8603636.png(143Kb)


Сообщение отредактировал dubor - Вторник, 19.05.2015, 18:15
SpaceEngineerДата: Вторник, 19.05.2015, 22:52 | Сообщение # 2
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5542
Награды: 54
Статус: Offline
Да такое для SE надо.

AerospacefagДата: Вторник, 19.05.2015, 23:40 | Сообщение # 3
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
Автоматические гравитационные и прочие маневры - это очень, очень полезная штука, и сейчас вряд ли кто-то всербез этим занимается кроме разве что KSP и Orbiter, но я должен заметить что здесь легко загнать себя в тупик со слишком комплексными системами. Я этим занимался одно время на уровне геймплея (я не программист), так что можете задавать общие вопросы.

Цитата dubor ()
есть ли аналоги таких калькуляторов (из более менее вменяемого видел что-то такое для Kerbal)

Существует калькулятор с жестко заданными параметрами для KSP и по крайней мере один раз он для меня сработал отлично.
http://alexmoon.github.io/ksp/

То же самое в виде мода внутри игры:
http://forum.kerbalspaceprogram.com/threads....(May-5)

Основной, самый древний, калькулятор вот:
http://ksp.olex.biz

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


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5
mr-colobocДата: Среда, 20.05.2015, 11:05 | Сообщение # 4
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 268
Награды: 0
Статус: Offline
Чет космо-огород сразу вспомнил...

А есть веб-версия калькулятора? А то у меня мой убер-комп сломался, не могу посмотреть...

Я б расписал абсолютно все по этой теме к вечеру, в плане управления кораблем, у меня знаний много.
duborДата: Среда, 20.05.2015, 17:39 | Сообщение # 5
Космонавт
Группа: Пользователи
Пират
Сообщений: 65
Награды: 0
Статус: Offline
Цитата mr-coloboc ()
Я б расписал абсолютно все по этой теме к вечеру, в плане управления кораблем, у меня знаний много.


я бы почитал =)

а веб-версия - нету. т.к. десктоп приложение и веб-приложение большие две разницы )
mr-colobocДата: Среда, 20.05.2015, 23:19 | Сообщение # 6
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 268
Награды: 0
Статус: Offline
Так ладно, я обещал, я наклепаю.

И так, что б не захламлять весь тред, лучше будет все запихать под спойлер, потому что... Потому что. Если надо, запихайте куда хотите, мне пофиг. Я главное инфой поделися, там уж сами разбирайтесь.

Начнем


Заранее предупреждаю: Все что написано выше вызовет лютую экзотермическую реакцию в области копчика в большинстве у проффесионалов и SEr'a, потому что я не ученый, а опираюсь на практику ksp, книги по астродинамике, и личный опыт строения (sic!) ракет. Да, я как-то строил ракеты и пытался посчитать орбиты. Вышло удачно.

У мена пока все.

P.S. Единственное, я расписал это все для космических объектов тоже просто потому, что этим надо заняться ничуть не менее, чем КА.


Сообщение отредактировал mr-coloboc - Среда, 20.05.2015, 23:30
AerospacefagДата: Четверг, 21.05.2015, 00:09 | Сообщение # 7
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
Цитата mr-coloboc ()
чем меньше обьект, тем больше его будут называть школотой, тем меньше его влияние на раёне во вселенной. Но это не значит, что на него ничто не влияет. Поэтому можно (я не знаю правда как это будет в коде выглядеть) запилить что-то вроде последовательного расчета. Сначал отбираются самые жирные толстые массивные карликиобъекты, а затем распределяются в порядке убывания жира массы. Это стоит сделать один раз и редактировать каждый раз, когдапоявлется новый объект (привет, Oracle Dataspace!). Затем сначала ищется самый <s... Не, ну нафиг, хватит черкать... Самый массивный обьект. Затем, к нему пристраивается второй (отрисовывается на карте, если они в разных уголках вселенной, то нет расчета орбит), затем третий, если они не рядом, то идем дальше... И так далее, и так далее.

А что если я скажу тебе, что это называется "численное интегрирование"?



Вообще я вспомнил - вроде бы в гайдах к орбитеру были точные формулы для расчета всяческих орбит, выставлены на показ, читай - не хочу.

http://www.kulch.spb.ru/Rus/documentations.shtml
Прикрепления: 4944872.jpg(52Kb)


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5


Сообщение отредактировал Aerospacefag - Четверг, 21.05.2015, 12:32
NuclearCHEДата: Четверг, 21.05.2015, 05:04 | Сообщение # 8
Первооткрыватель
Группа: Пользователи
Российская Федерация
Сообщений: 435
Награды: 0
Статус: Offline
mr-coloboc, проблемы в расчётах движения небесных тел связаны не с точностью, а с появлением бифуркаций после определённого количественного промежутка. Решений уравнения движения становится очень много.
64 бит на текущий момент вполне достаточно, ведь 2^64 = 18 446 744 073 709 551 616, это довольно много.


Config: Gigabyte GTX 770 (2048 MB/256 bit) , Intel Core i5 2400 3,1GHz, 8Gb DDR3, W10 x64
mr-colobocДата: Четверг, 21.05.2015, 10:30 | Сообщение # 9
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 268
Награды: 0
Статус: Offline
NuclearCHE, повторюсь: Мало для вселенной.

Aerospacefag, пасиб, теперь буду знать)

Я сейчас просто объясню,почему мало.
Суть в том, что, опять же, чем меньше погрешность, тем лучше. Двойная точность по сравнению с четверной заглатывает по самое небалуй, уменьшает вероясть "фантомного ускорения", как в KSP. Вспоминаем Вликого и Могучего Кракена, который взрывал корабли на орбите из-за, как раз, невероятного ускорения. Может, да, это по-факту погрешность проявится лет через 20. Но что вы будете делать, когда пройдет 20 лет (с таким промежутком я утрирую, но почему бы таки и нет)? Ну не будете же вы каждый обьект выравнивать так, как надо, верно?
Вот как раз в этом и будет заключаться проблема всево и всея.

Добавлено (21.05.2015, 09:30)
---------------------------------------------
Да, забыл. Уменьшайте это число вдвое, потому что есть еще и отрицательные числа, которые нельзя не выделить.

Добавлено (21.05.2015, 10:30)
---------------------------------------------
Спросить забыл: А посмотреть саму прогу, потестить, можно?

Сообщение отредактировал mr-coloboc - Четверг, 21.05.2015, 09:28
duborДата: Четверг, 21.05.2015, 11:07 | Сообщение # 10
Космонавт
Группа: Пользователи
Пират
Сообщений: 65
Награды: 0
Статус: Offline
Цитата mr-coloboc ()
Чуть позже распишу, собственно, планировку орбит для космических кораблей.


Собственно, эта часть и интересна. А уже написанное - достаточно очевидные вещи. И в текущей версии пока что никак не учитываемые: есть законы Кеплера, есть формулы и уравнения. Есть известные параметры орбит. Поэтому движение тел вычисляется по формулам БЕЗ учета влияния остальных малых/удаленных тел просто по параметрам орбиты.

а текущую версию программы я, наверно, на гитхаб или сорсфордж выложу


Сообщение отредактировал dubor - Четверг, 21.05.2015, 11:09
NuclearCHEДата: Четверг, 21.05.2015, 15:10 | Сообщение # 11
Первооткрыватель
Группа: Пользователи
Российская Федерация
Сообщений: 435
Награды: 0
Статус: Offline
mr-coloboc, не существует общего решения даже для задачи трёх тел. Ты же хочешь работающую модель галактики/вселенной.

Config: Gigabyte GTX 770 (2048 MB/256 bit) , Intel Core i5 2400 3,1GHz, 8Gb DDR3, W10 x64
mr-colobocДата: Воскресенье, 31.05.2015, 15:05 | Сообщение # 12
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 268
Награды: 0
Статус: Offline
Меня очень ОЧЕНЬ О Ч Е Н Ь сильно за**ал это дибилный редактор комментариев (потому что страница постоянно закрывается блджад), поэтому я написал кусок текста у себя в своей группе. https://m.vk.com/public63452738#wall читать сверху вниз, картинки прилагаются.

извините, что так неудобно, но это единственный способ сделать хотя бы так.
AerospacefagДата: Воскресенье, 31.05.2015, 17:06 | Сообщение # 13
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
mr-coloboc, есть старый документ, котрый я написал где-то года 4 назад, по поводу навигации в космосе. Как ни странно, он еще жив. Я советую почитать тему http://spaceengine.org/forum/11-24-1 с самого начала, чтобы получить небольшое представление о том, как у нас изначально все планировалось.

http://spaceengine.org/_fr/0/_SE.doc

Естественно, чтобы сократить объем чтения, я могу сказать, что от идеи постоянно работающих двигателей мы отказались. Вместо этого пока что предлагается использовать обычную орбитальную механику с переходными орбитами, как в Kerbal Space Program, только без особых ограничений по топливу.


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5


Сообщение отредактировал Aerospacefag - Воскресенье, 31.05.2015, 17:16
mr-colobocДата: Воскресенье, 31.05.2015, 20:28 | Сообщение # 14
Нет аватара
Исследователь
Группа: Пользователи
Российская Федерация
Сообщений: 268
Награды: 0
Статус: Offline
Aerospacefag, я как раз эту тему с 1 до 306 поста прочитал, перед тем, как начинать с первого комментария к этой теме)

За документ спасибо, в нем полезной инфы не много, но ее наверняка трудно в интернете найти) спасибо
duborДата: Понедельник, 08.06.2015, 13:43 | Сообщение # 15
Космонавт
Группа: Пользователи
Пират
Сообщений: 65
Награды: 0
Статус: Offline
Чтобы не потерялось. Из удачной литературы по поводу расчета орбит нашел вот это: http://keldysh.ru/papers/2013/prep2013_22.pdf

В этой pdf в на данный момент интересны два приложения в конце (по страничке на каждое):
- как, зная истинную аномалию, найти положение и вектор скорости тела на орбите
- то же, но добавляется учет начального положения тела на определенный момент времени (это чтобы можно было посчитать положение и скорость для реальных тел на конкретную дату)

Еще сам когда-то оформлял в виде отдельного документа про то же самое:
https://goo.gl/0IbHfi - как посчитать положение небесного тела зная параметры орбиты и время. Но тут описывается "плоская" задача, т.е. повороты плоскости орбиты для перехода к 3х мерной системе координат надо осуществлять дополнительно.

Теперь по вычислениям орбитальных маневров:

Везде констатируется, что вычисление положения тела на орбите в определенный момент времени, к сожалению, аналитически не решается. Но легко (и быстро) решается численно. Тут-то и закопан корень всех зол. Потому что обратную задачу (как, зная координаты, получить время) тоже приходится решать численно. И невозможно взять готовую формулу "координаты <-> время" чтобы покрутить ее и сформулировать систему уравнений для задачи вида "в какую точку пространства и как надо лететь, чтобы вылетев из A попасть в движущуюся точку B".

Тут приходится иметь дело с двумя орбитами: орбита движения точки B (куда летим) и орбита движения КА (которую мы вообще не знаем и хотим найти). При этом прямая задача (зная параметры обеих орбит сказать будет ли совпадение в определенный момент времени) численно решается влет. А вот обратная задача (зная, что должно быть совпадение, найти орбиту КА), видимо, требует перебора орбит. Сам перебор может вестись осмысленно каждый раз давая все более близкую к искомой орбиту КА, но в любом случае это будет перебор.

И это при движении КА по баллистической орбите (когда он НЕ маневрирует в процессе перелета)! Если мы добавляем гравитационный маневр или дополнительный маневр где-то в пути, сложность перебора возрастает кратно. А если двигатель вообще не выключается и мы им начинаем активно рулить, то считать все это... брр.

Виды перелетов:

Орбиты перелета подбираются таким образом, чтобы минимизировать один из параметров:
- энергетический (расходы топлива)
- временной
- длинны траектории

В настоящее время перелеты КА минимизируются в энергетическом плане. Низкая скорость истечения реактивной струи (средние значения: 7-8 км/сек) ВЫНУЖДАЕТ включать двигатели только на короткое время из-за дикого расхода реактивной массы. Немного помогают дополнительные гравитационные маневры, когда можно получить дополнительную скорость просто пролетев рядом с массивным телом. Но это все приводит к увеличению длительности полета (можно посмотреть в pdf, ссылка на которую приведена в начале этого поста, сколько обычно витков надо навернуть, чтобы использовать гравитационный маневр).

Есть еще ионные двигатели, у которых более высокая скорость истечения реактивной массы (десятки км/сек), а значит и меньший расход реактивной массы. Но сейчас с ними беда в максимальной тяге, которую они способны развивать: чтобы разогнать до той же скорости, что и химические двигатели, им надо работать ГОРАЗДО дольше. Но расход массы будет меньше, это да.

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

Собственно, сейчас я сижу как раз над расчетами именно таких перелетов: летим по прямой с ускорением/торможением, скажем, 1g. Получаем, как минимум, комфортную гравитацию и малое время перелета (земля-лунв - 2 часа 26 мин, земля - марс, 56 часов и т.п.).

Но и тут движение по прямой надо усложнять: на летящий КА по прежнему действуют ближайшие космические тела, искривляющие его траекторию. И конечная точка тоже двигается, поэтому лететь надо с упреждением. Такие дела.

А пока запланированы такие варианты орбит перелета:
1) баллистический (в т.ч. с гравитационным маневром)
2) с постоянно включенным двигателем малой тяги (ионники)
3) с постоянным ускорением/торможением (как для ионников, но тяга кратно больше)

У кого есть материалы/идеи/варианты/алгоритмы, как это считать - добро пожаловать в эту тему. Ну или просто кому-то хочется обсудить, что еще сюда можно добавить.
Форум » SpaceEngine » Моддинг и дополнения » Калькулятор орбит КА (утилита для расчета орбит КА при полете внутри системы)
Страница 1 из 212»
Поиск:

>