I am trying to do orbit determination using the KalmanEstimator provided by Orekit. My objective is to estimate the orbit (the 6 orbital parameters) but also the drag coefficient of my satellite.
To do so, I select the parameterDriver “drag coefficient” of my numercialPropagatorBuilder as “true”. Then, I create my KalmanEstimatorBuilder using this numericalPropagatorBuilder. Finaly, I get the value of the drag coefficient after each estimation step.
// Drag force
double dragCoef = 1000.; //the dragCoeff used to generate the measures is equal to 2.2
IsotropicDrag dragModel = new IsotropicDrag(crossSectionMass, dragCoef);
DragForce dragForce = new DragForce(constants.atmosphere, dragModel);
numericalPropagatorBuilder.addForceModel(dragForce);
// Parameter driver
ParameterDriver dragDriver = numericalPropagatorBuilder.getPropagationParametersDrivers().findByName("drag coefficient");
dragDriver.setSelected(true);
and :
for(ObservedMeasurement<?> measure : measurementsSetsList.get(0)) {
Propagator[] propagatorEstimated = kalmanEstimator.estimationStep(measure);
ParameterDriversList propagatorParameters = kalmanEstimator.getPropagationParametersDrivers(true);
List<ParameterDriver> list = new ArrayList<>(propagatorParameters.getDrivers());
for(ParameterDriver driver : list) {
if (driver.getName().equals("drag coefficient")) {
System.out.println(driver.getValue());
}
}
However, it seems that the value of the drag coefficient is not estimated by the filter, as its value doesn’t change at all from its initial value, even when I set it with an aberrant value.
I suppose I made a mistake using the ParameterDriver class but I really don’t see where…
Thank you for your quick answer!
I tried to use your code but it didn’t change, the value of the drag coefficient is always equal to its initial value.
Regards,
paul
I am performing an OD with a UKF, during which I would like the drag coefficient to be estimated.
For the measurements, I am using a tdm file with range, range rate ad AzEl measurements, which were generated using a drag coefficient of 2.20.
The timespan of the file is 1 month, and to initialize the UKF, I use a Least Square estimator, to which I give the first 3 days of measurements. In the begining, I set the Drag coefficient to 7.00 : the LS estimator finds 2.25, but then, the UKF keeps that value and doesn’t change it, causing the OD to diverge …