Gravity Engine 12.0
Unity Asset for Gravity
|
Relative Motion for orbital transfers and rendezvous. The relative motion formalism describes the motion of the ship with repect to the target in a co-rotating coordinate frame in which the target is stationary. It is assumed that the target is in a circular orbit and that the ship is in a "nearby" orbit. The closer the ship and target orbit, the better the approximation to actual motion and computation of rendezvous maneuvers. More...
Public Member Functions | |
RelativeMotion (NBody ship, NBody target, NBody planet) | |
double | GetN () |
Get the angular velocity of the target in radians/sec. | |
double | TargetAngleDegrees () |
Determine the target angle: the angle from the local horizontal of the ship to the target based on the current world positions in GE. | |
void | ComputeRendezvous (double time, bool targetAngleAlign) |
Compute the two-impulse maneuver to rendezvous with a target in a circular orbit using a linearized relative motion framework (Clohessy-Wiltshire). See e.g. Curtis 7.5. | |
Vector3d | GetBurn0 () |
Return the initial burn to initiate a rendezvous computed by a call to ComputeRendezvous. | |
List< Maneuver > | GetManeuvers () |
Provide the maneuvers for the rendezvous determined by a call to ComputeRendezvous. | |
Vector3d | ShipToLVLH () |
Determine the relative position in the LVLH frame of the ship based on the current world position in GE. | |
Static Public Member Functions | |
static double | TargetAngle (NBody ship, NBody target, NBody planet) |
Get the angle of the target with respect to the ship's local horizon vector. It is assumed the ship and target are in coplanar orbits. Does not assume orbit is circular. | |
static Vector3d | TargetVector (NBody ship, NBody target, NBody planet) |
Get the vector to the target with respect to the ship. | |
Relative Motion for orbital transfers and rendezvous. The relative motion formalism describes the motion of the ship with repect to the target in a co-rotating coordinate frame in which the target is stationary. It is assumed that the target is in a circular orbit and that the ship is in a "nearby" orbit. The closer the ship and target orbit, the better the approximation to actual motion and computation of rendezvous maneuvers.
This component can be used to determine the maneuvers for a rendezvous. See e.g. @RelativeXferController.
The class is developed with reference to the presentation in Curtis "Orbital Mechanics for Engineering Students". Chapter 7.
There are different conventions for local co-ordinates. This component follows Curtis/Prussing and Conway: x - vertical y - downrange z - cross range. Others (e.g. Woffinden) use x for downrange, z vertical and y cross-range.
void RelativeMotion.ComputeRendezvous | ( | double | time, |
bool | targetAngleAlign | ||
) |
Compute the two-impulse maneuver to rendezvous with a target in a circular orbit using a linearized relative motion framework (Clohessy-Wiltshire). See e.g. Curtis 7.5.
This assumes the altitide distance between the ship and target is small compared to the radius of the target orbit. The resulting maneuvers are an approximation to the true 3D orbital rendezvous problem.
time | The time interval to rendezvous |
targetAngleAlign | trigger angle targeting mode. Ensures initial dV aligns with target angle algorithm. |
Vector3d RelativeMotion.GetBurn0 | ( | ) |
Return the initial burn to initiate a rendezvous computed by a call to ComputeRendezvous.
List< Maneuver > RelativeMotion.GetManeuvers | ( | ) |
Provide the maneuvers for the rendezvous determined by a call to ComputeRendezvous.
double RelativeMotion.GetN | ( | ) |
Get the angular velocity of the target in radians/sec.
Vector3d RelativeMotion.ShipToLVLH | ( | ) |
Determine the relative position in the LVLH frame of the ship based on the current world position in GE.
Get the angle of the target with respect to the ship's local horizon vector. It is assumed the ship and target are in coplanar orbits. Does not assume orbit is circular.
ship | |
target | |
planet |
double RelativeMotion.TargetAngleDegrees | ( | ) |
Determine the target angle: the angle from the local horizontal of the ship to the target based on the current world positions in GE.
Get the vector to the target with respect to the ship.
ship | |
target | |
planet |