Maneuver thrust direction estimation

Hello everyone!

Is it possible in Orekit to estimate maneuver thrust direction parameters?

Thank you for answers in advance.

Hi @Carboh,

Yes!
The way that is available in Orekit to date is by estimating scale factors in each direction.
The model responsible for this is ScaledConstantThrustPropulsionModel.
It is used this way:

ScaledConstantThrustPropulsionModel propModel =
                      new ScaledConstantThrustPropulsionModel(thrust, isp, direction, name);

With name the name of the maneuver, thrust in Newton, isp in seconds, and direction a unit vector in the frame you define the maneuver.
Then, to estimate the scale factors you have to select the parameters for estimation:

List<ParameterDriver> drivers = propModel.getParametersDrivers();
drivers.get(0).setSelected(true);  // Scale factor on X axis
drivers.get(1).setSelected(true);  // Scale factor on Y axis
drivers.get(2).setSelected(true);  // Scale factor on Z axis

And create the maneuver:

ConstantThrustManeuver maneuver = new ConstantThrustManeuver(myAttitudeProvider,
                                      new DateBasedManeuverTriggers(name, maneuverStartDate, maneuverDuration),
                                      propModel);

Finally, add this maneuver force model to a propagatorBuilder and use this last in your orbit determination program.

Hope this helps,
Maxime