Constant Thrust Maneuver CR3BP Package

Hi,

I’m trying to add a constant-thrust maneuver to my CR3BP propagator, which I built using Orekit’s CR3BP package. However, the maneuver doesn’t seem to have any effect on the trajectory. I’m not sure whether I implemented it incorrectly or whether the CR3BP package doesn’t support this type of maneuver in the way I’m using it. In the code I am currently normalizing all the units, and working in the barycenter rotating frame.

Here’s the relevant code snippet:

maneuver = ConstantThrustManeuver(
    initialEpoch,         # AbsoluteDate start time
    duration_s,           # duration (TU)
    thrust_N*TU**2/DU,    # thrust (kg DU/TU^2)
    isp_s/TU,             # Isp (TU)
    lof,                  # attitude provider
    Vector3D.PLUS_I)      # negative thrust direction in TNW frame (1, 0, 0)

# Attach maneuver to propagator
cr3bProp, _ = CR3BPropagator(
    initialState=initialState,
    cr3bpSystem=cr3bpSystem
)
cr3bProp.addForceModel(maneuver)

# Propagate backward in time with thrust using fixed-step handler
handler = MyFixedHandler(timeStep=500.0 / TU)
cr3bProp.getMultiplexer().add(handler.TimeStep, handler)

# Propagate backward in time
finalStateAfterThrust = cr3bProp.propagate(
    initialEpoch.shiftedBy(-duration_s)
)

Any help would be appreciated! Thank you!

Hi @daniellaluciani

I’m far to be an expert of CR3BP. But, the main advice I can give you is to look at the CR3BP propagation tutorial. It could be very helpful.

I hope it will help you.

Best regards,

Bryan

I wonder whether Isp should be made dimensionless in this way.

Isp is discussed in units of seconds because it’s been “normalized” by G_0 (i.e., ~9.81 m/s²), so try using

isp_s * Constants.G0_STANDARD_GRAVITY / VU

where VU is the speed scale

The Wikipedia page for specific impulse, section “Specific impulse as effective exhaust velocity”, does a pretty good job of explaining the G_0 “normalization” of Isp.

Isn’t it simply because you’re propagating in the opposite direction of time of the maneuver?

Best regards,
Emiliano

1 Like