Высота спутника как функция времени?

Чтобы получить более точную оценку излучения в этом вопросе , я пытаюсь аппроксимировать и/или определить высоту спутника как функцию времени. Спутник имеет апогей 32190 км над землей и перигей 320 км над землей.

Для простоты я предполагаю следующие свойства:

  • Наклонения орбиты нет, поэтому в экваториальной плоскости,
  • Нет эффектов J2.
  • Нет атмосферного сопротивления / других сил сопротивления.

Если вы видите какие-либо ошибки, пожалуйста, дайте мне знать :)

Подходы:

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

Резюме результатов попытки:

  1. Согласно этой попытке не существует (простой) закрытой формы. Я пытался быть эффективным, а не изобретать велосипед, поэтому я переключусь на численный метод, чтобы получить функцию высоты орбиты.

2. Выработано в ответах: Орбитальная динамика, часть 18 - лекция «Формула истинной аномалии» объясняет, как можно найти эксцентрическую аномалию с помощью итеративной попытки. Мне было любопытно, как это связано с дифференциальной природой уравнения.

Это решение выработано в ответах.

  1. Я попытался:

https://www.thanassis.space/gravity.html

http://en.homasim.com/orbitsimulation.php

https://nl.mathworks.com/matlabcentral/fileexchange/57132-satellite-orbit-transfer-simulation

Первые 2 страницы этих моделей:

http://www.winsite.com/satellite/satellite+simulator+orbit/

https://github.com/pytroll/pyorbital

И очень многообещающе, но не могу скачать:

https://nl.mathworks.com/matlabcentral/fileexchange/57132-satellite-orbit-transfer-simulation

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

Я не уверен, что это уместно, но спасибо всем за критические и поддерживающие отзывы! :)

Наклонение орбиты? Вам требуется возмущение J2?
Спасибо @Prakhar, я адаптировал вопрос, чтобы ответить на ваши комментарии.
Не могли бы вы дать ссылку на другой вопрос? Прямо сейчас он просто говорит [1]без ссылки.
@barrycarter да, конечно, спасибо, что указали на это. Я не понимал, что ссылка сломается после того, как ответ и вопрос будут разделены, теперь я знаю.
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это чрезвычайно многословный способ обнаружить, что не существует решения в закрытой форме для средней аномалии M (... это средняя аномалия? я забыл), который также не понимает, что вы не можете просто заменить E (t) чем угодно.
@ErinAnne Спасибо, что указали на путаницу между средней аномалией M и эксцентрической аномалией E. Я адаптировал подход к аналитическому решению. Что касается не по теме, я думаю, что в «Космосе» определение высоты спутника весьма актуально, я был удивлен тем, как мало подходов с низкой точностью хорошо задокументировано и легко применимо, поэтому я думаю, что тщательная попытка принесет пользу тем, кто хочет сделать то же самое / начать с той же точки.
@at Я вижу, что вы проделали довольно значительную работу и предварительно изучили этот вопрос! Сейчас он становится довольно большим, и его становится все труднее и труднее читать. Я предлагаю вам упростить его. Чтобы получить общую дозу на орбиту с данным одномерным профилем дозы в зависимости от высоты, все, что вам нужно, это распределение времени, проведенного на каждой высоте, другими словами г т / г р . Это может быть немного проще, и я думаю, что математика интересна.

Ответы (2)

Подход 4 (Успешный подход)

На данный момент времени я не могу дальше использовать аналитический подход, поэтому я нашел спутник (обломки) через http://stuffin.space/?intldes=2012-008N , который имел орбиту, похожую на ту, которую я я пытаюсь определить, написал небольшой сценарий Excel, который сканирует данные с http://www.satview.org/forec.php?sat_id=43273U каждую минуту, чтобы завтра я мог отсортировать данные и получить приблизительное значение высоты. как функция времени.

Сценарий:

Sub absorb_data_from_vdb()
Application.Wait (Now + TimeValue("0:00:10")) 'H:MM:SS
'source: https://plus.google.com/105053415343007690451/posts/1pjy2PFVwN5
Dim ie As Object
Dim objelement As Object
Dim c As Integer
Dim i
Dim strCaptcha As String
Dim strImageSource As String
Dim img As HTMLhtmlElement 'tools =>reference Microsoft Html Object Library
Set ie = CreateObject("InternetExplorer.Application")

