Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

Расчет траектории при движении на орбите   Найти похожие ветки 

 
Orbital   (2004-08-17 13:49) [0]

Есть корабль, который находится в поле притяжения планеты. Известна сила притяжения и многие другие параметры. Как эффективней перейти на другую орбиту? Может кто ссылки посоветует?


 
Рамиль ©   (2004-08-17 13:59) [1]

А с решением системы дифуравнений в частных производных справишься?


 
DSA ©   (2004-08-17 14:23) [2]

Тяжелый случай. А тебе зачем это надо?


 
марсианин ©   (2004-08-17 14:48) [3]

тебе прям параметры орбиты нужны (что-то типа уравнений траектории)? или чтоб он просто вращался, моделировать полет не пойдет?

второе сделать проще. а первое ищи в гугле


 
NailMan ©   (2004-08-17 15:32) [4]

Вообще-то тут используются законы движения Кеплера и Ньютона. Нафик дифуры...

---
WBR, NailMan aka 2:5020/3337.13


 
Orbital   (2004-08-18 15:44) [5]

У меня есть спутник - движется по орбите, я могу придать ему ускорение в любом направлении. Изначально он стабилизирован - движется по орбите. Мне нужно перевести его на другую орбиту так, чтобы он потом там и остался.


 
марсианин ©   (2004-08-18 18:03) [6]

ага, тебе нужно понять в каком направлении работать двигателями, чтоб занять другую орбиту?

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

планета у тебя там 1?


 
}{enon ©   (2004-08-18 18:23) [7]

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


 
Orbital   (2004-08-19 11:11) [8]

[6] Да. Уравнения все есть. Мне нужно стабилизировать скорость. Т.е. я изменил расстояние до центры к звезде и мне нужно стабилизировать результирующую скорость так, чтобы я остался на этой орбите. Планета одна.
[7] Не понял, лучше объясни на пальцах. Орбита может быть любой формы, это зависит от того куда было приложено ускорение и на каком расстояние я от планеты.

Формулы для вычисления компонент:
d2:= x[i]*x[i]+y[i]*y[i];
d:= sqrt(d2);
u:= u + accel * cos(angle[i]);
v:= v + accel * sin(angle[i]);
u:= u - G*x[i]/d/d2;
v:= v - G*y[i]/d/d2;


u - компонента x
v - компонента y
angle - угол приложение ускорения равного accel
Вычисление перемещения в след точку:
x:= x + u;
y:= y + v;


Например, стабильное состояние:
x:=18, y:= 0, u:= 0, v:= -0,33


 
Думкин ©   (2004-08-19 11:36) [9]

1. Есть орбита.
2. Для нее есть энергия = кинетическая + потенциальня = const(можно посчитать не только для кругов, но и для других кривых второго порядка - в любом учебнике по аналитической механике).
3. Следовательно в любой точке орбиты мы можем посчитать скорость движения.
4. Когда ты выйдешь на нужную тебе орбиту - то в этой точке посчитай нужную скорость(скаляр) и направь ее по касательной к орбите.
5. все.


 
Думкин ©   (2004-08-19 11:39) [10]

> Когда ты выйдешь на нужную тебе орбиту

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


 
Orbital   (2004-08-19 12:15) [11]

Ускорение мгновенные, но есть ограничение - предел ускорения, то есть за единицу времени я не могу ускорится более чем на MAX_ACC


 
Orbital   (2004-08-19 12:16) [12]

Забыл в [8] const G=2;


 
Думкин ©   (2004-08-19 12:19) [13]

Мгновеные - я имел ввиду бесконечные. :) описАлся.


 
Orbital   (2004-08-19 12:37) [14]

[9] Допустим я совершил переход, я передал ускорение в направление к центру звезды. Как тогда можно стабилизировать скорость под орбиту не убирая это ускорение? Ведь если считать через потенциальную и кин. энергию по твоему методу, то не учитывается это ускорение. Еще следует помнить, что движение происходит по инерции.


 
Думкин ©   (2004-08-19 13:07) [15]

