Covariance propagation with in-track thrust term

Hi all,
I would like to ask you for some advice regarding covariance propagation with an additional in-track thrust (acceleration) term. I am currently performing an orbit determination using GNSS PVT observations through batch least-square and I am estimating the three thrust scale factors of a finite maneuver (constant thrust in magnitude and direction) that occurs during the observation arc. Therefore in the end I obtain the estimated covariance that contains terms related to the thrust scale factors. I already know how to transform this covariance into a covariance with terms related to the three thrust components (or even thrust acceleration components) radial, in-track and cross-track.

I would like to propagate in the future this covariance matrix containing only the component of in-track thrust.

Therefore, when I set the force model for the propagation of the state with covariance (in case of maneuver) I activate the parameter driver for the “thrust” (which is actually the driver for the whole thrust magnitude, not the single in-track thrust component) during the propagation using the BasicConstantThrustPropulsionModel, so that
I have the “Spanthrust0” column tracked in STM and I initialized a further jacobian column considering an identity matrix. My doubt is that in practice I am pretending that the “thrust” column that I activated through the parameter driver is actually an “in-track thrust” column. Is this sort of trick correct? I am currently not modifying any Orekit equation to do that, but I am not sure this is correct.
Does this make sense or do you have other suggestions on how to better implement the covariance propagation with an in-track thrust term?

Many thanks.

Best Regards.

Dear all,

could the solution be to split the maneuver that I have during the propagation into three maneuvers occurring simultaneously, one for each component (such as radial, in-track, cross-track), so that then I have three parameter drivers and I can activate only the one I need corresponding to the in-track thrust maneuver? In this way the covariance including only the in-track thrust terms should propagate correctly.

Another possibility would be to create a modified class for the BasicConstantThrustPropulsionModel which has three parameter drivers, one for each component of the thrust.

Please let me know if you think these solutions are correct or if you have other suggestions.

Many thanks.

Best Regards.

Hi @fpan,

I think this would be the best way to go. Could you open an issue for it ? Contribution welcome :wink:
Couldn’t you use the ScaledConstantThrustPropulsionModel and select only the “X” driver (say for example you use a TNW frame for the maneuver, then “X” is then tangential term, so this corresponds to your in-track I guess).

Sorry I didn’t answer to your post yesterday because I wasn’t sure I fully undrestood your problem.

Cheers,
Maxime

Dear Maxime,

thanks a lot for your reply. I thought ScaledConstantThrustPropulsionModel was to be used mainly for estimation purposes, not for propagation, but actually if it works I could also used that.

I can anyway open an issue for BasicConstantThrustPropulsionModel in order to have three drivers available, one for each component of the thrust.

Many thanks.

Nice @fpan, thank you
I think it would be another class like “3DConstantThrustPropulsionModel”, or “VectorConstantThrustPropulsionModel”, …

Hi,

I mean there are already three thrust propulsion model with constant direction, do we really need another one? The scaled one Maxime mentionned has 3 parameters no? Otherwise there is one based on spherical coordinates for the direction.

Cheers,
Romain.

Hi Romain,

given there is already the propulsion model with the three scale factors I will not create the issue.

Thanks