Dim click_changed_additions  As Integer
Dim electric_bullet_count As Integer
Dim gas_bullet_count As Integer


With ie
    .Visible = True
    .navigate "http://www.satview.org/forec.php?sat_id=43273U"
    'wait until first page loads
    Do Until .readyState = 4
        DoEvents
    Loop
    Application.Wait (Now + TimeValue("0:00:02")) 'H:MM:SS
    whole_day = 2
    Do While whole_day < 10
        .Refresh
        Do Until .readyState = 4
            DoEvents
        Loop
        Application.Wait (Now + TimeValue("0:00:02")) 'H:MM:SS

        Set elements0e = ie.document.getElementsByClassName("link_mudar") 'Get innertext to get value
        If elements0e.Length <> 0 Then
            'MsgBox (elements0e.item(2).innerText)
            elements0e.item(2).Focus
            elements0e.item(2).Click
            'MsgBox ("clicked link")
        End If

        If ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 < 2 Then
            ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = 2
        End If
        For Iteration = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 To ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 + 100
            Set elements0e = ie.document.getElementsByClassName("texto_track2") 'Get innertext to get value
            If elements0e.Length <> 0 Then
                ThisWorkbook.Worksheets("Sheet1").Range("A" & 2 + Iteration).Value = elements0e.item(0).innerHTML
                ThisWorkbook.Worksheets("Sheet1").Range("F" & 2 + Iteration).Value = Now()
                'MsgBox ("found from")
            End If
        Next Iteration
        For Iteration = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 To ThisWorkbook.Worksheets("Sheet1").Range("A1").Value - 2 + 100
            Set elements0e = ie.document.getElementsByClassName("texto_track2") 'Get innertext to get value
            If elements0e.Length <> 0 Then
                ThisWorkbook.Worksheets("Sheet1").Range("G" & 2 + Iteration).Value = elements0e.item(1).innerHTML
                'MsgBox ("found from")
            End If
            If ThisWorkbook.Worksheets("Sheet1").Range("A1").Value < Iteration + 2 Then
                ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Iteration + 2
            End If

        Next Iteration

        proceed_boolean = False
        Do While proceed_boolean = False
        If Left(Right(Now(), 5), 2) <> Left(Right(ThisWorkbook.Worksheets("Sheet1").Range("F" & 2 + Iteration - 1).Value, 5), 2) Then
            'MsgBox ("A minute has passed")
            'MsgBox (Left(Right(Now(), 5), 2))
            'MsgBox (Left(Right(ThisWorkbook.Worksheets("Sheet1").Range("F" & 2 + Iteration - 1).Value, 5), 2))
            proceed_boolean = True
            Application.Wait Now + #12:00:02 AM# 'This waits for 5 seconds
        End If
        Loop


    Loop
End With
MsgBox ("Done")

End Sub

После двух прогонов для эквивалентной орбиты строится следующий график:

Высота спутника в зависимости от времени Скорость спутника в зависимости от времени

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

  1. скорость в перигее (наименьшая высота), которая должна быть самой высокой, что означает, что градиент функции высоты орбиты должен быть самым высоким.
  2. Скорость в апогее (наибольшая высота) должна быть самой низкой, что означает, что градиент высоты орбиты должен быть самым низким вблизи перигея.
  3. Градиент высоты орбиты должен быть равен 0 (горизонтальная линия в апогее).
  4. Профиль скорости строится отдельно и проверяется на непрерывность.
  5. Профиль скорости строится отдельно и визуально проверяется на совпадение с градиентом высоты орбиты.

Все 5 проверок завершены и успешны, что означает, что в этом подходе не было обнаружено ошибок.

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

Затем данные были отфильтрованы вручную (помечая цветом величину различий между точками данных о высоте и удаляя самые большие различия, пока я не был удовлетворен различиями). Получилось:Отфильтрованные спутниковые измерения высоты

После фильтрации я использовал следующее программное обеспечение/таблицу Excel, чтобы подогнать метод наименьших квадратов: http://www.jkp-ads.com/articles/leastsquares.asp