Э.... тебе тогда еще физику подучить надо. Какое ускорение?
Трудность в том чтобы удержаться на орбите. Для этого надо чтобы скорость соответствовала этой орбите в данной точке. Как только это произойдет - ты спокойно выключаешь все двигатели и летишь по этой самой орбите.
Но выйти так - очень трудно. Если втупую подлететь, то скорость не будет соответствовать - ни по величине, ни по направлению. Надо будет подправлять ее, но при этом ты будешь слетать с этой орбиты и опять подлетать при этом все это будет меняться.
Задача не так проста. Надо некоторое время подумать. Или поискать что-нибудь.
Проблема в центре притягивающем и ограничении на ускорение. Если без центра - то можно задать режим, чтобы при переходе от одной точки к другой изменить вектор скорости(величина и направление). Но так - .... :(


 
Orbital   (2004-08-19 13:13) [16]

Давайте разберем поэтапно.
1. Я нахожусь в двухмерном пространстве. Мои координаты - (18, 0). Центр звезды - (0, 0).
2. На меня действует сила притяжения равная G/d^2, где d - расстояние до центра звезды. Также у меня есть  есть своя собственная скорость направленная по касательной к орбите и равная корню G/d. Т.е. скорость стабилизированы и выполняется закон a_цс = V^2 / r, то есть движение происходит по окружности. Т.е. моя скорость стабилизирована так, что я я просто вращаюсь по орбите. При этом компоненты в начальной точке будут: kx = 0, ky = 0,333
3. Допустим я захотел перелететь на другую орбиту, дал газу.
4. Компоненты изменились: kx = kx + мощность*cos(направление),
ky = ky + мощность*sin(направление)
5. Я нахожусь в какой-то точке пространства и знаю компоненты скорости и свои координаты. Возникает вопрос.
6. Как стабилизироваться? Т.е. требуется сделать так, чтобы точка, в которой я нахожусь, принадлежала новой орбите (окружность). Т.е. я должен еще куда-то добавить ускорение, чтобы я смог летать вокруг планеты по кругу.
7. За раз я могу действовать только в одном направлении (ускоряться).


 
Думкин ©   (2004-08-19 13:44) [17]

> kx = kx + мощность*cos(направление),
> ky = ky + мощность*sin(направление)

А где сила притяжения?
G/d^2 - не сила. Или что такое G?


 
Orbital   (2004-08-19 13:51) [18]

Да, каждый турн действует сила, см. выше:
u:= u - G*x[i]/d/d2;
v:= v - G*y[i]/d/d2;


ну или формула принимает вид:
kx = kx + мощность*cos(направление) - G*x/d^3
ky = ky + мощность*sin(направление) - G*y/d^3

Сила тяжести - G/d^2


 
Думкин ©   (2004-08-19 13:56) [19]

Сила тяжести - m1*m2*G/d^2 - модуль.
Это понятно - но на пальцах не решишь.


 
Orbital   (2004-08-19 16:04) [20]

массы тут не учитываются, это модель :), только гимора это не отбавляет :(


 
Думкин ©   (2004-08-19 20:35) [21]

0. Нужно найти именно на окружности. - для простоты.
1. Лучше перейти к полярным координатам.
2. При движении по орбите радиальная составляющая скорости 0, для каждой орбиты - своя угловая скорость.
3. Скорости Vw(t) и Vr(t).
4. Ускорение из двух составляющих - угловая и радиальная - AW(t) и Ar(t).
5. AW = Aw1+Aw2. Aw1=Vr^2/R
6. Скорость на первом радиусе V1 на втором V2. Ускоряемся время T. Начальный момент 0. Первую космическую для радиуса R обозначим VR.
7. Тогда получаем следующие ограничения:

а. Интеграл от 0 до Т от Aw2(t) = V2-V1
б. Интеграл от 0 до Т от Ar(t) = 0
в. Интеграл от 0 до Т от Vr(t) = 0
г. sqrt((Aw2+(VR^2-Vr^2)/R)^2+Ar^2) < MAX_ACC

Исходя из этого и надо подбирать Aw,Ar,T. Решений много.

Возможно ошибаюсь, надо будет еще посмотреть более детально.


 
Думкин ©   (2004-08-19 20:40) [22]

Сорри, вечер - исправление:
4. Ускорение из двух составляющих - угловая и радиальная - Aw(t) и AR(t).
5. AR = Ar1+Ar2. Ar1=Vr^2/R

б. Интеграл от 0 до Т от Ar2(t) = 0
г. sqrt((Ar2+(VR^2-Vr^2)/R)^2+Aw^2) < MAX_ACC


 
марсианин ©   (2004-08-20 14:03) [23]

2[21] Думкин ©   (19.08.04 20:35)

зачем же так сложно? не, возможно все это правильно, но я просто не понимаю зачем?


Трудность в том чтобы удержаться на орбите. Для этого надо чтобы скорость соответствовала этой орбите в данной точке. Как только это произойдет - ты спокойно выключаешь все двигатели и летишь по этой самой орбите.


разве это так? т.е ч-з любую точку можно пролетать только с 1 скоростью (по орбите)?

2Orbital

что значит ДРУГАЯ орбтита? та, которую ты хочешь?

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

любую орбиту можно охарактеризовать
а) общей энергией (потенц + кинетич), как указали в [9] Думкин ©   (19.08.04 11:36)

