Модель приталкивания 3D

Рассуждения на различные темы
Anrie01
Пользователь
Сообщения: 952
https://www.youtube.com/watch?v=pOfik9PN3Rw
Зарегистрирован: 16 янв 2017, 23:26
Репутация: 404
Настоящее имя: Андрей
Откуда: Тольятти

Re: Модель приталкивания 3D

Сообщение Anrie01 »

Из обьяснений Армена, что присутствие обьекта в поле БГП создает изменение напряженности, а уже изменение напряженности поля БГП приводит обьект в движение, и при этом сами обьекты на друг друга никак не влияют, только на БГП, получился вот такой алгоритм приталкивания. По тексту программы задавайте вопросы, постараюсь ответить.
в симуляции используется три движущихся обьекта - Луна и Земля расстояние 384748 км, падающее яблоко 1 км над поверхностью планеты.
Перигей и Апогей у Луны получились не совсем как заявлено , но какие получились, эллипсность - 441.267 км
Но яблоко упало на планету с высоты 1 км за 14 сек. С кристаллической решеткой я пока работать не умею, поэтому после контакта яблока с поверхностью планеты в программе напряженность поля БГП перед яблоком и после него, принудительно ставится одинаковое значение.
Принцип ускорения в поле БГП следующий - если напряженность поля слева от обьекта больше чем справа, то обьект ускоряется направо. Если справа больше, то ускоряется налево. При равных значениях слева и справа ускорение равно 0.

Let Max = 0 - не знаю значение БГП для Вселенной, по этому пока значение 0, а можно и что то большее использовать (для расчета не важно).
Let pi = 3.1415927
Let rmin = 1E+302
Let g = 0.0000000000667 - гравитационная постоянная
Let mz = 5.9726E+24 - масса Земли
Let ms = 7.3477E+22 - масса Луны
Let k = mz + ms - общая масса для вычисление их общего центра вращения
Let r = 384748000 - расстояние между ними
Let t = 2360591.5 - время полного оборота Луны вокруг Земли
Let ma = 0.15 - масса яблока, ( для вычислений не важно)
Let ra = 6372000 - высота падения яблока 1 км

0
Let vs = 2 * r * pi / t + h1 + h2 - орбитальная скорость
Let xsi = h1 - первоначальная скорость Луны по инерции, ось Х
Let ysi = -vs * mz / k - ... относительно общего центра масс, ось У
Let xzi = -h2 - первоначальная скорость Земли по инерции, ось Х
Let yzi = vs * ms / k - ... относительно общего центра масс, ось У
Let xz = -r * ms / k - координата Х Земли относительно общего центра масс
Let xs = r * mz / k - координата Х Луны относительно общего центра масс
Let ys = 0 - координата У Луны
Let yz = 0 - координата У Земли

Let xa = xz + ra + h3 - координата Х яблока
Let ya = 0 - координата У яблока
Let yai = yzi - скорость движения Яблока по орбите = скорость движения Земли

For t = t * 1 To 0 Step -1 - расчет траекторий движения производится по секундно

Let lx = xs - xz - расстояние Луна - Земля по оси Х
Let ly = ys - yz - расстояние Луна - Земля по оси У
Let l = Sqr(lx ^ 2 + ly ^ 2) - общее расстояние между ними
If l > rmax Then Let rmax = l: Let tmax = t - Апогеи и время
If l < rmin Then Let rmin = l: Let tmin = t - Перигей и время

Let sbgp1 = Max - g * mz / (l - 1) ^ 2 - Напряженность поля БГП для Луны ближе на 1 метр к Земле
Let sbgp2 = Max - g * mz / (l + 1) ^ 2 - Напряженность поля БГП для Луны дальше на 1 метр от Земли
Let zbgp1 = Max - g * ms / (l - 1) ^ 2 - Напряженность поля БГП для Земли ближе на 1 метр к Луне
Let zbgp2 = Max - g * ms / (l + 1) ^ 2 - Напряженность поля БГП для Земли дальше на 1 метр от Луны
Let a1 = Max - (sbgp1 + sbgp2) / 2 - вычисление ускорение для Луны, среднее значение двух напряженностей
Let a2 = Max - (zbgp1 + zbgp2) / 2 - вычисление ускорение для Земли, среднее значение двух напряженностей
If sbgp1 - sbgp2 > 0 Then Let a1 = -a1 Else If sbgp1 - sbgp2 = 0 Then Let a1 = 0 - для Луны, если напряженность поля больше, то направление ускорения меняется на противоположное, или если равны, то ускорение равно 0
If zbgp1 - zbgp2 > 0 Then Let a2 = -a2 Else If zbgp1 - zbgp2 = 0 Then Let a2 = 0 - для Земли

Let lxa = xa - xz - расстояние яблоко - Земля по оси Х
Let lya = ya - yz - расстояние яблоко - Земля по оси У
Let la = Sqr(lxa ^ 2 + lya ^ 2) - общее расстояние между ними
Let abgp1 = Max - g * mz / (la - 1) ^ 2 - Напряженность поля БГП для яблока ближе на 1 метр к Земле
Let abgp2 = Max - g * mz / (la + 1) ^ 2 - Напряженность поля БГП для яблока дальше на 1 метр от Земли
If la <= 6371000 Then - если яблоко и планета столкнулись
If fa = 0 Then Let fa = 1: Let ta = 2360591.5 - t - то запомнить время столкновения
Let abgp1 = abgp2 - и сравнять напряженности поля БГП перед яблоком и за ним, что бы исключить дальнейшее движение
End If
Let a3 = Max - (abgp1 + abgp2) / 2 - вычисление ускорение для яблока, среднее значение двух напряженностей
If abgp1 - abgp2 > 0 Then Let a3 = -a3 Else If abgp1 - abgp2 = 0 Then Let a3 = 0 - для яблока, если напряженность поля больше, то направление ускорения меняется на противоположное, или если равны, то ускорение равно 0 (если коснулось планеты)

Let h1 = a1 / 2
Let h2 = a2 / 2
Let h3 = a3 / 2
If fl = 0 Then Let fl = 1: GoTo 0 - при первом запуске корректировка скоростей и координат относительно друг друга, при дальнейших вычислениях корректировка не требуются

Let xsi = xsi - a1 * lx / l - проекция ускорения Луны на ось Х
Let ysi = ysi - a1 * ly / l - на ось У

Let xzi = xzi + a2 * lx / l - проекция ускорения Земли на ось Х
Let yzi = yzi + a2 * ly / l - на ось У

Let xai = xai - a3 * lxa / la - проекция ускорения яблока на ось Х
Let yai = yai - a3 * lya / la - на ось У

Let xs = xs + xsi - новая координата Х для Луны
Let ys = ys + ysi - координата У
Let xz = xz + xzi - новая координата Х для Земли
Let yz = yz + yzi - координата У
Let xa = xa + xai - новая координата Х для яблока
Let ya = ya + yai - координата У

Next - к следующей секунде
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей