Where is a simple J2 propagator within satellite function of the Aerospace Toolbox?
38 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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)?
0 Kommentare
Antworten (2)
Youssef Noureddine
am 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 Kommentar
Youssef Noureddine
am 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.
Harish Saranathan
am 16 Mai 2024
Bearbeitet: Harish Saranathan
am 16 Mai 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:
numericalPropagator function of satelliteScenario: https://www.mathworks.com/help/aerotbx/ug/satellitescenario.numericalpropagator.html
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
0 Kommentare
Siehe auch
Kategorien
Mehr zu Reference Applications finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!