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

*To*: orekit-users@orekit.org*Subject*: Re: [Orekit Users] State Transition Matrix*From*: MAISONOBE Luc <luc.maisonobe@c-s.fr>*Date*: Fri, 07 Jul 2017 14:05:23 +0200*In-reply-to*: <CAAv=LsMfuej5PsmdFBPURuzhdMhF7=df-0PrhNCNzVxygOqUFA@mail.gmail.com>*References*: <sympa.1499420272.26422.17@orekit.org> <CAAv=LsMfuej5PsmdFBPURuzhdMhF7=df-0PrhNCNzVxygOqUFA@mail.gmail.com>*User-agent*: Internet Messaging Program (IMP) H5 (6.2.3)

Hi Christophe, Christophe Le Bris <chris.lebris@gmail.com> a écrit :

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.

No worry, it is an appropriate way to get the state transition matrix. There are also some additional features that may be interesting, depending on your needs. First you can set the initial Jacobians to any matrix you already know. Christophe example above just specifies the dimensions so an identity matric is built for state and a null matrix is build for the Jacobian with respect to model parameters. However, another method can be used to pass matrices. This is useful if for example you want to propagate a covariance matric you already know from either a previous propagation or an orbit determination. Second, you can also have access to the state transition matrix during the propagation, not only at the end. This is done using step handlers in master propagation mode. The interpolator that will be made available for the current step to your step handler will contain the state transition matrix. You will also use the PDE.getMapper() to extract this intermediate STM from the step handler. best regards, Luc

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

**Follow-Ups**:**Re: [Orekit Users] State Transition Matrix***From:*<alessandro.vananti@aiub.unibe.ch>

**References**:**[Orekit Users] State Transition Matrix***From:*<alessandro.vananti@aiub.unibe.ch>

**Re: [Orekit Users] State Transition Matrix***From:*Christophe Le Bris <chris.lebris@gmail.com>

- Prev by Date:
**Re: [Orekit Users] State Transition Matrix** - Next by Date:
**Re: [Orekit Users] State Transition Matrix** - Previous by thread:
**Re: [Orekit Users] State Transition Matrix** - Next by thread:
**Re: [Orekit Users] State Transition Matrix** - Index(es):