Для приближения к функции** использовалась следующая полиномиальная функция:

у знак равно а Икс 4 + б Икс 3 + с ( Икс ф ) 2 + г Икс + е

где x представляет время в минутах, а y вычисляется и сравнивается с у а с т ты а л . Разница между двумя y была возведена в квадрат и суммирована для всех точек данных (время и высота), считанных первым Excel). Граничные условия (bc) были первоначально определены для эволюционного алгоритма путем выбора максимального значения, для которого наибольшая высота может быть получена только с помощью этого 1 коэффициента, умноженного на его x, а затем умножения этого значения на 10. Это было сделано для обеспечения решение было доступно, но ограничивало пространство вариантов.

Обзор орбитальной регрессии Excel

Получилась следующая функция**:

с о н с т а знак равно 4,52765 Е 06 с о н с т б знак равно 0,002389915 с о н с т с знак равно 0,074298946 с о н с т г знак равно 252.5709003 с о н с т е знак равно 260.8620904 с о н с т ф знак равно 108.1781644

час ( т ) вычисляется в к м

час знак равно С о н с т а * Икс В а л ты е с 4 + С о н с т б * Икс В а л ты е с 3 + С о н с т с * ( Икс В а л ты е с С о н с т ф ) 2 + С о н с т г * Икс В а л ты е с + С о н с т е

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

