Найти в Дзене
Игорь Назаров

JS. Орбитальная модель. Возможности

В предыдущих примерах (блок орбитальной модели , блок ориентации) мы постепенно настраивали модель движения объекта в центральном поле тяготения и описывали способы оценки положение движущейся точки относительно других точек в пространстве. Теперь попытаемся объединить эти знания и получим первые представления о том, как будет восприниматься движущийся по низкой околоземной орбите спутник. Сейчас разрабатываемый код лежит на гитхабе. Если интересно - то можно порыться, модули решают следующие задачи: Впрочем, самое интересное происходит непосредственно в index.html. Там последовательно вызываются процедуры расчета траекторий, оценки видимости и анализа результатов расчета с выводом на экран и в таблицы. Сначала рассмотрим задачу о видимости спутника с поверхности Земли. Наш наблюдатель находится в точке с координатами 1.5 северной широты, 1.5 градуса восточной долготы (отмечена крестиком). Как видно по графику, наш спутник-1 (движущийся по низкой круговой орбите) стартует из точки 0 с

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

Теперь попытаемся объединить эти знания и получим первые представления о том, как будет восприниматься движущийся по низкой околоземной орбите спутник.

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

  • TrajectoryAnalyze - класс для исследования свойств траектории и взаимодействий между спутниками и наблюдателями на поверхности Земли
  • Vect3D - векторная алгебра. Классы Vect3d, Plane и Line описывают произвольную точку/вектор в трехмерном пространстве, плоскость и линию, а также все необходимые для наших расчетов операции - сложение, умножение, поиск углов, пересечения и проекции
  • arraysExtended - "расширенные" большие массивы. Дополнение обычных массивов прореживанием и получением статистики. В дальнейшем возможно добавление еще большего количества функций для анализа и сравнения массивов
  • elliptic - классы KeplerBody и KeplerSystem описывают объект в поле тяготения и систему, составленную из таких объектов. Физический движок модели. Пока учитывает только "чистое" тяготение без влияния светового давления, взаимодействия с магнитосферой и атмосферой.
  • graphics - вывод графики на экран и преобразования от произвольных значений к экранным координатам. В процессе - разработка функционала для анимированного вывода, рисования гистограмм и прочих приятных плюшек.

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

Орбиты спутников 1 и 2, а также результаты наблюдения за спутником
Орбиты спутников 1 и 2, а также результаты наблюдения за спутником

Сначала рассмотрим задачу о видимости спутника с поверхности Земли. Наш наблюдатель находится в точке с координатами 1.5 северной широты, 1.5 градуса восточной долготы (отмечена крестиком). Как видно по графику, наш спутник-1 (движущийся по низкой круговой орбите) стартует из точки 0 северной широты, 90 градусов западной долготы.

Через 1160 секунд после выхода на орбиту наблюдатель наконец-то увидит его восход. Спутник появится на горизонте в южном секторе, с азимутом в 260 градусов (где-то запад-запад восток). Расстояние до спутника в этот момент - 1204 км. Спустя всего 160 секунд это расстояние сократится до 213 километров. Спутник поднимется над горизонтом на 33 градуса и будет виден с азимутом 162 градуса (юго-юго-восток). Еще через 140 секунд спутник уйдет на восток и будет готов скрыться за горизонтом, он будет виден с азимутом 98 градусов (восток-восток-юг) всего в 1 градусе над горизонтом, в 1157 км от наблюдателя.

Всего спутник будет наблюдаться ~ 5 минут. Если к тому моменту, когда наблюдатель только обнаружит спутник, появляющийся над западным горизонтом, спутнику получит команду на сход с орбиты, то у наблюдателя будет не более 2 - 3 минут на то, чтобы адекватно среагировать на цель, вторгающуюся в воздушное пространство из ближнего космоса.

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

Даже предварительные цифры показывают, что попытка совершения атаки с низкой околоземной орбиты оставляет очень мало времени на адекватную реакцию обороняющейся стороны. Именно на этом была основана концепция FOBS ( fractional orbital bomardment system), заложенная в основу одного из вариантов Р-36.

Но теперь отвлечемся от войны и бессмысленного разрушения.

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

Движущийся в центральном поле тяготения объект за равные промежутки времени будет заметать сектора равных площадей.
Таблица с данными для проверки второго закона Кеплера
Таблица с данными для проверки второго закона Кеплера

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

Для оценки ошибки мы воспользуемся функциями сбора статистики из arrayExtended и получим отношение среднеквадратичного отклонения к среднему значению заметаемой площади. Ошибка составит ~ 0,01 %. Такая точность для приближенного расчета численным интегрированием явно свидетельствует, что в нашей модели выполняется II закон Кеплера.

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

Также будет интересно посмотреть, как будут двигаться друг относительно друга спутники, изначально находящиеся на небольших расстояниях друг от друга.

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