Распространение по солнечно-синхронной спутниковой орбите

Я пытаюсь распространить орбиту sun-synchronous satellite. Исходные данные определяются TLE.

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

Есть ли способ распространять орбиту, учитывая вышеуказанные условия, делая вычисления на кеплетовских элементах ?

Я пробовал модель SGP4, но в данном случае она не подходит.

Можете ли вы добавить источник изображений, которые вы разместили?

Ответы (2)

TLE уже считает сопротивление до некоторой точки (проверьте, отрицательно ли значение BSTAR, если да, то TLE считает, что маневры были выполнены). Положительный BSTAR уменьшает (среднее) большую полуось с течением времени из-за эффекта сопротивления. J2, J3 и J4 учитываются частично (представьте себе аппроксимацию ряда Тейлора с Дж 2 2 установить на ноль).

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

Я считаю, что SGP8 будет учитывать возмущения Солнца и Луны, но не SGP4.

В наши дни зонтик «SGP4» включает SDP4, поэтому его способность аппроксимировать возмущения от Солнца и Луны ограничена. См. исправления «Глубокий космос» в SGP4; как это объясняет гравитацию Солнца и Луны?
Похоже, я должен рассматривать только Землю и J2. Итак, SGP4 не подходит для этой задачи. Есть ли способ размножаться на основе элементов орбиты?
@Mefitico, не могли бы вы обновить свой ответ, чтобы скорректировать свое заявление о том, что SGP4 не учитывает возмущения Солнца и Луны. В свое время этого не было (в SDP4), но я думаю, что сегодня любой современный источник для SGP4 действительно включает эти возмущения, включая SDP4.
@uhoh В любом случае, SGP4 не соответствует заявленным условиям. Пожалуйста, рассмотрите мои уравнения
@TarlanMammadzada: я понимаю, что уравнения, которые вы представили в (1) для скоростей элементов, являются уравнениями Козая, и их следует использовать со средними элементами для обновления средних элементов, а вывод необходимо преобразовать в соприкасающиеся элементы перед использованием уравнения, которые вы представляете в (2). См. в качестве ссылки Шауб Х. Джанкинс, Дж. Аналитическая механика космических систем, 2-е издание, AIAA Education Series 2009.

Что касается того, какой пропагатор орбиты вы должны использовать, это зависит от вас. Если вы разрабатываете космическую миссию, которая будет работать на синхронной с Солнцем орбите, то обычно лучше использовать J2. В этих случаях у миссии обычно есть способы удержаться на расчетной орбите, избегая всех возмущений, кроме J2. Следовательно, пропагатор J2 лучше. С другой стороны, если вы распространяете реальный спутник, используя настоящий TLE, то SGP4 будет намного точнее.

Если использовать Julia и SatelliteToolbox.jl , то можно очень легко выбрать пропагатор. Например, для чистого пропагатора J2:

julia> orbp = init_orbit_propagator(Val{:J2}, Orbit(0.0,7130982.0,0.001111,98.405*pi/180,pi/2,0.0,0.0))
julia> (o,r,v) = propagate!(orbp, collect(0:3:24)*60*60)
julia> r
9-element Array{Array{T,1} where T,1}:
 [5.30372e-7, 7.12306e6, 3.58655e-6]
 [-9.98335e5, 2.14179e6, -6.72549e6]
 [-5.75909e5, -5.83674e6, -4.06734e6]
 [6.65317e5, -5.69201e6, 4.2545e6]
 [9.62557e5, 2.37418e6, 6.65228e6]
 [-1.10605e5, 7.11845e6, -231186.0]
 [-1.02813e6, 1.90664e6, -6.79145e6]
 [-4.82921e5, -5.97389e6, -3.87579e6]
 [750898.0, -5.53993e6, 4.43709e6]

Это распространяло орбиту в течение 24 часов и сохраняло информацию каждые 3 часа. Для SGP4 вы можете сделать следующее:

julia> orbp = init_orbit_propagator(Val{:sgp4}, Orbit(0.0,7130982.0,0.001111,98.405*pi/180,pi/2,0.0,0.0))
julia> (o,r,v) = propagate!(orbp, collect(0:3:24)*60*60)
julia> r
9-element Array{Array{T,1} where T,1}:
 [-2159.7, 7.13166e6, -14607.2]
 [-1.00096e6, 2.1411e6, -6.73899e6]
 [-5.78906e5, -5.83897e6, -4.08451e6]
 [6.64614e5, -5.70129e6, 4.24735e6]
 [9.6287e5, 2.37768e6, 6.64987e6]
 [-1.12629e5, 7.12679e6, -2.45705e5]
 [-1.03066e6, 1.90639e6, -6.80469e6]
 [-4.86132e5, -5.97626e6, -3.89338e6]
 [7.5014e5, -5.54932e6, 4.42998e6]

Если ваша орбита определена в файле sat.tle, вы можете распространять орбиту, используя:

julia> tle = read_tle("sat.tle")
1-element Array{SatelliteToolbox.TLE,1}:
                              TLE
    ==========================================================
                            Name: Test
                Satellite number: 6251
        International designator: 62025E
                    Epoch (Year): 6
                     Epoch (Day): 176.82412014
              Element set number: 398
                     Inclination:  58.05790000 deg
                            RAAN:  54.04250000 deg
             Argument of perigee: 139.15680000 deg
                    Mean anomaly: 221.18540000 deg
                 Mean motion (n):  15.56387291 revs/day
               Revolution number: 677

                              B*: 0.000000 1/[er]

                        1   d
                       ---.--- n: 0.000000 rev/day²
                        2  dt

                        1   d²
                       ---.--- n: 0.000000 rev/day³
                        6  dt²
    ==========================================================

julia> orbp = init_orbit_propagator(Val{:sgp4}, tle[1])
julia> (o,r,v) = propagate!(orbp, collect(0:3:24)*60*60)
julia> r
9-element Array{Array{T,1} where T,1}:
 [3.98829e6, 5.49898e6, 928.983]
 [4.77232e6, 4.45027e6, -1.90764e6]
 [4.99362e6, 2.89039e6, -3.60054e6]
 [4.62067e6, 1.00698e6, -4.88731e6]
 [3.69211e6, -9.77058e5, -5.62356e6]
 [2.31243e6, -2.82934e6, -5.72624e6]
 [6.40617e5, -4.33414e6, -5.18251e6]
 [-1.1272e6, -5.31664e6, -4.05161e6]
 [-2.77972e6, -5.66325e6, -2.45952e6]