Метод технических публикаций НАСА для расчета точек окончания теней космических аппаратов в тени и полутени; TP-3547 описывает следующее:
Представлен метод расчета точек терминатора орбитальной тени. Текущий метод использует использование итеративного процесса, который используется для точного определения теневых точек. Эта методология расчета необходима, поскольку эффекты возмущения орбиты могут вносить большие ошибки, когда космический корабль вращается вокруг планеты на большой высоте и/или по высокоэллиптической орбите. Чтобы компенсировать требуемую методологию итерации, все определения и расчеты изменения системы отсчета выполняются с кватернионами. Алгебра кватернионов значительно сокращает время вычислений, необходимое для точного определения точек терминатора тени.
Существуют ли какие-либо другие, отличные, лучшие и/или альтернативные способы расчета прохождения спутником области тени и его влияния на элементы орбиты?
TL;DR: Нет, требуется какая-то итерация, чтобы найти точный вход или выход из полутени.
Чтобы вычислить, находится ли точка на орбите в тени, не требуется никаких итераций: теневые конусы из вашей статьи, на которую вы ссылаетесь, хорошо объясняют это (версия HTML аналогичного алгоритма, можно обратиться к MathSpec of Nyx и Василиск ).
Однако этот алгоритм требует знания состояния космического корабля, и, кроме того, вы хотите найти точное местоположение начала области тени. Проблема в том, что точка на орбите находится не только «в тени» или «в свете»: есть и третье состояние, «полутень». Вход/выход из полутени – это определение теневой области (так как солнечные панели будут генерировать меньше энергии и т.д.). Как объяснено в MathSpecs, указанном выше, этот расчет соответствует проценту освещения от теневых тел. В зависимости от процента освещения космический корабль будет подвергаться большему или меньшему давлению солнечного излучения ( Nyx MathSpec ), что, в свою очередь, повлияет на элементы его орбиты, как описано в вашей ссылке.
Метод в вашей ссылке довольно умный, поскольку он напрямую анализирует изменение элементов орбиты. Более типичный метод (по моему опыту) состоит в том, чтобы просто перемещаться по орбите и анализировать влияние различных орбитальных динамик на форму этой орбиты.
На самом деле, именно так можно было бы поступить в Никсе, ср. этот пользовательский пример . Распространите космический корабль вперед во времени, сгенерируйте интерполированную траекторию и найдите конкретное событие вдоль этой траектории с помощью решателя Брента :
Min event: [Earth J2000] 2022-02-28T00:42:13 UTC sma = 6828.135682 km ecc = 0.001000 inc = 63.400003 deg raan = 135.000001 deg aop = 90.000132 deg ta = 222.218854 deg => Penumbra 0.00%
Min event - 1 s: [Earth J2000] 2022-02-28T00:42:12 UTC sma = 6828.135689 km ecc = 0.001000 inc = 63.400003 deg raan = 135.000001 deg aop = 90.000106 deg ta = 222.154863 deg => Penumbra 6.16%
Min event + 1 s: [Earth J2000] 2022-02-28T00:42:14 UTC sma = 6828.135674 km ecc = 0.001000 inc = 63.400003 deg raan = 135.000001 deg aop = 90.000158 deg ta = 222.282845 deg => Umbra
Max event: [Earth J2000] 2022-02-28T00:23:24 UTC sma = 6828.137397 km ecc = 0.001000 inc = 63.400003 deg raan = 135.000001 deg aop = 90.010516 deg ta = 149.960681 deg => Visibilis
Max event - 1 s: [Earth J2000] 2022-02-28T00:23:23 UTC sma = 6828.137265 km ecc = 0.001000 inc = 63.400003 deg raan = 135.000001 deg aop = 90.010071 deg ta = 149.897126 deg => Visibilis
Max event + 1 s: [Earth J2000] 2022-02-28T00:23:25 UTC sma = 6828.137526 km ecc = 0.001000 inc = 63.400003 deg raan = 135.000001 deg aop = 90.010950 deg ta = 150.024248 deg => Visibilis
Астролиен