Обсуждение ошибки: как было указано в комментариях, полиномиальная подгонка 4-й степени ограничит точность подгонки орбиты. (Это видно, если вы посмотрите на начало фактического измерения орбиты, оно изгибается в направлении/около -t при движении вниз, тогда как подгоночный полином имеет только 1 радиус изгиба (в направлении/вокруг +t). Это сделало подгонку немного сложно, поскольку потребовалось несколько итераций, прежде чем была найдена подходящая подгонка.Однако эта степень точности была сочтена достаточной с помощью визуального осмотра.Процедура может быть улучшена путем вычисления фактического квадрата ошибки.

** Я думаю, что лучшим подходом действительно было бы аппроксимировать высоту эллиптической орбиты как функцию времени синусоидой.

«В качестве следующей попытки решения я вычислю поверхность эллипса и поверхность круговой орбиты, а затем применю постоянную угловую скорость развертки к каждой из них по отдельности». ... но это не сработает. Угловая скорость развертки абсолютно не постоянна для эллипса. Постоянная, в соответствии с законом равных площадей Кеплера, представляет собой площадь охвата за время.
Спасибо, @ErinAnne. Я действительно не сформулировал это четко, я имел в виду применить второй закон Кеплера. Соответственно я скорректировал подход.
Это не ответ на вопрос. Хотя кажется полезным использовать сообщения с ответами в качестве блокнота для отображения неудачных попыток, на самом деле это не разрешено в Stack Exchange.
Спасибо @uhoh, результат опубликован, так что он отвечает на вопрос. Я упрощу/очищу результаты после дедлайна.
Ух ты! Хорошо, это отличная новость! Да, вы должны очистить это в какой-то момент; хотя было бы забавно, если бы в Stack Exchange были посты в блокноте, на самом деле в нем есть только вопросы и ответы. Я дам это прочитать завтра. А пока я могу переключить свой голос на "за". Спасибо за твое сообщение!
Полином действительно не является правильным решением этой проблемы. Высота спутника представляет собой синусоиду. Я беспокоюсь о том, что это может ввести в заблуждение других, кто столкнется с этим; вы отказались от стандартного итеративного решения в пользу решения, которое, по-видимому, не дает выбранного вами апогея.
Спасибо за ваш критический отзыв @ErinAnne! С теоретической точки зрения вы абсолютно правы. Однако это был ограниченный по времени инженерный подход, при котором была достаточна ограниченная точность, что означало, что точность считалась приемлемой. Что касается вводящей в заблуждение части, я согласен, поэтому я добавил заявление об отказе от ответственности, включающее ваш комментарий, а также обсудил разницу/ошибку, возникающую из-за разницы в подходе между полиномиальной и синусоидальной подгонкой к этой проблеме.

Подход 2 (Успешный подход)

Орбита описана на следующем рисунке:

Описание аналитической орбиты

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

М знак равно т Т 2 π

М знак равно Е ϵ с я н Е

р знак равно а ( 1 ϵ с о с Е )

υ знак равно θ знак равно 2 а р с т а н ( 1 + ϵ 1 ϵ т а н Е 2 )

Т знак равно 2 π а 3 мю с мю е а р т час знак равно 398600.4415 к м 3 с 2

р знак равно а ( 1 е 2 ) 1 + е с о с θ знак равно а ( 1 ϵ с о с Е )

М ( т ) = Средняя аномалия (= Угол между зеленой линией, центром эллипса, пунктирной линией между центром эллипса и перигеем)

Е ( т ) = Эксцентрическая аномалия (= Угол между красной линией, центром эллипса, линией между центром эллипса и перигеем)

υ ( т ) знак равно θ ( т ) = Истинная аномалия (= Угол между черной линией, центром эллипса, линией между центром эллипса и перигеем)

а = большая полуось

р ( т ) = высота спутника

ϵ = эксцентриситет

Аномалии визуализируются на следующей анимации орбиты. Обратите внимание, что, как было указано в комментариях, M(t) постоянна и не равна E(t):

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

Учитывая, что высота перигея = 320 км, а высота апогея 32190 км, большая полуось находится с помощью р е знак равно 6371 к м :

а знак равно 320 + р е + 32190 + р е 2 знак равно 25971,5 к м

Теперь эксцентриситет находится с помощью θ знак равно 0 р а г :

р знак равно а ( 1 е 2 ) 1 + е с о с θ

р знак равно а ( 1 е 2 ) 1 + е знак равно а ( 1 е )

е знак равно 1 р а знак равно 1 р е + 320 а знак равно 1 6371 + 320 25971,5 знак равно 0,74237144562308

Орбитальный период находится с мю е а р т час знак равно 398600.4415 к м 3 с 2 :

Т знак равно 2 π а 3 мю знак равно 41685,4 с

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

Вычисляется средняя аномалия M(t). М знак равно т Т 2 π

М знак равно 0,5 41685,4 2 π знак равно 0.0000753643.. р а г

Затем М заменяется на:

М знак равно Е ϵ с я н Е

Остается одно неизвестное: эксцентрическая аномалия. Е . Это поиск с помощью итеративного процесса (просто предположим, что сначала E, а затем посмотрим, что вы вычислите для М , проверьте, равно ли оно фактическому вычисляемому М (вероятно, нет), поэтому уменьшите или увеличьте свою оценку для Е , и посмотрите, не отклонитесь ли вы дальше от М , или приближайтесь к нему, пока не будете удовлетворены степенью точности М , (От чего зависит степень точности Е ).

Как только E(t) определено с достаточной степенью точности, оно подставляется в:

р знак равно а ( 1 ϵ с о с Е ) найти р т .

Это высота орбиты в момент времени t = 0,5 с. Процедура повторяется еще раз t путем повторного вычисления $M(t).

Помимо высоты, можно также захотеть узнать местоположение спутника относительно Земли, зная истинную аномалию. Чтобы определить истинную аномалию в момент времени t, подставляют найденное итеративно Е ( т ) в следующей формуле:

υ знак равно θ знак равно 2 а р с т а н ( 1 + ϵ 1 ϵ т а н Е 2 )

Это документация по процедуре, описанной с 28:55 по 30:16:

.

(Я не писал скрипт для этого {итеративного цикла определения/угадывания Е } (пока), поэтому он не полуавтоматический, в отличие от ответа подхода 4.)

Поздравляем с прогрессом! Похоже, вы потеряли свои изображения. Также в какой-то момент вы можете рассмотреть возможность принятия этого ответа вместо другого, если вы чувствуете, что это лучше отвечает на ваш вопрос.
Да, спасибо, я должен сказать, что было довольно круто найти/понять аналитическое итеративное решение, в конце концов. Если мне удастся автоматизировать угадывание эксцентрической аномалии E(t), я соглашусь с этим ответом, но прямо сейчас наименьшие усилия связаны с использованием решения 4. Особенно с преобразованием измеренных точек данных в функцию с помощью включенных наименьших квадратов.