Implementation of drag perturbation

Hi,

Very new to this and I’ve been trying to implement a simple exponential drag model with the numerical propagator, but the perturbations seem to not affect the results at all- the SMA and eccentricity remain the same over the propagation which shouldn’t be the case. Am I doing something gravely wrong here?

code as follows:

a = 6878.0e3
e = 0.01
i = radians(53.0)
ohm = radians(290.5)
w = radians(110.0)
theta = radians(250.0)
utc = TimeScalesFactory.getUTC()
epochDate = AbsoluteDate(2022, 2, 28, 23, 59, 42.0, utc)

#RE= Constants.WGS84_EARTH_EQUATORIAL_RADIUS
frame = FramesFactory.getITRF(IERSConventions.IERS_2010, True);
earthShape = OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS, Constants.WGS84_EARTH_FLATTENING, frame);

rho0= 1.585e-12
h0= 450e3
H=60.828e3
atmosphere = SimpleExponentialAtmosphere(earthShape,rho0,h0,H)

cd = 2.2
A = 1.0e-4
mass =300.0
isotropic_drag = IsotropicDrag(A, cd)
drag_force = DragForce(atmosphere, isotropic_drag)

initialDate = epochDate
finalDate = AbsoluteDate(2023, 2, 28, 23, 59, 42.0,utc)

initialOrbit = KeplerianOrbit(a, # Semimajor Axis (m)
e, # Eccentricity
i, # Inclination (radians)
w, # Perigee argument (radians)
ohm, # Right ascension of ascending node (radians)
theta, # Anomaly (rad/s)
PositionAngleType.TRUE,
FramesFactory.getGCRF(),
epochDate,
Constants.WGS84_EARTH_MU)

ss= SpacecraftState(initialOrbit, mass)
stepSize = 30.0
integrator = ClassicalRungeKuttaIntegrator(stepSize)

propagator = NumericalPropagator(integrator)
propagator.addForceModel(drag_force)
propagator.setInitialState(ss)
endstate = propagator.propagate(initialDate,finalDate)

any assistance woudl be greatly appreciated!

Hi @wzl10 welcome

300 kilograms for 1.0e-4 square meter cross section seems unrealistic. This is a very small and dense spacecraft so surface forces like drag would not affect it. I am not sure about rho0 too.

1 Like

Hi luc,

Thank you very much! I had mistakenly left my area in sq km instead of sqm- that’s fixed my problem. Just as an aside, what values would you recommend assigning for rho0 in a simple exponential density model like this?

once again, thanks for the help!

You can look at another atmosphere model (say NRL MSISE 2000 for a good one) and estimate both the rho0 and the h scaling factor to match that.

1 Like