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

Re: [Orekit Users] Adding a Constant Thrust Maneuver while propagating.



Hi Pau,

On Wed, 2018-04-11 at 07:08 +0000, Pau Hebrero Casasayas wrote:
Hi Luc,

Thanks a lot for the reply. 
I don't know the maneuver date  before the propagation start, is there another way around it?

There are several ways to accomplish your goal. Here are a few other approaches you could try in addition to Luc's suggestion. 

Modify ConstantThrustManeuver to accept the start / end event detectors as constructor parameters. Then you can add the maneuver to the propagator before starting propagation and use whatever event detector you already have to trigger the maneuver. Contribution are welcome if you decide to go this route and want to contribute it back to Orekit.

Initialize the ConstantThrustManeuver with dates far in the past/future. Then while propagating wait until your event detector triggers and then update the dates of the ConstantThrustManeuver's DateDetectors using addEventDate(). The DateDetector has some strict checks that ensures calling addEventDate() is safe no matter when it is called. Updating the definition of an EventDetector's g function is always safe when called from an eventOccured() method. [1] Contributions are welcome here as well, such as creating a less strict DateDetector, or creating a DateDetector that can be constructed from an empty list of dates.

Stop propagation when the event occurs, add the ConstantThrustManeuver, and then restart propagation from the last state. If you need to minimize interpolation/integration error you can use OrekitStepInterpolationg.is{Current,Previous}StateInterpolated() to ensure you reset to one of the integrator states instead of an interpolated state.  

[1] https://hipparchus.org/apidocs-1.2/org/hipparchus/ode/events/ODEEventHandler.html#g-org.hipparchus.ode.ODEStateAndDerivative-

Best Regards,
Evan


Thanks again,
Pau

----------------------------------------------------------------------------------------
Pau Hebrero Casasayas
Software Engineer
Space
SCISYS Deutschland GmbH
T: +49 6151 4285343 | F: +49 6151 4285399
E: Pau.Hebrero-Casasayas@scisys.de | http://www.space.scisys.de

SCISYS Deutschland GmbH, Darmstadt Office, Europaplatz 4, 64293 Darmstadt, Germany
Management Board: Prof. Dr. Klaus-G. Meng (Chairman), Sandra Krewerth, Ulli Leibnitz, Dr. Karl-W. Pieper, Dr. Horst Wulf
Registered Office Bochum HRB 13694, VAT-IdNo DE 813242674, WEEE-Reg.-No. DE 74530735
-----Original Message-----
From: orekit-users-request@orekit.org [mailto:orekit-users-request@orekit.org] On Behalf Of MAISONOBE Luc
Sent: 10 April 2018 20:08
To: orekit-users@orekit.org
Subject: Re: [Orekit Users] Adding a Constant Thrust Maneuver while propagating.


Pau Hebrero Casasayas <Pau.Hebrero-Casasayas@scisys.de> a écrit :

Hi,
Hi Pau,
I am propagating from a time A to a time B, and checking for events. When one event is triggered, a ConstantThrustManeuver is computed and added to the propagator (with a small offset with respect to the current propagation epoch). The propagator seems not to take into account the constant thrust maneuver in the follow-up propagation. I have done the same but with a ThirdBodyAttraction (added based on an event trigger), and it does take it into account for the rest of the propagation. I know that this topic was tackle in May by John Reilly and Evan Ward, we have followed the recommendation to use ConstantThrustManeuver to solve it, but it looks like it does not. Could anybody help?
Try to add the events detectors embedded with the maneuver by yourself into the propagator when you add the maneuvers. The propagator loops over all force models to gather the force model specific detectors at propagation start, but not afterwards, so if you add the maneuver after maneuver start, it will never be triggered. best regards, Luc
Many thanks in advance, Pau ___________________________________________________________ Pau Hebrero Casasayas Software Engineer Space SCISYS Deutschland GmbH T: +49 6151 4285343 | F: +49 6151 4285399 E: Pau.Hebrero-Casasayas@scisys.de<mailto:Pau.Hebrero-Casasayas@scisys.de
http://www.space.scisys.de
SCISYS Deutschland GmbH, Darmstadt Office, Europaplatz 4, 64293 Darmstadt, Germany Management Board: Prof. Dr.-Ing. Klaus-G. Meng (Chairman), Sandra Krewerth, Ulli Leibnitz, Dr. Karl-W. Pieper, Dr. Horst Wulf Registered Office Bochum HRB 13694, VAT-Id-No. DE 813242674, WEEE-Reg.-No. DE 74530735