I have been using orekit propagator to calculate orbit with J2 gravity effects.I have tested seveal propagators but them all report an error below。Can anyone help me out?
Propagator I used:
minStep = 0.001;
maxstep = 1000.0;
positionTolerance = 10.0;
tolerances =
NumericalPropagator.tolerances(positionTolerance, initialOrbit, propagationType);
integrator =
new DormandPrince853Integrator(minStep, maxstep, tolerances[0], tolerances[1]);
propagator= new NumericalPropagator(integrator);
initialState = new SpacecraftState(initialOrbit);
((NumericalPropagator) propagator).setInitialState(initialState);
provider = GravityFieldFactory.getNormalizedProvider(2, 2);
holmesFeatherstone = new HolmesFeatherstoneAttractionModel(FramesFactory.getITRF(IERSConventions.IERS_2010,true),provider); // International Terrestrial Reference Frame, earth fixed
((NumericalPropagator) propagator).addForceModel(holmesFeatherstone);
minStep = 0.01;
maxstep = 864000.0;
positionTolerance = 500.0;
tolerances =NumericalPropagator.tolerances(positionTolerance, initialOrbit, initialOrbit.getType());
double[][] tol = NumericalPropagator.tolerances(1.0, initialOrbit,OrbitType.EQUINOCTIAL);
integrator = new DormandPrince853Integrator(minStep, maxstep, tol[0], tol[1]);
((AdaptiveStepsizeIntegrator) integrator).setInitialStepSize(100. * minStep);
DSSTPropagator propagator= new DSSTPropagator(integrator);
propagator.setInitialState(new SpacecraftState(initialOrbit), PropagationType.MEAN);
// Central Body Force Model with un-normalized coefficients
unnormalized = GravityFieldFactory.getConstantUnnormalizedProvider(2, 2);
propagator.addForceModel(new DSSTZonal(unnormalized));
propagator.addForceModel(new DSSTTesseral(FramesFactory.getITRF(IERSConventions.IERS_2010,true), Constants.WGS84_EARTH_ANGULAR_VELOCITY, unnormalized));
test code
double a = 42166258; // semi major axis in meters|
double e = 0; // eccentricity|
double i = FastMath.toRadians(0); // inclination|
double omega = FastMath.toRadians(127.68603402270246); // perigee argument|
double raan = FastMath.toRadians(0); // right ascension of ascending node|
double lM = 0; // mean anomaly|
AstroSatellite sat1=new AstroSatellite();|
sat1.initKelperPara(initialDate,mu, a, e, i, omega, raan, lM, Kepler);|
sat1.PropagateOrbit(startDate, endDate, outputStep, J2);|
ArrayList <EpherePara> ephList=sat1.getEphList();|
the error:
I have tried to solve the problem as I found in the help doc that EcksteinHechlerPropagator is suited for near circular orbit propagation and support J2 effect.But it does not support equatorial orbit.
I am so confused,different propagator have so many differences.