[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orekit Users] State Transition Matrix



Yes, you can compute the state transition matrix without the problem of accuracy from the finite differences.

In Orekit 7.0 (maybe it's not different in the earlier versions), you can simply set up the computation of the jacobians by using the class PartialDerivativesEquations:

        SpacecraftState initialState = new SpacecraftState(initialOrbit);
        // prepare for propagation of jacobian
        PDE = new PartialDerivativesEquations("dYdY0", propNum);
        initialState = PDE.setInitialJacobians(initialState, 6, 0);
        // Set up initial state in the propagator
        propNum.setInitialState(initialState);

and at the end of the propagation, you extract the state transition matrix:

         Array2DRowRealMatrix dYdY0 = new Array2DRowRealMatrix(6, 6);
         PDE.getMapper().getStateJacobian(finalState, dYdY0.getDataRef());

Maybe it's not the best way to do it but it works for me.
I have attached in the e-mail a paper from the Orekit team that talks about this.

Christophe



2017-07-07 11:44 GMT+02:00 <alessandro.vananti@aiub.unibe.ch>:
Hi everybody,
I would like to propagate the covariance associated to a space object state.
Right now I calculate the transition matrix with finite differences of the
state at time t0 and t1.
However I see that Orekit has already some classes to do partial derivatives
and propagation.
I wonder if I can use those classes for my purpose.

Thanks for any suggestion!
Alessandro

Attachment: Extending propagation with used-defined equations - Applications to optimization and partial derivatives computation.pdf
Description: Adobe PDF document