б) моментом (вектором ес-но) орбиты.. т.е вообще говоря напрвлением куда вращаемся..

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

если знаешь всякие там апогеи и перигеи (их высоты и положение), то и энергию и момент можно вычислить...

кстати, что значит, что орбита устойчива?

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

б) оно не врежется в Землю. если радиус нашей планеты устремить к 0, то в нее никогда ничего не врежется и любая орбита, удовлетворяющая п. а) будет устойчива.

и еще в) если мах скорость на орбите не превысит скорсть света.. но это совсем другая история...


 
марсианин ©   (2004-08-20 14:07) [24]

литературный талант у меня, конечно, "хорош".. :)  если что не понятно, спрашивайте -- уточню)


 
Думкин ©   (2004-08-20 14:28) [25]

> [23] марсианин ©   (20.08.04 14:03)
> разве это так? т.е ч-з любую точку можно пролетать только с 1 скоростью (по орбите

Не совсем понял. но попробую.

Если мы в свободном полете - то мы летим по орбите в каждой точке которой имеем вполне определенное значение. Если вы имеете в виду скорсоть не только как модуль, но и вектор, то да - скорость в данной точке(при выключенном двигетеле) - полностью определяет траекторию полета. При этом это могут быть траектории:
1. Эллипс.
2. Парабола
3. Гипербола.
Рассматриваем движения без столкновения. Форма определяется именно:
общей энергией (потенц + кинетич).

И почему сложно? Рассматриваем движение в одной плоскости. Имеем 2 окружности - надо перейти с одной на другую. Если просто изменить характеристики - то нет гарантии что вы попадете на окружность - вы можете начать двигаться по эллипсу.


 
Orbital   (2004-08-21 23:12) [26]

Мдя, запутываться начинаю, видать придется что-от попроще делать :) Наверно, остановлюсь на просчете нескольких турнов вперед (рекурсия) и стабилизации на каждом шаге (+просчет), т.е. каждый турн я буду получается выравнивать скорость, выбирая наиболее пригодный вариант из тех, которые найдены. Пробный тест дает результат - 3 хода на стабилизацию. Конечно, хотелось маленько другого - задал орбиту, посчитал и там очутился :), но видать не выйдет.


 
Думкин ©   (2004-08-22 05:53) [27]

> [26] Orbital   (21.08.04 23:12)

Почему не выйдет? Все описано. Глаза боятся - руки делают.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.037 c
4-1097650637
Lingo
2004-10-13 10:57
2004.12.26
Как добавить новый язык в систему


3-1101731240
dedMazDie
2004-11-29 15:27
2004.12.26
Создание запроса


1-1103010929
Gek1
2004-12-14 10:55
2004.12.26
Переход на Delphi 2005


1-1102677491
PalPalych
2004-12-10 14:18
2004.12.26
Регистрация пакетов "BPL".


1-1102666608
Игорь нтк
2004-12-10 11:16
2004.12.26
DBNavigator





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский