Where is a simple J2 propagator within satellite function of the Aerospace Toolbox?

48 views (last 30 days)
I see a spherical Earth (Two-Body-Keplerian), SGP4, and other orbit propagators. Why is there not a simple J2 orbit propagator option for those of us who want first-order Earth oblateness (which Two-Body-Keplerian does not include) but not atmospheric drag (presumed to be part of SGP4)?

Answers (2)

Youssef Noureddine
Youssef Noureddine on 10 Nov 2022
Hi Eric,
The best function I could find for implementing zonal harmonic representation of gravity is using the 'gravityzonal' function. Earth by default does J4 but you can specify an input argument to indicate the degree you would like. This only gives you the gravity at each point, so you would still need to do some simple velocity and position updating, but it would still overall be slightly simpler than writing your own J2 perturbation script. Please refer to the following doc page for more information:
https://www.mathworks.com/help/aerotbx/ug/gravityzonal.html
Sincerely,
Youssef Nouredine
  1 Comment
Youssef Noureddine
Youssef Noureddine on 15 Nov 2022
One further suggestion (if you have the aerospace blockset) would be to generate ephemeris data from the block 'Orbit Propagator' in Simulink and return position and velocity tables. It should be a simple model with only that block and 2 'to workspace' blocks. You can set the block to propagate under a J2 propagator and once you have position & velocity tables you can simply directly feed it into satellite as ephemeris data.

Sign in to comment.


Harish Saranathan
Harish Saranathan on 16 May 2024
Edited: Harish Saranathan on 16 May 2024
Support for J2 perturbation is now provided through numerical propagator that was introduced to satelliteScenario in R2024a. You need Aerospace Toolbox to use this feature. You can select this propagator by setting the "OrbitPropagator" name-value argument of the "satellite" function to "numerical". To use J2 perturbation, you will need to call the "numericalPropagator" function (also introduced in R2024a) and set the "GravitationalPotentialModel" name-value argument to "oblate-ellipsoid". An example code snippet is provided below:
% Create a satellite scenario object.
startTime = datetime(2024,5,16);
stopTime = datetime(2024,5,20);
sampleTime = 60; % s
sc = satelliteScenario(startTime,stopTime,sampleTime);
% Add a satellite to the scenario using keplerian elements and set
% OrbitPropagator to "numerical".
semiMajorAxis = 7000000; % m
eccentricity = 0.05;
inclination = 60; % deg
rightAscensionOfAscendingNode = 0; % deg
argumentOfPeriapsis = 0; % deg
trueAnomaly = 0; % deg
sat = satellite(sc,semiMajorAxis, ...
eccentricity, ...
inclination, ...
rightAscensionOfAscendingNode, ...
argumentOfPeriapsis, ...
trueAnomaly, ...
OrbitPropagator="numerical");
% Set the gravitational potential model used by the numerical propagator
% to "oblate-ellipsode" (J2 perturbation).
numericalPropagator(sc,GravitationalPotentialModel="oblate-ellipsoid");
% Launch a satellite scenario viewer. Set the camera reference frame to
% "Inertial". This will enable you to see the orbit precess because of
% the J2 effect.
v = satelliteScenarioViewer(sc,CameraReferenceFrame="Inertial");
% Play the scenario.
play(sc);
I believe you will find the following documentation links useful:
NumericalPropagatorOptions property of satelliteScenario: https://www.mathworks.com/help/aerotbx/ug/satellitescenario.html#mw_ed274701-805b-4e2c-a00b-e3977e6a4644
OrbitPropagator name-value argument of satellite function of satelliteScenario and corresponding property of Satellite object: https://www.mathworks.com/help/aerotbx/ug/matlabshared.satellitescenario.satellite.html#mw_783e99d3-a188-4956-adb7-2d59f660ccbc_sep_mw_3aab3c67-e21d-4688-9a58-de1425a3c83a
In addition, I believe you will find the following example useful. Although it does not pertain to J2 perturbation, it shows the numerical propagator in action in satelliteScenario.
Sincerely,
Harish Saranathan

Categories

Find more on Reference Applications in Help Center and File Exchange

Tags

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!