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

51 次查看(过去 30 天)
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)?

回答(2 个)

Youssef Noureddine
Youssef Noureddine 2022-11-10
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 个评论
Youssef Noureddine
Youssef Noureddine 2022-11-15
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
Harish Saranathan 2024-5-16
编辑:Harish Saranathan 2024-5-16
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

类别

Help CenterFile Exchange 中查找有关 Reference Applications 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by