Hello,
I am propagating an orbit using the semianalytical propagator DSST. As you can see in the code, I tried to add a DSST tesseral force model to one propagator. However, I get the same results when performing the same propagation without the tesseral force model. I also tried to change the integration step / duration of propagation, but no improvements. Did I do something wrong in my code?
Thank you!
Marco
Vector3D position = new Vector3D(-605000.7922166, -5870000.2295111, 3493000.0531990);
Vector3D velocity = new Vector3D(-1568.254290, -3702.348910, -6479.483950);
PVCoordinates pvCoordinates = new PVCoordinates(position, velocity);
AbsoluteDate startAbsoluteDate = new AbsoluteDate(2022, 05, 22, 10, 30, 0.0, TimeScalesFactory.getUTC());
Orbit orbit = new CartesianOrbit(pvCoordinates, FramesFactory.getGCRF(), startAbsoluteDate, Constants.IERS2010_EARTH_MU);
SpacecraftState initialState = new SpacecraftState(orbit, 1000);
NormalizedSphericalHarmonicsProvider normalizedSphericalHarmonicsProvider = GravityFieldFactory.getNormalizedProvider(GravityFieldFactory.getUnnormalizedProvider(Constants.IERS2010_EARTH_EQUATORIAL_RADIUS, Constants.IERS2010_EARTH_MU, TideSystem.TIDE_FREE,
new double[][] { { 1.0 }, { 0.0 }, { Constants.IERS2010_EARTH_C20 },
{ Constants.EGM96_EARTH_C30 },
{ Constants.EGM96_EARTH_C40 },
{ Constants.EGM96_EARTH_C50 },
{ Constants.EGM96_EARTH_C60 }, },
new double[][] { { 0.0 }, { 0.0 }, { 0.0 }, { 0.0 }, { 0.0 }, { 0.0 }, { 0.0 }, }));
DSSTForceModel forceModel = new DSSTTesseral(FramesFactory.getITRF(IERSConventions.IERS_2010, false), Constants.IERS2010_EARTH_ANGULAR_VELOCITY, GravityFieldFactory.getUnnormalizedProvider(normalizedSphericalHarmonicsProvider));
// Propagate
DSSTPropagator propagator = new DSSTPropagator(new EulerIntegrator(0.5));
DSSTPropagator propagatorNoForce = new DSSTPropagator(new EulerIntegrator(0.5));
propagator.setInitialState(initialState);
propagatorNoForce.setInitialState(initialState);
propagator.addForceModel(forceModel);
SpacecraftState finalSpacecraftState = propagator.propagate(startAbsoluteDate.shiftedBy(3000));
SpacecraftState finalSpacecraftStateNoForce = propagatorNoForce.propagate(startAbsoluteDate.shiftedBy(3000));
System.out.println(finalSpacecraftState.getPVCoordinates().getPosition().getX() == finalSpacecraftStateNoForce.getPVCoordinates().getPosition().getX()); // TRUE